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==--