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 282A442D2D for ; Tue, 3 May 2022 21:12:28 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4C72F68B272; Wed, 4 May 2022 00:12:26 +0300 (EEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10olkn2033.outbound.protection.outlook.com [40.92.42.33]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1249968A8CD for ; Wed, 4 May 2022 00:12:19 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DraicbmZ5H3Y8cYFLZ09Lq+nIM7QijFA5/8C+UzG39LxgXAdT80Ebu3WQDHr9MCTao+VieX1Hf6oQsSl7pMb/NS8sPOmivl6X1G2aqdm5kp69VVvNVVUHkjtHeAK9xhmXTRPPh/5yMusjM3/F3nN9Af6Q+8CyLCxZwk1QbVERuKycGFZB6FIC87EXO+eN8o4yifkysxjMfAxeRrHFxpbwAu0WcFztkYCK2ishaGrbVQToK40b0pP2paXP7jm62NckMjBh8h70s0LOctw5tPJJYaQzyBAukY2eCVv29iJ8Ezrk5XOmQ1u2c1jncrHgrBrkFX8DpJT5/4k2bFiLEqkUg== 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=+iArK87gU+Q6WqPOy74iTeJCTLkntRfiMBfipc6P2cA=; b=LYFmzjw7FjiJFRuevs/f2NGMQlqwJqCQvaMZtv8f/U1tEevRXCYuKNifdhwWC3M8HWJLJOmZ7Ed3uMWNtuJHUlf9rMYQOi/ji9rQU5CHQtvO8ttqq36nihL2kw1RLFQlv+X+pv77jMQB2MyDHOpbzQvJMd9hh86LHSyKvd0g3C7QSXFSLFc3qqO4lrukYRbX0+mHgfG2UgjwTtlh9FMbRGZMKr8rLy4V41pJrdtr48mxcR24PRP8oSoNxn50LFTfTlNNjzuf8OHcXUS1mzXUYNtzcuuRS9ijrYnlRNHbegaudqYynxW1ruZHHVjW7yXsYo7Y/Wd9bcPIrMitiszr8Q== 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=+iArK87gU+Q6WqPOy74iTeJCTLkntRfiMBfipc6P2cA=; b=Oo9NoFeUQCWotANfrYWbfVtdWC7/ZIhyfzLn9aK1oCbEjDXwyYvvQuXTM0IkGUgP1MjRT1mj023fHBwFqn2Y2eJcsS7BjQhguCLD6k0rwJwi6bXqTZT775LW8gM0wOK8te7G8CnnyT5D8QGgJrqhaiktkhs65FsZrMQeMBsXIfexf6HYjFW4lL3eNa3xjJUv/Id99xlObwqDqEQjbBfZIYA4zHglA1C4hGQ8+ewhoqqu5+CRx/2sZkaRNZqlwYNyB1yGRYl1OeIbiiSOYBPomHV62LVvN0uiZiCQJAHarPEmrSjffOw5xruQJoINPUOyeYjNoRi3pWEhAVMMHIZcHw== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by BN0P223MB0086.NAMP223.PROD.OUTLOOK.COM (2603:10b6:408:146::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Tue, 3 May 2022 21:12:16 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::7472:6f83:eeb:45e3]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::7472:6f83:eeb:45e3%9]) with mapi id 15.20.5206.013; Tue, 3 May 2022 21:12:16 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH] hwcontext: Skip derivation checking for an existing device if options are set Thread-Index: AQHYXoILZYGX3frIUE+yOsehMlyWna0MR9EwgAFU0ICAAAkqQA== Date: Tue, 3 May 2022 21:12:15 +0000 Message-ID: References: <4f6deb7a-61e1-ee16-90e4-5184b7bd8230@jkqxz.net> In-Reply-To: <4f6deb7a-61e1-ee16-90e4-5184b7bd8230@jkqxz.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [7KAkE2195TY+yaF2GwQyhw3MPDCseHa0] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7abfc877-7345-4e2e-dde1-08da2d4999a0 x-ms-traffictypediagnostic: BN0P223MB0086:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: K9c9VoQ8i4RMlm+rFtBFDfNSlpu1CwBQHvZT4Ce+EgM2+Ja93Rs6KMo1Nf84a3W6nrC/XdqEPnlRoWsOXxqYdUIPaq1Lzz23sofGRz5WYVmT3EtOCG8kv3+8y8lDw53rdNZ40OWOHOaDME74r82JPehI+BlQqdCvpqpcP0BsVUy/wrGflyvIjAdQKjOVrqN8YlKeKrwttSeO0ygDvp6eqlc1TCEiSP+vNbI4eu55jpw3JQTwARwVqjH/ZDCZ4n5dGCKFg3aqmMyukK2Z+nMUXiUrQT3uP/CZVRFhLs2dOOCGiNKiA2uRdw/PaiYaCc3DaQNFLmVwMv34spdSw1tFVL0COxddZJotWqx2PBjPAO2tm1aL3WTwCwwYrqtIdA4yq9U77C/r/v67NBomoIaeiRAK83LkkusKmcW/jaXtDVTrUrPPme+O7aWusa0NB4D3F/UBHMy4HJ0HbvjPD4hS0hPl7sRWUprR60ehsTFGZUr3ED5o0AkHcd1E+RZb20/yC7budtnTO9sgyJH2tLyJdH2QLBPkUy4lCYo7i3EygtzQoPvSMt/DhyXS3tZKbk8UJkHQRwdVk0oQGomikmh/yg== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bGN2Vkh5UEQyd280TzhWenpiUkNoNzllQTh3UnJNZVI0ZlZ3MTd0RnNwUmwx?= =?utf-8?B?OUhtSnphRnkyZ1FFa2RYUGJxNjlPVjRSdjRlT2hhdjV2bUlRSnBrTWNJaGpO?= =?utf-8?B?UzlPZmdLUmV5dDlmNnFuRFgvNXgvVEd4eGZjcnRETGI2a2FKTGlnMUZraWl3?= =?utf-8?B?dTJuYWFhVThuY01GTlMvL3R3bVpGYjMxWEhLQjlyUHVyemd5c0NDSUpicWNP?= =?utf-8?B?NE53Y1ZPZzE0SDFLdFRmb2dGWi9ZNzhZeGdvd3UxQmh1dVQxem8yR1BHV0Rp?= =?utf-8?B?ai9ZcUYxYlZvekJqVS9BNC9zQXhGa3Fra0RvNkhhOCtIQ3dlQnowWjl0UmRY?= =?utf-8?B?dHpLUWdnRGE5N2tJWUVIME8zR3JGZzZMNnJJUGFuODFLcm9HSmJQZGMrM3Rl?= =?utf-8?B?a2RKWWR6QWR3andpcmJzcUY4MGs5TFQyVE5lMDBFQjdoZFVQQk53UGRGWWZt?= =?utf-8?B?eVcvZ20zTWs4M0R1Q3FYZ1d6MCtVdEtYdk9TRXNlL055V1RuSHlnRDdpYVpu?= =?utf-8?B?Tm9sT2dWODB1UzIyN2FiQTdEVWovTG1xdENsMGNIRnEzbXdKcys3OGNSM0hG?= =?utf-8?B?YjFaY1F5ek1NTThhY1QyYWNIV1lBN2JvM3ZFMUlPMU1pSitqWUVUTGtmNXlO?= =?utf-8?B?eDFkU01KblhtRTNOWkthNlAyOXNlRC9iaDc5NkZWa2h0VU4yVTlwVi9wSFNR?= =?utf-8?B?OVNlSi9LR0U4R0pGSWlHYkd1VEtDL0dEZDFhS05jNjM5QXpPQU85VTcrL1Er?= =?utf-8?B?bDhNeU03Nm4wODJMMkhjWTQyZytoZ1BIc3NGUS96dTk5ZUgrOWFFNERITjR5?= =?utf-8?B?bzBpU29Wek9IemdiTldJTjIza3RtejY1NjFIVlNVYjlLOE91REhUUkoxbjNt?= =?utf-8?B?dkFhTWUxQzczVXhjZVJTQnZwVzZIc2dLcjBKMEZMeWhxTnJCWFJpMEltd3F6?= =?utf-8?B?UmdwVzB6VjhHalArZksvVFEyS3FPaVdrOGFQQ0FNb2tMY3FLUkFJYjUzaEhV?= =?utf-8?B?VGViR0dCd1RCQ2hzUEFxcmNoU2xqenVmU2RTZGlDYVBBZ2Z3ZmQwbFVMOHp4?= =?utf-8?B?NmVrRE1xamNsZjVBeWdzMTF5a1BxSXJkN0lDOTVmY0NFaXkrY0ZrMnJBK0dy?= =?utf-8?B?cGdsOGVQWENoSE5rY01obytoYlRXelZLbDVBZHpPU1czUTlOSWFuaDZ6enF5?= =?utf-8?B?U2RoQmY1akFuMHQrbzQ3TlU0YkNBUGdseFRLbm56TUgrbXFTZ01KWitBang3?= =?utf-8?B?U2EzRUIzWGJmK082b1ZKcS9Ublloa2V1Wm5tYmZiZmZ6ZVdvc1MvdHdDQk1I?= =?utf-8?B?UTFxNGk4NWRmMzNGUDY5bmFmN0JmTjBVSy9seVlyMmZJdzltdXN4OEp0QzZR?= =?utf-8?B?TzNDSGFwRXNZb1VUaDNUNkhWNjBiVTMxYmgzUldxOEVvWHpvK01TK3BkWVFR?= =?utf-8?B?eXE1T2pmbHUycXpoNC9Gak9GdHRSQml6Q3cvOXZUY1A3eWJyWjZiWURSVnl5?= =?utf-8?B?c0YvWFBSS2RON3duTVVpdUJ4YWhDUURVRHUxcWR5ekxiZGd3Tk9mR1hyNm9l?= =?utf-8?B?VndONkhwWElvSDJjdTdna1F5bDZpN3dpWXY3M3FHeHJOeVM4NU85KzNMZFdR?= =?utf-8?B?T0d4dVVYQk1CQkFNcllUNys0M1NabFVqcjZwSUs2UUR1aTZhSE15VUNTR1RY?= =?utf-8?B?L2llbFJyVDZMZjRKQTdEdlRwZVUzZkQwOG1CUHBid1crVkxFNnRrQmtlRE9i?= =?utf-8?B?MUhNNzlQTnJIMWVaR0VyL3kva21FUHExa2wwNi9SWk80ZUFJZUZaL1EwWFVs?= =?utf-8?B?YVZ4Q2IreXhGeHB1MEhzMFByc3BydXZxRTV6bnRRKzF6YnlLdTkrWGlwOS9G?= =?utf-8?B?R3pVd0ZsYzhWQS9MYjg1OFhhUEJvcDV5bXdET3FqbGg0Z0l0N0d2UDQwQVNy?= =?utf-8?Q?0/o9CdnPyZg=3D?= 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: 7abfc877-7345-4e2e-dde1-08da2d4999a0 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 May 2022 21:12:15.9509 (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: BN0P223MB0086 Subject: Re: [FFmpeg-devel] [PATCH] hwcontext: Skip derivation checking for an existing device if options are set 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: > -----Original Message----- > From: ffmpeg-devel On Behalf Of Mark > Thompson > Sent: Tuesday, May 3, 2022 10:32 PM > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH] hwcontext: Skip derivation > checking for an existing device if options are set > > On 03/05/2022 01:14, Soft Works wrote: > >> -----Original Message----- > >> From: ffmpeg-devel On Behalf Of > Mark > >> Thompson > >> Sent: Tuesday, May 3, 2022 2:09 AM > >> To: FFmpeg development discussions and patches >> devel@ffmpeg.org> > >> Subject: [FFmpeg-devel] [PATCH] hwcontext: Skip derivation checking > >> for an existing device if options are set > >> > >> If options are set then the user definitely intends to create a new > >> device, so we shouldn't attempt to return an existing one. > >> --- > >> libavutil/hwcontext.c | 26 ++++++++++++++++---------- > >> 1 file changed, 16 insertions(+), 10 deletions(-) > >> > >> diff --git a/libavutil/hwcontext.c b/libavutil/hwcontext.c > >> index ab9ad3703e..c4e01e0e78 100644 > >> --- a/libavutil/hwcontext.c > >> +++ b/libavutil/hwcontext.c > >> @@ -653,18 +653,24 @@ int > >> av_hwdevice_ctx_create_derived_opts(AVBufferRef **dst_ref_ptr, > >> AVHWDeviceContext *dst_ctx, *tmp_ctx; > >> int ret = 0; > >> > >> - tmp_ref = src_ref; > >> - while (tmp_ref) { > >> - tmp_ctx = (AVHWDeviceContext*)tmp_ref->data; > >> - if (tmp_ctx->type == type) { > >> - dst_ref = av_buffer_ref(tmp_ref); > >> - if (!dst_ref) { > >> - ret = AVERROR(ENOMEM); > >> - goto fail; > >> + // If we were derived (possibly transitively) from a device of > >> the > >> + // target type then we want to return that original device, > >> unless > >> + // options are set in which case we can skip this check > because > >> it > >> + // is definitely intended to create a new device. > >> + if (!options) { > >> + tmp_ref = src_ref; > >> + while (tmp_ref) { > >> + tmp_ctx = (AVHWDeviceContext*)tmp_ref->data; > >> + if (tmp_ctx->type == type) { > >> + dst_ref = av_buffer_ref(tmp_ref); > >> + if (!dst_ref) { > >> + ret = AVERROR(ENOMEM); > >> + goto fail; > >> + } > >> + goto done; > >> } > >> - goto done; > >> + tmp_ref = tmp_ctx->internal->source_device; > >> } > >> - tmp_ref = tmp_ctx->internal->source_device; > >> } > >> > >> dst_ref = av_hwdevice_ctx_alloc(type); > >> -- > > > > This doesn't implement the matching of device parameters, which you > > were talking about: > > > > You said that when deriving a device, an existing device should > > only be returned when the parameters are the same. > > > > This patch is doing something quite different. > > Why would that be useful in the current design? As the documentation > on create_derived states, it has two independent uses - this is the > "retrieve source device" case, and for that it does not make sense to > set the options argument because no new device is being created. I thought you were saying that when deriving a device with extensionParam1 an existing device should be returned when it was also derived with extensionParam1 but when there's no existing device of the requested type _and_ matching parameters, then a new derived device should be created. Maybe I understood wrong? Kind regards, 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".