From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 3546B409C4 for ; Fri, 4 Mar 2022 13:40:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 433B468B0BE; Fri, 4 Mar 2022 15:40:51 +0200 (EET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2067.outbound.protection.outlook.com [40.92.89.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5A3AA68AED0 for ; Fri, 4 Mar 2022 15:40:45 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T72r1dJBH8k7P6mkzTKNg53Y/4+pmOznhvSVPNZ1FNET9hKDCux7KN6HVVH6ANsBS366Igm47SBGlJBKbdSCZ+8KyoligmFn7mpIJ9LxmovC/7M8DlQDxIDRl5ZBxcvxSJg2RAhQJ47YPSG2RCRIpbFRtbeWB2HL5wmKESXlYhfF5XAH/7iuwIBU3zYUQHD/DiV+ER+sEpB2/pxXZmJadI2kC4elSOS7978lncpJHewJn/vKU0IYVlyS0E/QIgplPLg3SAI4L0KG1C4XDle/1SeT5e0uZAEJy53hxBPghLtkf6aoj+M5FSsIh0W94yxtDwoz45z3iQJUILZ8MkkgNw== 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=nkfd2tEt42a6nj5uMZHogGW4G1v6Gl9Sl1t2C9V0kah/k6YqatQlIhOgnUbviOfculj5uaqDW6vdHpsrN7IOLGn2dhpmJwnCGxmzfCLNW6QUgIHTZ1+jLmY4wAh5qBDpouU44tr/n53BXPki6ngIE+Ew9Bgcg9cdD+XezXSqKfh1R2CswTv5pbVKiZoVtjfZhKD8/en6YwO1gs4VrrSIXCPVQexbLezy7+vM5XhdX8bSa1r4xdhoEAGkAm2bEc87TivEH1WJUzexbw8pKdWt9zSDbACRtWUMqV5UJEs6sCppZKLPNXjDVpLys9v/1WZKPypbQjXwddfgOtt/ozLVVA== 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=MpOvt/0KlGKSnGG9kMAJ3PS0Hi790O/TseHNw8G5KZXpPsvUveI46aAZi8zpEjv2wnF2CHLo/GCDRA4SC83oMLmSE9nB4CeSEKWeG1svCTavKHDeyuAeHyWiVpmObhbSpJI68j8g9KzYM5vje6hTyc4KyWk/sOtYX1MDiiu4W4BHCNsK4UIZv0uNuAB8IQooseIvVJu0mEc+++o+8tWUYe0LMsdtzvJ/n0CkqsxIfgVo6ViYkxdbZScMMvJ8ok1FBxGU33tvFQ6X8+pKqXTCsaDHJgFLVQUtu6LBSxud0xrhQxuWkM4ohEPpDQTsTWoXq8teanW4AJe9FezRyNZzJQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by VI1PR03MB4624.eurprd03.prod.outlook.com (2603:10a6:803:60::17) 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:40:42 +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:40:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 4 Mar 2022 14:40:33 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [0v4jhHqvNhY9b4a2p5BR7MZTDli5/dCO] X-ClientProxiedBy: AS9P194CA0029.EURP194.PROD.OUTLOOK.COM (2603:10a6:20b:46d::35) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220304134033.124105-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a832673a-a455-405f-a9f3-08d9fde49326 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSTpLjdQlh7tBxvgJwal5Xc/x66h/bcByM8niLC62j4w8RO5/0nGTi2WLlqn5XOMsW8UTEHUV8Fhdm4uIAchfcTXQDG3e+ZGfLufjixt+GvHX+yeqUUWwuOTUbC4jitgUwsX2xtyi1FOHrS4/wsvBL/L74+JeIJAcmnkxnzgDGX88Iypskpr9cCD4NKyHBl5Pjy3zX3yR4sxHmhe/fmOhEzkJ3Bbs4yb+9kGnMbQi3GJoDMJuZRPNF8VcMzH9+J4SHpF4npGSwFRRgqYqc/GnW78kns5SO/uBo3/+znBprDDy6Dw7vCU6tZW4ddO+WuToUmIFPA9rl2+qT+5I/JUog68ZLTK0WzJ/AoGEZS4HwMwktqQa56J7ShvK0cpqirp++QEhZFbp5BiGo+mABohA/ZbedIGrcElh9Ny1R5tFTTx710rg4jBug3R718lCuKC1vIQ7g5lV6rPlcMK7nmN+DbHQtbdJCcnqEGXQFUvNCD10wEl/N6NOWYOCcFUAf+Sg8r3Iqhy3SCNZRstTQ9DBIkQiN4ddqG3LIHB6/UfJ3nTTbTwqXKv7TNepvOa0xsqoyT+D5Sw7RUkffZ3K1Rugdld1uieV4SRBPDb3dC0eQJUPhQjUd+I8c5pjObk2WA4Kk2T3R4xr2/xMtpOX3KqqTQdTV1Q9344X5mIIczPbT+qvz23LHYGeit2g1LRCTrj31zxGhRIZGDa7rCfmE++gqER3YpytD9u6Sd9XZHBPeK63QMgnf4xdOZPg7RMLxe7sQ= X-MS-TrafficTypeDiagnostic: VI1PR03MB4624:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 18Ut+anfiGhK+3rcFQGRum+7zbjpBQNfc3zpbDd/MDi1ph9CrAuDn3kPkZRK6cmzcN/xraT9KdGUYw7SzbGMG1TWnBlnb+gPEb/u2ULDdeWYay11xIlowT3K6OPbiqiXl8svEyFEX/FFtleolsL/ZbQK7wWqabSrLKkOPr1ySD1sZwIoCFW/ZnIAMXLFGR7hk9vu0kPUeljd/4sqvPa5CYvKlQs1wlg7jnZqmEqavDRyon3F+X6U5ryr7vaPuTfQVIZpv7q/hf2tdtPD28ZcTgEoXDrThXVH/8oLLuSoDlsU08HKcWcCNgV97f5HiBsoDJaJQqtUtfpsMxMmLnuVEEXNnUcOS+6DXqpHD9ZJ3eheIiwIQ+Kwpdcacq/PibJOfNZgcy54e5oLv36rBBpqGm7tRY+OaCSIZdtgkVDvC1IfQX6+Zc8OkNzVZ38DLFIduihYxrkVE4gQNJE8343o+bSODwzOBT/svGBMdy9/V7pFD24CT4V3OlDfnEfyGV6H9ZFLcm9LzzsDxnsCjTQ7gJiUx98w9xq10YTBe9Z5FaFX3h6vjPK0Pq7z4D1irYDpEzyh4Iu8LOv56pq++MJOAw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FERCgfll4VC0QgNWRFyU8geeN43+SI93D2TzSZeCG+UfHPZqVES1n1DLDxTH?= =?us-ascii?Q?JZfMyjZMwYaB1AsFdQi07R2wOSxDSyvti++6cCKiwX9pzJTBEkZZ+pOoG9kb?= =?us-ascii?Q?wWW1wj4PpjyaXvDFyZqdzOVbkw0Z9uO+BJkg/bxMRCo4U6jHpUXrHfx8H2+s?= =?us-ascii?Q?plo+CbWyXDErGfZ++majd2jkI1X2Hk6V5HkVUSw6tYDD8SBteYWYCv2dYwSl?= =?us-ascii?Q?SBY08eqBbl5ktdKC33SV0SXwOzr04D8rKgk0xh817lGmb8oBOTDis4zkhvB9?= =?us-ascii?Q?dySHfPCeER4bGiRr/YDK26+C86Svv1Igodcl/bMW2IFGp2nErGL8/MZwvsxX?= =?us-ascii?Q?zuAfpBR0xBaIDnb9unvuEWZLGiuYxC3EizgRpEWQiwPkWPDd1ToRSY/vYq7+?= =?us-ascii?Q?3AlEOyY9840/G+t4aQo3ctp7vdW1vcQLEPjCONc7hnnofDAOOmpH9FNgQmmJ?= =?us-ascii?Q?mQKjN19q5s1wagkBJm9UJnzbP3o94kfNZjBIRxkXJTtq90TMjtFxdBNjmTb1?= =?us-ascii?Q?V7r8o3LCd4C204srQai6HA48/fAgsmWf6YsLLrMnog9tLT5T1oXEJCdXkUtu?= =?us-ascii?Q?dmJKwv/kwLksH9TF1XO+C9Jfpiki1UwqWvN/B1c7ECgU6p6IaCl4paxVgxNH?= =?us-ascii?Q?PDbiO5BBr/aausjG7FmVWjAYHPuiIkv8H0w51XarZoWn/ddCw/KviFfY9Ldf?= =?us-ascii?Q?qFyxoEBGmeJQF/y7YUrb/Shn/adHF0khybrZprsBfXkvcNOsJpqof2N3yN8k?= =?us-ascii?Q?XrfVK32dWCBwir490ArTjjsj/irgfdhYBxvdNYD/q3kKvv9yPzSCbLUOrvEK?= =?us-ascii?Q?qYOgn0PUa9CAvWIcZMhZxO/1irWQjraQnLEIyopuUNXC99slLAEzApZ3ydme?= =?us-ascii?Q?imVvLBDTnHp5saZwx4XqcbQ90JivEMZBPyDMh7RCj0Un9Yw2Q5ItPf1mqv2T?= =?us-ascii?Q?xD9Tv/zU52OgPgHAFe2/tA=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a832673a-a455-405f-a9f3-08d9fde49326 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:40:41.5290 (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: VI1PR03MB4624 Subject: [FFmpeg-devel] [PATCH 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: 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; -- 2.32.0 _______________________________________________ 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".