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 0B5574554A for ; Wed, 1 Feb 2023 03:00:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DC8B568BE9A; Wed, 1 Feb 2023 05:00:00 +0200 (EET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7BC5668BE22 for ; Wed, 1 Feb 2023 04:59:53 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675220399; x=1706756399; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=KMuUuD5BK9H4FhVk4gf3G0J2aSeJbt+nHBp+jiwdm4o=; b=dT19BM/goDcns8QOEQyg86ipZXZnv96fraLr6y4CLcMAC3xiXU5ktUrP +ZtKNazKQUjalNB/oVn30QXeQe7Xs5ODa3tWD4MexL15S50xpSLl3pf4j jLP9ETD2iMew6wSs6sgfpvU7X8tIBqzmV79i+PIM8T6r6iKO9II04+zQs cULBU67PkLDac45TpP0xLdUaZN3Tfvsh+MTZXMaAXLVuhyO4AFReQMp4/ 87XOyiQUI79fxyoJwfo4rEk5nfzN3mPDEmtzg//h/1z8dnt0xD0KMzKH2 jB9tYoFKs/wlOgPM4r19IpYXE4TYuwyycGA/Mb07J1gS4K5e8TvtQpdRH w==; X-IronPort-AV: E=McAfee;i="6500,9779,10607"; a="307679763" X-IronPort-AV: E=Sophos;i="5.97,263,1669104000"; d="scan'208";a="307679763" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2023 18:59:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10607"; a="728198971" X-IronPort-AV: E=Sophos;i="5.97,263,1669104000"; d="scan'208";a="728198971" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga008.fm.intel.com with ESMTP; 31 Jan 2023 18:59:51 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 31 Jan 2023 18:59:50 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 31 Jan 2023 18:59:50 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Tue, 31 Jan 2023 18:59:50 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) 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.2507.16; Tue, 31 Jan 2023 18:59:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PIkpIrw5Q3yhb0/VIllQ8TXtNO65EKt19sEJD0ddNGynTxetMVrucemUX6D3/xYVdY1DHfmNZXXhutvgYcsgetWYg29Oj/O/8sM8aJN74Sz78f+6Msu198CyLfha27Pic454ZeJR1Ol1HO2uoMjupXrNSpfrqHvaQGLV/eY0AichRQ1HHjLBspco/cvWJ8UGT3o2bYlcKlfNkBa5FyVXn2kKq5/CKEQ0exTCtg/YhIFSyzwcp7pWEBXSTIjk35pG1RdQNpY6hrzAuiYonH3Z+Sj2L7rP104KrE/VPh7uhkC5oMxpnb+lUkYZQ4tRo2zNSbo84p1WAA+Dhzm8iJhzNA== 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=KMuUuD5BK9H4FhVk4gf3G0J2aSeJbt+nHBp+jiwdm4o=; b=Mkp1EtH+6DQFka8m66Ewa4Fs7kF6F9NcUU175gkLbd/fU1MtDsWHhkpJYzSEXS4dx/iLH2dzd0DDc2hKWHkK7XKKxVwvzGuEcTL0OcxXW92yoj2dlbSd3GgArFB4gEyTof55muvxZw1G6+6SiLAgA1Gvm/RgH9Eb0dZVXrY5NzRlkNbWNGHmLE60Xp/8M/9lFUvn5GFRSCytU1Wftd37CadCcf+cPUxsCFayinM24Qb8d6fu3v1aj6hrOhnvbZ9qO71gDsUMHdAKUiccj6OVwJ7byzEOfmadf+ZamjVd8GOQF0Nchc+U5hqlL2VdmGQeqxxzLOfcRwktpXtfeMSvQA== 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 CH0PR11MB5507.namprd11.prod.outlook.com (2603:10b6:610:d6::8) by CY5PR11MB6437.namprd11.prod.outlook.com (2603:10b6:930:36::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.38; Wed, 1 Feb 2023 02:59:48 +0000 Received: from CH0PR11MB5507.namprd11.prod.outlook.com ([fe80::98e2:ba9:2c1a:8c6e]) by CH0PR11MB5507.namprd11.prod.outlook.com ([fe80::98e2:ba9:2c1a:8c6e%4]) with mapi id 15.20.6043.038; Wed, 1 Feb 2023 02:59:48 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH] lavc/vaapi_encode: fix propagating durations and opaques Thread-Index: AQHZNXYVsnJmpvb2sEarD8wt3yuioK65Z42A Date: Wed, 1 Feb 2023 02:59:47 +0000 Message-ID: <98a71bdc2e90bb875f487ff416f72b0674614e88.camel@intel.com> References: <601087569af7d6b82fe47f82c28dd17b99e7e59f.camel@intel.com> <20230131131447.24732-1-anton@khirnov.net> In-Reply-To: <20230131131447.24732-1-anton@khirnov.net> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH0PR11MB5507:EE_|CY5PR11MB6437:EE_ x-ms-office365-filtering-correlation-id: 39f89141-0d49-4a84-a116-08db04006132 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DXRc0iziHkvuO99X6GFsZuB27AfuTJbWQFd5ps2/5OY31zi/FWQZnSSienIc7BB/iGVXXLYELWMLGkyxj/iqVzBAxfeFU1IMAY89tVMJ8Jah/a1HI6UUEhf8H8kjPNFUCzb7IkZYSSw3Zj1Fb7sU0/ywSDcV7fS8HpD6N9I0V5HyNnC9r/FzFsD4eDMmTG9ekpiPjF0cBs+xNwDksMsEV36hOoVQuoX4Lw8HpXbs1k3Gj8XTii2pLWxMez3muRVBRAG5P9ckBdCL1WKHpaq0NFHR7yS7mUG6ev1kfOrNHMy2bQXEJfqkZGcSX6esTzHpK54YqUsl18JVw44q3QaXutBu3VbCoJ2XoL4k1M1YQ01YpX8d71NQ642yTsq2sQaGPVxmvvrhQolhyoDfeD/CHoXj9k96lJHYEyTnOIWiS3qQ0ereHme/WJEJI2mmuB6AoKQHMk7j3ofGGTevjFFUuYKwsVCd8Oo3rBq37ZGMe12DQxqgR0OcWYDMGSmfMP2/iZmAi27AgoCGJPtej2XH1QhIlu3g10+7y/dB+66lK25/lzt5Uj1gHWkVac+Nql+Nul1QJj/PxGCev8yWMNoGqoEPuoZgAB6YECPtH7M3P/H56M+16MafY4rH9kZ9WZOMHjQS9voG74WBbs4O19Ip7OadubPvTE3Y/nAzLDdL3kTOO6LGYfWAw+lHXQDdN/gKLERyiUZkS2PQihHjwOngSw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH0PR11MB5507.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(346002)(396003)(376002)(39860400002)(366004)(136003)(451199018)(2906002)(5660300002)(6506007)(36756003)(8936002)(66946007)(83380400001)(2616005)(41300700001)(186003)(26005)(6512007)(66446008)(76116006)(66556008)(91956017)(8676002)(478600001)(122000001)(6916009)(64756008)(86362001)(66476007)(316002)(6486002)(82960400001)(38070700005)(38100700002)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NDUwSERnenh3aUg2cjVFbit6WDdIVXRDS3E2SWF6RVpiK1JFSHZvNVljenpi?= =?utf-8?B?ZUZqYUJhVlM2YWRrRmFkakZqQW1RTGIwYTlWbDdYRzlDd1kxL2VUMlJVYWlo?= =?utf-8?B?UUpvSUVqYjJIdDFYQkZ1dk9lZHlWMGE5TTJVaGNMM2F6YTJWalQzQXUyUWtN?= =?utf-8?B?dW1kMmVheXcyYjhTclFSZHpaVGNyT0N0eTJybExWYS9naG9PZ2FPZGx2SXVE?= =?utf-8?B?dVBuRnM3aEdyd21Ia0NvMFkrYXVxckgybG1JRDZxV0VPbURRRitqamZJNEds?= =?utf-8?B?cDVtR0lDMjlZWFMzSHhDTklQcXpZTVJJaGtRcnkydGdNVkRQN1BWa044Tm5x?= =?utf-8?B?NzRSMjdrRVVUYW91ZUpWOWJ0VDN5WTlOWVBxZFlDTXkzOUZIdlJzVGJNeitq?= =?utf-8?B?eWFXK3poZHFDTnFpSHE5WTZGN0h5U3dsUUFZaklJTlhHdWRpSkVOZCtWNkha?= =?utf-8?B?NmdvcGpFakVrenVLWXhYTjdUZVUxcUEwa0NuRm9iVEtlTHRyYzYyYTVQUkgw?= =?utf-8?B?ZTFTY2c5dC90ZTVkbUpBVGUzQUpCZjlBZEJSK1ViNGs5T2VDTjVVV004N24v?= =?utf-8?B?ZDQ0SkFYOWxxeXVKY3BoQ29ybi9ib1dwcVdEVnRPSnlQMUgraldCaFVFY2dK?= =?utf-8?B?RHU1dVg4OHBpVDA5enl3cjNaQWVvclVPekNuQk4zdnk5Tnk1K29uOU5QL1J1?= =?utf-8?B?TG5ic1p5U3JNczhacVBMdFhWVGJveDBSR0VJZ29rd3F5MFh2dlpabXNkTTNs?= =?utf-8?B?NmthbWUrYkpEY01Oc1ZJcGFYTzZCckFDTDJBWFVuTkczWEx5QVJaUFRjQ0Zu?= =?utf-8?B?NXA4N2VXNDltK2xyKzhoU0J5SEhsZEQzRGxOUk00d3grZnJrNTl4YWhndFpZ?= =?utf-8?B?RFhxYm5tQk9KUDhzbjBQSGxrZ2M1d0t3Q2dmdWk2NnVTbmZKN0E2U1JYVzNT?= =?utf-8?B?M3lRbTQzQTVNUDNDeTc5OFJwTEtGaGd3WVlkMVkvVkk2Z2pTYlZVYjY5ZkN2?= =?utf-8?B?ekpwSWpvREFUc1Nrc0NvcDlzWXRBeExnaTkyUTVJZXdoK0dWbEsveHI2aTdt?= =?utf-8?B?d2Z1UHpxN3I2QXJKdjRWOHpGYmo5ZnUxVTJNaEJjMi9LQkhaRDczcVdmSmxy?= =?utf-8?B?RENvWUpHdVFUU0MzSndCYk01KzlPUnhodjh1Ujg5eWpoNXBySnJoN053ckpo?= =?utf-8?B?SzluV1FEbzBGajFSUW50anlMSHdvMWVURVdveGpQTFBFbmY3dFRoUG5nYld5?= =?utf-8?B?cnhrMjMwaVBXV3orQmd0QmMxLzZIZXQyb3ZLNDZlbnZuMnZmZDE1d3JCOFJr?= =?utf-8?B?VFJzbU5GY0lHL3I0NnpXSVNwREJvTkhZN0lsamZrcXBKdWNHdXBDTWxkckhH?= =?utf-8?B?TGJNWkpBT1MwSlZCWGo1TUxpRVo2U3FJZVpYYlZXZVdWSFhsMTMwdjM1aFdK?= =?utf-8?B?WlEyY1JSdkxjZCtMR2FpcXFSVjZva3BFRWR2UnBTWkw5VFZGcUZsMU1mODJS?= =?utf-8?B?aUxBeTVqN3NCU0M3d2tXWnF4SDdFbitPa3l6VVVwUURJSWZlMzRGZ3N0TFRs?= =?utf-8?B?YkdtSElnekJJQWdmTkNhalFWVEJMME1DeldzM052WGRvbS9QSFN4dXdlZXNO?= =?utf-8?B?bmxzK1dmVGZvV1JXTElHV3dDaDYvVE9LclJjbms5U2U5d3RnV0JKNGI3Qk50?= =?utf-8?B?MkxrTkJja3phS2Rub0hMYUdYSmZJZTNoN09adzJXOGpVSklraHgxWkQ4ckRP?= =?utf-8?B?VnBNckVSTENSb0w5WlJEendRd0VwZjNMR1k2bENyOS81ZWdVMElwNVhzbG54?= =?utf-8?B?NlNpM1lsblZjMkI5OVhCV2xnbUFSZUUrYk13VEhiVHg4dTJoSUYvODNKbUpi?= =?utf-8?B?STNmRFlEWXR4dHhxWXVtM3JzSlNVaXhId1d2dW14ZzdSdEJjQVhENytIblg3?= =?utf-8?B?QXdydDFRblpqL00rZ3FLRXd3dUdOZXJack9PNytwWDZHbmd0eUZaQjlUdjJa?= =?utf-8?B?ampDcG9NT3ZDOWtJRDFMZlIrL1JiTkg3cHJLdkxNbERMZnBnS05zTnZNZUlI?= =?utf-8?B?T3JFRjNibGRvRG1IT25VeUZwN2dnNE44clIzQzhiZlNwbjFnL3RCUFRYNy93?= =?utf-8?B?T0txVjNEdnIxOWVYWU1qNlFDZUNXbTVUOE1xMmxLb0EzZGM2QWRSa2hXY3pq?= =?utf-8?B?R3c9PQ==?= Content-ID: <3A5BA3E7F605A44FB54601895A3465DE@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH0PR11MB5507.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39f89141-0d49-4a84-a116-08db04006132 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2023 02:59:47.9651 (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: fDonelgRWIYCg1fPU7cablHShVBSGE0cm7WWSpioOrJ6cOmEa7SiEPZuijcnUwB2H5oC6K7yM1EiZj1JPtpMBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6437 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH] lavc/vaapi_encode: fix propagating durations and opaques 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 Di, 2023-01-31 at 14:14 +0100, Anton Khirnov wrote: > input_image is freed by the time the output packet is constructed, so we > need to store copies in VAAPIEncodePicture. > --- > Is this better? > --- > libavcodec/vaapi_encode.c | 22 +++++++++++++++++----- > libavcodec/vaapi_encode.h | 4 ++++ > 2 files changed, 21 insertions(+), 5 deletions(-) > > diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c > index 6787b90e8d6..bfca315a7ad 100644 > --- a/libavcodec/vaapi_encode.c > +++ b/libavcodec/vaapi_encode.c > @@ -695,7 +695,7 @@ static int vaapi_encode_output(AVCodecContext *avctx, > pkt->flags |= AV_PKT_FLAG_KEY; > > pkt->pts = pic->pts; > - pkt->duration = pic->input_image->duration; > + pkt->duration = pic->duration; > > vas = vaUnmapBuffer(ctx->hwctx->display, pic->output_buffer); > if (vas != VA_STATUS_SUCCESS) { > @@ -706,10 +706,11 @@ static int vaapi_encode_output(AVCodecContext *avctx, > } > > // for no-delay encoders this is handled in generic codec > - if (avctx->codec->capabilities & AV_CODEC_CAP_DELAY) { > - err = ff_encode_reordered_opaque(avctx, pkt, pic->input_image); > - if (err < 0) > - goto fail; > + if (avctx->codec->capabilities & AV_CODEC_CAP_DELAY && > + avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) { > + pkt->opaque = pic->opaque; > + pkt->opaque_ref = pic->opaque_ref; > + pic->opaque_ref = NULL; > } > > av_buffer_unref(&pic->output_buffer_ref); > @@ -785,6 +786,8 @@ static int vaapi_encode_free(AVCodecContext *avctx, > av_frame_free(&pic->input_image); > av_frame_free(&pic->recon_image); > > + av_buffer_unref(&pic->opaque_ref); > + > av_freep(&pic->param_buffers); > av_freep(&pic->slices); > // Output buffer should already be destroyed. > @@ -1152,6 +1155,15 @@ static int vaapi_encode_send_frame(AVCodecContext > *avctx, AVFrame *frame) > > pic->input_surface = (VASurfaceID)(uintptr_t)frame->data[3]; > pic->pts = frame->pts; > + pic->duration = frame->duration; > + > + if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) { > + err = av_buffer_replace(&pic->opaque_ref, frame->opaque_ref); > + if (err < 0) > + goto fail; > + > + pic->opaque = frame->opaque; > + } > > av_frame_move_ref(pic->input_image, frame); > > diff --git a/libavcodec/vaapi_encode.h b/libavcodec/vaapi_encode.h > index 359f954ffff..a1e639f56b0 100644 > --- a/libavcodec/vaapi_encode.h > +++ b/libavcodec/vaapi_encode.h > @@ -75,8 +75,12 @@ typedef struct VAAPIEncodePicture { > int64_t display_order; > int64_t encode_order; > int64_t pts; > + int64_t duration; > int force_idr; > > + void *opaque; > + AVBufferRef *opaque_ref; > + > #if VA_CHECK_VERSION(1, 0, 0) > // ROI regions. > VAEncROI *roi; LGTM and the command for transcoding with vaapi works well now. BRs 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".