From patchwork Tue May 21 20:31:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Fu, Linjie" X-Patchwork-Id: 13219 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 69F02448958 for ; Tue, 21 May 2019 11:32:34 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3C5E3689ED4; Tue, 21 May 2019 11:32:34 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B8147689A5E for ; Tue, 21 May 2019 11:32:27 +0300 (EEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 May 2019 01:32:25 -0700 X-ExtLoop1: 1 Received: from icl-dev.sh.intel.com ([10.239.158.85]) by fmsmga006.fm.intel.com with ESMTP; 21 May 2019 01:32:24 -0700 From: Linjie Fu To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 May 2019 16:31:20 -0400 Message-Id: <1558470680-31221-1-git-send-email-linjie.fu@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [FFmpeg-devel] [PATCH] lavc/vaapi_encode: disable ICQ mode when enabling low power 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" ICQ mode is not supported in low power mode and should be disabled. For H264, Driver supports RC modes CQP, CBR, VBR, QVBR. For HEVC, Driver supports RC modes CQP, CBR, VBR, ICQ, QVBR. ICQ is not exposed while working on low power mode for h264_vaapi, but will trigger issues for hevc_vaapi. Signed-off-by: Linjie Fu --- See https://github.com/intel/media-driver/issues/618 for details. And patch for HEVC low power(ICL+): https://github.com/intel-media-ci/ffmpeg/pull/42 libavcodec/vaapi_encode.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 2dda451..55ab919 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -1371,6 +1371,7 @@ static av_cold int vaapi_encode_init_rate_control(AVCodecContext *avctx) // * If bitrate and maxrate are set and have the same value, try CBR. // * If a bitrate is set, try AVBR, then VBR, then CBR. // * If no bitrate is set, try ICQ, then CQP. + // * If low power is set, ICQ is not supported. #define TRY_RC_MODE(mode, fail) do { \ rc_mode = &vaapi_encode_rc_modes[mode]; \ @@ -1405,7 +1406,8 @@ static av_cold int vaapi_encode_init_rate_control(AVCodecContext *avctx) TRY_RC_MODE(RC_MODE_QVBR, 0); if (avctx->global_quality > 0) { - TRY_RC_MODE(RC_MODE_ICQ, 0); + if (!ctx->low_power) + TRY_RC_MODE(RC_MODE_ICQ, 0); TRY_RC_MODE(RC_MODE_CQP, 0); } @@ -1417,7 +1419,8 @@ static av_cold int vaapi_encode_init_rate_control(AVCodecContext *avctx) TRY_RC_MODE(RC_MODE_VBR, 0); TRY_RC_MODE(RC_MODE_CBR, 0); } else { - TRY_RC_MODE(RC_MODE_ICQ, 0); + if (!ctx->low_power) + TRY_RC_MODE(RC_MODE_ICQ, 0); TRY_RC_MODE(RC_MODE_CQP, 0); }