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 74B444385C for ; Tue, 2 Aug 2022 07:57:28 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ECE0268BA71; Tue, 2 Aug 2022 10:57:26 +0300 (EEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 36F1668B7C9 for ; Tue, 2 Aug 2022 10:57:20 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1659427045; x=1690963045; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=VWf4oABblypO4u/RzmITLoSy1AR3HRMqoVJH72AEe6I=; b=d8d7id7b9k2d7vdNI9DHdpJW861dzxQV/U4TCtvAiQAa9jdjere9L1Ae 1Os84m3yTspusMXQMMjRfqjXUNHvLPwWSu5ZvJq2uCN4YWZJh2q38o7D6 Hg7Al8bD+T/OCQa01xKpNnL1q5xkpChFNGPEfWCxjD4SSWOL8JERrqzjr zxyfa0b6kMQy2WDlsvjWh2rqCaFZnXl4WGi3q609IzUU2c9rAJxD9baP8 UPC7V5Akp1xH8CHgFBOk0OhqaT79T4AHzlhzF7gvFF1kRVyMp6oVwOYRm 9dwGGWT3YT+BV+eFmEGSfqd4lElxOQxEV1AJ8JRKedMeSF3rv2nnuMCxF g==; X-IronPort-AV: E=McAfee;i="6400,9594,10426"; a="276258634" X-IronPort-AV: E=Sophos;i="5.93,210,1654585200"; d="scan'208";a="276258634" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Aug 2022 00:57:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,210,1654585200"; d="scan'208";a="848119290" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by fmsmga006.fm.intel.com with ESMTP; 02 Aug 2022 00:57:18 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Tue, 2 Aug 2022 00:57:17 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Tue, 2 Aug 2022 00:57:17 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28 via Frontend Transport; Tue, 2 Aug 2022 00:57:17 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.177) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.28; Tue, 2 Aug 2022 00:57:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eukB8e57J9Ff6NDdPPifywyUcGDFd3PlGE1bkeRbF8paev88n/Tp1EqGH8r39piJ5qALPcVMQCilVbQIuTCpQ1tcV6fBOuuZcM7jg6oIV2vyo/w6g4dd5KnczSFwzneigdWdYtIocmG7dW06MYH2xvpCaCFNiLXoVVXY1m4xtY00v+rWmzNSGBf5eJvkpbCrYxYMzU/QY+gcuo4z4tO0DGgLlOYA00r44f+J+KdEm8fy4+onEtpbFPT3GFcyYtUsKAKqWpew6HzoA06zKCWqv4bNE6a8jV2NWpHvsxB8pufhYCKP8d150ZVJKeia89L5GW1ExScBNMjwRq7+iN/Qng== 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=VWf4oABblypO4u/RzmITLoSy1AR3HRMqoVJH72AEe6I=; b=mLJ+wmnFC3y3WmSHWLGrx23ASINWfEkEFmBFvm8YuNXfI8psVQBYENwcCUs8WJqfLex0S4Ybz/OVdxNgNq7YK1uE2hSOma80GCzbzqGo1Tv7QEYV2PXQTWjffKpF19kBOngnHqddlk2rdzvipkIaMWT6U2flHBRYVBXtdUXKgutVkL/1B91ER/KCXqxkDjPXfL1yoweFHYnzBkgF6ErdS4BrrHtYssYgsQyTh6esWLW5t683LGclulgkNT+e+HVzrQGpzw9v5sNAOGT2inJlPeG4QidGxSlrVKmSD6baOajy4uKjLZOw6NBHYsu8rnwuQ8Iqu3z4OGJn2APJZjT0eg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by PH8PR11MB6611.namprd11.prod.outlook.com (2603:10b6:510:1ce::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.11; Tue, 2 Aug 2022 07:57:16 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::8444:e015:794f:441b]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::8444:e015:794f:441b%3]) with mapi id 15.20.5482.016; Tue, 2 Aug 2022 07:57:15 +0000 From: "Xiang, Haihao" To: "anton@khirnov.net" , "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v3 2/2] ffmpeg_opt: consider HW acceleration method when selecting decoder Thread-Index: AQHYn99jc/dnEsghc0iKqxd9ts1uoK2ZzeSAgAF9UQA= Date: Tue, 2 Aug 2022 07:57:15 +0000 Message-ID: <2459fa31f2d16d072660acc19ab7bd5a9188ef32.camel@intel.com> References: <20220725043051.9692-1-haihao.xiang@intel.com> <20220725043051.9692-2-haihao.xiang@intel.com> <165934514745.15471.3243258857472976626@lain.khirnov.net> In-Reply-To: <165934514745.15471.3243258857472976626@lain.khirnov.net> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.28.5-0ubuntu0.18.04.2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 99105da0-0f47-481d-cf77-08da745c9dab x-ms-traffictypediagnostic: PH8PR11MB6611:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zZwZ6SukqalfX75l86TWdmnbVpS8MVnhQt5GuHO0ixYeYCctAtA7+P+xQ6+V99HO63AJterEy4eHdYUeDVvP5UCQ76a2kC8JuuaeCnbQLTXgGMrzKAea/LgklQs3Nld3tdMGsu3aP7dJGu8RZBroIdUXldoylZUcG+LB5Zge6NGhobASGaZzdqMS2och3DU+wP/Fxs7ZcPFqY1PZkN+eWlck3Y8sujWvRx6iY+MnDOuzLU2rDoXnmbt+9/5vxHNc5KLF/pG3Et3jLXg0zlhKPMJi9E1pCxDU+3bydsW8KPVJvU0lypgNEZoEYQtMITZ1kJba+eurQmTmMHQbekut+7hEBZUpXOp/WZMjzu5Qkq95JhM8Hr2yvjjRkHjkNh8pUP3nw6nEujP1G1Xqj6YxfLQSaZnnEE2kr64WuhqtKOmK+k7h2wBLCRtnHKT2Sp99FfrRAm+UPmATifEmCY2GfEAfQbJP7p1P9Pz3BNXJv0NqeCcVNdpAUMxoP+kCO5XRLEGxcIHDLCeQ19CHsC1NmCTo3uTj04jorxAqpOi/LM8z3hPhLV7SAR0SfcHtqXJVXfUlinIKO40+usD73pqiTwnsYdJfaRX3PRfVR7O5fnNxc0J9shgyIlJSgOvH7ZqKYAqtu4rCK4AXSJg9hO88N0hJ+xpeGstQDYBjW0rTFO9PC11YZaojcxf6uDaVBS9G30xWLEWiYmT028JepwHCqII9D8/34ZG8tDuo6HH7jw3l0HLFZL3pnJUEHJT4lC3YieS+51Own/fNy3TEn2I3qxSwA+j9CwwYbHdYBSAWLjgL/RZumeOzBqT9cAxDS7ZjS89KLfO8wA7Nsz3Cgi4YWg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5515.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(39860400002)(366004)(376002)(346002)(396003)(136003)(6506007)(41300700001)(6512007)(26005)(316002)(110136005)(86362001)(478600001)(6486002)(71200400001)(82960400001)(38070700005)(122000001)(38100700002)(2616005)(186003)(66446008)(91956017)(2906002)(36756003)(66946007)(76116006)(66556008)(8676002)(66476007)(64756008)(8936002)(5660300002)(99106002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bmFQSnZKeVJaUnVLSFFvS1BkUHY4WVpZVUpUMi9iY0dOMHhETVU4d0lIN2pa?= =?utf-8?B?YlRzaTdna3dNcTUyTFdkL1ZaUWlOT2R4SWRFRHhiMUoyS21tZEdvK0dxZWFk?= =?utf-8?B?Y3FKczl4NXJGak1pZlVScE42QWc1bFFPTXQzcTR2T3lBL2h2M1VmdW5kTmlB?= =?utf-8?B?STdpMVlhVWpEdk9kaFRDYzVCdDZYblBsakVWZ3U1N2ZsYUpsdGRTenJ0dEJO?= =?utf-8?B?Z1JDT285bStCSlpQZmN5Vk9UR2xVbG9JZk5WUGlOdzN1OEh6V0JwWXJ0MFZD?= =?utf-8?B?T0NJSXVzU2hXR05TK2hFckFFYzRKTXpuNmliQk9VdE5zVHVaSzFoQXg0eGF6?= =?utf-8?B?MUVmRFkzcU9ZSVN2VXhhajRpL0dSbjNIejFUcXA4UkpLNUVFWk0yakJ2akM5?= =?utf-8?B?bEluekpiUUdSUE4zNVBpT3dqVWM3NzA0U1NsVERBN3RYS0xDUmFTbzVyVVFJ?= =?utf-8?B?YXV2V2l6dVYxUTVuYzFZZThMR2plVGsvcWRoT1U0V0x2WkNLNFFuRnJ5Sjhu?= =?utf-8?B?YjhGS0dvNlZrcWVsK2pVb2I3cDMwWGltRzVHQWJVL2MzZCtFZEx6a2h2SVN5?= =?utf-8?B?dXRyVjVrRFBLZ1JXMDJtZGpDM0dXbStiSlArZzczOWlVQjlQWFdTZVVlbzFZ?= =?utf-8?B?SDdkRjNnMDJYOEtuT3h5Z1VaNFVLVHprZFMzU2s3dEd6NG5zYkVoZ3dMVnhX?= =?utf-8?B?TWlGY1dpUDR4elZyVXUzak5aRVdRbktrVG9ydHY2SGl4T1FJRUdUN2F5SFl6?= =?utf-8?B?YXdVck44UTFWRG1Bb3ZEbktQclBkbHlkaEdtQ0ttNVNBTi94UXp4aUJkWjBo?= =?utf-8?B?eXE4VHp6Q05wYnJZVDAxT1MwVS9YMUhNblYxWi9JVXU4NGp2TGhQMDkza29Y?= =?utf-8?B?eXcrWTJLNUFDY2pCVnBKeWIyWStneVlYZ0wxMjR3UzJZam9OV09iZzFXdlc5?= =?utf-8?B?RE9yV2NZcmtSaVNxTEJQY0pCbUVvWkFKbTVKa25HNFpPbk9LeFZFb0NYUjkw?= =?utf-8?B?YXYzR0pqWkxHWTRNWHFHUElqSnFWSHlSU0VWSGJRQk5pVm1GV0NxVDF0cHdT?= =?utf-8?B?MnlPbjZjdW91dHErTGtLR3dHdU81UUtzRG1icldPbmRzc0l1Z0J2bEVNZXFw?= =?utf-8?B?WStDbjJiNGFMTUttWERPN0VSYnBoRVNhR1c2UmNtd2svc3dIZWo1QmVYc1Zk?= =?utf-8?B?N1NHcGFOTEdwUzFmdFQxSWo1enk0TmJwWDRQUEhRdjQ3SkFVMEhlQ0RReUo5?= =?utf-8?B?S3dXUmt2Z0RBeDF4eTRDQWYyWnZQMjlSNkg1eW1IdG1xZ3JDYXlSaS9URFJL?= =?utf-8?B?WEdJY1c2a0UvdVZJaXVtcnpEWnZldUdQVGdYa0tEb2JMMTNFam51dGNzYjhK?= =?utf-8?B?MWJRQVE2ZGJURi9OSVNtdjNaa0dQcUV4ZXlURUxvLzB5RmxxaG92MWNaeDd3?= =?utf-8?B?NGl2eWVXMnl2QlhuN2NFcTZhL2ZTR2tadFZwSnRNbTNjTUhieTUwZjJCWUdy?= =?utf-8?B?aUsrTGxyOFF5MzZxVWZEb0dxWVNOTWU1N1BvcGpucnZ4ZzZlZ0kvQnBmNzkv?= =?utf-8?B?bEZlNmQ3Y2VrcjhDM2NKemtvb1N6czNkcWxYZmdEZnFPZlpjMmo3bXMzV1c3?= =?utf-8?B?VFhQd2lsOEtIcjNVRE1KR2hTaWtDOUtmYnFFSmhrbGFqUXhKOUp1QWxjYkEy?= =?utf-8?B?L3lmeFNOTTJKa2ptSkRkQnZYRlRmNFlUcWFaRTNTay9BcWdFc0FCZThCWUNl?= =?utf-8?B?Q1V0QmVvNm9ydGhHU0RBZ2pOTG9Ea3pPN1FaTHY1MEhYTXBFMEJtUDlFNmhV?= =?utf-8?B?aEVKM1Z4TzFsUjRyZGkxVFNScXVzRU00Um9pRk5DTkJ0c01BclZpS3Axdzc4?= =?utf-8?B?Y1d5R0N2NmkzMG5lUnl6NjBCSlZVUGoxMDlhZlhzVzhObVR0VTZQb3JRNmo5?= =?utf-8?B?dHVoSUJNMXl5VUNKQVpkeWhDSkRBVzdSVEgzcVNVMlZVNktYL3FoTk80YzBW?= =?utf-8?B?QUtDcUVDVkZnMHVPNlNqYVFjQ1hRdDNVUzBiQ0dXWUJqNzNaV2NVaXVkL3JK?= =?utf-8?B?NEtFVk9ISmRyR1ZZWUo0ZndqTk0remdTR2FEbWc3OVpSMFc2K1E5VnVYb21R?= =?utf-8?B?RGZFcWdaRlBjZHUvZHRRQ0lyTGJGR1prVlE5VmI1ZEloZHZzRmJndFJLTGIx?= =?utf-8?B?MEE9PQ==?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5515.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 99105da0-0f47-481d-cf77-08da745c9dab X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Aug 2022 07:57:15.7129 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9bsrh8ffQBnXbfySI25fnPmWp83OcHoDj1+tKAVhsAwj4Q1Nw3sbdGYT8rMClZt0C8cbUMenYRWGjqcSdEK8Ng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6611 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v3 2/2] ffmpeg_opt: consider HW acceleration method when selecting decoder 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: On Mon, 2022-08-01 at 11:12 +0200, Anton Khirnov wrote: > Hi, > the concept is generally ok, but I have a few comments on the > implementation. > > Quoting Xiang, Haihao (2022-07-25 06:30:51) > > +static const AVCodec *choose_decoder2(InputStream *ist, OptionsContext *o, > > AVFormatContext *s, AVStream *st) > > +{ > > + char *codec_name = NULL; > > + > > + MATCH_PER_STREAM_OPT(codec_names, str, codec_name, s, st); > > + if (codec_name) { > > + const AVCodec *codec = find_codec_or_die(codec_name, st->codecpar- > > >codec_type, 0); > > + st->codecpar->codec_id = codec->id; > > + if (recast_media && st->codecpar->codec_type != codec->type) > > + st->codecpar->codec_type = codec->type; > > + return codec; > > + } else { > > + if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO && > > + ist->hwaccel_id == HWACCEL_GENERIC && > > + ist->hwaccel_device_type != AV_HWDEVICE_TYPE_NONE) { > > + const AVCodec *p; > > 'p' is a rather weird name for an AVCodec instance, I'd expect 'c' or > 'codec' or something like that > > > + void *i = 0; > > NULL, it's a pointer > > > + > > + while ((p = av_codec_iterate(&i))) { > > + int j; > > + > > + if (p->id != st->codecpar->codec_id || > > + !av_codec_is_decoder(p) || > > + !avcodec_get_hw_config(p, 0)) > > + continue; > > + > > + for (j = 0; ;j++) { > > for (int j = 0; config = avcodec_get_hw_config(p, j); j++) > > gets rid of the explicit check in the loop and also > avcodec_get_hw_config() in the condition above > > > + const AVCodecHWConfig *config = > > avcodec_get_hw_config(p, j); > > + > > + if (!config) > > + break; > > + > > + if (config->device_type == ist->hwaccel_device_type) > > + return p; > > + } > > + } > > + } > > + > > + return avcodec_find_decoder(st->codecpar->codec_id); > > + } > > +} > > + > > /* Add all the streams from the given input file to the global > > * list of input streams. */ > > static void add_input_streams(OptionsContext *o, AVFormatContext *ic) > > @@ -973,7 +1015,7 @@ static void add_input_streams(OptionsContext *o, > > AVFormatContext *ic) > > ist->hwaccel_pix_fmt = AV_PIX_FMT_NONE; > > } > > > > - ist->dec = choose_decoder(o, ic, st); > > + ist->dec = choose_decoder2(ist, o, ic, st); > > I don't like adding a new function that partially duplicates > choose_decoder() and has a non-descriptive name. Just extend > choose_decoder() by passing hwaccel_id and hwaccel_device_type to it. Thanks for the comments, fixed in v4 -Haihao _______________________________________________ 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".