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 0CD6E40EBD for ; Sat, 1 Jan 2022 02:06:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EAEF968B072; Sat, 1 Jan 2022 04:06:37 +0200 (EET) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-oln040092069036.outbound.protection.outlook.com [40.92.69.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3E8C2680923 for ; Sat, 1 Jan 2022 04:06:31 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CqG5rEyAkiltcoR4Z5RChBoN5uMHoJvRGNtOcYlifx9OT9nq4eW5WCxcDDqJ3bGqGQfamF6qGJjujurXv2HXMjiic/nfl+RACN8d0I5jzJgCF0RPXewJ7/or+GfUt6EKvDxLMYn39POH5/eYB1HM3YC3qO33yj1SCUL620phN489ANX0Obp9D6fPsRCCN5BptthTwJqSF6GOILKnEcFDBUM+Yuoljk64QAZG7MvuWxXN3TgxMS/rUbujxNg4sm0TwA2f4k06BhMhCTX/zvxHVSTiua+ZwpmQDCfvXomfGz6aYY2Zx+9Qsxxz7vbZBmRJO3nRs1kGiRhdNsJRHZO3XQ== 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=s1HuXtSwidUaNGgbC/mBl9Q1Cav2/wFMib2qEhupeSw=; b=jLlZQq9ZCboRoHU3g0j4VKdGYE8kY0cUMcF6vnsvFGqDQzsk7l/YyLirluph0+mp8XiisRY0/mhV7hvEQKc83Vf23bVwXRLC7aM9lqZxdK+99NyiB6lTYCdfyJWQy3pDcIvu4l+YdXG00JPTP5f2v394ogWx/bjB1I+rRZdF9hAdbEMQE5OitgbCMI5/eHIQQefQ2dwlittV1wU1CX/1v41u2hBNy2hydb5MjW6uWPxtUYqwVTn2TYM0ryCMTFHScIS4AULWxZE1bfK1DYD1snBrC6TPwmrJYqwQehA/qEBIx2DHIV3AOC16Ca+FPofCtzzpRcmTWH3tu3T7jHY39A== 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=s1HuXtSwidUaNGgbC/mBl9Q1Cav2/wFMib2qEhupeSw=; b=B/9F/NGgdPKN3pdgvV7CcDdv2Wuf7oZdfzgChOA+VOaEnJygnZxovlsKeF4Hv6gm4yo9XZ4wS0QDAFjBXnFH+RukrvhVTjWxHJvUIi2+7hBvvK2uQAawzMNMc3qRm95fnMmzoBlu3rCEdFRBrDxw9V4L7g/wA6fZoecKg9ZFxmpzBfXkxii8rw7bNOVuzpgDCDNqDCvzPyoKuYueAmHb8d3AUpNefr96tSayyaWCiZCQJViUSl+SA8PRuXPT9HKF/RzVenAwQ1RhPk3UQUTsVeXJMDaPLjPwIOznzrh/T9tAwlHTJsjMBcBSw6osI41AhaX9lnXaNXvbt4q2AvYWjA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB7381.eurprd03.prod.outlook.com (2603:10a6:20b:2e2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Sat, 1 Jan 2022 02:06:29 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%6]) with mapi id 15.20.4844.015; Sat, 1 Jan 2022 02:06:29 +0000 Message-ID: Date: Sat, 1 Jan 2022 03:06:22 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20211214153001.2610297-1-tcChlisop0@gmail.com> <20211214153001.2610297-4-tcChlisop0@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20211214153001.2610297-4-tcChlisop0@gmail.com> X-TMN: [aea0F4PCmXdaImfpURcTh0bam8i+Cmmc] X-ClientProxiedBy: AM0PR03CA0008.eurprd03.prod.outlook.com (2603:10a6:208:14::21) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: aebbfb41-ae14-4697-31a5-08d9cccb533c X-MS-TrafficTypeDiagnostic: AS8PR03MB7381:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bvp8NQZPPz2WeyZZ2jtinucRqtcSktU1tOn/UrPCKkTIn9z+JbueD6TcJqiDzXETTR6/1OWwWjsimjSx54A6aZolMytZnmUtyuILRq+8MnUTsIcn4Ag2MOdZoS6qKRpEqLIyn/sG40BcOx0nUmxlakj67MiP585wlQB48NeTlzKyf5K098kA6UEStINFzYrf4QCAMgfu9W7bpc7t/C4kOh7MFC+YHi9rKlatgglWfdsbZMzb/nvBda7qvN62ipHDpaRg8ouRjNDqmnJPDmyIul5Jrc6wH7XTLhGBAhgdARID7rn9zC0JjVTENp+f6nJ1zdYAhURN8NenCSCHf1SJqTtpl86D/GabnYz8yqfH1TdmsZ86UBfeVaQd6iVzPM9tpYEk/UhsnnHv1p5FTio7K4B8hdHAm6nzGMHumDSzn4Z1D1P6MMwbgBrmpUZV54h66s2X3AaK5YjsOAt2rAMbR+b8kGzdx/JkF6RuleHLbs9ijjXcLKSmzpBVuiiKnlfF6zrTeIHCyJxNmnf48ytuxLF0FL90e2yuXP3mF2UznVf65XjhjD5XNYXNNvZxMje3HQdE3dfIaRYP1jWbYGJ6Sg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZXRxb3EwakVwdnBoWFErQ2VMbFJQSEZIS0FOekEzeFBQWkRUb0xzNERtSFZq?= =?utf-8?B?LzNrNzZHOS9pVkVZbmgzVG92QnpwdS85OVkvNmFOdSszeGc2a1plRURPWUEw?= =?utf-8?B?NndtdlBFemRvb0RDYVdkdGlXZ1Yzc1gzUHVqd1Q5QTNBeVB3QjlNbklQb3JB?= =?utf-8?B?Mmplc1FkeUhFdG5sSVcxeUxWRWxoVDB1RGhoYUNNWXlYaDQ4U2JHKzVtbEc5?= =?utf-8?B?SzM1WTEwOFlJYmZvODVkeFcwQ3g3TzdLNkRvUEYzWWFOSXdDdk5NVXBDRHJx?= =?utf-8?B?QWFzWUlYTHQweXY2cDQ2YVdEUjFsRkdySmRKQTdFek43bmJrQk5seXBDMTBH?= =?utf-8?B?YzZaVFUralkvTSt2bXR4OFdGaEV2K1Bvd0lSTVpSWmxRZVMwbWNZczN6Nk4x?= =?utf-8?B?RVhuTzdYWVNFcWRUWG1UdThvTGpEOVhsU2NsSEdnUUhOaFVhK2U2R0J3ejg0?= =?utf-8?B?Y3ppUi9TcWUwaHcwWnFCd3V0cS90NkIzWTdWc2NyVWZ4eVZmVEhuR0RYd2tu?= =?utf-8?B?a05UNTBZeThSRXdBOUh0dU5taUE1NGZtQUdDdTZCSkxpL1VrNHpwMkdCeDdu?= =?utf-8?B?YWJjTTdJMVR5QTViV1hDNW9ualMrRU81cW9hSEFYOFZjQWdaLzdPOVQ5bGJ5?= =?utf-8?B?eDg4cU1aRlFjanNqMFRDYlNmK0YvMFEwVnZBUDRuUFZmS211WG5uSlJEU0lu?= =?utf-8?B?SVJkZ2FFMVZRQ3BSa2tPZHFYK1JndG93aFZoamZmQ3FGZ3Zqc0dWTlhoRkpn?= =?utf-8?B?aUJCV1pGTWx2d1BRbGQ2YnZrUkcrc0NRRlA5RU9LYmlPeGVNZTJSbDlBUUpV?= =?utf-8?B?a3lsV3U5Z3pBZHNHcEFYbENpSUtlbjdrZWFaVVpmQ0NvQnp2NHk1NU5acjdN?= =?utf-8?B?Z1Y2dnFBNkZWVWszK0ZoYy9LdlZTRTJWNmd0MGJUb09mTGZrZWJhM2hOcWFO?= =?utf-8?B?TnRXSEpKRDNxM3JFRzRWa2I3NURPWDlDSkNSMFhXVFFkZzRwMDJzaHEwaHBG?= =?utf-8?B?VUJJYi9TcjNRbnJKRlNremExSm9sTE4wZHQ0Zk81Uk5VQVBtV3VtN0tBRGFC?= =?utf-8?B?SEwzNGZpY1l3VTV1WnN1TzZXeXltSkw0WVR2Q25TclptSGJrMUJicGZiT3Fl?= =?utf-8?B?bHB4bTExSUlqQzVWL0NKVHc4M1c2Sys0dVJoUERvMnBtQ1lIZ2NMK3ZMQjJH?= =?utf-8?B?UjU0cVEzM2NSNUdEUlgzSm1RSHIrTWpJNmE5MnpsUDFjaS9yM092UEtPNWtp?= =?utf-8?B?azVFY0ZiQ1J1ZUd1dWl6NVlvMUE5UU5Gb1NVdldTc0JwdlA1dz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aebbfb41-ae14-4697-31a5-08d9cccb533c X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2022 02:06:29.8391 (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: AS8PR03MB7381 Subject: Re: [FFmpeg-devel] [PATCH v10 3/5] avformat/mov: Refactor mov_read_dvcc_dvvc to use ff_isom_parse_dvcc_dvvc 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: quietvoid: > To avoid duplicating code. The implementation in dovi_isom is identical. > > Signed-off-by: quietvoid > --- > libavformat/mov.c | 52 ++++++++--------------------------------------- > 1 file changed, 9 insertions(+), 43 deletions(-) > > diff --git a/libavformat/mov.c b/libavformat/mov.c > index 9ebfa0bcc7..e3c80c399c 100644 > --- a/libavformat/mov.c > +++ b/libavformat/mov.c > @@ -55,6 +55,7 @@ > #include "avformat.h" > #include "internal.h" > #include "avio_internal.h" > +#include "dovi_isom.h" > #include "riff.h" > #include "isom.h" > #include "libavcodec/get_bits.h" > @@ -7056,58 +7057,23 @@ static int mov_read_dmlp(MOVContext *c, AVIOContext *pb, MOVAtom atom) > static int mov_read_dvcc_dvvc(MOVContext *c, AVIOContext *pb, MOVAtom atom) > { > AVStream *st; > - uint32_t buf; > - AVDOVIDecoderConfigurationRecord *dovi; > - size_t dovi_size; > + uint8_t buf[ISOM_DVCC_DVVC_SIZE]; > int ret; > + int64_t read_size = atom.size; > > if (c->fc->nb_streams < 1) > return 0; > st = c->fc->streams[c->fc->nb_streams-1]; > > - if ((uint64_t)atom.size > (1<<30) || atom.size < 4) > - return AVERROR_INVALIDDATA; > - > - dovi = av_dovi_alloc(&dovi_size); > - if (!dovi) > - return AVERROR(ENOMEM); > - > - dovi->dv_version_major = avio_r8(pb); > - dovi->dv_version_minor = avio_r8(pb); > - > - buf = avio_rb16(pb); > - dovi->dv_profile = (buf >> 9) & 0x7f; // 7 bits > - dovi->dv_level = (buf >> 3) & 0x3f; // 6 bits > - dovi->rpu_present_flag = (buf >> 2) & 0x01; // 1 bit > - dovi->el_present_flag = (buf >> 1) & 0x01; // 1 bit > - dovi->bl_present_flag = buf & 0x01; // 1 bit > - if (atom.size >= 24) { // 4 + 4 + 4 * 4 > - buf = avio_r8(pb); > - dovi->dv_bl_signal_compatibility_id = (buf >> 4) & 0x0f; // 4 bits > - } else { > - // 0 stands for None > - // Dolby Vision V1.2.93 profiles and levels > - dovi->dv_bl_signal_compatibility_id = 0; > + // At most 24 bytes > + if (read_size > ISOM_DVCC_DVVC_SIZE) { > + read_size = ISOM_DVCC_DVVC_SIZE; > } Unnecessary parentheses. (Could even be made to read_size = FFMIN(read_size, ISOM_DVCC_DVVC_SIZE); to save another line.) > > - ret = av_stream_add_side_data(st, AV_PKT_DATA_DOVI_CONF, > - (uint8_t *)dovi, dovi_size); > - if (ret < 0) { > - av_free(dovi); > - return ret; > - } > + if ((ret = avio_read(pb, buf, read_size)) != read_size) Could use ffio_read_size() (a wrapper around avio_read() that returns an error if the desired amount of data could not be read completely). > + return ret < 0 ? ret : AVERROR(EIO); > > - av_log(c, AV_LOG_TRACE, "DOVI in dvcC/dvvC/dvwC box, version: %d.%d, profile: %d, level: %d, " > - "rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d\n", > - dovi->dv_version_major, dovi->dv_version_minor, > - dovi->dv_profile, dovi->dv_level, > - dovi->rpu_present_flag, > - dovi->el_present_flag, > - dovi->bl_present_flag, > - dovi->dv_bl_signal_compatibility_id > - ); > - > - return 0; > + return ff_isom_parse_dvcc_dvvc(c->fc, st, buf, read_size); > } > > static int mov_read_kind(MOVContext *c, AVIOContext *pb, MOVAtom atom) > _______________________________________________ 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".