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 93C3340F35 for ; Fri, 11 Feb 2022 04:07:42 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6B54468B1F2; Fri, 11 Feb 2022 06:07:39 +0200 (EET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 839A668AFEE for ; Fri, 11 Feb 2022 06:07:32 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644552457; x=1676088457; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=NEYaQc/D8FOn2uqxICi6pd8Bl8A99V17pS5GTl0tZTc=; b=DYlfMcbrQrQOLcy5c+6sbf2erQ8s0fxZJVFyWmbzh08vKN5CP9EWw1SQ FstN5OBgBxJfSFJAoHSo7a/mq+E8pmRtjm6PtMfqxazkI73nbrO2IuhFn kPER5XLR+rN3xSvy10DE2zzVMzhdthzjkUauw8TPdIZI36VEeqjCFUdQo oym6t7yteA4QYwc1X5KuMD/xx6I9EzZhByf2GBYMjkqGTckO6i36D4N+W r2QEO7bFDvPgACMyCAbXcPA5A+iyWdfoSgdk5yi7aTOzyrJAnVlwmkz+x XPUNgLVViA73vSXMUUKVqqfh9RSidF4Z9Nm3Df0/UNj7qPRCq3BGzOqCy g==; X-IronPort-AV: E=McAfee;i="6200,9189,10254"; a="237058814" X-IronPort-AV: E=Sophos;i="5.88,359,1635231600"; d="scan'208";a="237058814" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2022 20:07:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,359,1635231600"; d="scan'208";a="679392451" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 10 Feb 2022 20:07:29 -0800 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX603.amr.corp.intel.com (10.22.229.16) 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 20:07:28 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx608.amr.corp.intel.com (10.22.229.21) 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 20:07:28 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) by edgegateway.intel.com (134.134.137.102) 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 20:07:28 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=la8V1oHNBEPbsgD7jKwb7iVsZYj7OcgEGXfB5RKJJcYyqvbd/H+Y6spy6hHcOR07BukkSZJZtXCel2/o7y+evf35O0KGh+Dh/3d7qZJrQf5wefFczqBOOoMoikbr8nqJEFSVjkQSLZXuJY6l1mkg4ODewnN2DcBNS8hoP+Z90ali0nMUX0umSdxgiZPnYibNQM7le5nTWe2ou5VtAMokZQwHx+4jT5EDTTPNkYdgsVqbqlvjHHA6KPSitiC/iWEhaYWLxSKuOr3uJH19tO96M6dzOT+EZEB1R5KDOT+Co3pWdIwUzrbzI7rwCpASjOf0FBMpzHwxHoBK3xDenfN8ug== 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=NEYaQc/D8FOn2uqxICi6pd8Bl8A99V17pS5GTl0tZTc=; b=a+svLot1PSRZoYnxkCu8O8j4JLRu+X61q70rNfmK2Qxsp8WmtJl4voTW4ndPz6C27+YBE3AxlDoMhTqGEarQY5AgsvHhQT+9kx1xofkFkSc1PyoqeS9mEJFzulMUtbBo52WF00uN+Wo8M4+s/RNAF/+1KIlb/lVuWg5sGnr6xzOYBXS0k6g+nm6PSioyJHeENznMLhG0nFZpTa5VQQ6jy04jZKd3PDW4wffhlqmfXW8PixRlOlQ3FtFRQhmiL1of9P22a+rYV2ouDu2EBh8saMu5qeJGMp1FxcGXgpY0dZPaD20xCnDKzjGNoQLxnjmWGUZ33UGvqZyNyuRndCVHMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by DM4PR11MB5520.namprd11.prod.outlook.com (2603:10b6:5:39f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Fri, 11 Feb 2022 04:07:22 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::d436:c6ab:6e71:8843]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::d436:c6ab:6e71:8843%5]) with mapi id 15.20.4975.015; Fri, 11 Feb 2022 04:07:22 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH V3 1/3] libavcodec/vaapi_encode: Add new API adaption to vaapi_encode Thread-Index: AQHYHJjYvZgNmlOM5kWvWeL2h1QvmKyNwIYA Date: Fri, 11 Feb 2022 04:07:22 +0000 Message-ID: <7a80519e758f504d2f07f9b1b525b40b1b4d3e47.camel@intel.com> References: <20220208030549.340748-1-wenbin.chen@intel.com> In-Reply-To: <20220208030549.340748-1-wenbin.chen@intel.com> 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: 2465817d-196c-42f1-2a66-08d9ed140115 x-ms-traffictypediagnostic: DM4PR11MB5520:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2582; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 63VAxS/AapK+HdRKXCYeiJ2Xg4DOEiBFPR0R+RiKdckrn86AEbERw2V6x05gBcLWgxnpfby/Ai9lnFldvA4FEjCbJwdPdR4MrBTu42AnDkHJLnQV3tjXHuM5gLMLmGGVQieg69mLkE/xccecjwT2X5JzjKV4R71ZqmJ92OW+FppKq+l3uF0Y8nwtAkwMCRh/RSNzNCCZjkTdefpRZnjUVqv+vNqgurlsz2TQCuyzYjMhUVmhLvAvCxOy6Bg6okvzo6ybAmX0maCSsFpyMtmL5iPCGnyXREQD8h5p3updlwoy7A3AcmIr1LEZqZtsB0qgg0n4KxwzYk9B8j5sY3YRTZdss+jiZcjU/GNc2njZ3NsZdq7NCS2LyG+NpDx4vifPNJzCS2leHhD7I1XKnyLBdtHvPePoITmngZ4chtZQAjmvkVZkLeapGfusU0VbrJJer7baVRXqxl0QcxlAjYnnoovNbjXg5E6BOrw1skwWjd7cvI0bsx1n3ljZz95GUG+ByHgr2acLYV3APZ5Gx9Y89/aWLmjc97pmYR6UY7Mn9WLuSYgTQfsXXnFZoTEutZDWesw+ucZi1Ky/j95BTaOFHxv9nEZcm9wrtAZISDdwixAsRoBuJuJpb34eSqzOTWVV3SHbCGkZcZKhckoQzq8DF/Kb8FFdW3A6whAxqkd5ioRjhnatOzOjg1W/edwn3ru+bPI9ukffmfq1vvO854G37jOBoVAnuUdpuzoQtVI7tJQ= 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:(13230001)(366004)(66946007)(64756008)(66476007)(82960400001)(186003)(66446008)(66556008)(5660300002)(83380400001)(86362001)(8936002)(6506007)(2906002)(6916009)(316002)(38070700005)(122000001)(6512007)(508600001)(91956017)(76116006)(38100700002)(71200400001)(6486002)(26005)(2616005)(36756003)(8676002)(99106002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UytrZGYyUzFxVEU5cFRYTU1SZDZVU3RicStPVGNlWUlSVjNYbEVFN05wOElq?= =?utf-8?B?cXdzamVlSE1TbnpWUlhLakpLRWtMVVZrQ3JsYkhHUUx2RGEwMlFYQWZOMzla?= =?utf-8?B?elQzQ2Fxa3c5TjVNbHlyb25RR0k5NWsvTHlSV0NWRy9URkZnakxhSithZjgr?= =?utf-8?B?VkxwWHNpMXF5aEVxREpRcmhNQjhnQTBkRzhwOUloQWlrMXVCa0pPb25nQk81?= =?utf-8?B?MSszdnpCZ0UvaGh4Q0JsVklOQ05sVlcxWjlZc2szVElxVEZ0NFN0TEExMDdw?= =?utf-8?B?TnlWTU45bU9rdzlFUDZYeHJEZ25seWkxUlp2Y0ZsYm5EUlhhRTd4amxRWEJr?= =?utf-8?B?NFNxbmZ0UWJQekJkZ2dhcnJYeDdGWnlUa21zUEVKQ2M2c3kxNFQ4TnRYRUMz?= =?utf-8?B?V1lLNWVKdk5sZHpDZERoc0U4cTRHV0EzemlkZXB3RGVLRkZIU08wcU9Bbkxp?= =?utf-8?B?bG1DTzdvdURyRzBjajZHT1lJTU44QnNuZ2g2QmF2WisveXhPZWRwUTh3ZklF?= =?utf-8?B?eXJ2TGwwUGlLMm51b1RkVTZ1NjBBdTdzRlgrbmtDRzZuUzUyYUREZitqNDRB?= =?utf-8?B?UjVzWEhzYi95d2cwckFDSlpncGZMUC85akUvalMwaDVUdHl6Vld3VCtEZjlO?= =?utf-8?B?YjdNb3J0dzBrTmszM2FyNGo0bUZCK1p0bFF3U092Wm1JcE54TEpyT1JoUXJO?= =?utf-8?B?RWxvMnhrMzZOWXZkL2h3Vk1mYjQwYlBhY3FLOVh3eFdTd25MQkdtSmV2dXpn?= =?utf-8?B?eDlZbktvcm1qcENOQjNzckY5QzZOSHVPRFpyN2N5Q29sVndncWUvckpreXJI?= =?utf-8?B?d0RYd29ONUkvSDUrMlRCVnJnTUtEMXk5Um9hanMyWGc4MUdnM0MrSFhKN0lq?= =?utf-8?B?cWJ1MFNjOHJHVmszd2RvWHdiaW4rYXZKQ0Z4S3JDZjJVdUd2cTYrSmxWampn?= =?utf-8?B?SjRuNGpNbzdwNDI5K3FvblVaaFdsYlk0dDY3L0NLbUEyRHFJZzlYemI1OGR1?= =?utf-8?B?T2hKcCtSeDZZYm1Id3BvUFgzMVl1QXNWcDk1Sm1jRjV6U2NBaTBjWmRvc2JZ?= =?utf-8?B?bnJWRmNrUVBDMXNXYWdFNUVDV2pGUVVPK3dnYzROSHB2MnVhK2VPczYyQjhC?= =?utf-8?B?WkJoT3BXcm1PL04yN1RXZWI5dXVjaUU3RE5TdVZVbk9Gb21hTWwwcUxHZGFE?= =?utf-8?B?MzQxMzJzM3poY1cxejM4enhCc1FMWDY0Mk1JWXpsRmc1VXZlLzU3cVk5UEhJ?= =?utf-8?B?REtOVjlDNEJ5S25KTlVuQXI5K2lDYnVXYTh2bzZJSmk1RWJXK1RZRTlKUVFl?= =?utf-8?B?bE1kNjhNT0d0dzFiSjhGOUNTbTdwaDNVSEpsRWgvRVk1QTZ3bG0zY083aDFD?= =?utf-8?B?YWpmV2cxaHNiczJWZWdYY1FBSlVvMGNSNktydThMcEJ4YjNsYndNQjNpdCtu?= =?utf-8?B?KzVyWHpGa2d3MVFDVTIzczNDSFVXb3ZJQzFxZmp6OWR4a1lEcDhwaFNTNjVs?= =?utf-8?B?MzRxSjRJbGV5Vnl5SG42VUhjck5lYnVaMXpzbUFWL2JDK3VwNnJtVi95elpP?= =?utf-8?B?Zzh0Qno3NXQ3dHhvbEpMMmVIaG85dkJ1TjN6eFdnUVdldnp5andQTVdZc1hS?= =?utf-8?B?ZUhMQUsxNndueHFsYmwrTGIvcEVjOTZrTXpZeEFiQjRFYmI5TDBvZjZLMkk2?= =?utf-8?B?VktOdlRQNGVST3hIRU5US3ppY0tZdmd3L1NIQ0ZTU0NXOVZseUF0MEJ3c3FD?= =?utf-8?B?YTErcmt0MGJVQlBMcU1nNTM4VzhHVXd0dXZQZ3pwaGtzTmtoc1JqTXc0Wkc4?= =?utf-8?B?bFpjVjhQMEtuaFpLOUVSbmczTDRXU0tvbWhTdG1kbE0vWWFNWDdJcW1NQldD?= =?utf-8?B?T1VqRi9oNTR4R0VmL1dCZ3lncnJTZXJteTNQTWNRK2I1WHZkUmpoV2owWXNM?= =?utf-8?B?SkcwdUovNmRsUExLWHpBTVJqMkVhMmw5dXF6L3N3ZHczek9BSEI4R1VhVklh?= =?utf-8?B?c3hRaFE1YUM1ME9YaGhRS0I1SVNtNThQQkszVVNrK2d0cytQWGlvVTJYSjEw?= =?utf-8?B?QWhNb0o0N3BZNVcyeHJDZ1UrdzBpV1E1b0IvbGVLV3BQditRazU0SXRCZElE?= =?utf-8?B?RDRNME1DYkM2SEFydmpCc2RUN25OZkNTelhOcXhmWVJvTUMrNzcvMU9wWWZM?= =?utf-8?Q?moZWicwo6CewNg4Tn9Z6CtA=3D?= Content-ID: <4A41D6DD438D4C4E8FD78C340265423C@namprd11.prod.outlook.com> 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: 2465817d-196c-42f1-2a66-08d9ed140115 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Feb 2022 04:07:22.1366 (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: kXFvL7mvEkmQLXPUL7ZbcHiD4CBfoas5YXzvAcKOt3tzKBcbuySF+gDM+GTjrMyFH8BN9UyMZY5FcK/cExj6Ug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5520 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 > + } 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".