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 3729A437EC for ; Tue, 28 Jun 2022 21:38:55 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0DED668B99F; Wed, 29 Jun 2022 00:38:52 +0300 (EEST) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02olkn2106.outbound.protection.outlook.com [40.92.43.106]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 987A768B741 for ; Wed, 29 Jun 2022 00:38:45 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KsjJxBo0NiKvzKnJidC4lXPF0uPjQDJdRt805Z2IEhkNJUIMNrQhkihsXeGPpsLJ79Os3lezwkQgM3NSNVwfpZWYoNgxgNaZBGrXGlWDtXMWuj3M62CNjOcqBj8LKPS/GliX/pDby712O7lu7mAwlJzGzvmgWWgDA9xFLMdBEKOHXxQj0Mz2+wSSmHDgsLZlZwssp7KJbCWXxuGl8ktvcv3ByPa/xiduJtpANZcNX+TXbE4eVGJAvjfeWIqaPkiX7mDWehTdt92rT1O5yATziaMjGLHLO0Xx2TmbhQuNNR/u+gHB3VEtzAj9wSW2SgQ7qNV5fR/kWxSauCpWCVACzA== 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=U4HomUmQxStIbDp/NjTnIi7qh2s4j41KKjJL8z3HXEs=; b=AleX6m02qnyneXOwg2IVdz63ia3P8ttMbPHUKQ0X2/z6b7CRaxcibcQudnF6iiAIE7VnjSlpWKpZ6tuR7mLb3GURY9QgoM27fSr+LoJI/GnVwRggexfmUxj2KVsg5slP4Io/uh/c0rJ3okgTJRLVEvCtwCo1Sx/VK73sCAjVfs2GY6nvGYczOxyrBZboMsijMTqtbkJAUuBOq5Y3rtIc+R4PykkpFLO/7ojJvEoSQ/dgBEK+Zd7JN5XDcStgLLvvF4gALB/+Ic+tslM0I6hDOIrJ+ZCnXah33JYMTj9gUvuKAZpJLRO1Tl8zhWOIgYUnBBIlVyaWnj2Ldnb35DW0IA== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=U4HomUmQxStIbDp/NjTnIi7qh2s4j41KKjJL8z3HXEs=; b=Ib0ndMB5dg/cwStHgb+ZY9l5I1iVcyRNPmlBTKWOLHRAZsPh7ltuxQwrPw5+DDIFTrf3JnRKlywdyA6L3Gcu0C4weoyaM/OS95F+Kl2R5yLy5uRb9GQyr0mTFZaMiQvRypc7zsoZw5+KjF/l6tMYbxlm/DZD5xS0Bk2zb0k1rvURiNOgmBroqVD62fIJqef/hCrYNTmDl4ruFQaAAKLfXwQjFNYmqvAJZ3bFREvvFC96VuEZ2wwQ8/lptnMflpuMjWgI1775+ocg7J0Y+mEePRA+zCtH26hUSfNj+K7gyKmPS2PcQBHHgFNpZLBc/IzMGSsUWblI6NYcQB/IKEjojA== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by BN0P223MB0024.NAMP223.PROD.OUTLOOK.COM (2603:10b6:408:15d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.17; Tue, 28 Jun 2022 21:38:42 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::d9e4:ced6:ab31:c231]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::d9e4:ced6:ab31:c231%2]) with mapi id 15.20.5373.018; Tue, 28 Jun 2022 21:38:42 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [RFC] Bug in colorspace.c Thread-Index: AdiLMlNx0UH/ez5oRnGp90vokB8TAw== Date: Tue, 28 Jun 2022 21:38:42 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [Xg+iaA0P5xW0EtGX55RQTriIuLe66mK3] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e38d716f-4d85-4308-fa3e-08da594e922e x-ms-traffictypediagnostic: BN0P223MB0024:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xX0B7ZOCNL8KE2xCDqSotFezRThkYiJxops2rvbI+072K61soYLO8OHurkL3LnQEw9CBwDJVvL8fbQ+yAbcXBh5eIzPgxvgRoynG+0ec7mDh/L3OCeKOMNvU7em9v6Kmz0G+++NXYzO0mhHIJL/Rzor84szigrFjYFH5zAEBMtbwG5tXGVunriM53WF2RG87nk4QEiiXfwnWDk8zZbHmZpbXcVctJkeopsg7yFA7NaQ+3CUC1L4tksvGtJH8EOTgyQqLPK70QjNJ6ZpUHX9KjzithgpFkYhO6WzXL4A/nVc2sP7NNQUNsRbVwvylYVTd5bX+b+VtMWj9WMuII0ve3YCNAmohLKV041Pwdj7nFvOCsnC8EJx2ipml/sOoEhWSqJyl3PSiTwYpeKH3ZKnEf+szpu5A5XXOrPvpcTKa57pblY/IMULC3GSiyf64aPKtFYp2Z3P/MtVl5he6bI34p2f8drC1WJynw/Y5eNsI24Dd76ek2GtcEvq3VUMriQFQiubGBaDXTeiA0Vlqu7MR0L/WKqbhXwx/tbDotNKvMghscRIDV0CcLtZcoDZtCM49r6L6S4sParLjfXW95sMhhh95hmXRfUPjIB4TLQt8mEhZNyq7VQexQAlELMnV5WRq x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UVorSnhjT3dBWDJyZXh2dnVaSjhTVVNyQmlBcVJQMCtTRjBtUmE1cW5seFBD?= =?utf-8?B?ZkVNSkE2eDlEeGIvWnV2bnVVZGtxN3h3cHdkUk8xS2NrMUllZ1JRZ28zdCs5?= =?utf-8?B?OEF2ZWNZMi94amxSd2Zhc3dBVnlRK21zbzlGTnl6R1RKMW5tT2hrZjZZckxz?= =?utf-8?B?SXM4d2JVeG5EUmE4QzlyeUtJY0RhYjBES3dJU201TzFPUmpIYk8wcDFvSzdi?= =?utf-8?B?VS91NGdWVUZQSmJDWGxEQlNjVEJQRFpxTnhFYnh0TWJ0VVlQaTMvNHNMZjJq?= =?utf-8?B?ejhFZjlEQnViRDVGdlEvQThUY01kZis0TVJBWlU2THljK1FRNFBOeUpoSUNB?= =?utf-8?B?NVlPYUVFcjQzbzFaaFJFVlRvOFpCSnFucFhScjh6bDREOUZ3Q3J4VFZCQlBk?= =?utf-8?B?NkpVcndxdzEzQ0doRlNNRW1WUE5EdTRmTjJpKys5NDM0NGYzaDRjTXAvYjFu?= =?utf-8?B?OWx5NEZUZXU0WWk2S1ZKUW5MNE90alRrODBOd0JHZmZvaHZKdnVHc0lGR1Y4?= =?utf-8?B?OUh1UHJQKzF1RGJQUThHdm5oTWtrT1c1czZ5U0FXL20zd2V2dGo4VXJSSldi?= =?utf-8?B?RytXVUZsTXN4WnhLVFh0aE5PNFg4WVd3djJLSHJpK2tQQUhPN3dTT3pETjhZ?= =?utf-8?B?UDFFOGtDVGpwSTVGR0JTMkRTZXQ4c2Rtb2IvMlJ4MnZyRVBEZVl6emhUUWFS?= =?utf-8?B?OGY1UndiTU5uQ3NSQnIzZFZPRmRjZkJZNmNYN01JYkJtYlhHR0tkM2M1UFZM?= =?utf-8?B?OUZGUW5wQUFsZ0lDOWMrbTM1NFBjRGN2Yk4xUUhjWFF5UTY3OFdCR29ncGVE?= =?utf-8?B?T0FVMzFsSHFZM0JIL0M4bGwxZG04QWFqSEI4VHBLOHZGYlEwdVRYUW4rczI0?= =?utf-8?B?OXRjNzBIQlMySzd6UkRtM2QrVlFvU2xydnJXcUpEZDZmL1VpYzVWcGZUdGdl?= =?utf-8?B?OWZzNjlMRHR6U3hQd2dYeWZLTjVibzVrTW9NbjRSK1ZaTm5HT0p0bmhVbk5W?= =?utf-8?B?OThGSmo5RTFNZlEyckw5N0pGa0lsMUxVTHNlNTQ2L1N4UnlzK25CSWY4bnR1?= =?utf-8?B?cnRrODl6NnE1VkZ4OHZ4alVmSTJTUS9LSUNHQzN3ZHRScDVCMzcrMkZ0RjZN?= =?utf-8?B?OXFwTlFzRFJlaE9iVHAzVmgwbFJyTUU5UytiQXI0ZHk3Ykc2ZHJHVjM1ckNo?= =?utf-8?B?Zm5weGxIK2xPbFZ4RkoyK1owRGhrd20wZUl2bDB1SlBaVlJoTHVxMmdTc3dN?= =?utf-8?B?WGxqZEZEb2pGNDI5UFV1eVF2NFN1QUF4MFhxQ01STDdKMmJCd2JFM1AvQnd2?= =?utf-8?B?UXhvR1Axb3dXcG9XamthMlV2dU5xWVFBRHV0YmxCdTVnT0FCUHNmZlZZdVNq?= =?utf-8?B?ZzZTSlRPbkRES3NzWjVGUStDbDBwVEtLZVY0S2d2L3dURmxMZ24vUE41eVdp?= =?utf-8?B?RktGNnk3c3IxeC9ZZlozcW90YWMzdXVTVEUvbzZCYXlBaTloejlra2p5b0Nu?= =?utf-8?B?cTRhbWg0TGRwN2xZd3FDc25KZTV6Qk50OGVremNGdGJ3cGF2RmdZVDlQMjk1?= =?utf-8?B?OVpGREd1d21EN1AwdEs0NmhBUWRmYmRwcm1pamNWalE2aU84VlFNcUVpblVJ?= =?utf-8?B?R094eVJwcERNNnhsODhRcGVwNEhXRm9kK1VvSmhzWEU4eWRONTJvTHcwK0ZR?= =?utf-8?B?U3o2b0QrZE5aWndqUFUrNkVWRGNIVVQzMW1iMklYZjUwd0NDbTRFb09RPT0=?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: e38d716f-4d85-4308-fa3e-08da594e922e X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jun 2022 21:38:42.0907 (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: BN0P223MB0024 Subject: [FFmpeg-devel] [RFC] Bug in colorspace.c 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: Hi, in colorspace.c, there are two functions with contradicting behavior regarding reading/writing the max_luminance value from/to AVMasteringDisplayMetadata. The code seems to be unchanged since 3 years: 1. ff_determine_signal_peak() sd = av_frame_get_side_data(in, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA); if (!peak && sd) { AVMasteringDisplayMetadata *metadata = (AVMasteringDisplayMetadata *)sd->data; if (metadata->has_luminance) peak = av_q2d(metadata->max_luminance) / REFERENCE_WHITE; } 2. ff_update_hdr_metadata() sd = av_frame_get_side_data(in, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA); if (sd) { AVMasteringDisplayMetadata *metadata = (AVMasteringDisplayMetadata *)sd->data; if (metadata->has_luminance) metadata->max_luminance = av_d2q(peak * REFERENCE_WHITE, 10000); } The latter function writes the value as an AVRational with a denominator of 10000, but the former function doesn't multiply the value by 10000. So - both cannot be right. In fact, there seems to be some confusion about the base/range of this value. I had found contradicting code somewhere in libva or Intel Media Driver code a while ago, and I have also seen videos with both "kinds" of values. This might be a chicken-egg issue, though: maybe those other files I've seen were created by ffmpeg and subject to this bug. I'm not sure.. As I needed a practical rather than an academical solution, I ended up using a check on the value range to determine whether to multiply by 10000 or not (function 1). I won't submit this as a patch because somebody would shout out "hack" anyway, while I see it more as an adaption to reality :-) Anyway, the second function for writing the value should definitely do it in the right way - unfortunately it can't do without a sane input parameter, which in turn can only be ensured with said "hack". For now, I just want to point at the problem as I don't have a clean solution to offer, but I'd be interested in others' thoughts. Best wishes, softworkz _______________________________________________ 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".