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 ESMTPS id 408FD4E0C2 for ; Sun, 27 Apr 2025 18:57:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7468568B461; Sun, 27 Apr 2025 21:57:14 +0300 (EEST) Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02olkn2070.outbound.protection.outlook.com [40.92.49.70]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 398EE687AC7 for ; Sun, 27 Apr 2025 21:57:08 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pc065mAKTlPq0l4oh/unQ8BMKVuW86Jn6cVGqnOJVfJznOiMQo1iEjcLiqviwCUrHp9uzrN3J0UAR6cAiPrc+4909McNPoEb3jn+Lxzldnb1+FnCWxoLWE/GgzxI8JIkZ0eENDcqGf9mW2Foq4F5g9F0jk3/WIzNOKMQIWFwrxzzulXZ9L8SWOs4Lm7wPpz5LFSuyFh46JOOfLGN4HulBeU0Lc8VBALDqTS1AQ2Q1JhmC8Iv1KuVg5+tfBZHqsrKVtG0YR+AYAz8hv5UVFnh6cGKwvEdxv2Mqj+Z8dsilusPJ0ElmI3DP3UnNsf8WF47DAzTTj76ohnangnNoFA9pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Ww4WwbaSPYGD+1spBffoLS+g7FIPC6ZR8Kpp067XNEo=; b=p5vBXM1qAQdLHHqnxf+fKJi2BFrE4DK2E4NVUF12SfOfrvqxO7HBWvSRhfdxXpRtYiUxlyBkdfcGb4muxUioM58lEStyhZdMDHLWG/FLAVkngHA5ucSP6bcjLB5U6HCUx2ymooObUP8FkFTbNL0sAHf7WBilMMASnIwPMrb72Ke4LEOZQDb3ZedCyBZGIDNkddL1CYquaVXQPzBwRrpUCKbaeKemBsg9jYm7vJgrHreSWjX45e1MbRqiRiymcDASYPkwie/21OIGcVLJ844LuX4IfONe1Gn5ueh5HMGIf0xs+byi40b7D/66FeUT6kP1FTiSUvW6CVaa71/oC+iBYA== 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=Ww4WwbaSPYGD+1spBffoLS+g7FIPC6ZR8Kpp067XNEo=; b=EHp11TfI+WIJnlZrotxB2JUAynDJxTGL2JNj+4r3tzbjXDp5YJg2j2HuWjhEhO4gn2i/X3di9KUfRzVadwbTgcmtCMOR/jbBBr7ynKXC3TsynRfi9VTfmvCPTxt7s8Epl1WJh0HdR8ioqeEPuhKynKdelbzKkHn31GTF0I8FdcKQjnFriFIFSU2srcqAVcRYf2/zR2VF9jKfRhNHdb65pBzI7/AYUdkE7nggIaX0D8isna8CTPKENWlmRga85bGlSqZ+XclGuKnVPh6CBlPicfGiBg2xzY1nPkdQvWQsKRUXMv2axoM3vWg6FY327iI2JMHkgdKDIrSwpoM1IwoITg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AM8P250MB0057.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:3d8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Sun, 27 Apr 2025 18:57:06 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%5]) with mapi id 15.20.8678.028; Sun, 27 Apr 2025 18:57:06 +0000 Message-ID: Date: Sun, 27 Apr 2025 20:57:04 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20250427175302.8777-1-jamrial@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20250427175302.8777-1-jamrial@gmail.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <502eedbe-bde7-41a0-a8fa-4d42630456d2@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AM8P250MB0057:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d6a0158-9acd-4234-41f5-08dd85bd4e26 X-Microsoft-Antispam: BCL:0; ARA:14566002|6090799003|7092599003|5072599009|15080799006|12121999004|19110799003|8060799006|461199028|3412199025|440099028|41001999003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?cTFwdW5MQTYybGJlby9teTRHS0FrMzlXRTVGckdKS1I0d21JOVgxM0dNcUV5?= =?utf-8?B?TUJkMEZzODhhZ0hjM1gzNElpb3Flc0d6VVRXMWt0Z1l3RlVtNVJjaVdvdm1v?= =?utf-8?B?OUR4ZFY2NGFpbkJQMFd2VXIxUy8zVkdPNHlZdkZjTXA0Z241Nlk2REh2M1Rm?= =?utf-8?B?VzZZN3lub0d2Uk9DTjgrZkx3SkFqZ3NxUUVnZm9JQzJFbC9kYStIOHBTamJy?= =?utf-8?B?MlppOWdsNlRDNTFyQ2l3T0lhZHRFRVBzQ1k0ZjRrR0N5Wk9Rb2JKVWNseVpa?= =?utf-8?B?T05CL1VpVHJXME9LbWRNOStOdmFNNmxqOFRnVWZ0ZVVvUHBjSEhYRU5ydEU1?= =?utf-8?B?cjFMb1JQUFUrMVhLbXc3QlFpeUFJUnZLMG1IU3d4aTFkSGV6M0tpR04rS0M1?= =?utf-8?B?VmREQnNISTJSdmpGUUx6cyt0TzJWQ3I5RzhjdkpvaXdIRGlaUjJjN25XQ2ZT?= =?utf-8?B?RHR5ZUZNTmVNbS9SY3dsVUxrL2ExK2hVTVpTUFN0UDlVbUhBVDgzM0lvNUl3?= =?utf-8?B?NnFxRWt5UFM5S05xdllIQzFWTkV1OXUyVUlhRUZUSVRIWEltWk5TWHAyRnds?= =?utf-8?B?dGFmWFlaL291eEdwTjdxYnJBT2xtbjVuTmVtY1NZRmxBVWNkbm03ZWVrYzlR?= =?utf-8?B?MmlWU3JXU0o0UDhCQmUxL2h3L0ZZL2RkU1NqRzJuU3lMRXJOanVzVW1mUmJq?= =?utf-8?B?QmpxbVJZWW5GN2Z3OVQzR2F2WUY1akR6NlN6VHM3R2VsVnBDU1JNVnp3QWZN?= =?utf-8?B?a0xsWEJsdDNldmZVQmZ3TzUyY1lINk5QRU9pNW5CWjR5Z01yaW0vU3BaS0dX?= =?utf-8?B?aVJvT3J3WkR3ZDlBdUlCMkR5RlFqaDFGcm53UVU3eDlrbVB2cjNiVWhIU1Ux?= =?utf-8?B?SW5UeVhqRDZXUXAxQVV6NU12WXh3UVA2SHJXc0NlM0dqYjlORTJRYVZUZXNB?= =?utf-8?B?SFdDTVowalhveG9Odk1mYVA2OHNXYjJRdDk0d2poZTBQVThONEsrRUFIRm84?= =?utf-8?B?V0g4a290b0dPQ1ZGQzNzUThtN1J4dy82MVNuZUlGdkVDWHBXc2tDd2xiclUw?= =?utf-8?B?RjhhS3JXMXJIMnlweXBzcElPZ214WVdpWWVvMWo2UVFoeE1hNVZveVd0bFpD?= =?utf-8?B?WDEzVnhMckxoaXNOeHZGdzhpNjl2SFY2UDhyWDltMC9rR2JyNVR1WVpjRXU3?= =?utf-8?B?eXdsTjFEdU5NYVdZN29oZXFBeFBRVFo4M2M4RExDRlBlNzJydlpQZ3MxeUU3?= =?utf-8?B?clRWaHRrUmFvSU4xWXU2c1Y5c1gwS2RzLzZmRFR3Y1BFUE1XMDB1b3NNVDdU?= =?utf-8?B?T1Z4ZVQ5WTk3RDJjeFoxeWI2bW5VbkU2UjZsZy82ZzZlS0tnQ1BnQ0xGNWhC?= =?utf-8?B?NU03RS9aMVRwY3Y5eS9iZHVVenVzcXgrb3B3V3RzM0owemh2anFrZzczVC9L?= =?utf-8?B?cUtNNnU0OE1EdkNkYVhDSXZHMDVVTlBkNFczdWt2K2ZWclhScjJlT3lDU05a?= =?utf-8?B?L2ZYT0t3YldZQ3BnK2J2cWoyTEY2UVRGRERndThlVEN5ZU1wNzJ4U0ZEUk9B?= =?utf-8?B?Mi9RUGs1TDVQVjNXbVJTUVR3TThUREpqb2Q4bUdaRDRuZ2xWWlZGSzhZVmkz?= =?utf-8?B?UGRwZDFUUkxlcVhuRmordUtLdE0rWnc9PQ==?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?azdRakhUNjZjN0l1OHNSOERYVFJqVTc5Sm9jOEpRU2QyaWxITjF2M0RzcTJ1?= =?utf-8?B?dXZ3RVJ6MUt4WE9ja3hTY1pwY1JjQnkvdGd0ekVLazZCY21ZeE9uK2Q2R0l4?= =?utf-8?B?aGx4TXluUEQyMnN2L2tyRzNldk1jVWFJWHRiZkNlUmNTVDNydWFwZm85Qmli?= =?utf-8?B?blVlL3BDSys0M3c3SFNuTnl5czY3djZaVWZVa1BxcGovK0pZQUR4MmY4TXd6?= =?utf-8?B?WVVvazJ4dTZVaVFQRzdoZDJFQzJDYm5WWWlBTk9POGp4UlBoNlh3WGwyV2hn?= =?utf-8?B?a1Y1ajFybzB1cmVWRlJEM0lDYUswYnpneExTSS95WWF0QllUTjVscllWYkFv?= =?utf-8?B?eVJQU25UelJwR3lzN3JVREsxOHJ3L3VWUitzWEpmdjhRRTAvdlpVMDRnQzZs?= =?utf-8?B?VjZjS3pnMEVOZ3BtL3JBRTdzclUrUVlXbkQ5MTRxY2twNng0R0xLUm1zQXdK?= =?utf-8?B?bXRFY0padXVYaFZEMUZ3QmpWMEhoRzZNSjJ3UENDOTkxdUZMUGVDZ3UyL2gv?= =?utf-8?B?dE9pV2hXV0JEenBVbGsxcmZOWTlPc3ZnLzhpMHFRRW5DeUltZWNJaDBDaDNs?= =?utf-8?B?cjJ3MjI0clk0ZGp4eVpkWFJhZFFGclFRU0FOaVM4dURCMG92UFlWRExGOTdC?= =?utf-8?B?Sk5yZjFndjBFbXVtZzZZZncyajhvQkh6Mm5TS2Yzb3NEdjBFK1NLYnBPc0Np?= =?utf-8?B?R05LYURTelhyTjhpMVVHL0JhQVNwQllwVXpmd1hkUFdFK3ZZVnMwV3dFSXZl?= =?utf-8?B?UktEQVI0MURMbVlPR1FCRlN3MDMzeVBUa1BTaUlVRGxiSnY1Y3NSaG0rS2tS?= =?utf-8?B?emlBY1VTaHJMV2hZUmF4NEh0NThuTm1KVWxEOEEwZFVQK2FKZzV0UmYyYVcw?= =?utf-8?B?bUd4bzloNUhlM0dlTXZuYUxEVDJxUGV4dXpkc3NXZkE2a1pWMVM4YnY5UXZT?= =?utf-8?B?MkQ5MGdEMXY2ejhCMW9MdmFnc1djQm42K25vcGIzSWJ6SGtvMmVNVTlrMUFD?= =?utf-8?B?RWxIb08yTHBjZlBSaWhBYkhQYmlKd1UwSXR5alVDbEh4dGZHQ2xBSkErNDIz?= =?utf-8?B?SWw1YWtnVGRRZWZQTTIxLzlTMTlzUTA2dXMyVjJVL3hDMTZhTmE0T2J1cktj?= =?utf-8?B?OHNJcnNpZEdRa0VkTUs4Umw5cVIvU0wvUHVnckFrMEFRb1JCWncyUnROK1FU?= =?utf-8?B?eXd4UWc4QlErQSs3RHRtaVhkbXlyWUVhejFkK3locVYxZXRpaXY2ZjMyM2N0?= =?utf-8?B?elNlVkNxaklkVFR3YkRDWWVndDltZlpqMm8rUHlCR05DajFhR2U5S1RBcDZt?= =?utf-8?B?TTZaK1lrOFBncXI5RkUvVFVWeFg0SnNsbnZGZ1dteWNhUnl6cDZOMXZKRGVk?= =?utf-8?B?UUJySFJwM0xDdHhDc201cktPT0J6dGlSNkhkeHgvZTErS3F2U1llRkNDS3d3?= =?utf-8?B?eE5FYUZweGIvOVZZd2poK3llYndRUVdLWng3ZGtXNUxIWU9nLy9VbDl4dnFk?= =?utf-8?B?VHU1S1RLb2c3T3E1Ujd5MFl2SUU2UFpLTXhudHNaOUlYRzI1YUVLVHRHRGs3?= =?utf-8?B?RktDMEV6TytoelZLa1Jlb0pmNHMwOTZ6a1kzb1l2eW9EcUpLVXJyT1FsM1Fi?= =?utf-8?B?TXoveUVtdEE0NEpJZnJadGFZUDQ3NUtKYTRuREdSQ05sUktGNVl0UWFWMHhY?= =?utf-8?B?MFoyQWduRHpTemhzb0tMU3hJSHIrSWRoejBYUVBRcW9YdW9ZdTk3K0J1Zk8r?= =?utf-8?B?NmZuV1dKUkJDS2ZKQllvS0owSGJJZVNjT21vbGFKYk9CVGdPYmo3UDZPL3la?= =?utf-8?B?dmpXU0FKSFlyZWZERFBUZz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d6a0158-9acd-4234-41f5-08dd85bd4e26 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2025 18:57:06.6397 (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: AM8P250MB0057 Subject: Re: [FFmpeg-devel] [PATCH] avformat/apvdec: export color information 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: > apv_read_header() reads enough information that the generic demux code doesn't > attempt to read a frame to fill missing fields in codecpar, so make sure it's > set here. > > Signed-off-by: James Almer > --- > libavformat/apvdec.c | 32 +++++++++++++++++++++++++++++--- > 1 file changed, 29 insertions(+), 3 deletions(-) > > diff --git a/libavformat/apvdec.c b/libavformat/apvdec.c > index e1ac34b003..94d2ce9965 100644 > --- a/libavformat/apvdec.c > +++ b/libavformat/apvdec.c > @@ -39,6 +39,11 @@ typedef struct APVHeaderInfo { > uint8_t chroma_format_idc; > uint8_t bit_depth_minus8; > > + int color_primaries; > + int transfer_characteristics; > + int matrix_coefficients; > + int full_range_flag; > + > enum AVPixelFormat pixel_format; > } APVHeaderInfo; > > @@ -55,6 +60,8 @@ static int apv_extract_header_info(APVHeaderInfo *info, > { > int zero, byte, bit_depth_index; > > + memset(info, 0, sizeof(*info)); > + > info->pbu_type = bytestream2_get_byte(gbc); > info->group_id = bytestream2_get_be16(gbc); > > @@ -107,10 +114,24 @@ static int apv_extract_header_info(APVHeaderInfo *info, > // Ignore capture_time_distance. > bytestream2_skip(gbc, 1); > > - zero = bytestream2_get_byte(gbc); > - if (zero != 0) > + // two reserved_zero_8bits > + if (bytestream2_get_be16(gbc) != 0) > return AVERROR_INVALIDDATA; > > + // color_description_present_flag > + if (bytestream2_peek_byte(gbc) >> 7) { > + // We can read 32 bits as tile info is guaranteed to be present after this. > + unsigned color_description = bytestream2_get_be32(gbc); > + > + if (bytestream2_get_bytes_left(gbc) <= 0) > + return AVERROR_INVALIDDATA; You should check whether enough data is present before reading. > + > + info->color_primaries = (color_description >> 23) & 0xff; > + info->transfer_characteristics = (color_description >> 15) & 0xff; > + info->matrix_coefficients = (color_description >> 7) & 0xff; > + info->full_range_flag = (color_description >> 6) & 1; > + } > + > return 1; > } > > @@ -157,7 +178,7 @@ static int apv_read_header(AVFormatContext *s) > AVStream *st; > GetByteContext gbc; > APVHeaderInfo header; > - uint8_t buffer[28]; > + uint8_t buffer[64]; Don't make this buffer unnecessarily big. > uint32_t au_size, signature, pbu_size; > int err, size; > > @@ -201,6 +222,11 @@ static int apv_read_header(AVFormatContext *s) > st->codecpar->level = header.level_idc; > st->codecpar->width = header.frame_width; > st->codecpar->height = header.frame_height; > + st->codecpar->color_primaries = header.color_primaries; > + st->codecpar->color_trc = header.transfer_characteristics; > + st->codecpar->color_space = header.matrix_coefficients; > + st->codecpar->color_range = header.full_range_flag ? AVCOL_RANGE_JPEG > + : AVCOL_RANGE_MPEG; > > st->avg_frame_rate = (AVRational){ 30, 1 }; > avpriv_set_pts_info(st, 64, 1, 30); _______________________________________________ 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".