From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id E36AC4B9F5 for ; Wed, 21 May 2025 14:00:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 778E068DA4E; Wed, 21 May 2025 17:00:36 +0300 (EEST) Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 3E8AC68DA34 for ; Wed, 21 May 2025 17:00:30 +0300 (EEST) Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-3a36ab95a13so2502143f8f.3 for ; Wed, 21 May 2025 07:00:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747836029; x=1748440829; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=el0XD+nrI7rwjH5xP38cSugVHBct6mYvkV8xEXHk3J4=; b=f+x2blJUyzKGVlrvAaRw3e77oo/z9UNHj6O8DeuSO0X0OHG0JuQsnkjwezN5m8n0Di +W/MZzLI1NUC8owpmxawdOVtcvZVk+LfKLvx8EwpiOuadOvMnsAmnRd5gfAeCXD+6C5b 9mfyqnI7BjzBJsGJn+hwnBAC/SXCf7RR1dnpz/5uxxAXyx9hSTKieJT8baiehO/IDmha bKyO3pbc8OMdBC98yyHwHHPmN8NWuOOQGLD38n2s9peA7s4GVPZxDJ9gNB7PhCfZf+zi m6NSSEA4XUtOJhIoOt8+8tNVWK80Ai3B02scmzIzk39vP42XI6IVx8NZ/9PUE66cR2P2 wtLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747836029; x=1748440829; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=el0XD+nrI7rwjH5xP38cSugVHBct6mYvkV8xEXHk3J4=; b=ZsBCaupugqJsdR0v74Lo11cI7TzTYfkG/k2DLlwC8zHLXvH1s/Ml0F/fiGtJ8nj1fP IKQ7NLQXQ32IN3W3W+6k7WHJfiitX8CCfu7PfqlRLD6iJd+JUfeXf2J+ib3RDrgqumg3 OOXFlIbzdETPwtFMGBn86x+F7BJDojrFPuX6gzNeYdQSXytQgoceY1nqwjL18qOx4Dlf 2YV7mIWkAjVaQfEwPWSgi8VNIp+BLNZSCgX5yAFiMMwL1xCETRd88iwXzxIyEO9s2YAN wBKUOZ5HnZD3iVDQjVec4KqhDyJlyBrL1gQ4zVIF34IQZM+9QeK50tR5tAxHzRSKBvXf 7vWQ== X-Gm-Message-State: AOJu0YyIV6fIVyXjwnSAxiTjAfMfYvdjc8FwUxYLEkzkpyzzBTXkYg/o f4icJ95eHl2MlLwgnDZyqjRDrOw8ABhTMHjCK4kinZrSIndysguY7J3PXElsTm1a X-Gm-Gg: ASbGncvOZdxRuIp/anxidaXKvnLBDZqV63maN8OMN3Y3kxkdczWB4BjKywzgyauZ0qH 6WR1wgkkWOeF2PPfuJGtZyAhKgGJd44LQz49hlGeVOtszLvZLqKARnoInAvzxdQscviRskDUjqr cHgadajYiUrCQ3Df/+ZmptHgSFVTixzIRPFkIVL9aAmIcoFmjhfryT0cgJJd03l3TY2x1mrMy14 /Y+bh0t6qoeNlcuWaeReUAPe0DnzAsTPlGo7drUtNUbheWqIpUt2Zbx0bEDeSN/FXbPN4vVLxD7 DfXI0xBB9oqqEg+fIft5zfUW5c6Sym128mWdRVs49DhXuPf3F5NmlLYcwXTmGA3w/vljOTw+rVM = X-Google-Smtp-Source: AGHT+IETQHMjBqKZlfL/+H9CnLtB6tFwPbUVwSgKFwpYpjGMUWQsNOH8vocrONRanPfixEXBN52BDg== X-Received: by 2002:a05:6000:1889:b0:3a3:7e01:d2fa with SMTP id ffacd0b85a97d-3a37e01d307mr4070871f8f.28.1747836029119; Wed, 21 May 2025 07:00:29 -0700 (PDT) Received: from cesar-ThinkPad-P14s-Gen-5.. ([152.115.221.20]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a35ca6254bsm20238803f8f.52.2025.05.21.07.00.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 07:00:28 -0700 (PDT) From: CesarATV To: ffmpeg-devel@ffmpeg.org Date: Wed, 21 May 2025 16:00:26 +0200 Message-ID: <20250521140026.40891-1-cesaratvgit@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] qt-faststart: update co64 chunk offsets when converting stco to co64 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: CesarATV Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Before this patch, when qt-faststart converted stco atoms to co64, it did so without updating the chunk offsets of pre-existing co64 atoms, resulting in corrupted tracks. This patch ensures that existing co64 chunk offsets are correctly adjusted when such a conversion occurs. Signed-off-by: CesarATV --- tools/qt-faststart.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/qt-faststart.c b/tools/qt-faststart.c index 46950a5cf4..3c3b0890a8 100644 --- a/tools/qt-faststart.c +++ b/tools/qt-faststart.c @@ -218,7 +218,7 @@ static int update_stco_offsets(update_chunk_offsets_context_t *context, atom_t * return 0; } -static int update_co64_offsets(update_chunk_offsets_context_t *context, atom_t *atom) +static int update_co64_offsets(uint64_t offset_increment, atom_t *atom) { uint64_t current_offset; uint32_t offset_count; @@ -241,7 +241,7 @@ static int update_co64_offsets(update_chunk_offsets_context_t *context, atom_t * pos < end; pos += 8) { current_offset = BE_64(pos); - current_offset += context->moov_atom_size; + current_offset += offset_increment; AV_WB64(pos, current_offset); } @@ -258,7 +258,7 @@ static int update_chunk_offsets_callback(void *ctx, atom_t *atom) return update_stco_offsets(context, atom); case CO64_ATOM: - return update_co64_offsets(context, atom); + return update_co64_offsets(context->moov_atom_size, atom); case MOOV_ATOM: case TRAK_ATOM: @@ -359,6 +359,10 @@ static int upgrade_stco_callback(void *ctx, atom_t *atom) set_atom_size(start_pos, atom->header_size, context->dest - start_pos); break; + case CO64_ATOM: + update_co64_offsets(context->new_moov_size - context->original_moov_size, atom); + /* fallthrough */ + default: copy_size = atom->header_size + atom->size; memcpy(context->dest, atom->data - atom->header_size, copy_size); -- 2.43.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".