From patchwork Wed Jun 15 06:47:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36235 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a22:b0:84:42e0:ad30 with SMTP id cj34csp192589pzb; Tue, 14 Jun 2022 23:48:03 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sm2j/rAYATIwonOVMQE1G5YFRFeamxdHSOEmFf6ByGhzkqmjU6rDEzMG3hSFdgqVsSQbs5 X-Received: by 2002:aa7:c450:0:b0:431:55c6:29f9 with SMTP id n16-20020aa7c450000000b0043155c629f9mr10571981edr.14.1655275683589; Tue, 14 Jun 2022 23:48:03 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cr19-20020a170906d55300b0071212933e05si14114824ejc.433.2022.06.14.23.48.02; Tue, 14 Jun 2022 23:48:03 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=O7KCQHfJ; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 05DE268B585; Wed, 15 Jun 2022 09:47:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2027.outbound.protection.outlook.com [40.92.91.27]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 26EC968B585 for ; Wed, 15 Jun 2022 09:47:52 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XBRTFi6TSD5q4hX7L6qfwffhN+sbUitDq+3Yj8Fu6ivJbDl1+HbDn6oApsR29HvKSZ6AgKZ6xAz5n0M18uroJh5vLWkb/NSjDAvGaKKCDrhbR66nLtLBLxVyg5zoUqaDxUr5uafsLvS6GlvFpuK0kgVM6NGam4/JfsDf8SrWB6F/oYMuDzp78MOGark25ooUCPV9LHHqzwDuYKDmMGSqZ1oZR4hrrqXrklbXK7Rjorv59ArDJoL7IMJwlEUpHEXe0SlchXRIlBl4xE1nuEvXcANgc9ABGBlSkgP9lzRfBN1vD7TfNj5bCpiHQwr5XzmkMDy1XHSkYbaQw9dL8TKZOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Il0aXfJbVtu6oxoFvzLZBEqzAOS28aVpAiUJymlVHJw=; b=JvRq/gxjbBSvscuUVP3XIsqK2mgO/Fd+fPd6De9+1WtoJ3ynE0DQYbPmVSnBLu40bRZvnUMu1CYC8KPuoMLZ3zbBelqapEJL68h4Dcsqknfiw0eLbc80K6uytPkJriXfOeZtpHLtkPCDL/QNixMUJ8aC4hIXv9rfpIHPFzIcTI877/yg8Ihz3E4d0OmfzQav3o7uKqX08ym7fYhKnmCNLeQl1Cnk6ZfUDdcWyYJ1K9NnyoTZwqbkteZ1WcO35q0leLfblQJQqwuDnDxBnkNcuscD3E4L3DeV+ydBYe/MmKLxgX+pE8YOvZAJxBb/xyJq5Pif12Daj3BfywEF1XJOBg== 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=Il0aXfJbVtu6oxoFvzLZBEqzAOS28aVpAiUJymlVHJw=; b=O7KCQHfJhcn4S1SFWfwquuuyMlD1bLlKAU7acprxYu8sifWI0hyzqBKGxrNB4sWFwsk22avw+xElvH5wZKXwKjWFtapSw1smRfnOIr49Pkds5DPdMidkVQex/+9yKPnY04oyK9kWLsN2j3BK6/dchVjpUimH4DejrpVLlHfePT55qmCTNAvvpb+9vhCmxQTcpYgPyca/R4dfJM5CEM+qMo8j/vSQKSpmVr8iz5AzSIJfwT6mC6QhD7bwdW1eoU10udoiciOkkHfXTMjkzyCY6936Q02bknTtp67ZkbxZ1eCTpVNqnZre6E163EcsMgFExxJ7IImSDZ6N5n55SffeAQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AM0PR01MB4740.eurprd01.prod.exchangelabs.com (2603:10a6:208:ec::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.14; Wed, 15 Jun 2022 06:47:50 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5332.021; Wed, 15 Jun 2022 06:47:50 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 15 Jun 2022 08:47:42 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [sIQjcbkPLslUWKVWHBBQ8bTjcHDjK9nA] X-ClientProxiedBy: ZR0P278CA0026.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1c::13) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220615064742.2245919-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e6cfd771-b7dd-49cd-b45e-08da4e9af6f8 X-MS-Exchange-SLBlob-MailProps: EpEO96k6WomtMq5UKPi+rg6o36zkFloY5S7x7ytUkZ9oClVLDsxHfqnC6HQZXeDV0KoQUy/n0FaPSNgIHWGAQVT9mWfkCvq0jlC5CySdtOV4x4QFL9ChdqUFtKqDmUhqTHUEMOh5vsGjDeFS0iPyJxNmg17RQ8ALEpHUk7TkFtc4yxixRHJesyPymnMyljyfSgaNfMNo41HM+InawsVbk5zmWIvE223j4pnX55cRHoj5faf0N5e9TURMmtNW1a1Zau4LXgXTzd58hsyBj4aBS6dass7DyeYRlur5fsqC7UBduJrviHEQJzsE3OJlSTP0htN5woY+RdinymY5d9elAayE9uHUzGSRznfsiF4v19H/a+QQvNNJxfjF3JgksV3srX4kZTOP+OWqExkcjDJFNkhvwl/L/uIw3EezAE1syEWr0AC/Pld6ts6rsbqKdauFeOh6zeYV4fTZqQijL9e/IW1mfk2AwF9aBFwLWdluQU2KesW9T9iukFCePvFUrFXJvcoSDkTsecB/HDEYUqdM8YYOV+RXpF/w9xcK34nbyCjEUvLfQLLlA77pnOl5vjqmXsu8M6l7BhmIT9Xf+Gjl0BJH+BObc55O8U8g3Wg7dSepC2ab8KK71OyoVYUG0+qko4KiH48hkG2/t4ZJKXfn0ZzflsGzfOWrXXbUjBU6H5LBMNvWP36tMqHYFGqrMVuDO9SwgKUE7S0N+cOYCizPPYlwDjRai1Ypfvw6Zhs7ZYwpOj7MUOGCrqp9jRUGa6/q7vW6Y16r5Ag= X-MS-TrafficTypeDiagnostic: AM0PR01MB4740:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6yvshM6LYQ3DcrnANoPaUpl8oeOOkWl+J8wSiEKSG0i9wJsk45jCUJK9E16AdYMBWJ3nrx/HWUt9t9F4dLzxOortMaB9zsI0rJkQZB0EHZnlwGW9T5sDEHaSN/viZ7CMxq2crmUIiAdJTS2wmYNACV/1blvgB9MvlYb8mjrgy1ZfiYP2nslgfFpbWAKBJyrR/brVvb61ns2FrBsP3peORaXb3ItEcZ4lSplWnXvvDgZmI/7hx/goydXFuSelaitsE7hFsYyDI0bDua8qMifyjR7uDhjAZ1ulm8NHVW04FJVhqNLcUM1oIkCzORZdRVao8kqigoQT71nBoGd8S7ekECOWIGybWpnOJ6izL/fEd1oeNC16buPT0ZLesURYbjHVnuRD6F5OmoiSbAK5EWLKH/X29KYiFdQMgGTIqzRUhdVwR7NHMkCoxlYDmccOfO+ncwS30uEoC20rIkdcBT3CLhUFGbOjxp7Hg+hHmjiPxn0DY0m9Ya7lfRjLpcMeMorGC0fMu0rrldTPZoU9dUNUnqgefbWmDYX8mdhA1eah3Lqn2H2mw9SrF4zaTCRnNddG2WeYbMNpOP+yYslEgqG8ew== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: uSlb6LnVqK7eLoyA7eleaBXwlAs7ynVCrQxMm/lCtrTrn9O3dyG/JwfHhkIxkZtNLFdWxErJku4pIPcxeA2WcBcIjXcOn4tR/kwWyXVR7sYJLtbSTuCtvBdLNLY/PT+jqucf1W8pqcFlR3xkyarmR6EVVtNcIn8aLhSHmIXAdQHFuRpAmm4sC947giYjgEA91nnKyTBzBbM9g1xC4Y7WHb75AD4E5GXuMMCprM4XnBWvxxCnB7qE5z9mD/ixAAYsEWQvpIRMNEjwII9we3dl3RSqlWgPYfauP0J0pa04TYskGno5wRFTUJqAt8KOmqDf4aJ1WV8vGwaZWDn0fuRDxKTyMJ+nb8YEm6Xzv9fore/M8mw1kijud/5M20KSQVwC5vlhP5duLNlfHBMEz2TEVxNo7R3KzN+M2WocDKU/bSlARwpz7WzdIudIn7K2nk4iAVQuV3j5o1BXZaJvexnlRuVcBRVLRQARJ2GtgkTRAZJJOVAH3VDdoTM48250/nR4yoXU6C0BM+WMJplR5ZVafaLri5oHL5Py/eVyyGFRpDoGqechBiUgnuTdPF+dhkSN4JMXR9EqU2Xj3xjMtZqXeCrp14LlstsgOC3xNTqmNx3CmretCJ1uiMAO5GUUYV80aDnMhReysvBEZUYW8y9KUp6q5AnYwAp9FU8+0b3KyUR1xttOP3HRH+WQKqX69SixA8bOk28sHMcrFpU6hQ2QygZUfYv2UuxTtc3HVxmJ8pk53sBiY2drxbmuhNu6sYV9pkpkknYny6vFl3KEu9LWgjWWZZjfGb99XfopnI/gO+Ghn3cdW45VX/QN83VP4VfptTtwAm95HNu5UWsbmFQ8KOHTlu0PHzLR5vC4cVuHHgWiwrtttPMOTA3p6tmUzYNasylLwsvukCxh0hpdg0ucGcEqO10+1Z+m/YWdYzOFd6SJlKg0wDyhjtlJS4VvoUhj2sCc7zR7X4mWfy7ePKe7XMTwAOIbY0G3nTbKXpp+aypTUqxK4ow3lEiIMbhk4snblM5rC1WSdkecV2Xws2UIBMWYagJk2dZ2kqUGSMdlS0BqDMtQzUDxynr38c+/BLpjU+hLWMtzEAJKV3yLj6C5W5DDaLOWdrhDlEjm7jv4l+brER+Afkz48d2/3MsgaFyGz3nNfSQwdM0MJvo6nMak0UPgG8bUJwNFrJ6H+vYVwGPpYONerUXfurd2Fsc0ROqoeJHFBNVLTd1GWRzvgMbOy2gKIW6SMutzemoWEhd5XSMtXy4yGHsoEQcAuTtB3kvbllRJZERdytVoeBFqtNfny9/C/wVol2W4flQl4q+1+q34RNrZRbrJJFKK9qm140VM0qV5YcyKN9zsk+rqqqs8hl96HoROolbFgpr3e23tZe+rLcfKHZRt+35Equl4Fmohvl1igliYa7+LN+KZ52Idi4UbWcQD1Be2kUmQjQBI+q+mKbp4aqyV7PrXA+0PdMdopQZVgXE3opp1u27ZPC736w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6cfd771-b7dd-49cd-b45e-08da4e9af6f8 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2022 06:47:50.5520 (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: AM0PR01MB4740 Subject: [FFmpeg-devel] [PATCH] avformat/matroskaenc: Convert chapter metadata 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: NYJjVrN9GEuB It is no longer converted since mkv_write_chapters() is called before mkv_write_tags() which happens since commit 4ebfc13c338423cf48f1a1266c890422367f7775. Given the fact that chapters can also be written late, mkv_write_chapters() has to convert the metadata itself. Fixes ticket #9812. Signed-off-by: Andreas Rheinhardt --- Will apply this tomorrow unless there are objections. libavformat/matroskaenc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 482b5812e5..2211d99ae8 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2094,7 +2094,7 @@ static int mkv_write_chapters(AVFormatContext *s) create_new_ids = mkv_new_chapter_ids_needed(s); for (unsigned i = 0; i < s->nb_chapters; i++) { - const AVChapter *c = s->chapters[i]; + AVChapter *const c = s->chapters[i]; int64_t chapterstart = av_rescale_q(c->start, c->time_base, scale); int64_t chapterend = av_rescale_q(c->end, c->time_base, scale); const AVDictionaryEntry *t; @@ -2122,11 +2122,15 @@ static int mkv_write_chapters(AVFormatContext *s) if (ret < 0) goto fail; - if (tags && mkv_check_tag(c->metadata, MATROSKA_ID_TAGTARGETS_CHAPTERUID)) { - ret = mkv_write_tag(mkv, c->metadata, tags, NULL, - MATROSKA_ID_TAGTARGETS_CHAPTERUID, uid); - if (ret < 0) - goto fail; + if (tags) { + ff_metadata_conv(&c->metadata, ff_mkv_metadata_conv, NULL); + + if (mkv_check_tag(c->metadata, MATROSKA_ID_TAGTARGETS_CHAPTERUID)) { + ret = mkv_write_tag(mkv, c->metadata, tags, NULL, + MATROSKA_ID_TAGTARGETS_CHAPTERUID, uid); + if (ret < 0) + goto fail; + } } } end_ebml_master(dyn_cp, editionentry);