From patchwork Wed Nov 13 12:11:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Fu, Linjie" X-Patchwork-Id: 16245 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 0AA7C4496CA for ; Wed, 13 Nov 2019 14:12:12 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DACD268A276; Wed, 13 Nov 2019 14:12:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B763C68A276 for ; Wed, 13 Nov 2019 14:12:04 +0200 (EET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Nov 2019 04:12:02 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,300,1569308400"; d="scan'208";a="207436280" Received: from media_lj_kbl.sh.intel.com ([10.239.13.13]) by orsmga003.jf.intel.com with ESMTP; 13 Nov 2019 04:12:01 -0800 From: Linjie Fu To: ffmpeg-devel@ffmpeg.org Date: Wed, 13 Nov 2019 20:11:00 +0800 Message-Id: <20191113121100.16793-1-linjie.fu@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH] lavc/vaapi_encode: reconfigure sequence parameter in case it changes X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 Cc: Linjie Fu MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Aspect ratio change should be preserved in the output result of transcoding. A better choice is to reconfigure when parameter changing is detected, but a fix to reconfigure on IDR frame is simple and effective with no performance drop. Fix #6276 for VAAPI. Signed-off-by: Linjie Fu --- libavcodec/vaapi_encode.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 3be9159d37..c202113cb9 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -226,6 +226,12 @@ static int vaapi_encode_issue(AVCodecContext *avctx, pic->nb_param_buffers = 0; if (pic->type == PICTURE_TYPE_IDR && ctx->codec->init_sequence_params) { + err = ctx->codec->init_sequence_params(avctx); + if (err < 0) { + av_log(avctx, AV_LOG_ERROR, "Failed to reinit per-sequence " + "parameters: %d.\n", err); + goto fail; + } err = vaapi_encode_make_param_buffer(avctx, pic, VAEncSequenceParameterBufferType, ctx->codec_sequence_params,