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 403F74C288 for ; Sat, 8 Nov 2025 18:22:59 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'puIB/4+kB0iAmnKNSoV0BF2iIb/Ep68m0KVoMFRLOp8=', expected b'hFHTzB7Wmur01Bqvu3YR2b7H33wo70LHXk709lqpf1Q=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1762626168; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=puIB/4+kB0iAmnKNSoV0BF2iIb/Ep68m0KVoMFRLOp8=; b=xMFWcPKF8yWAtFKOOSLeeYGNKTPzq0zpD7dl7EOKPxvnKgMgtpQ4DL1iWdfnRdBS4ouLB JeUF8Fy50lIK16yQkZMYmwbwXPdc1QDH4K2zdBRNiRVcHcw7mc5EDu3a/I3pR50HoayJu+S Q/atIGpQjpcDVJszvpyWg5T1lrC5k9bh/uIv2ehGbARFcrX9yAO66Hk7cwHbEFdunwJiD6G YQaGNTwXzr5YOGe1LAxhazNqjcHlHN5YY7EWN2J4My2hanGJUYIIk/z/flruvPtiDSirxzR y8AJqzFUmDdr1ony4RXrlbv2CwqyookoUrJZ1IXIg9l1n6tdFkCD5o1x6hsw== Received: from [172.19.0.2] (unknown [172.19.0.2]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1602C68FB68; Sat, 8 Nov 2025 20:22:48 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1762626144; b=NZ3jTPqz1G9YyXp+ksXvG35RFWg49nExCMcGHt/7SQimnZo600tqsmKtrBjRoEHgLaE5x +C/5+XksZSFj/C3OyWSiH11aUb8CXJJQsKXSihaTvP/GE9im8pGFf6ZCZ7bFl+9AaUuK88u L1eoTaG3R9kMA5zEP0nKDlrwIrLbfIhnm5xwTC/1G+1lmvR//I6mIJT5RYywklnT8oAM5YY cVt12V4j7gH/wtmiIlLDkxH53yTK8LMAviRl9iNyJxYHMKxY8eet+3Frrk6wcpkCCMMZkUu T5y2K2PEO1G0eGVW4GMj3LOjrZrSthd2pInwiG/zg1Qm/BJbrSyCIz68fk0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1762626144; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=FgXiCfNQtEPj7q1uYsy22De75ZFib7N6UYYeUF+20yQ=; b=om5kIVdNDUnOoOeehfFRDFgf8FVPrXhm9J2eaR6LHr7AToJEYryjkLPEPomDnWUeQ6Hvp 36XSXwlINadgbr8SLVM6SMXuvh9GK4w/5ON22VzUJY4MPC9Us3ACYYOcV7EK35KjiL4n4wR CstVZoBTEPeawTd+jd9muaHoJy+eH+v7cAO5RHiVwmJsMj3tSNmxaPvjvXB4AzxTwhKaoh4 195nwj8d8e04+KwVbrZLxkdF8J0VLrCQvBYQsjOiIywBJdj0SWw0VWBHTry3I8lzZPphzju Cjhz75YeAd52wW+X+xDxw0I5lbb5fvFiXW+3u6FS9m1vLZOnV5gL3OLS9Omw== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1762626137; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=hFHTzB7Wmur01Bqvu3YR2b7H33wo70LHXk709lqpf1Q=; b=LphQ2LGh8BYNfhWSwVbtFLBtkyOe6NVw2xsXNBjdUxHaO5vE//XcfrDESPFlWIUjbygxj 07xdH73PrOs7kbo8PiU4B6xTxoYyvgLYyZqI3zfPumtIbWXloVD+cD2zApbO+LfrRRGabxK iz6UQFzyUSFiS1dFQ1M0lHBET3jVDNFra/h2bLVmTIDxoWNSbaw1lg0e420ihuV5/9bPpsN gmXoHoWwZjkrqtfcI6Pio2GXEVTHmXj4gyOOw75H/6UeWuG6Io4YQv2/BspG3LqWpKxQNxe VCVRFazHQ69Xo8Oj0gl6G/VJXXvQCLnsirm/X03FB6L8/rlBAyQ6m1kJt5BA== Received: from 188d6d40ca7a (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id E91F268F436 for ; Sat, 8 Nov 2025 20:22:16 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Sat, 08 Nov 2025 18:22:16 -0000 Message-ID: <176262613713.25.18010110012984526574@2cb04c0e5124> Message-ID-Hash: KW2MJ6EI7WDOF3HAIE3IKQTWUGXMVOHZ X-Message-ID-Hash: KW2MJ6EI7WDOF3HAIE3IKQTWUGXMVOHZ X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] Don't reset last{pts,dts} on new sequentialized ogg streams. (PR #20868) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: toots via ffmpeg-devel Cc: toots Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #20868 opened by toots URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20868 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20868.patch This fixes PTS/DTS discontinuity on sequentialized ogg streams. >>From 9656eb8a9a0f10b28b95ca35f98ad165e5e3c41a Mon Sep 17 00:00:00 2001 From: Romain Beauxis Date: Tue, 30 Sep 2025 20:23:04 -0500 Subject: [PATCH] Don't reset last{pts,dts} on new sequentialized ogg streams. This fixes PTS/DTS discontinuity on sequentialized ogg streams. --- libavformat/oggdec.c | 7 +++++++ libavformat/oggdec.h | 1 + tests/ref/fate/ogg-flac-chained-meta.txt | 8 ++++---- tests/ref/fate/ogg-opus-chained-meta.txt | 24 +++++++++++----------- tests/ref/fate/ogg-vorbis-chained-meta.txt | 12 +++++------ 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c index 9f3a92a5ea..18ca3a6f68 100644 --- a/libavformat/oggdec.c +++ b/libavformat/oggdec.c @@ -237,8 +237,10 @@ static int ogg_replace_stream(AVFormatContext *s, uint32_t serial, char *magic, os->serial = serial; os->lastpts = 0; os->lastdts = 0; + os->flags = 0; os->start_trimming = 0; os->end_trimming = 0; + os->replace = 1; return i; } @@ -879,6 +881,11 @@ retry: os->end_trimming = 0; } + if (os->replace) { + os->replace = 0; + pkt->dts = pkt->pts = AV_NOPTS_VALUE; + } + if (os->new_metadata) { ret = av_packet_add_side_data(pkt, AV_PKT_DATA_STRINGS_METADATA, os->new_metadata, os->new_metadata_size); diff --git a/libavformat/oggdec.h b/libavformat/oggdec.h index b051b651e3..f29912bca8 100644 --- a/libavformat/oggdec.h +++ b/libavformat/oggdec.h @@ -92,6 +92,7 @@ struct ogg_stream { int nb_header; ///< set to the number of parsed headers int start_trimming; ///< set the number of packets to drop from the start int end_trimming; ///< set the number of packets to drop from the end + int replace; // < set to 1 after initializing a new chained stream uint8_t *new_metadata; size_t new_metadata_size; uint8_t *new_extradata; diff --git a/tests/ref/fate/ogg-flac-chained-meta.txt b/tests/ref/fate/ogg-flac-chained-meta.txt index 5abf37dcee..877b3f3173 100644 --- a/tests/ref/fate/ogg-flac-chained-meta.txt +++ b/tests/ref/fate/ogg-flac-chained-meta.txt @@ -4,8 +4,8 @@ Stream ID: 0, new metadata: encoder=Lavc61.19.100 flac:title=First Stream Stream ID: 0, frame PTS: 0, metadata: N/A Stream ID: 0, packet PTS: 4608, packet DTS: 4608 Stream ID: 0, frame PTS: 4608, metadata: N/A -Stream ID: 0, packet PTS: 0, packet DTS: 0 +Stream ID: 0, packet PTS: 8820, packet DTS: 8820 Stream ID: 0, new metadata: encoder=Lavc61.19.100 flac:title=Second Stream -Stream ID: 0, frame PTS: 0, metadata: encoder=Lavc61.19.100 flac:title=Second Stream -Stream ID: 0, packet PTS: 4608, packet DTS: 4608 -Stream ID: 0, frame PTS: 4608, metadata: N/A +Stream ID: 0, frame PTS: 8820, metadata: encoder=Lavc61.19.100 flac:title=Second Stream +Stream ID: 0, packet PTS: 13428, packet DTS: 13428 +Stream ID: 0, frame PTS: 13428, metadata: N/A diff --git a/tests/ref/fate/ogg-opus-chained-meta.txt b/tests/ref/fate/ogg-opus-chained-meta.txt index aad9b83700..5c2b9d0d44 100644 --- a/tests/ref/fate/ogg-opus-chained-meta.txt +++ b/tests/ref/fate/ogg-opus-chained-meta.txt @@ -12,16 +12,16 @@ Stream ID: 0, packet PTS: 3528, packet DTS: 3528 Stream ID: 0, frame PTS: 3528, metadata: N/A Stream ID: 0, packet PTS: 4488, packet DTS: 4488 Stream ID: 0, frame PTS: 4488, metadata: N/A -Stream ID: 0, packet PTS: -312, packet DTS: -312 +Stream ID: 0, packet PTS: 4800, packet DTS: 4800 Stream ID: 0, new metadata: encoder=Lavc61.19.100 libopus:title=Second Stream -Stream ID: 0, frame PTS: -312, metadata: encoder=Lavc61.19.100 libopus:title=Second Stream -Stream ID: 0, packet PTS: 648, packet DTS: 648 -Stream ID: 0, frame PTS: 648, metadata: N/A -Stream ID: 0, packet PTS: 1608, packet DTS: 1608 -Stream ID: 0, frame PTS: 1608, metadata: N/A -Stream ID: 0, packet PTS: 2568, packet DTS: 2568 -Stream ID: 0, frame PTS: 2568, metadata: N/A -Stream ID: 0, packet PTS: 3528, packet DTS: 3528 -Stream ID: 0, frame PTS: 3528, metadata: N/A -Stream ID: 0, packet PTS: 4488, packet DTS: 4488 -Stream ID: 0, frame PTS: 4488, metadata: N/A +Stream ID: 0, frame PTS: 4800, metadata: encoder=Lavc61.19.100 libopus:title=Second Stream +Stream ID: 0, packet PTS: 5760, packet DTS: 5760 +Stream ID: 0, frame PTS: 5760, metadata: N/A +Stream ID: 0, packet PTS: 6720, packet DTS: 6720 +Stream ID: 0, frame PTS: 6720, metadata: N/A +Stream ID: 0, packet PTS: 7680, packet DTS: 7680 +Stream ID: 0, frame PTS: 7680, metadata: N/A +Stream ID: 0, packet PTS: 8640, packet DTS: 8640 +Stream ID: 0, frame PTS: 8640, metadata: N/A +Stream ID: 0, packet PTS: 9600, packet DTS: 9600 +Stream ID: 0, frame PTS: 9600, metadata: N/A diff --git a/tests/ref/fate/ogg-vorbis-chained-meta.txt b/tests/ref/fate/ogg-vorbis-chained-meta.txt index 60d9aeb9fa..5ec756663d 100644 --- a/tests/ref/fate/ogg-vorbis-chained-meta.txt +++ b/tests/ref/fate/ogg-vorbis-chained-meta.txt @@ -5,10 +5,10 @@ Stream ID: 0, packet PTS: 128, packet DTS: 128 Stream ID: 0, frame PTS: 128, metadata: N/A Stream ID: 0, packet PTS: 704, packet DTS: 704 Stream ID: 0, frame PTS: 704, metadata: N/A -Stream ID: 0, packet PTS: 0, packet DTS: 0 +Stream ID: 0, packet PTS: 1323, packet DTS: 1323 Stream ID: 0, new metadata: encoder=Lavc61.19.100 libvorbis:title=Second Stream -Stream ID: 0, frame PTS: 0, metadata: encoder=Lavc61.19.100 libvorbis:title=Second Stream -Stream ID: 0, packet PTS: 128, packet DTS: 128 -Stream ID: 0, frame PTS: 128, metadata: N/A -Stream ID: 0, packet PTS: 704, packet DTS: 704 -Stream ID: 0, frame PTS: 704, metadata: N/A +Stream ID: 0, frame PTS: 1323, metadata: encoder=Lavc61.19.100 libvorbis:title=Second Stream +Stream ID: 0, packet PTS: 1451, packet DTS: 1451 +Stream ID: 0, frame PTS: 1451, metadata: N/A +Stream ID: 0, packet PTS: 2027, packet DTS: 2027 +Stream ID: 0, frame PTS: 2027, metadata: N/A -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org