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 816454A5CA for ; Sun, 7 Jul 2024 15:44:10 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 067B368DB57; Sun, 7 Jul 2024 18:44:09 +0300 (EEST) Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02olkn2059.outbound.protection.outlook.com [40.92.48.59]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CE0AA68D9A9 for ; Sun, 7 Jul 2024 18:44:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gXzwIfYx5fK1sLOXiuHzHFceM2HQ9FTCopE1rrCkCPyN9c7p62rXsDcv2nmgNhBT7c5umhSR3QW5gTpUpPhxS30J/0hlgyP2ow2deZT2DNSe/7pb46Jw5VhSoD/iEPHBtJbzamgpOzExFXE48e3BLUATzs75E0E9X4q/LyHs4am10gIla6zbHYBGGpqltWutsdKFn6LwdZnpV8wQCQNC6Mt2Pv+mI6Y3WDLoNEDaAZfQBYRKuNysTtogH6NPwirHE1/QhBZqwD3WcSF2dWWHYKLr+m82ln/L89kIZLzHdm0BnnfvnVfH/d5cYDwJJhbtUx6PtRLIN+BE/MGl7x/0oA== 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=qsT+LoXl8mIpL7XL3WwsyabcpVhheVfEe8iinHiZ/vM=; b=Xkzgxdv1F/+p4zD9BxE4+EDMy0ugk8F3d+YquygHH6scQlhP++mLpeNf9rNblDWK+ax+phIp8IjSPNfiPYHjtJgqP1Tc6fbcYJO8DXOhY0XfR7z2hJ33y2DafqN9Ez7UasNI1Ef84kEczB8OTXGq/qM3Lf9teCyZaPwHfJEe44tRSuurMuWZdUjZcr7orwKl2elaxUkvyuBxX8U9LbqZmDnYi+klhwF4LXUAgF9//eYM67JTPL5lnzWGdQpY7nvDgjH6TovALakhpdONjy452O/vjU4zWYeXvFkIz+FtrCHx4I2nOgC73XgMHzcP+hGWVrb++Ab34GaqHsqp8SulOg== 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=qsT+LoXl8mIpL7XL3WwsyabcpVhheVfEe8iinHiZ/vM=; b=rkicYRtCISLw5w9ag0rqmeyo1/egAu1NmCqxFUv1TDr24HyjBp0LwJv0Lgij7IKcv32bqWK1X4JPK2jQ9KROFF3Ere2RNuVxB6iD1b/eFLrpyUtK4ZAd3+71kNV8l7qHyiu+iWOUCDQbBmk0tqm6vWwUdj4vY5bRWhcEdb1SeF51xRn/nTjRtwyfA1Qn3hWl3VRef6cADziH3PwpY2uL9dHD8ac/WsITIDiXOntXDbpfmBVxGTFnxC+GMJk+TRGb/DZcE7g9jc7XIQ/vTztYt79Q/8dhd8cXsuvJbhKKXo3mbvZEK8REc/0q/gqHh1Df7hZaAmxKR+tlN4efu0/Ucg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0205.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:276::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Sun, 7 Jul 2024 15:44:01 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7741.017; Sun, 7 Jul 2024 15:44:01 +0000 Message-ID: Date: Sun, 7 Jul 2024 17:43:59 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240703212648.48483-1-jamrial@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20240703212648.48483-1-jamrial@gmail.com> X-TMN: [oM1id2eyvr1nHCYpl3fh1gIQOXM2s32cOAeY92lNGmM=] X-ClientProxiedBy: FR0P281CA0182.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ab::13) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0205:EE_ X-MS-Office365-Filtering-Correlation-Id: afd0be27-7cc1-4f50-73b5-08dc9e9b9f53 X-Microsoft-Antispam: BCL:0; ARA:14566002|461199028|8060799006|19110799003|3412199025|440099028; X-Microsoft-Antispam-Message-Info: /GjwIFdGwPWmtyXNzCllKL7/d30be8wIRtNSk19MOEmZt1hJENiZhTjmb07/EVUHLQLPvKSqcuoXivxPHs6iZZqwSeRWL315L8e/qivptB+v3v2XaACdEGMGJyp5MfeMFfmxHj1cRIOnUqH5+PZF4P1plQ/D7LsuOonHTTVErKGF+NihhwyAdTgzGRYDMbcGd64EpbMUfEv0Gjkm5CffogBK32dHfsL33MDqAOI7n5OqKb/xuyJueiUJy6/HdWYNA9QJXz+5gYdipI5cMPYIYXWwQlxg+9ERGnU2GmOpMxwxIjz93oUwwz14Y42lvJqqYZOgzojtk8auig4nSFD2jrvQ+6JmNzKDyqCibw+QE62D+eoc8aeDGHFR8YFn5iobgYPA2+9ksR5cr/kLy4JlkOBFSB59d1Jzr2eP5Edy5XLMMGyYj4PssuIUUW4dSo38ExessuzSxn/9LNukQrySkv1y+mDGLC30lBFLSPP/6kBsICwVf57W2Nmq7QXbM5ObEgvqAOacGc2iSF8U3qjLHvERbbDG9ZFGmqiWzge5OjVQXkk5Zp5sdSDDlye1YMELZPzSGQXdAdVwGpS7b4BzfE1/Lwxb7M3mJfz8NkWOQ3nN9XxJgFDspcNlDsZOZy50S2aG8XsczHfJzyOMrdbZJw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RzNHQ0tIblFUMVUrdHVKSkxTWlQ3NDJITlo4MFkvSUkwZlErS0s3dVdMd2ZC?= =?utf-8?B?alBCUWYxK3FHT0ZJTHg1R3h0b1A3V1o0b1lFVWNLNmxSQzN3eG9YaklHVk9n?= =?utf-8?B?cldrdHNxUjA2TDZaTkR1QWs4Yk1GK1graENpOWZPQkJPaHBPRVgrZHVvQ2Fa?= =?utf-8?B?NUNWN0U2Wm9FRnVGQXNmZWNaU0dJZVhCeDJiN0M4UUVrUThYaEFhd1hNSGFj?= =?utf-8?B?aEk5aFM5MzNxR0FoVHZURUIrUTd2RS82TzhETHpvcEZIYWg5ZGdHVVRERzg1?= =?utf-8?B?V0o4QTdyMm40Tk1rMlFzbVg0OVJDbmRpd21EVXJwRHZwTXViNXlmRGZUQ3Rs?= =?utf-8?B?V1VRajdXVGxMTHVjQ0VCU09Gc0Iyb2RoRTFPV3pxL1VwOXFycjdDai9VYWdl?= =?utf-8?B?bmowY0dDTXZsV1EyMEJyNVpVNG1jV0RnR0kyb2lpcXRmazRRc0lCUXVlRkZM?= =?utf-8?B?QVhKZDIwbThwOVdnWW96d29pYkFxV3RmVlBUZkVVYWNYbjZKenRURm5zMmJU?= =?utf-8?B?MiszdnNhTFh3T3hHUEVYZjlIUkdxU2xvR2NMQjc5bE1zN00rNW1PeGlQREZZ?= =?utf-8?B?UDNNenMxS3VVakFod2paakIwNGMzL0RGU2Jpdnp2cWJuYXl1aDFRaEo2ZjN2?= =?utf-8?B?b2l6WXRUeCs4eGVSNjJGYXA0ZDZTQm1DNS80UlVhd01mNXpIelBqa3JjaFlI?= =?utf-8?B?N3RaV2lSU0VnaGlzcHpxbU1mMDlKaWs2Q2Fkb1FLaG4vNmxpNUthZGtkUEtF?= =?utf-8?B?eCt5WnB3dzdPR0M1cmJGMW1KRk1QNjE0YS9LTU5PT0FIQzFvY0IrQW5Mc29P?= =?utf-8?B?Tk5lVzV3YmlDa1JnazdnWUJQTjIrQlB3NlJtazFlVlpzUnNIK3RXV2QxNXNN?= =?utf-8?B?eXV6UFo5YlM1Y2Y0OHlRWU9aRldXQXVkYVlKV2FKcGkvSTZYWlYrbFRUbXpZ?= =?utf-8?B?dXF6SDNzQkVVZVpGVjY3RkRlR1RJc3JJbnZYdGF5ZXNHa2Qyb3FQalV0d1ZD?= =?utf-8?B?dkhIL3luUW9RTEt0T0RkYytZb1I3dEVUNXZvZXIraGRWNHhjOEtvWXdmajlh?= =?utf-8?B?bFdLZDNWVzlWMHpGMnp6bFZFbHJHVUZXTUhEWG5sNWpjWEYxeFNOMnJGRUlZ?= =?utf-8?B?ZmRUNzNSRE8wWFZLRjQyYTBBeGJ4cTFBeHBvUDViSkRYYXFtdm5nR21sQk9K?= =?utf-8?B?em0rS2l2U3lndmRpNU84M1I2SWo1WDA1MVorbzB3SUVMN1N0bHI5VngvR2Iv?= =?utf-8?B?OHd6VVV6M1J2SFAwWXN5bFhmaEx6YzZ1aUNRSmc2Q0ZuYmh2NThoR1o4S25j?= =?utf-8?B?YnZydTllcFZ4d2p5a1IrUDcxQWRPRWJQM1BXT0tYY2hlK1FDbFFORXFnakxs?= =?utf-8?B?azVTRXV5R2VZMEI5M0x5UENJYXhQM2ZoN1YwOEtjL29FdCs2WGd3a3VJb0xj?= =?utf-8?B?VG9nOE0xSDROMlBYb1duV3QreUV6RFBZak5rMEVJVjZwa3lGbEtmWklNdy8x?= =?utf-8?B?dTdleGo5eGcyR0RaamVNQXZlKzl5SEpxaDF5eGxuUUVlZDdxSnF0RDBvd1dr?= =?utf-8?B?dGRiQUdkbmJpampWSkRwMUtzRTlaV1hrUWxiK0o5N1A3MjA4bXBqR3lTOUtj?= =?utf-8?B?c2U3TEdnUTNWVnI5RmxESWFtbDBiS01TcjBxeUY1a3JBZENKNHdiQzJBaG5o?= =?utf-8?B?bW8wR1VCTEpkck1WMHU3YUgrVWRkUWpaelVwbFBWdDFqZ211ak5QZjJnPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: afd0be27-7cc1-4f50-73b5-08dc9e9b9f53 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2024 15:44:01.1502 (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: DU2P250MB0205 Subject: Re: [FFmpeg-devel] [PATCH 01/11] avformat/mov: add support for lhvC box parsing 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 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: James Almer: > Signed-off-by: James Almer > --- > libavformat/mov.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 48 insertions(+) > > diff --git a/libavformat/mov.c b/libavformat/mov.c > index a3951a6942..30e8086855 100644 > --- a/libavformat/mov.c > +++ b/libavformat/mov.c > @@ -8157,6 +8157,53 @@ static int mov_read_dvcc_dvvc(MOVContext *c, AVIOContext *pb, MOVAtom atom) > return ff_isom_parse_dvcc_dvvc(c->fc, st, buf, read_size); > } > > +static int mov_read_lhvc(MOVContext *c, AVIOContext *pb, MOVAtom atom) > +{ > + AVStream *st; > + uint8_t *buf; > + int ret, old_size, num_arrays; > + > + if (c->fc->nb_streams < 1) > + return 0; > + st = c->fc->streams[c->fc->nb_streams-1]; > + > + if (!st->codecpar->extradata_size) > + // TODO: handle lhvC when present before hvcC > + return 0; > + > + if (atom.size < 6 || st->codecpar->extradata_size < 23) > + return AVERROR_INVALIDDATA; > + > + buf = av_malloc(atom.size + AV_INPUT_BUFFER_PADDING_SIZE); > + if (!buf) > + return AVERROR(ENOMEM); > + memset(buf + atom.size, 0, AV_INPUT_BUFFER_PADDING_SIZE); > + > + ret = ffio_read_size(pb, buf, atom.size); > + if (ret < 0) { > + av_free(buf); > + av_log(c->fc, AV_LOG_WARNING, "lhvC atom truncated\n"); > + return 0; > + } > + > + num_arrays = buf[5]; > + old_size = st->codecpar->extradata_size; > + atom.size -= 8 /* account for mov_realloc_extradata offseting */ > + + 6 /* lhvC bytes before the arrays*/; > + > + ret = mov_realloc_extradata(st->codecpar, atom); > + if (ret < 0) { > + av_free(buf); > + return ret; > + } > + > + st->codecpar->extradata[22] += num_arrays; > + memcpy(st->codecpar->extradata + old_size, buf + 6, atom.size + 8); > + > + av_free(buf); > + return 0; > +} > + > static int mov_read_kind(MOVContext *c, AVIOContext *pb, MOVAtom atom) > { > AVFormatContext *ctx = c->fc; > @@ -8943,6 +8990,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = { > { MKTAG('i','p','r','p'), mov_read_iprp }, > { MKTAG('i','i','n','f'), mov_read_iinf }, > { MKTAG('a','m','v','e'), mov_read_amve }, /* ambient viewing environment box */ > +{ MKTAG('l','h','v','C'), mov_read_lhvc }, > #if CONFIG_IAMFDEC > { MKTAG('i','a','c','b'), mov_read_iacb }, > #endif Could this also explain what this box is supposed to be good for? - Andreas _______________________________________________ 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".