From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 4FA054C269 for ; Fri, 2 May 2025 20:28:55 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E73E8687D93; Fri, 2 May 2025 23:28:50 +0300 (EEST) Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 392C2687D93 for ; Fri, 2 May 2025 23:28:44 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id 853F6439DB for ; Fri, 2 May 2025 20:28:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niedermayer.cc; s=gm1; t=1746217723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=nHTcApBRLm9V10FpP7CD9KJVfI17sMueGQEUVMxHNp8=; b=l/sDICc4hDDPap0CQURDDOtRtjMQyZgtZKRVRj9yefjKKxC3/NQyHi3geg14wy1Uu1fxlI fGqO3GKYrKEKx14BRXqB5A95EGIywhYAmIPTOwEhLShAnvJRMyveXwsnt+WtopX2k+lvAe 5COBFyJCcIXBvoTgBLVXwi2v/6455KbVkzCvdi661vLk30AtOrQ+cfNVSwr/Lp7qETbldX ulOOSV9O4Nj3dkg5gYDvqMV2HC7+5pPXWc6tMbS82sHc1yUkL0fw1waaieFqZhGqi0+Yi+ 4Jn1ZZBZkEJ/C2q0u43fFTezwjsn+BiChzZS64y1IzCH9Msc860hln7d80ahBw== Date: Fri, 2 May 2025 22:28:42 +0200 From: Michael Niedermayer To: FFmpeg development discussions and patches Message-ID: <20250502202842.GC4991@pb2> References: <20250428233136.37007-1-romain.beauxis@gmail.com> <20250428233136.37007-3-romain.beauxis@gmail.com> <20250429213511.GR4991@pb2> <20250430001739.GV4991@pb2> MIME-Version: 1.0 In-Reply-To: X-GND-State: clean X-GND-Score: -85 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvjeefgeduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenfghrlhcuvffnffculdduhedmnecujfgurhepfffhvffukfhfgggtuggjsehgtderredttddunecuhfhrohhmpefoihgthhgrvghlucfpihgvuggvrhhmrgihvghruceomhhitghhrggvlhesnhhivgguvghrmhgrhigvrhdrtggtqeenucggtffrrghtthgvrhhnpeejteefuddufeegveejffehiefhgedukeevgfefkeegjefgieeiteelueeiveegueenucffohhmrghinhepghhithhhuhgsrdgtohhmnecukfhppeeguddrieeirdeijedruddufeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeguddrieeirdeijedruddufedphhgvlhhopehlohgtrghlhhhoshhtpdhmrghilhhfrhhomhepmhhitghhrggvlhesnhhivgguvghrmhgrhigvrhdrtggtpdhnsggprhgtphhtthhopedupdhrtghpthhtohepfhhfmhhpvghgqdguvghvvghlsehffhhmphgvghdrohhrgh X-GND-Sasl: michael@niedermayer.cc Subject: Re: [FFmpeg-devel] [PATCH v2 2/2] ogg/{vorbis, flac, opus}: Remove header packets from subsequent ogg streams from the demuxer output. 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 Content-Type: multipart/mixed; boundary="===============4027093928476792003==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --===============4027093928476792003== Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="exYE3TINDeeBRC+S" Content-Disposition: inline --exYE3TINDeeBRC+S Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Apr 29, 2025 at 07:49:54PM -0500, Romain Beauxis wrote: > Le mar. 29 avr. 2025 =E0 19:17, Michael Niedermayer > a =E9crit : > > > > Hi Romain > > > > On Tue, Apr 29, 2025 at 05:42:22PM -0500, Romain Beauxis wrote: > > > Le mar. 29 avr. 2025 =E0 16:35, Michael Niedermayer > > > a =E9crit : > > > > > > > > Hi > > > > > > > > On Mon, Apr 28, 2025 at 06:31:36PM -0500, Romain Beauxis wrote: > > > > > --- > > > > > libavformat/oggdec.c | 26 > ++++++++++---------- > > > > > libavformat/oggdec.h | 6 +++++ > > > > > libavformat/oggparseflac.c | 28 > ++++++++++++++++++++-- > > > > > libavformat/oggparseopus.c | 12 ++++++++++ > > > > > libavformat/oggparsevorbis.c | 12 ++++++++-- > > > > > tests/ref/fate/ogg-flac-chained-meta.txt | 2 -- > > > > > tests/ref/fate/ogg-opus-chained-meta.txt | 1 - > > > > > tests/ref/fate/ogg-vorbis-chained-meta.txt | 3 --- > > > > > 8 files changed, 68 insertions(+), 22 deletions(-) > > > > > > > > > > diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c > > > > > index 5339fdd32c..5557eb4a14 100644 > > > > > --- a/libavformat/oggdec.c > > > > > +++ b/libavformat/oggdec.c > > > > > @@ -239,10 +239,6 @@ static int ogg_replace_stream(AVFormatContext > *s, uint32_t serial, char *magic, > > > > > os->start_trimming =3D 0; > > > > > os->end_trimming =3D 0; > > > > > > > > > > - /* Chained files have extradata as a new packet */ > > > > > - if (codec =3D=3D &ff_opus_codec) > > > > > - os->header =3D -1; > > > > > - > > > > > return i; > > > > > } > > > > > > > > > > @@ -605,20 +601,26 @@ static int ogg_packet(AVFormatContext *s, i= nt > *sid, int *dstart, int *dsize, > > > > > } else { > > > > > os->pflags =3D 0; > > > > > os->pduration =3D 0; > > > > > + > > > > > + ret =3D 0; > > > > > if (os->codec && os->codec->packet) { > > > > > if ((ret =3D os->codec->packet(s, idx)) < 0) { > > > > > av_log(s, AV_LOG_ERROR, "Packet processing faile= d: > %s\n", av_err2str(ret)); > > > > > return ret; > > > > > } > > > > > } > > > > > - if (sid) > > > > > - *sid =3D idx; > > > > > - if (dstart) > > > > > - *dstart =3D os->pstart; > > > > > - if (dsize) > > > > > - *dsize =3D os->psize; > > > > > - if (fpos) > > > > > - *fpos =3D os->sync_pos; > > > > > + > > > > > + if (!ret) { > > > > > + if (sid) > > > > > + *sid =3D idx; > > > > > + if (dstart) > > > > > + *dstart =3D os->pstart; > > > > > + if (dsize) > > > > > + *dsize =3D os->psize; > > > > > + if (fpos) > > > > > + *fpos =3D os->sync_pos; > > > > > + } > > > > > + > > > > > os->pstart +=3D os->psize; > > > > > os->psize =3D 0; > > > > > if(os->pstart =3D=3D os->bufpos) > > > > > > > > > diff --git a/libavformat/oggdec.h b/libavformat/oggdec.h > > > > > index 43df23f4cb..09f698f99a 100644 > > > > > --- a/libavformat/oggdec.h > > > > > +++ b/libavformat/oggdec.h > > > > > @@ -38,6 +38,12 @@ struct ogg_codec { > > > > > * -1 if an error occurred or for unsupported stream > > > > > */ > > > > > int (*header)(AVFormatContext *, int); > > > > > + /** > > > > > + * Attempt to process a packet as a data packet > > > > > + * @return 1 if the packet was a header from a chained > bitstream. > > > > > + * 0 if the packet was a regular data packet. > > > > > + * -1 if an error occurred or for unsupported stream > > > > > + */ > > > > > int (*packet)(AVFormatContext *, int); > > > > > /** > > > > > * Translate a granule into a timestamp. > > > > > > > > ok, but seems unrelated > > > > > > This is a new convention to allow the parser to know when to skip a > > > packet. Previous to that, return value of 1 did not have specific > > > meaning. > > > > Do you think this would merit a seperate patch ? > > I mean patch #1 changing the packet() return value and clearly stating > > that in the commit message > > and patch #2 using the new value ? > > > > I think it would make things clearer >=20 > Sure thing! >=20 > libavformat/oggdec.c: Skip packets when packet function returns 1: >=20 > https://github.com/toots/FFmpeg/commit/b78acea3b2840320bb68e065b2e712d753= cb8d26 > commit 16f4a594af15aee1b68e87f17d00018592528ce6 > Author: Romain Beauxis > Date: Mon Apr 28 18:08:58 2025 -0500 > > libavformat/oggdec.c: Skip packets when packet function returns 1. > =2E.. > diff --git a/libavformat/oggdec.h b/libavformat/oggdec.h > index 43df23f4cb9..09f698f99ab 100644 > --- a/libavformat/oggdec.h > +++ b/libavformat/oggdec.h > @@ -38,6 +38,12 @@ struct ogg_codec { > * -1 if an error occurred or for unsupported stream > */ > int (*header)(AVFormatContext *, int); > + /** > + * Attempt to process a packet as a data packet > + * @return 1 if the packet was a header from a chained bitstream. > + * 0 if the packet was a regular data packet. > + * -1 if an error occurred or for unsupported stream > + */ > int (*packet)(AVFormatContext *, int); > /** > * Translate a granule into a timestamp. The commit message and the change dont seem to fit together I would have expected the commit message to either say "Changing the packet() callback API/Return value" or "Documenting the packet() callback API/Return value" thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The smallest minority on earth is the individual. Those who deny individual rights cannot claim to be defenders of minorities. - Ayn Rand --exYE3TINDeeBRC+S Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iF0EABEKAB0WIQSf8hKLFH72cwut8TNhHseHBAsPqwUCaBUq9wAKCRBhHseHBAsP q+8FAKCRMmVd6/de8iAXezVkGcMQuGXnSQCZAUiRfT5JdQ3Gj0+YmNFVZSOmEQw= =zIdq -----END PGP SIGNATURE----- --exYE3TINDeeBRC+S-- --===============4027093928476792003== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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". --===============4027093928476792003==--