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 50C0340F42 for ; Fri, 11 Feb 2022 05:17:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 468F668B17F; Fri, 11 Feb 2022 07:17:03 +0200 (EET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AA06668A8DB for ; Fri, 11 Feb 2022 07:16:55 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644556620; x=1676092620; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=NY3ZqyVJVqd61OI7nD88Yv3RN1moVwnuGpzV1hLup6U=; b=etExctbK0MmtmZbKJr/w4HO77dTN1cKaFTO4hSi4m4y3/JSCbpItZliO /GFVHKcfkTyYWkByuteeryQ1CzDeDBJfZgxIpouKCtM+36y5qJI+cPvdD 0d3VLfwzr4HcMG4uFNgL3CMyhj+Aud5WQToTl8wSVfahbubWrKc2Jz9n3 +YEJIg+jHFDxteFzwxuanrwWQ07Xw0eDiiceTeN5l13ZxguF2nw1gLbm6 ahA0zD3CzPkfq02WNbQcpUhJpkXYZ3K4N4Mi3tZ+8rA4V22Pkerf9ry5F 1l3SHqE2CVIaRVbva4ebVKchpUDOdOK8/AWa+5C3BUcmEKvStfq9adnqa Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10254"; a="249414273" X-IronPort-AV: E=Sophos;i="5.88,359,1635231600"; d="scan'208";a="249414273" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2022 21:16:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,359,1635231600"; d="scan'208";a="500659404" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga002.jf.intel.com with ESMTP; 10 Feb 2022 21:16:51 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Thu, 10 Feb 2022 21:16:51 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Thu, 10 Feb 2022 21:16:51 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Thu, 10 Feb 2022 21:16:51 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.48) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Thu, 10 Feb 2022 21:16:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lVNzHxHDoMQfLMx++L9r3zuZCT1pN1LmYbEy0Dkw515KEabAz1w0adiGoa0CD1tLGlctH2h5PCZn/XWrtnFte9Rj5WeulLlo7RPtPoULevlXshNVt9JXEq/Tdns29nh0b7f17RExpc4uTczIqnkQWZNn1PKwKnpJ27UUD/uC5I8bnv5nkVaGLockCOX3HHZyOxWjvcPyQVmJnR9xSjCZev0QRHwdRCZUreXtLPKoTQFTT0hVtFDUW+myuceC6jvy2NmvgcV6CfpXFWlXMyqlEMTLHAr2xe+sA7H/VNTQONIL5IGUOrGiyaBLsut1eqFT+ANAmxhe9ZiG2e9czP3qlA== 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=zl9ntLlHakNMkiXVDgxeA8oF64XhawpDrQcBbqlaZd8=; b=XG5rNZ0TkjnjxixgEHPLXjX1mLRL96FogD3x6D6X7aP7dlsYogAGsZ/i94Avgth42YiAZhSeLfQfsW4snchXVAjEYeqxVbqFM2mXmN2PrMDrvTassi46U0eBRNXYlugM1edb3YPpb5eCBYjxbEKd9CIEKslaPFuxEkNme9W4o2ccGojEBC8TziVcXhFTAB8N6kObdLagKA/JR98ADza5UifaMhNo6tOwd+ggF5E/OwdredRiqm6d8FoWcmau1d/qYg7GVG65LB0yyQ5Wj2PaQFZ/9w4/sX8DLaz86Kd3XpytRYLptO1ZXAnUg1fKFUn9vE8yu6Zm4QLnCa42kS+GKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from BY5PR11MB3879.namprd11.prod.outlook.com (2603:10b6:a03:18f::17) by DM5PR11MB1403.namprd11.prod.outlook.com (2603:10b6:3:11::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.17; Fri, 11 Feb 2022 05:16:49 +0000 Received: from BY5PR11MB3879.namprd11.prod.outlook.com ([fe80::8854:1c7a:b8e0:19dc]) by BY5PR11MB3879.namprd11.prod.outlook.com ([fe80::8854:1c7a:b8e0:19dc%4]) with mapi id 15.20.4951.019; Fri, 11 Feb 2022 05:16:49 +0000 From: "Chen, Wenbin" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH V3 1/3] libavcodec/vaapi_encode: Add new API adaption to vaapi_encode Thread-Index: AQHYHJjcwgOT07GbzEi1zYyNcJ/7mKyNwIsAgAAScmA= Date: Fri, 11 Feb 2022 05:16:48 +0000 Message-ID: References: <20220208030549.340748-1-wenbin.chen@intel.com> <7a80519e758f504d2f07f9b1b525b40b1b4d3e47.camel@intel.com> In-Reply-To: <7a80519e758f504d2f07f9b1b525b40b1b4d3e47.camel@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.200.16 dlp-reaction: no-action 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: b05b7d44-14b3-4492-8798-08d9ed1db4b0 x-ms-traffictypediagnostic: DM5PR11MB1403:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2512; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: K4+0BgRMFnUu9YrMAn79NQN/+Gb9ZJvVMLzjpEWimbH8AC+8r1XXqvMA1BYPjUxyr5KJ+rVJsHeUQFgslzEotODma4lNAOrseM18dmvnGlvZwvYGhaRDU+BHVtFabFGXuBFZB2L6xBBJq2FRGI7X+kvdV4rx+qfGcOY8THyNYppLO2Ni2Xo3T94Ji9Bu45Lz3T+zb5P0jYhbzYEek7yr2dAv/8TgyKnyKYL+qc9pL4U3UZJl9oxZpEi32516Z11RRPQz4fWJHTgDq01oeEX8c+0ZWmCBRrDMNElq5Rj+1DjlsFTHDwWJAexyQXz9xqgAx/PBVo7AwcMUmkKMJ9eJCmo6SXZBSCSQ8mvcv2X8qdmWePIGEr/wFJ0aWHJDEAePQ0J+/FwE2Boiny6mKbCtyzSOdfu5lQPhC8jbS08pmmzF35eRtaPXhcbxgoBePLZLGubIslQbf6gRQMQgSRlG9QHmy+uGbYqUYIKmOqA0q/dcZdMgCnScEb2HNylY36jHXoZW1fIP0+pFZHaGzk7xBbMhaScE4IXlp25AKgPuNGX8wkOAFnIaAtLC4a2yqvra6IMTxlKbwUd1LN4r4bUTunzmb7XNs+kfKjaWGyQEYJGUEs2Z6zNle1f/S9Vi3JnwjSv77Njl2518+lBqiOQZv2fLn0OwnnqNDGDUWqOMwvanxnEc2ANNdMpaau8AH1pr6SmoJmey23P8lW7l8wClp9Koo2gEQz8AJnyKUSfcrf1g1gAuteuQ7iVBkVjL99w93/aTydzWzqAmpzqllnox6IVrRGNYWflIWzEJQN3X1YU= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB3879.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(83380400001)(508600001)(6506007)(7696005)(9686003)(966005)(71200400001)(6916009)(33656002)(26005)(186003)(66556008)(66446008)(38070700005)(76116006)(122000001)(38100700002)(86362001)(5660300002)(66946007)(316002)(8676002)(8936002)(64756008)(82960400001)(2906002)(52536014)(66476007)(55016003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?2JKGk40+d5q/cNVXntnBUpjgd65LPi48Xw2JCNBWE4dIUUvP+2qg04WXCYta?= =?us-ascii?Q?+0enY0nL7FEWCPBWPonrG3OPY4sH7N2uB3G2WJyVoz86OUSl0Z7oDTsXTPbO?= =?us-ascii?Q?cGuVtL3VCF9HgRDfRMRgx08MisDlDcWGjnlndvNA7t94ifEuVK7vhrna2L4x?= =?us-ascii?Q?CAE6NbtYwNZtMt6Q/aucUQCOQKvbtD3hYhq4AK97S7gWDJSOHebT59RSmnBV?= =?us-ascii?Q?dNwPInU8QhBtjXmc1nWQrCue3Q7PxBYsgI7kFufOZknA8iTAvaipkZSVfkJT?= =?us-ascii?Q?MCeiDP1I91cNdi3FaxmIP8Q19gOWux8tSyV7RAPmMZqoQwMLcT9N/dMKgF5y?= =?us-ascii?Q?yKogHmR8NORjQTtPnRrm0WlNLeiZvJmrVq5nBA3udd3MI+Qs99Lm2fN7hEEi?= =?us-ascii?Q?LW+mhxk0H0PHfhgpOx6pnDeUpNZviPi41OSiG/tIMqzMzLMSuUI/mrkbuoan?= =?us-ascii?Q?vD+swLHnqFs1rCfCp6YIyB1nD7IlsSbTLXcIelqop/3vQY5rq2Ty3P82QdVT?= =?us-ascii?Q?XmhaEt0Fda91DECUqku0omHv6r/f9kTg4Vl06XCMKR99XS2yqay49ltv2Wk4?= =?us-ascii?Q?qg2TaXglvQPIYo4Ds7zn/+UEtcOMBoWAchXbUNIaHqhxul2DdJ06ZyUEpsXj?= =?us-ascii?Q?gX1c5eT68lNiLM5BzlBBp9HgOr5Y6PIL2D2xBNSFiGAgbVzF0wmtNLd8/i/C?= =?us-ascii?Q?iZWBjAZgEIyasRlwesBHoui+w/6AfhgDo1D4CzMdDoYuKfw3kLQOn/LGVdj6?= =?us-ascii?Q?efQnKi/c5MP+t0gD7VDuuY45KQxQZ8l8Oqi0DW7kQDOqUI657Tkb6nnIztBx?= =?us-ascii?Q?5MTvXMvJyTbo6Jw+yYaBK4fAN7hgOd+ZmYV6EyNC0Bgwshygn290JmEKUQLq?= =?us-ascii?Q?EpKq9lgyn59erSXMPaSxKM9UeijHLavBjMgtnPd5cz/wGdvsTJvaJEgWIVCd?= =?us-ascii?Q?fAcOMFQd/FoaWjlYjt+j6lVewVjxco7IY1s4344hLw3lR9FqYnuISj3RZNpx?= =?us-ascii?Q?WQsbdBFGLpsM8dCtv4KcPBRtGzroyTTc5TWsQOl7FFIjKU9dZAgZ1ZzbgsB0?= =?us-ascii?Q?Ti5+oBm8oj2CE23roAA6RWtYLeV75qStCiK//rbmgbbUKd695hNRXtBP3a3U?= =?us-ascii?Q?Dtiak2dkQWxdFsH2y8wrwvZsDtv4MXbVXupMrSQZGSTPSsw8T9xdmE4kDOiD?= =?us-ascii?Q?TkkqELnPxsdL+Gn7ZI4baUSHsT0AqM4QvMhwvRbHzib3GFiYIOqrob/VuZNF?= =?us-ascii?Q?J8YU2h0yyTm12vi4sRLAUEq+adKFC4EQH40gfjjGAsBe3o9d1YUKXNALhufd?= =?us-ascii?Q?UFlslecgbBxZwQTi+u3YeDs1j/tFq7lScOdP/NbqJPPH2MrxeBtC9tHMa+qO?= =?us-ascii?Q?neYSOxUdwjKix0zTTIAbdfUwJBzRSFZ8NFbbmgSBkSiBYFuVAVRukCiA1q7t?= =?us-ascii?Q?mMLa+xsWSPm/iiz8FNa9ZiaIT4oPck4tfsjb8sEylYD4rLdSIspwSFcARlDx?= =?us-ascii?Q?BdVJS76BYMs2goIt6KMR6Dws3JMIViFqohTZTQeGqOiMHIAv0lo7qH1LSJl0?= =?us-ascii?Q?UTITkJntjdlxfdxKrWIkGCSZAw6vWzmle5BM9v09l+EWkWLI4fWex3hhJnwv?= =?us-ascii?Q?dP2Y0FE2ed7X5G9TCm7A5SU=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB3879.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b05b7d44-14b3-4492-8798-08d9ed1db4b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Feb 2022 05:16:48.9688 (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: ixfWnxRjznHDCPu/GlRxj87wZSEVGK5PpPklYV+zW2oJiyizekozdpZ8UH/49xrOkD+83uihdSNQbQ+sET27bQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1403 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH V3 1/3] libavcodec/vaapi_encode: Add new API adaption to vaapi_encode 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 Tue, 2022-02-08 at 11:05 +0800, Wenbin Chen wrote: > > Add vaSyncBuffer to VAAPI encoder. Old version API vaSyncSurface wait > > surface to complete. When surface is used for multiple operation, it > > waits all operations to finish. vaSyncBuffer only wait one channel to > > finish. > > > > Add wait param to vaapi_encode_wait() to prepare for the async_depth > > option. "wait=1" means wait until operation ready. "wait=0" means > > query operation's status. If it is ready return 0, if it is still > > in progress return EAGAIN. > > > > Signed-off-by: Wenbin Chen > > --- > > libavcodec/vaapi_encode.c | 47 +++++++++++++++++++++++++++++++++--- > --- > > 1 file changed, 40 insertions(+), 7 deletions(-) > > > > diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c > > index 3bf379b1a0..b87b58a42b 100644 > > --- a/libavcodec/vaapi_encode.c > > +++ b/libavcodec/vaapi_encode.c > > @@ -134,7 +134,8 @@ static int > > vaapi_encode_make_misc_param_buffer(AVCodecContext *avctx, > > } > > > > static int vaapi_encode_wait(AVCodecContext *avctx, > > - VAAPIEncodePicture *pic) > > + VAAPIEncodePicture *pic, > > + uint8_t wait) > > { > > VAAPIEncodeContext *ctx = avctx->priv_data; > > VAStatus vas; > > @@ -150,11 +151,43 @@ static int vaapi_encode_wait(AVCodecContext > *avctx, > > "(input surface %#x).\n", pic->display_order, > > pic->encode_order, pic->input_surface); > > > > - vas = vaSyncSurface(ctx->hwctx->display, pic->input_surface); > > - if (vas != VA_STATUS_SUCCESS) { > > - av_log(avctx, AV_LOG_ERROR, "Failed to sync to picture completion: " > > - "%d (%s).\n", vas, vaErrorStr(vas)); > > +#if VA_CHECK_VERSION(1, 9, 0) > > + // Try vaSyncBuffer. > > + vas = vaSyncBuffer(ctx->hwctx->display, > > + pic->output_buffer, > > + wait ? VA_TIMEOUT_INFINITE : 0); > > + if (vas == VA_STATUS_ERROR_TIMEDOUT) { > > + return AVERROR(EAGAIN); > > + } else if (vas != VA_STATUS_SUCCESS && vas != > > VA_STATUS_ERROR_UNIMPLEMENTED) { > > + av_log(avctx, AV_LOG_ERROR, "Failed to sync to output buffer > > completion: " > > + "%d (%s).\n", vas, vaErrorStr(vas)); > > return AVERROR(EIO); > > We may add has_sync_buffer_func flag in this patch, and run the above code > when > ctx->has_sync_buffer_func is true. If so, we needn't check whether > vaSyncBuffer > is implemented again. > > Thanks > Haihao Thanks for your review. I will update the patchset. Thanks Wenbin > > > > + } else if (vas == VA_STATUS_ERROR_UNIMPLEMENTED) > > + // If vaSyncBuffer is not implemented, try old version API. > > +#endif > > + { > > + if (!wait) { > > + VASurfaceStatus surface_status; > > + vas = vaQuerySurfaceStatus(ctx->hwctx->display, > > + pic->input_surface, > > + &surface_status); > > + if (vas == VA_STATUS_SUCCESS && > > + surface_status != VASurfaceReady && > > + surface_status != VASurfaceSkipped) { > > + return AVERROR(EAGAIN); > > + } else if (vas != VA_STATUS_SUCCESS) { > > + av_log(avctx, AV_LOG_ERROR, "Failed to query surface status: > > " > > + "%d (%s).\n", vas, vaErrorStr(vas)); > > + return AVERROR(EIO); > > + } > > + } else { > > + vas = vaSyncSurface(ctx->hwctx->display, pic->input_surface); > > + if (vas != VA_STATUS_SUCCESS) { > > + av_log(avctx, AV_LOG_ERROR, "Failed to sync to picture > > completion: " > > + "%d (%s).\n", vas, vaErrorStr(vas)); > > + return AVERROR(EIO); > > + } > > + } > > } > > > > // Input is definitely finished with now. > > @@ -633,7 +666,7 @@ static int vaapi_encode_output(AVCodecContext > *avctx, > > uint8_t *ptr; > > int err; > > > > - err = vaapi_encode_wait(avctx, pic); > > + err = vaapi_encode_wait(avctx, pic, 1); > > if (err < 0) > > return err; > > > > @@ -695,7 +728,7 @@ fail: > > static int vaapi_encode_discard(AVCodecContext *avctx, > > VAAPIEncodePicture *pic) > > { > > - vaapi_encode_wait(avctx, pic); > > + vaapi_encode_wait(avctx, pic, 1); > > > > if (pic->output_buffer_ref) { > > av_log(avctx, AV_LOG_DEBUG, "Discard output for pic " > _______________________________________________ > 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". _______________________________________________ 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".