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 1436744FEA for ; Wed, 15 Feb 2023 09:30:29 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5F68868BE04; Wed, 15 Feb 2023 11:30:25 +0200 (EET) Received: from mail8.parnet.fi (mail8.parnet.fi [77.234.108.134]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B1E5168BBDE for ; Wed, 15 Feb 2023 11:30:18 +0200 (EET) Received: from mail9.parnet.fi (mail9.parnet.fi [77.234.108.21]) by mail8.parnet.fi with ESMTP id 31F9UGm6016363-31F9UGm7016363 for ; Wed, 15 Feb 2023 11:30:16 +0200 Received: from foo.martin.st (host-97-187.parnet.fi [77.234.97.187]) by mail9.parnet.fi (Postfix) with ESMTPS id 6DB73A1527 for ; Wed, 15 Feb 2023 11:30:16 +0200 (EET) Date: Wed, 15 Feb 2023 11:30:14 +0200 (EET) From: =?ISO-8859-15?Q?Martin_Storsj=F6?= To: FFmpeg development discussions and patches In-Reply-To: <20221209124941.GB66771@haasn.xyz> Message-ID: References: <20221209124941.GB66771@haasn.xyz> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="8323329-920635384-1676453416=:2685" X-FE-Attachment-Name: yuv2yuv.c X-FE-Policy-ID: 3:14:2:SYSTEM Subject: Re: [FFmpeg-devel] Towards YUVJ removal 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-920635384-1676453416=:2685 Content-Type: text/plain; charset=US-ASCII; format=flowed On Fri, 9 Dec 2022, Niklas Haas wrote: > So, as was discussed at the last meeting, we should move towards > removing YUVJ. Libswscale still does have cases where it doesn't work correctly, for some conversions, unless differences in range is signalled with the YUVJ pixel formats (this, despite that swscale itself warns that the user is specifying the deprecated pixel formats). Attached is a small testcase example, which uses swscale to convert from YUV to YUV, with various color spaces and ranges. When converting from limited to full range or vice versa, within the same colorspace, swscale fails to realize that this isn't a no-op operation, unless the YUVJ formats are used. When running the attached test example, I get the following output (modulo swscale warnings): red 601 limited -> 601 full YUV 49,109,184 -> 38,106,192 red 601 full -> 601 limited YUV 38,106,192 -> 49,109,184 red 709 limited -> 709 full YUV 39,115,184 -> 27,113,192 red 709 full -> 709 limited YUV 27,113,192 -> 39,115,184 If the example is modified to always set yuv_{in,out}->format to AV_PIX_FMT_YUV420P, then swscale no longer actually does any conversion: red 601 limited -> 601 full YUV 49,109,184 -> 49,109,184 red 601 full -> 601 limited YUV 38,106,192 -> 38,106,192 red 709 limited -> 709 full YUV 39,115,184 -> 39,115,184 red 709 full -> 709 limited YUV 27,113,192 -> 27,113,192 So this is yet another small detail that needs to be fixed before we can proceed towards actually removing the YUVJ formats. // Martin --8323329-920635384-1676453416=:2685 Content-Type: text/x-csrc; name=yuv2yuv.c Content-Transfer-Encoding: BASE64 Content-ID: <57ce1efd-ca2a-c16e-93f1-4e80c55b4168@martin.st> Content-Description: Content-Disposition: attachment; filename=yuv2yuv.c I2luY2x1ZGUgPGxpYnN3c2NhbGUvc3dzY2FsZS5oPg0KI2luY2x1ZGUgPHN0 ZGlvLmg+DQoNCnN0YXRpYyB2b2lkIHl1djJ5dXYoaW50IFksIGludCBVLCBp bnQgViwgaW50IGluX2NvbG9yc3BhY2UsIGludCBwYXJhbV9pbl9mdWxsLA0K ICAgICAgICAgICAgICAgICAgICBpbnQgb3V0X2NvbG9yc3BhY2UsIGludCBw YXJhbV9vdXRfZnVsbCwgY29uc3QgY2hhciogbmFtZSkNCnsNCiAgICBBVkZy YW1lKiB5dXZfaW4gPSBhdl9mcmFtZV9hbGxvYygpOw0KICAgIHl1dl9pbi0+ Zm9ybWF0ID0gcGFyYW1faW5fZnVsbCA/IEFWX1BJWF9GTVRfWVVWSjQyMFAg OiBBVl9QSVhfRk1UX1lVVjQyMFA7DQogICAgeXV2X2luLT53aWR0aCA9IDEy ODsNCiAgICB5dXZfaW4tPmhlaWdodCA9IDEyODsNCiAgICB5dXZfaW4tPmNv bG9yX3JhbmdlID0gcGFyYW1faW5fZnVsbCA/IEFWQ09MX1JBTkdFX0pQRUcg OiBBVkNPTF9SQU5HRV9NUEVHOw0KICAgIHl1dl9pbi0+Y29sb3JfcHJpbWFy aWVzID0gaW5fY29sb3JzcGFjZTsNCiAgICB5dXZfaW4tPmNvbG9yX3RyYyA9 IGluX2NvbG9yc3BhY2U7DQogICAgeXV2X2luLT5jb2xvcnNwYWNlID0gaW5f Y29sb3JzcGFjZTsNCiAgICBhdl9mcmFtZV9nZXRfYnVmZmVyKHl1dl9pbiwg MCk7DQoNCiAgICBBVkZyYW1lKiB5dXZfb3V0ID0gYXZfZnJhbWVfYWxsb2Mo KTsNCiAgICB5dXZfb3V0LT5mb3JtYXQgPSBwYXJhbV9vdXRfZnVsbCA/IEFW X1BJWF9GTVRfWVVWSjQyMFAgOiBBVl9QSVhfRk1UX1lVVjQyMFA7DQogICAg eXV2X291dC0+d2lkdGggPSAxMjg7DQogICAgeXV2X291dC0+aGVpZ2h0ID0g MTI4Ow0KICAgIHl1dl9vdXQtPmNvbG9yX3JhbmdlID0gcGFyYW1fb3V0X2Z1 bGwgPyBBVkNPTF9SQU5HRV9KUEVHIDogQVZDT0xfUkFOR0VfTVBFRzsNCiAg ICB5dXZfb3V0LT5jb2xvcl9wcmltYXJpZXMgPSBvdXRfY29sb3JzcGFjZTsN CiAgICB5dXZfb3V0LT5jb2xvcl90cmMgPSBvdXRfY29sb3JzcGFjZTsNCiAg ICB5dXZfb3V0LT5jb2xvcnNwYWNlID0gb3V0X2NvbG9yc3BhY2U7DQogICAg YXZfZnJhbWVfZ2V0X2J1ZmZlcih5dXZfb3V0LCAwKTsNCg0KICAgIG1lbXNl dCh5dXZfaW4tPmRhdGFbMF0sIFksIHl1dl9pbi0+bGluZXNpemVbMF0gKiB5 dXZfaW4tPmhlaWdodCk7DQogICAgbWVtc2V0KHl1dl9pbi0+ZGF0YVsxXSwg VSwgeXV2X2luLT5saW5lc2l6ZVsxXSAqICh5dXZfaW4tPmhlaWdodCAvIDIp KTsNCiAgICBtZW1zZXQoeXV2X2luLT5kYXRhWzJdLCBWLCB5dXZfaW4tPmxp bmVzaXplWzJdICogKHl1dl9pbi0+aGVpZ2h0IC8gMikpOw0KDQogICAgc3Ry dWN0IFN3c0NvbnRleHQgKnN3cyA9IHN3c19nZXRDb250ZXh0KHl1dl9pbi0+ d2lkdGgsIHl1dl9pbi0+aGVpZ2h0LCB5dXZfaW4tPmZvcm1hdCwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXV2X291 dC0+d2lkdGgsIHl1dl9vdXQtPmhlaWdodCwgeXV2X291dC0+Zm9ybWF0LA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LCBOVUxMLCBOVUxMLCBOVUxMKTsNCg0KICAgIGludCBpbl9mdWxsLCBvdXRf ZnVsbCwgYnJpZ2h0bmVzcywgY29udHJhc3QsIHNhdHVyYXRpb247DQogICAg Y29uc3QgaW50ICppbnZfdGFibGUsICp0YWJsZTsNCiAgICBzd3NfZ2V0Q29s b3JzcGFjZURldGFpbHMoc3dzLCAoaW50ICoqKSZpbnZfdGFibGUsICZpbl9m dWxsLCAoaW50ICoqKSZ0YWJsZSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJm91dF9mdWxsLCAmYnJpZ2h0bmVzcywgJmNvbnRyYXN0LCAmc2F0 dXJhdGlvbik7DQogICAgaW5fZnVsbCA9IHBhcmFtX2luX2Z1bGw7DQogICAg b3V0X2Z1bGwgPSBwYXJhbV9vdXRfZnVsbDsNCiAgICBpbnZfdGFibGUgPSBz d3NfZ2V0Q29lZmZpY2llbnRzKGluX2NvbG9yc3BhY2UpOw0KICAgIHRhYmxl ID0gc3dzX2dldENvZWZmaWNpZW50cyhvdXRfY29sb3JzcGFjZSk7DQogICAg c3dzX3NldENvbG9yc3BhY2VEZXRhaWxzKHN3cywgaW52X3RhYmxlLCBpbl9m dWxsLCB0YWJsZSwgb3V0X2Z1bGwsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJyaWdodG5lc3MsIGNvbnRyYXN0LCBzYXR1cmF0aW9uKTsNCg0K ICAgIHN3c19zY2FsZV9mcmFtZShzd3MsIHl1dl9vdXQsIHl1dl9pbik7DQoN CiAgICBwcmludGYoIiVzIFlVViAlZCwlZCwlZCAtPiAlZCwlZCwlZFxuIiwg bmFtZSwgWSwgVSwgViwNCiAgICAgICAgICAgeXV2X291dC0+ZGF0YVswXVsw XSwgeXV2X291dC0+ZGF0YVsxXVswXSwgeXV2X291dC0+ZGF0YVsyXVswXSk7 DQp9DQoNCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pDQp7DQog ICAgeXV2Mnl1dig0OSwgMTA5LCAxODQsIFNXU19DU19JVFU2MDEsIDAsIFNX U19DU19JVFU2MDEsIDEsDQogICAgICAgICAgICAicmVkIDYwMSBsaW1pdGVk IC0+IDYwMSBmdWxsIik7DQogICAgeXV2Mnl1digzOCwgMTA2LCAxOTIsIFNX U19DU19JVFU2MDEsIDEsIFNXU19DU19JVFU2MDEsIDAsDQogICAgICAgICAg ICAicmVkIDYwMSBmdWxsIC0+IDYwMSBsaW1pdGVkIik7DQogICAgeXV2Mnl1 digzOSwgMTE1LCAxODQsIFNXU19DU19JVFU3MDksIDAsIFNXU19DU19JVFU3 MDksIDEsDQogICAgICAgICAgICAicmVkIDcwOSBsaW1pdGVkIC0+IDcwOSBm dWxsIik7DQogICAgeXV2Mnl1digyNywgMTEzLCAxOTIsIFNXU19DU19JVFU3 MDksIDEsIFNXU19DU19JVFU3MDksIDAsDQogICAgICAgICAgICAicmVkIDcw OSBmdWxsIC0+IDcwOSBsaW1pdGVkIik7DQogICAgcmV0dXJuIDA7DQp9DQo= --8323329-920635384-1676453416=:2685 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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". --8323329-920635384-1676453416=:2685--