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 0D2124D24A
	for <ffmpegdev@gitmailbox.com>; Wed, 16 Apr 2025 10:57:41 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2BB39687DEF;
	Wed, 16 Apr 2025 13:57:37 +0300 (EEST)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05olkn2032.outbound.protection.outlook.com [40.92.91.32])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9F918687A8D
 for <ffmpeg-devel@ffmpeg.org>; Wed, 16 Apr 2025 13:57:30 +0300 (EEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rbh2yDWkpptMkjQhhiF5MqACw9SamUknBieeCWz7VMxVioMIVq9MtxTLlGia+4lBA9gwivRkDx+H9dOeCDb/J69TN4HvGibODLnDQlt8aQrvsr5mGIStSyBbhkL3nhc9gNNQ3dsYrrrqrXSOBf+7OTIC7MGpd9Dyx0hQwADsOUQ4uoolxHLqt9yJrec/uDhkkaNElOs+CJ8qg30eDijLO59jDdx0ZcI3x/ZV1hFjhJOLttTOaixqxRRjJj4bvsDzguM6dieJm5/hE3E8A11ufHeGRYHdQMLjTuz538pQyrQ6zGLUUYGnd2GqT682rKiL+hWQ7NoamKs3dBNoIvmgCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0yku7Y/Ak6bYdqa4iMntpHNUfenhsC/D/wo26vo2Msw=;
 b=j8TKi4iDvbiFYowkVNN4s+vgio05Y4iauZSWv8MX4OMBOfgeGq/pku4Z3auou4mh39j4oj1x6+xS+IdcczMo7mrttGaydAWo7Fh4vDMg05s2CMOF7z2Kq7DLla3O2I6/GIFQzKzGFBG7VU+VMAAtDkvjWwO1jaFwQtp/EjlxCELujlYNMZfnqQIeiH0XNqjc4H7IcwMHpQaDuq5WqKJXCLe8OTV1kgDJF9HtNA8340nrgw2RR3rYLNaEqA6A0K+zJNkrT06M74cGc2FXvsUQ7idZCCX30s4qGidarNMZ/oxuoLvpPzTV0L0f8Fr/qamhGgHpItbTq3KDqlB7sZaIrg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0yku7Y/Ak6bYdqa4iMntpHNUfenhsC/D/wo26vo2Msw=;
 b=Eboia7fNDOKetw/yFdwe+3yAHMffyDmAEJWbJ4uimvSBUmkkQSkOpXRV9IArBLGOvG/7Ym7cYEqd2+q2Nmnb3BZP9exiSTOhKMcBllEiiyaz5tfDx/MaExwZr10+Q43TX54+4dcUFCiCAE0sv6CZuZg20BSrWQXlu0bBo4qLB+ESGEGrOFVKGOrH/z4grPdtFgPhOek9EAB7RDCr2MndqriwYsaBGo+E/WKN8aqdjyXGB9TDibxj0nFjebW6szshC2HGWs3iv+Yf7fCDnoyesVGGcH2b1+/d39Bs05DrBVwx/5ThUJKD/5Lgg8eKzE9nhozhr17/j0tC0onjcDXG7w==
Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17)
 by DU2P250MB0352.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:27d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.18; Wed, 16 Apr
 2025 10:57:29 +0000
Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
 ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
 ([fe80::d6a1:e3af:a5f1:b614%5]) with mapi id 15.20.8655.012; Wed, 16 Apr 2025
 10:57:29 +0000
Message-ID: <GV1P250MB0737D12B75A98BEAC01DE9328FBD2@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM>
Date: Wed, 16 Apr 2025 12:57:27 +0200
User-Agent: Mozilla Thunderbird
To: ffmpeg-devel@ffmpeg.org
References: <20250414231950.GN4991@pb2>
 <DM8P223MB0365928500AB53069869DC99BAB32@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
 <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>
Content-Language: en-US
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
In-Reply-To: <20250416105325.GH4991@pb2>
X-ClientProxiedBy: FR4P281CA0379.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f7::11) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
 (2603:10a6:150:8e::17)
X-Microsoft-Original-Message-ID: <71b2b22e-96e0-4778-9266-ad1bae2b8e98@outlook.com>
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0352:EE_
X-MS-Office365-Filtering-Correlation-Id: dcd145d5-62ba-4193-e4e6-08dd7cd57ac5
X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKyfA/kqhNtxhLoDzMvzACCoEEIcSSaUF7EMz+r3pwiBFqUFd0DeKJ09RprPWOHA/QjyTuJnJTMTh2bAFbO5EYpUMu0gWECM+KyVCbTmcyR3iaeE+6UzApowPKBW51ovlhkApQ0obeTt8G9dS/SyQs+Oet30JeC/OYuue42SfAOU80cZf2fNNWdtV4mCYEcEOJXJwoQYQN9COzLN/LEOFPjRi0gyxKRUEVYKazb+g6rZjeZTIFSkYqHEnbbvDsee6El/rxjw21OFYA93pnxazCQM0qTF7uUAswHiFIGchMUvru3esyGBDRdMkmUydFyzHkTfnXT2qh3yCsLc7lySBXdjhY4EjPOSYCcsO/iiA6nZmEiUzbbhU7R0oBqoEQIxd3veGiS8zsm6ZIuZ3m4qjA9xQQz3ISQWvNnP7txdLS+fxovW3xnWzpTC9Omt98tO45H53aFFbhto4ktdUU4gnRfoV6iT0beX5oxUCI+9UkxtgX91HKBZbnwWNPCzs68ZtxW3brxVEIzkhuQRrNbz6toN5Txo3VP2zpANr8PmMRn1U0fYgsftp9gN4/DG2isXx5u7skOh7k2pJUjlm5TxPgO1gY7El6KcK0WaKKIitIeVIDmg0Gf4lXXO8+rv0GzTpsnuvV1oDi6E4mcoCgGnZ6VIn8iWC4/phmFy87RkHcRx9ag1g3caodO1g5JXXfjFdMWCwT1SDLs1xVtslsQcbteMA9aG9oTfFno=
X-Microsoft-Antispam: BCL:0;
 ARA:14566002|6090799003|461199028|19110799003|15080799006|5072599009|8060799006|7092599003|440099028|3412199025|41001999003;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?b05jMEdVSDB3bDBTYzdZaXlzWmU4RkV2amFxTXF3OVVPNEovNE9FazNvU3E5?=
 =?utf-8?B?d0xsbWJZRyt6VXphaVlXeUNwbFpXSEc1bUNDUjR0S0I2UDlrSlQzNGsxcmJC?=
 =?utf-8?B?NHNjUWl2ZG1kQk5adGlwM0Q5ejVwblI0TERHZ2hIbmpzOTVqb1JkTXhBREFi?=
 =?utf-8?B?NjdqQ0FraUdqYTRnWnBtYnBJUllJSnYvMFhJSVVGV0M1U3ZGWG4zOE5nM0tW?=
 =?utf-8?B?dXFNaytKYXhPS3pWTThoZTJQY0hHZFJWUndLUTYvSm80NlAxZTZiQytwWnVF?=
 =?utf-8?B?aFUvcWNZSjRuN2F2YnZDVlJqQkEwNFRPdm5jZXJ5NlI5MnlaMGZkUXZ4YkJY?=
 =?utf-8?B?bTNnY0YrZWpMRWR0QjVxb2trNnhyYXcvSTlvc2EvdlN1WTFLMzB1ZUlyem5B?=
 =?utf-8?B?c09FZjY2bGlUdlRJYkVUNmMyNHJ5N3kzeWtMV0gxcWlpOEdwSmNwVXR0dVhM?=
 =?utf-8?B?MUVhSlJKM0R6YitpQnFsejlMcXRqNDFzRWppWG9CUXZIM3ZVOEFndlBxS0hJ?=
 =?utf-8?B?QkJJUFpadVNRL2NvdUlzUTJvamQxZDQzdVBHbUdQRW0xOWswcFJ6aVlwN0dI?=
 =?utf-8?B?dUh3WXZzRy9NYXZxbithWjF6ZkFQV29YR0toSjZodndjL0t3aUhrVHkyWFhu?=
 =?utf-8?B?dUhLY2Ztb2RJUFhoOXZpZHk3ZHUzRTdvNlJBRllXVjZKanRHYWhSdkNlbitW?=
 =?utf-8?B?dG1DbFlwMGtnVWJ2RG05V1lEYjdXblIzbFV6OUxpckhYdzRURXBISWhkejEw?=
 =?utf-8?B?T2txMks5S2ErLzB1M1FsanVnYWY4TDZsdWFIdVFrWGhjMUtvS1ZUbHBoNDJ1?=
 =?utf-8?B?ZFFkQ1lCVTYvY0FWV05xNU54dlFvNk9TRFhxeHZhcTZPeW9NWmtwa1ZKV0p3?=
 =?utf-8?B?MTM5dWlXbVNTTThETHFTR0NaYkR0V3Vnakx5OFYyQjh5ckZUd3FuTXpJNi9S?=
 =?utf-8?B?cHVvVmhySnhwdHBwWnlOdUI2YzJ0VXA5R2tQNExMWFBETk1vcnlOall0Q1pO?=
 =?utf-8?B?REQzYlcyc1FVN0M5YWU5dnloUFBYZ1Z2Mnh5aVZWcjFuWHord205WnVpcE90?=
 =?utf-8?B?S2xvaEU1SHRNeUdQZ1czWGVxSFVrYUR3NHJUN2hDcC9LSDJUUVczU1UwN3Fh?=
 =?utf-8?B?VFNLb2pEMzVuUUgvdmhQMWx1VVF6c2xpVndMZmY1K0dNUkdZcjRVRWVjVXBW?=
 =?utf-8?B?QmVJaENoV2JYakVtSTRLQ0IrQ1E3elk4a1pFK081dmo5SVFnMmpRQ2gxSEt1?=
 =?utf-8?B?Ry9mTGJVbGl1SW56dm43TDlUME1BbWkreWFJWXViRkdqbXdja1BZWkJXaHJY?=
 =?utf-8?B?YXRBSXZSaG8zdnB2aWpYRzFtQ0xiakN6ZCtoeHMyL2dla1F1eklKVDVIQ2w1?=
 =?utf-8?B?K1Y4K0xrSyttejRTd2o0TjcveGlYZVYxaUxLZUJRd00wT0V6cU5zMGVCWUdF?=
 =?utf-8?B?NDdKU0tqK3dwanJYZUk2akk5ZEVoK3ZtMmpHZmZBVSs1Q2JDNTc0QlI3cFhy?=
 =?utf-8?B?eUxES2g2NDlkTks3SUI1bCtpT1I4a0RMZW4vSnNrSVNZeTZXeDJiUlRac3h4?=
 =?utf-8?Q?gV0IoXgba4daCPcNX3SFSW98w=3D?=
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Wnd2MmxqWWNjNktHbktueFhrTkhqRi81UVU2ZDFmaE53bTNmREZtR2xPUFBX?=
 =?utf-8?B?djdrVUwvMWs2dnl2ZFYzVFBsSk5tNkY4LzlwZzBWN0hGdUxJRy84bDUwVGZU?=
 =?utf-8?B?WS9oeGJidHVoN3VhcFNyK004clNZQXlVZ2p5Sk5JTGtwd0huNk4zSjE3WEQr?=
 =?utf-8?B?SWQrZmloRnVJeFdtekNkR3VVeEpvZy9kN3ByWGROVlNMQnJjMW1CSHFRUVZV?=
 =?utf-8?B?NnJRWXExRDVHdG9SZmIwVTZyNWhyWks2WUJKL0ZZeTNtVWxHMHNselBpbG1W?=
 =?utf-8?B?a0ZhdTdjU0luOWV3ZDNYZ1dnM2J0Qk9wa0p1cmpqQzdCMzA5N2ttL3dvRU5N?=
 =?utf-8?B?ZkttQllUSW1pTzVOWlJEZFNnR0JOZ3k4V2hKWS9NM1FNMFhXS0owb0YxTFQ0?=
 =?utf-8?B?RXpnVWtVcXlkODEvMFZHbHc4cWZEYVBpWWRIT0ZrcFcrSEVpd2xvNkxiaTJq?=
 =?utf-8?B?dDJFWE4wK2hSYng3QmhZNG1vZW9rdkZCaEtrRGFUdVZ3WGErdU8xMFNqVFhN?=
 =?utf-8?B?cHNtRTM2RjVscTZENVdMVVkwMEx5TkIzRU1UUzFwK1dTeDB6UUpiclozaFNE?=
 =?utf-8?B?OVpDOGt3ZzgvOFBvYWdwSDByb0paWlh4Y2RUZ3RVeHFBemgrM0JxcDltdmFF?=
 =?utf-8?B?NExpbU1BcnRDUG5wT1BaLyt1WjJKNGVxMTZNR09WRnFpOExUZ0tMRDRTV0hB?=
 =?utf-8?B?SStwVHFlZndmTjJyTjRiN3hJUzVYWkJ3MzhMSXRLaDVFZk0vNzZCd3FYclkv?=
 =?utf-8?B?d0pLSVgybjFoeXBuaitiUTJNVXdZN2RVaDhWZm1nclhEeTVpc3NZeEtYdUMx?=
 =?utf-8?B?SStkdDBtTnY2OUozbHVlRTN1S0V5c3VEbU1vTUduWXRMK0h6VS92QUdZaE16?=
 =?utf-8?B?THgvTlg1UXVYVlhROERmeU5sTWRMMjNqOEl0aVJwWTJhWnprMUV5VHhWRTEz?=
 =?utf-8?B?Q2poZTlJQTI4NVlMZlVTRHFTaWtwSXVpdEFrSEtHNzBGSUFrazRXcVV1VnFi?=
 =?utf-8?B?TEFwTGdkZGpyQmN4ZVNkSWg2UmFPVzlYT1NHZFV3NHppUWk4T21IQ1hUNG9E?=
 =?utf-8?B?SHUrS3kwQ3dXbTFDOVBob0dwZzJ1dUk4WTdxOFB2UmJSSytHWkZvT210c0pK?=
 =?utf-8?B?aE5oSk5QSDVDUXB0OGgxUzNmTkVyakdoaUJ2QU9qYTFUd1BwU0tUNlV4UE4v?=
 =?utf-8?B?NVUzeVczbHZjcTdzbEliMFFUTExWQmdNOHlsZTZYNG5iQVRmZVdMd25Pa2FU?=
 =?utf-8?B?TWFWRFd1YlBETUZmUk5WMmNvNFhZbWNWQk9aMitEc0s1bi92UDZmclo1VTJy?=
 =?utf-8?B?SXNnTld4UlUzaW5ua2lrRnhLbVd4bXdXQUNkdE02enBBbkRTOFExeGJvcmZk?=
 =?utf-8?B?YzIwc0NPMmkyWXJUVThxaEhraU8rRWNOdnlvaDZ5Unk0K2ErZHZxdmpQeE1C?=
 =?utf-8?B?ZWlISndtTmw2bzQ1VGVDVUZJZER2QlUvdFBkRjZkMVltbU13Y3htem9XVGJ3?=
 =?utf-8?B?VkdKODBuV2xIeHJ3dVN2TVRPRnNPN3FHOHZGOXVWUHhMaDVkVFRnNkdOQno1?=
 =?utf-8?B?d1BEbGFXeFRpUzZQbVhYaExpSkx1Tmd1eDFUR1h3TVJHdlRiNU01VmtzM1hF?=
 =?utf-8?B?WncrN1pBQlJiK0pWZk1JWEJieTdCTWNRejVRckRPckptWGdncmdFVkxlVHNT?=
 =?utf-8?B?Uy9rSDJmNnBBYnJHZEpIWmNWUmVOczk1a3FTcXpSVmc2Zmd1djRnd1Q5QzNU?=
 =?utf-8?Q?84t3dOUJxpoIfBKfuIdZGvQnC0/rRksKdR7CRDD?=
X-OriginatorOrg: outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dcd145d5-62ba-4193-e4e6-08dd7cd57ac5
X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 10:57:28.9684 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2P250MB0352
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: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/GV1P250MB0737D12B75A98BEAC01DE9328FBD2@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

Michael Niedermayer:
> Hi softworkz
> 
> 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 client
>>  * application when demuxing. Conversely it allows a client application to
>>  * set metadata when muxing.
>>  *
>>  * Metadata is exported or set as pairs of key/value strings in the 'metadata'
>>  * fields of the AVFormatContext, AVStream, AVChapter and AVProgram structs
>>  * using the @ref lavu_dict "AVDictionary" API. Like all strings in FFmpeg,
>>  * 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. This is
>>  *    also meant semantically, i.e., a demuxer should not knowingly produce
>>  *    several keys that are literally different but semantically identical.
>>  *    E.g., key=Author5, key=Author6. 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=alice_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 order
>>  *    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 language
>>  *       is appended with the ISO 639-2/B 3-letter language code.
>>  *       For example: Author-ger=Michael, Author-eng=Mike
>>  *       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 for
>>  *       sorting will have '-sort' appended. E.g. artist="The Beatles",
>>  *       artist-sort="Beatles, The".
>>
>>
>> Especially:
>>
>> *    E.g., key=Author5, key=Author6. 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.
> 
> 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 AVDictionary key
> than parse a ";" seperated string (with undefined escaping rules).
> and easier to build a ";" string from a multi-value AVDictionary than to assume
> the internal ";" escaping rules (whatever they would be) match the target format.

This is all true, but it does not change that we are bound by our API
guarantees.

> 
> commit 47146dfbf6bca94dd0706b4313cc5e26edaf18d4
> Author: Michael Niedermayer <michaelni@gmx.at>
> Date:   Sun Jan 4 18:48:37 2009 +0000
> 
>     Generic metadata API.
>     avi is updated as example.
>     No version bump, the API still might change slightly ...
>     No update to ffmpeg.c as requested by aurel.
> 
>     Originally committed as revision 16424 to svn://svn.ffmpeg.org/ffmpeg/trunk
> 
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index e45f7d6dfb3..7038d2d2c41 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -400,6 +400,51 @@ enum SampleFormat {
>   */
>  #define FF_MIN_BUFFER_SIZE 16384
> 
> +
> +/*
> + * public Metadata API.
> + * Important concepts, to keep in mind
> + * 1. keys are unique, there are never 2 tags with equal keys, this is also
> + *    meant semantically that is a demuxer should not knowingly produce
> + *    several keys that are litterally different but semantically identical,
> + *    like key=Author5, key=Author6.
> + *    All authors have to be placed in the same tag for the case of Authors.
> + * 2. Metadata is flat, there are no subtags, if you for whatever obscene
> + *    reason want to store the email address of the child of producer alice
> + *    and actor bob, that could have key=alice_and_bobs_childs_email_address.
> + * 3. A tag whichs value is translated has the ISO 639 3-letter language code
> + *    with a '-' between appended. So for example Author-ger=Michael, Author-eng=Mike
> + *    the original/default language is in the unqualified "Author"
> + *    A demuxer should set a default if it sets any translated tag.
> + */
> 
_______________________________________________
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".