From patchwork Fri Mar 4 13:44:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34605 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:d078:0:0:0:0 with SMTP id x24csp1608247nkx; Fri, 4 Mar 2022 05:44:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJxD8EK8iqPeEA/T0D4lCTtNKy4G1BJkQ9QKPkmEGlTmjW3xLvdeUgP2wuWyxpqeV58FaIy6 X-Received: by 2002:a17:906:2b94:b0:6da:c5c8:8383 with SMTP id m20-20020a1709062b9400b006dac5c88383mr1357856ejg.420.1646401471868; Fri, 04 Mar 2022 05:44:31 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b9-20020a170906150900b006d032c922b3si2867460ejd.128.2022.03.04.05.44.31; Fri, 04 Mar 2022 05:44:31 -0800 (PST) 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=hlz1wxEa; 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 A024468B0BE; Fri, 4 Mar 2022 15:44:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073086.outbound.protection.outlook.com [40.92.73.86]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0943468AED0 for ; Fri, 4 Mar 2022 15:44:22 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W6AGzlli94OtSN2Z7pSa94Y+egHZKM1Ya1PD8Ju76l9JQQNYyGYRjbM7PtpzuN8zMEMHgQo11VlTmsN1C9vjUTbsP7caoOvblxqGohe7MkjsNaNCu/1EruvoofE0GEv0jwrOkajlmjdnKjgGBF62dpP593/lbkiW+fxlWeWiwx+bMhKJh4J9VPfMorW+yS9OHEj/UT0a3yHc8LKtXUE+6OGt7fxu1gu+Y+s2PwcGta+MkT7dgl8c8FBQz99JA74xQvfYBjmWQIrAq9C+Gg403dgPyINOK95PJxyfkXL+c00wHDCuqbsX+G1Xx5gxCoKo80sbLfbkFFpvVlWbCfUfXA== 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=/BFruLh17GHutw1+jln7waAZesvri4dlmrH/agUylUE=; b=GuttA+iIsl9Rlm5nhiUPE+m0I9bmGO4ei07Yh3UQ7xWaMwgFomZnxNxo1GFOFfKMlAl/5TXW25q4M0P9CQuSp0Seh+c4v2jpty7Yko6+VBHTbXzMNGWq+pFttzqu4LRh2DNe1qq6EjbNA/r4PX9wy3SMtg8YbnZLZeXSXZh2caQr3fs8xNe73hObUGfgIWs2t7ri4fM3KTafDR7CcONb2GfImsU2E/t00CvAcPX7NfxmdjEHMhRMveCGzjYJ29y7DSkgAh4wYPhQjdgLniA9ePSjBRjL92ohAIBKyucFIZHlvBhlBDCXQIkozvewwUxGQ78OwXtb9vVCea4d1r2VyQ== 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=/BFruLh17GHutw1+jln7waAZesvri4dlmrH/agUylUE=; b=hlz1wxEa6TKNrlKT5rAQj0LXK1jg/wG5HhkgloqXJwUtM8/jaITYsHgcw6NE4GZa7HnEFQWLDZWDJF4g5veyJKQ3QrKZlrlKzfig48YQYJzUAh/VqG4DszDbhzrJ3eWFl8XeMFF/RRumriM4iD1iVRkVUS39axY8G66poTazhBdgmHd97urCk0P8ztYGAPoFeeWvPgVzQIyT4rBPn8mm+4CS7TGhikTYArHBhX4BUOaKuWHuyc6DDE5Lc9O3xrlPtat0pVxT6Vz3N44QF2JFNgvbKeF6WgaGu4oKodtY1o7UDSb4Rn/jdil2h2qyTdCUfwvlAVxUOn5x1RRkmc7mmQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by PA4PR03MB7501.eurprd03.prod.outlook.com (2603:10a6:102:101::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Fri, 4 Mar 2022 13:44:20 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::b8d3:effd:9a3c:4090]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::b8d3:effd:9a3c:4090%5]) with mapi id 15.20.5038.017; Fri, 4 Mar 2022 13:44:20 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 4 Mar 2022 14:44:12 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 X-TMN: [2f6pztxix1SYZj5KH7WC8q5tdaidKVtM] X-ClientProxiedBy: AM6P195CA0094.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::35) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220304134413.124941-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ecc0bac9-d689-4618-b861-08d9fde515d0 X-MS-Exchange-SLBlob-MailProps: KE5ywuOaN5i0/2/hGdGPMH+oDs/Pu5ArJUJjP+Gw2wi7/saYA0N0ig8Hykrr9u4NvWGW6hjrfGF4sNZ6+eeyMvADfKR7jvFa9ehxlhfBlwNMJpCwNsLdcSUjiKIM8Mtwt+mewDERGpQlduwPnZ06iVNrfahOc+S+cr0EnNeyh2j/D3NCPiBDqjBRC1SkFrZUko0VoEyEKbFnliRiS5GRCa5Z2hYGpDaVxAibnK3aCN5FNqWn8k0ja6XyZcbHug3Mn2Ce2Ux9nJ43OvAIv/Q4Z2HJdBTUBLZX2N9HeX/JvadQ1Dt50i0Pn9OiOYN8ef8/dmizSf9XtNgFYWjRvV/UKzrLTw9Uxm9Y5FgQlcxM0R524BFg7+S0qYdTSc/5+9IkjukYxbvJkKN7DknNRuPECYkwyaPclarjzdwfvs/5KwHb3HYgmIAgXyb3gvVkp+/hjN1Lk0BUxrZcKOQkY2T+Fr3M5+nAeuA/CiOF1uuj0o4hkH4cjZjQz8R0pa9RubRqtYFbqBGwn0r2SBzNHm2RHhUUEEk81+hOcd1vZKPpZbwY3kpiNzAQCCbDITv2nDTS8Zlln6W5VS1+RBDFO3/QiWcMyH9fsLJnDqZEZD0K2yZx5bAlH8xIAP4D7k8c6v2Lw52B0q2LPSZI5VqbdATtjBRtcKoCOkL86Yztav7ZHZk33RSfy0MRYqvR+eTQeu2yHVT2UVy5eVFxNhViLAnj0cqhZMH5Tpihdl5bIbWYby+vy3oAQLkvDqV9QkzlDtp3UlaEZBWHYAPQYm/c1M9BJv1Ljo66oV8QNcWj/YbV6vk7xdU8LKG7ZC6XCBaxOVoM2chwBJjtNonddECmbKiMZglXWscTeXc+kmDsUClbeNWRSO5pHBEytIOn3SRXkGQHD0fsYLcrvNqDIhPZoZPyGAlvSCqw9JbOb7GtDP3Q7BWKuxu6OCMZW1fbjY4VJRfLG3HQlTwaek8p3FHZHtBG0Qo/1JNDBYGO X-MS-TrafficTypeDiagnostic: PA4PR03MB7501:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pp/Cv+buzX3Fr7ztsKt9rUT+xZGz3QNO4LRUr+EswtB+4yl5Qwg/ZCGHiLsoh22ACeJZfi5WN0AbL+9ukynyPs/etM2waV7lRNSFKwE3jJ2Jq9bD2b2XWcgB/WZDEpekjA4PPs4UPXvehaFXv7oXDEVQcJ4DfTdr1aHdn++UYjdI/6mwz3v6k5s+nbl87qQYAf1mLRcp4AA/lNa9qBr9+Ztlp2G11qx07EBE+4P8sHWmKArbIb13CGp0I62u+vUbmrTUX/905VC+2E0SSRRcdXUkuvldxQfUScwbDOOnGBgIBep3Ne0s7a7lJZ3XjlqLW1GpnUUSNQOgtFs8tM+Z9r7aq8mEYhLEz2GbKkKHoSfxUh5y6RWXCzb/POTpthRzUMg+tia95U093On1iZPOln4ooUyKMK8gX22DbcwmZS8jNCKF4Sn/e0tQ3+SziS4afDj/+LCfCyAiHhea9uxWEc94c/64dzBZvephqvtEfzamF5MChWSx7qhFNhK4jZsS4q6vMD/mtT5h0Yy6cz32bAE8WRKIIuM/+8+/RU52ZeKZWVEomjMGv7hVWCG0E55CUJBpCXRdFgOoy12yQ4eYKg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TcdKj36OnVuKy8rRxH6v5QvviXzQL1HHh/EQ74qhuff2wc8Z/ioL+WVlaoKbVUcQu27q3G538Cic4ysXaMy67LGn3ZeIsw4JJj/qIGpVg6jp+5RVhlm7HYHmliB2Brimj4MkNh2mjAuswTW8Zu0nYEIa5KkdxMyprT6OLQ/XGHFvwIPspWReNjTm58xofCjT6DPpuHqM1slY0g+ISPZiOOn73AQkb1VdC/Hhbn8xw/gk+9wZril+wx6kn4JbZsTBAeB6JS/wfdcOTUGo1Ntas20fVtHx3C8gX9fCR7VBk1f2VmHf2iU6nExPr1fV0UBof6/oNgHcVLNJ5JWxHnDodREYmCze9+lcZTXOzjL72iEJ+iEfVXDefipPi0SPsMqkDMsE3SS5NojJ4cOmBZQwhJeYztueGHN13CuAnxn1WH74LA1mMj1nbL6c9VL81UF5JUt+mL80UVzAkLOiSs09wxy+i3TFlb77INcItpbdBANy8U/Z+QKyLzliU+qrql5pK+eR37EhZVNwle99mcVqfxkRf7Z4T2HDi0mgv/jkW+sL3OfUmX5FRX7qGP6Wg4x1IvtQkQgkDweQGdQr+x9U7o7kP0SUV+BNLWk3OV2DQ8qPxcR9Gl0CICeM4zKvM9LDttflyT5hD1KumUbMYQlQ0CQcvizCLKElB6mXnKgctk5JNhyDKrEOwNDOoclf0ohISlKtSvGSMnKVOFEy9BlkrX9MbDjk4vYbWksQ2Cqn/0b2FFCEsjveWPbydzbhV9Fy9pKRFLd4n1KGztaAxH7MoeGrTtCai6QUgJCH+fn3rS+O96lmSZ93beuOlnpqBGGjoN+9YYLvzyAunWM8qa9aOObgv6TBkimZtPiXoOK5hXApytk42sYkS0jRNDub85QxFyQAIcNUqyA6qNjBocljlQ0s+inuiEx874hO22ypaKPr8v/NoHS1xnEqUQnauttgZ5zSaMfFS/szYuaFPV7qJQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ecc0bac9-d689-4618-b861-08d9fde515d0 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2022 13:44:20.6997 (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: PA4PR03MB7501 Subject: [FFmpeg-devel] [PATCH v2 1/2] fate/mov: Add test for muxing chapters 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: lUevOnYhb4ee Signed-off-by: Andreas Rheinhardt --- Resending because I forgot the ref file in v1. Thanks to James for noticing. The input audio stream has a title metadata tag that is written in mov_write_track_udta_tag(); yet somehow the demuxer doesn't pick it up. tests/fate/mov.mak | 6 ++++ tests/ref/fate/mov-mp4-chapters | 50 +++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 tests/ref/fate/mov-mp4-chapters diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak index e956380909..b54c009f05 100644 --- a/tests/fate/mov.mak +++ b/tests/fate/mov.mak @@ -126,6 +126,12 @@ fate-mov-mp4-with-mov-in24-ver: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entr fate-mov-mp4-extended-atom: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets -print_format compact -select_streams v $(TARGET_SAMPLES)/mov/extended_atom_size_probe +FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL OGG_DEMUXER \ + VORBIS_DECODER MP4_MUXER MOV_DEMUXER \ + FRAMECRC_MUXER PIPE_PROTOCOL) \ + += fate-mov-mp4-chapters +fate-mov-mp4-chapters: CMD = transcode ogg $(TARGET_SAMPLES)/vorbis/vorbis_chapter_extension_demo.ogg mp4 "-c copy" "-c copy -t 0.1" "" "-show_chapters" + FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MOV_DEMUXER MJPEG_DECODER \ SCALE_FILTER PNG_ENCODER PNG_DECODER \ MP4_MUXER FRAMECRC_MUXER PIPE_PROTOCOL) \ diff --git a/tests/ref/fate/mov-mp4-chapters b/tests/ref/fate/mov-mp4-chapters new file mode 100644 index 0000000000..d072d76a83 --- /dev/null +++ b/tests/ref/fate/mov-mp4-chapters @@ -0,0 +1,50 @@ +1fd844c2f5bf77c3344e88e30ad994e1 *tests/data/fate/mov-mp4-chapters.mp4 +111248 tests/data/fate/mov-mp4-chapters.mp4 +#extradata 0: 3469, 0xc6769ddc +#tb 0: 1/44100 +#media_type 0: audio +#codec_id 0: vorbis +#sample_rate 0: 44100 +#channel_layout 0: 4 +#channel_layout_name 0: mono +0, -256, -256, 256, 28, 0xefcf103e, F=0x5 +0, 0, 0, 1152, 198, 0xfbbe5eb5 +0, 1152, 1152, 2944, 198, 0xabd95c6c +0, 4096, 4096, 256, 41, 0x954b12a5 +0, 4352, 4352, 256, 41, 0xbccd1463 +[CHAPTER] +id=0 +time_base=1/1000 +start=0 +start_time=0.000000 +end=5000 +end_time=5.000000 +TAG:title=start +[/CHAPTER] +[CHAPTER] +id=1 +time_base=1/1000 +start=5000 +start_time=5.000000 +end=10500 +end_time=10.500000 +TAG:title=Five Seconds +[/CHAPTER] +[CHAPTER] +id=2 +time_base=1/1000 +start=10500 +start_time=10.500000 +end=15000 +end_time=15.000000 +TAG:title=Ten point 5 seconds +[/CHAPTER] +[CHAPTER] +id=3 +time_base=1/1000 +start=15000 +start_time=15.000000 +end=19849 +end_time=19.849000 +TAG:title=15 sec - over soon +[/CHAPTER] From patchwork Fri Mar 4 13:45:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34607 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:d078:0:0:0:0 with SMTP id x24csp1609304nkx; Fri, 4 Mar 2022 05:45:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJzF37yQDLrQR2dLq2Q/HhB8uVXvBAGG1BrUYvKkB5X6rUxae+DAJMIdGJYk2C6fPm9Ftc0v X-Received: by 2002:a17:907:9606:b0:6da:68e4:d880 with SMTP id gb6-20020a170907960600b006da68e4d880mr9627308ejc.405.1646401552534; Fri, 04 Mar 2022 05:45:52 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c22-20020a056402101600b00412ec6653dbsi3008199edu.276.2022.03.04.05.45.52; Fri, 04 Mar 2022 05:45:52 -0800 (PST) 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=ZduMl6C9; 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 B0A5968AEEA; Fri, 4 Mar 2022 15:45:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-oln040092069049.outbound.protection.outlook.com [40.92.69.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4B14468AED0 for ; Fri, 4 Mar 2022 15:45:43 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U5TTVdNB1qWpmzmNjHi9/xM/baBWKizJN/av+Uq0geD6oN4FpXqgzzsdzfIZzpl221cyJA2GeEIRPCOr43N1DuxqlsKGGJfqNmsYe1zmbZWKOJ7L5D05rANBBPxsNomsA66jOJG9h3zhjXbd7K5r2mYAdoOqm2XBNZ0y0a/XAWWc85DQx9pCWOlPcC2pVjVpgDmVSF6gAI4MOc1qBL4nhhhHH4MZIdTKx53cRJVB75Q5GChYgY8EhSFY+H53gbZ2znex4dOD8s5GPLIuuhPQPtA8NxJCQO4Ex163YNNywduYbrlobNnuxiroRWHgp4CifLTNu8Bbxa309Z9TSZ6PmQ== 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=Pt4Af5JWh9JcyGT+GmESmnsToK8D8UnkwtCLAWcoKok=; b=RIgfTlFt9sospPw4C6R5uhNSQFxQh1pW0I6PI2TQc8KmomMZJoA0Z/3XIOFliQWTbCNcqRlBTJO70GYO2CvGtFvpUwvDiIdIrF19IUKsaUD+tpO7UAIlTi5vFpvF4RJeucxI2FhS6OXMg+z8flbS+Hd9bVGvya80b/dpdq+IBtBtx1rNCZFMCXbxODlU0DM5MW3h5RLZnnVUTcerWpQhFlirZiDXnDogavkddVhl3pdSEbdzIRNSyzryhERB42vkGkJuMhnoSIZ4bMia5hQme6iArFI/NxrUhdVWjO08WVhxJA9OXRtUg19XnAtxb1C5QVSOOGSCqISOmJXBmHukQw== 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=Pt4Af5JWh9JcyGT+GmESmnsToK8D8UnkwtCLAWcoKok=; b=ZduMl6C9gT5De+0ceT64P7HlPXRLGV2FCEmr+ZjCzccFOAapGHqdXfdpM4J4bkkrS5SaQJi++xvamXT4QhLSkTEUentWo080r0l4ifWbhyPo4ObMfNlGiADyNsNMiva/NFjEXcQtLm9ljvvfsrIVBdtG6ZxG5SaIQt6BNvn8/aV1wv+c7xt7HuZkBtcYE8OsdrDBGQDFnQLiPKu9nvi7f19AU87VNWkpiHVYDg6d3mS4wW9Dfl8YZ2Mtn4g3cKjbTdMOfeSxkNtAAQnpeMYq9NctfWaizFKpZOC8cBieR28pRPro19zYtJGiHCdP3pgyRSEW2Rs8iQAPl/53AKT3HA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by VE1PR03MB5966.eurprd03.prod.outlook.com (2603:10a6:803:10c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.16; Fri, 4 Mar 2022 13:45:41 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::b8d3:effd:9a3c:4090]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::b8d3:effd:9a3c:4090%5]) with mapi id 15.20.5038.017; Fri, 4 Mar 2022 13:45:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 4 Mar 2022 14:45:29 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [LUCOoiqobLnulq3rVkWY2ySppQNa49Lo] X-ClientProxiedBy: AM5PR0101CA0008.eurprd01.prod.exchangelabs.com (2603:10a6:206:16::21) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220304134529.125077-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ba82dcc2-d418-477b-a02f-08d9fde545d6 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSTpLjdQlh7tBxvgJwal5XclhbsV3rdSHN9D2Pa1Q4vqhbvQMk0v/mNXYTlBUP3UjGpFRqhHbc0TVnxLHgKpwMQ+gBw52/dab0ER7LvEY6PkhbQ2+ND7LJ7idbpKHnOYRq83TySafTRoXOJruiHy1BTsSdxxXq4W3SU9728lDz/RG+mR03wIp5ghfdaA0Lf9z/HrFFuDnNXgLNzyznRPt4VdWacBTUOZvauc19Vg2U09kWPWBIwK3sF2jyChV5V9G4HDTuwJAI/t3jttrmX2OBK0Mbgwt0CYygwlpe7Mb+WhDdc+JeQ9KqO8KO4Tlv7sTirCPfUKY9bFeApAMBENjqqFj1fI0N/QAd0YzxqmTCmQhYwy3NLVDUKgFlqhVecLhmi2ypqoGcWZzvGmsanyUUWIGnpAGvjg9TERlf72Sqd+KtDCoNM37dljCh7lOl1P3LF/ZySpGZfS3unDPBmMnZeHXaA50dk4TV86aWSqRPKuQYZ+Llb0zIMnGZgkBo5uxK/MsUcfq7lg/9JLD0dZq3SBniFndepDf3PK6AQuaiAog6ynubvcKsCgdFsd2GxQObaWTY1SBufaXxAU3ub6G7yAcfNrgx7P9O+p9I7WUCoG2iSr3aY0cR5FKFaP1c2kIYgMBe8hnTty1RriqKk6gExcglw4+Pc9b0GcPTcuui8gBu7R7rexySpDLLx4qby22WyHwTKU88gGtA0OOo46wbSD2nnIVweN0uVM+Z3K2P66ZHWM1pcuC8554Q8bBumilg= X-MS-TrafficTypeDiagnostic: VE1PR03MB5966:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: burZho2IQVw+v6ALujm/7eF+0cd+g7/Xtcx7IW0e569qfGNNnz1dCP8MoS3qSmddCwVThQs6h1ZrxfWw6imbf/xm5eFnYMMLVJBumqmM/V33g8tDnk8jUrMjB17wgc3+9x7BMnjqh5/LJ/5NQRJS1HpJ1lkFLOesQsylJILV9eQUybNQjhk39Afkzd726b3mNeLdVURUSHA0sX97rv0du9zdgcFfQoqFbwN6a5c5mjLxxMeDIC4pEkOMiNhI0NW4CvYKl088Wfgq1+TrVx67filzSQp6zrkgftTWrS9jHg7mBeqOQXUQMZNVjlKkjkWYpxBpu6WYeuWtHr6Ye1w791M5XIkppLWSnFkKYY/yuvYnX7kZFoJqyJE+sf1M5z84JEtX7Kgx+fiWHj3gCABr1OFU2wZTGfSFDrBQPgwAd3hb0ZCC3vy8Kl1eumCeknlCfUg2WFAsVjHx6FuPEYzNrXNhLoHiOUEjAKqWEBoH4KwqkZ17cNmKyJr+MTwzhHxjeR13QS+cNTWZvIfoOZCHx8CCsIUilnxhuMuNC2j230BcTFdvzh0Pe8L9WMBEPJD78FS9REzujGnxLFCJP++OBQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5PZdhpmlUn4iQUok2J4EEsGSO4L1xkt/E6IKNAfrC9VWEc8p30L0e41yFpKRyG0J/0jqoSROoGx2+Klid3qV+bY4Tfbez+cTVB4P1TauuBKcVsjWEd/i0dk3e7YdCNSrFiAp9H++d/FJ1+PcKC3nvg9pEW0w/fI9eVZrRsO+Ub7UdTQz6hNAFR9JoLI/wA+iD9nMP1Y60pG+nR4sBagDn96NnQ/zaXhIZiD6g0fwoAaKNdCeB1ifBESa/X+g8kStzWtkEUh1DZLhLvqM49EkqWY7Fg2qNDoH5JV24pw7DndX9EFB7Dk/7lKdTjLTgZAWyWTqRgkKk/GFefQAZCHppT8B4OgA9iwFywu/RE2mqgNyOfwAhVtP/MAX59fFyh331jBfJajKQm7N9P3ZlUg0hAQdSzwf+pedTw99dW2PAzv7sv2DPSPgMYIEeKCnLnPtCvaIG3YbGKy3Ycj7XNsVHGRQLS8RK2W2VIgnSI4v+Rhc9ia6oqrACqoIFvE1Y/wlpDJitrEQRjKGuoyZEIpBkL4A5p4RcI/OZmRrIYLgD8cS3iirQZzklRQFik+FjnZawrAZsgvTIfHyUR6oOyeXTfmLgKD2i6r5Sj5tn5fSi8STLaj/c281EwgRmLh56cDcEpy/Vln8ZR+d4okHrVVyF+CKE8g22ZlZjA0Q1LrIEzS+CT3TIz1jbMTa8OEpSNzZcqY0OBF2tdDjkIWGjp0IFfbyjRX+VT05g9mQKPt4j/gg4twjIVo9zwXuDXtnKPog+o7WV+YJsgx/3VGr/E7z521xF8VzHy9WB3SMZ+F1COVQIdHCveRcw61Qx4C4iAnkiAHYpBdIxsKjEXwmswujIRQQR4k7IIxmWAOXABBKy61RDpmW7dv/b+NIh2r+gSBeUzelra4LPeUbGXGtbdXT4G6pFhmB6cw8Lxax+6f396gwspfWGUDEOrFJnSIzFMJsqUsPFOlXTzsHGIt+CI28dw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba82dcc2-d418-477b-a02f-08d9fde545d6 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2022 13:45:41.6616 (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: VE1PR03MB5966 Subject: [FFmpeg-devel] [PATCH v2 2/2] avformat/movenc: Simplify creating chapter track extradata 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: YegB+k6Nam8L Signed-off-by: Andreas Rheinhardt --- libavformat/movenc.c | 79 +++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 53 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 4c868919ae..2a6cc1bc6a 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -6238,12 +6238,32 @@ fail: // as samples, and a tref pointing from the other tracks to the chapter one. static int mov_create_chapter_track(AVFormatContext *s, int tracknum) { - AVIOContext *pb; - + static const uint8_t stub_header[] = { + // TextSampleEntry + 0x00, 0x00, 0x00, 0x01, // displayFlags + 0x00, 0x00, // horizontal + vertical justification + 0x00, 0x00, 0x00, 0x00, // bgColourRed/Green/Blue/Alpha + // BoxRecord + 0x00, 0x00, 0x00, 0x00, // defTextBoxTop/Left + 0x00, 0x00, 0x00, 0x00, // defTextBoxBottom/Right + // StyleRecord + 0x00, 0x00, 0x00, 0x00, // startChar + endChar + 0x00, 0x01, // fontID + 0x00, 0x00, // fontStyleFlags + fontSize + 0x00, 0x00, 0x00, 0x00, // fgColourRed/Green/Blue/Alpha + // FontTableBox + 0x00, 0x00, 0x00, 0x0D, // box size + 'f', 't', 'a', 'b', // box atom name + 0x00, 0x01, // entry count + // FontRecord + 0x00, 0x01, // font ID + 0x00, // font name length + }; MOVMuxContext *mov = s->priv_data; MOVTrack *track = &mov->tracks[tracknum]; AVPacket *pkt = mov->pkt; int i, len; + int ret; track->mode = mov->mode; track->tag = MKTAG('t','e','x','t'); @@ -6252,57 +6272,10 @@ static int mov_create_chapter_track(AVFormatContext *s, int tracknum) if (!track->par) return AVERROR(ENOMEM); track->par->codec_type = AVMEDIA_TYPE_SUBTITLE; -#if 0 - // These properties are required to make QT recognize the chapter track - uint8_t chapter_properties[43] = { 0, 0, 0, 0, 0, 0, 0, 1, }; - if (ff_alloc_extradata(track->par, sizeof(chapter_properties))) - return AVERROR(ENOMEM); - memcpy(track->par->extradata, chapter_properties, sizeof(chapter_properties)); -#else - if (avio_open_dyn_buf(&pb) >= 0) { - int size; - uint8_t *buf; - - /* Stub header (usually for Quicktime chapter track) */ - // TextSampleEntry - avio_wb32(pb, 0x01); // displayFlags - avio_w8(pb, 0x00); // horizontal justification - avio_w8(pb, 0x00); // vertical justification - avio_w8(pb, 0x00); // bgColourRed - avio_w8(pb, 0x00); // bgColourGreen - avio_w8(pb, 0x00); // bgColourBlue - avio_w8(pb, 0x00); // bgColourAlpha - // BoxRecord - avio_wb16(pb, 0x00); // defTextBoxTop - avio_wb16(pb, 0x00); // defTextBoxLeft - avio_wb16(pb, 0x00); // defTextBoxBottom - avio_wb16(pb, 0x00); // defTextBoxRight - // StyleRecord - avio_wb16(pb, 0x00); // startChar - avio_wb16(pb, 0x00); // endChar - avio_wb16(pb, 0x01); // fontID - avio_w8(pb, 0x00); // fontStyleFlags - avio_w8(pb, 0x00); // fontSize - avio_w8(pb, 0x00); // fgColourRed - avio_w8(pb, 0x00); // fgColourGreen - avio_w8(pb, 0x00); // fgColourBlue - avio_w8(pb, 0x00); // fgColourAlpha - // FontTableBox - avio_wb32(pb, 0x0D); // box size - ffio_wfourcc(pb, "ftab"); // box atom name - avio_wb16(pb, 0x01); // entry count - // FontRecord - avio_wb16(pb, 0x01); // font ID - avio_w8(pb, 0x00); // font name length - - if ((size = avio_close_dyn_buf(pb, &buf)) > 0) { - track->par->extradata = buf; - track->par->extradata_size = size; - } else { - av_freep(&buf); - } - } -#endif + ret = ff_alloc_extradata(track->par, sizeof(stub_header)); + if (ret < 0) + return ret; + memcpy(track->par->extradata, stub_header, sizeof(stub_header)); pkt->stream_index = tracknum; pkt->flags = AV_PKT_FLAG_KEY;