From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id D2CA84D264 for <ffmpegdev@gitmailbox.com>; Wed, 16 Apr 2025 11:02:14 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4456E687DEF; Wed, 16 Apr 2025 14:02:11 +0300 (EEST) Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AE24C687C19 for <ffmpeg-devel@ffmpeg.org>; Wed, 16 Apr 2025 14:02:04 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id 115D6439F2 for <ffmpeg-devel@ffmpeg.org>; Wed, 16 Apr 2025 11:02:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niedermayer.cc; s=gm1; t=1744801324; 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=QmqLApsR/PYcCpR2HJAp/ch64wdhVUqO2s2/+g+jbtI=; b=IeJXVt4rOsSZFBrVmUMNpFEgEgZlDMkJW3uZrYW+vVRTJY9DjNsnWc1MoehgQRtAQ9SAKC FlSYES03ALX6rUwVmKT6z9/CpPxB9euOC1DImsrvbgl3IzuJ7JPhvYH2G4PiOpLJQGAA4t dO3ATp/CSIURyKVbHdNHHyN1TuRmzOIqOcp2+oHjPleqxsuV+bgdVN4JyOBwwXInDE5/YI 9wM3vgYEhQgwO6oAd9XrxYYxBU6Sd1mdNjJFQwjLj6eTSgx9lIRozuaBoIsO6oeaqV3+bi KzhPD5JGq99pOlW4lCmE6Y3vUdEJ2vzA7xY1DDG/Iczb/lrqxnEwMC1segGpHw== Date: Wed, 16 Apr 2025 13:02:03 +0200 From: Michael Niedermayer <michael@niedermayer.cc> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Message-ID: <20250416110203.GI4991@pb2> References: <20250415185538.GR4991@pb2> <DM8P223MB0365E10D38EF9174A32557DFBAB22@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <20250415225001.GW4991@pb2> <DM8P223MB0365EFE83DE448577271D852BAB22@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <20250416012145.GE4991@pb2> <DM8P223MB0365836071D915E428907879BABD2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <20250416013339.GF4991@pb2> <DM8P223MB03658C2F1D76A2E9901E6F77BABD2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <20250416105325.GH4991@pb2> <GV1P250MB0737D12B75A98BEAC01DE9328FBD2@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> MIME-Version: 1.0 In-Reply-To: <GV1P250MB0737D12B75A98BEAC01DE9328FBD2@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> X-GND-State: clean X-GND-Score: -85 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvdeivddtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenfghrlhcuvffnffculdduhedmnecujfgurhepfffhvffukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpefoihgthhgrvghlucfpihgvuggvrhhmrgihvghruceomhhitghhrggvlhesnhhivgguvghrmhgrhigvrhdrtggtqeenucggtffrrghtthgvrhhnpeeigeektdejudffjefhteegjedtgeettefggedthfejgfevhfetgeekjedtvdfhveenucfkphepgedurdeiiedrieejrdduudefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepgedurdeiiedrieejrdduudefpdhhvghloheplhhotggrlhhhohhsthdpmhgrihhlfhhrohhmpehmihgthhgrvghlsehnihgvuggvrhhmrgihvghrrdgttgdpnhgspghrtghpthhtohepuddprhgtphhtthhopehffhhmphgvghdquggvvhgvlhesfhhfmhhpvghgrdhorhhg X-GND-Sasl: michael@niedermayer.cc Subject: Re: [FFmpeg-devel] [PATCH 2/2] avformat/id3v2: Check that decode_str() did advance X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: multipart/mixed; boundary="===============6085907252907809803==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250416110203.GI4991@pb2/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> --===============6085907252907809803== Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="NnzmG0r0xY6scTbM" Content-Disposition: inline --NnzmG0r0xY6scTbM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Andreas On Wed, Apr 16, 2025 at 12:57:27PM +0200, Andreas Rheinhardt wrote: > Michael Niedermayer: > > Hi softworkz > >=20 > > On Wed, Apr 16, 2025 at 02:52:21AM +0000, softworkz . wrote: > >> > >> > >>> -----Original Message----- > >>> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of > >>> Michael Niedermayer > >>> Sent: Mittwoch, 16. April 2025 03:34 > >>> To: FFmpeg development discussions and patches <ffmpeg- > >>> devel@ffmpeg.org> > >>> Subject: Re: [FFmpeg-devel] [PATCH 2/2] avformat/id3v2: Check that > >>> decode_str() did advance > >>> > >>> On Wed, Apr 16, 2025 at 01:29:02AM +0000, softworkz . wrote: > >>> [...] > >>>>>> This will cause deserialization errors for many people in the > >>> world > >>>>>> who are processing FFprobe data. > >>>>> > >>>>> As said, ffprobe should not produce troublesome output > >> > >> First of all, any patch MUST NOT introduce behavior that goes > >> against our own specifications. > >> > >> From avformat.h: > >> > >> /** > >> * @defgroup metadata_api Public Metadata API > >> * @{ > >> * @ingroup libavf > >> * The metadata API allows libavformat to export metadata tags to a cl= ient > >> * application when demuxing. Conversely it allows a client applicatio= n to > >> * set metadata when muxing. > >> * > >> * Metadata is exported or set as pairs of key/value strings in the 'm= etadata' > >> * fields of the AVFormatContext, AVStream, AVChapter and AVProgram st= ructs > >> * using the @ref lavu_dict "AVDictionary" API. Like all strings in FF= mpeg, > >> * metadata is assumed to be UTF-8 encoded Unicode. Note that metadata > >> * exported by demuxers isn't checked to be valid UTF-8 in most cases. > >> * > >> * Important concepts to keep in mind: > >> * - Keys are unique; there can never be 2 tags with the same key. Th= is is > >> * also meant semantically, i.e., a demuxer should not knowingly pr= oduce > >> * several keys that are literally different but semantically ident= ical. > >> * E.g., key=3DAuthor5, key=3DAuthor6. In this example, all authors= must be > >> * placed in the same tag. > >> * - Metadata is flat, not hierarchical; there are no subtags. If you > >> * want to store, e.g., the email address of the child of producer = Alice > >> * and actor Bob, that could have key=3Dalice_and_bobs_childs_email= _address. > >> * - Several modifiers can be applied to the tag name. This is done by > >> * appending a dash character ('-') and the modifier name in the or= der > >> * they appear in the list below -- e.g. foo-eng-sort, not foo-sort= -eng. > >> * - language -- a tag whose value is localized for a particular l= anguage > >> * is appended with the ISO 639-2/B 3-letter language code. > >> * For example: Author-ger=3DMichael, Author-eng=3DMike > >> * The original/default language is in the unqualified "Author" = tag. > >> * A demuxer should set a default if it sets any translated tag. > >> * - sorting -- a modified version of a tag that should be used f= or > >> * sorting will have '-sort' appended. E.g. artist=3D"The Beatle= s", > >> * artist-sort=3D"Beatles, The". > >> > >> > >> Especially: > >> > >> * E.g., key=3DAuthor5, key=3DAuthor6. In this example, all authors = must be > >> * placed in the same tag. > >> > >> I think, this tells very clearly how it's gotta be and how not. > >=20 > > This is written by me 16 years ago > > and it made sense at the time. Our APIs did not support multiple values= per > > key. > > The API supports multiple values per key since 9 years. Using said API = is > > more convenient than having to parse and escape ";" around. > > Thats for our code, its simpler for a muxer to iterate over a AVDiction= ary key > > than parse a ";" seperated string (with undefined escaping rules). > > and easier to build a ";" string from a multi-value AVDictionary than t= o assume > > the internal ";" escaping rules (whatever they would be) match the targ= et format. >=20 > This is all true, but it does not change that we are bound by our API > guarantees. yes, as i said i will revert the patch, iam just a bit behind with what i want to do and it happening in reality [...] --=20 Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The worst form of inequality is to try to make unequal things equal. -- Aristotle --NnzmG0r0xY6scTbM Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iF0EABEKAB0WIQSf8hKLFH72cwut8TNhHseHBAsPqwUCZ/+OKgAKCRBhHseHBAsP q0a3AJ43UXXK0abZue8mFop1R+6vMYlR9gCaAhewsFUSKYmlHTjtTU0DL3Ic5l4= =9hNJ -----END PGP SIGNATURE----- --NnzmG0r0xY6scTbM-- --===============6085907252907809803== 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". --===============6085907252907809803==--