From patchwork Tue Feb 6 08:17:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 7520 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.150.1 with SMTP id c1csp3818776jai; Tue, 6 Feb 2018 00:18:10 -0800 (PST) X-Google-Smtp-Source: AH8x226CqtEp/ycJAvCVb9XDLhJ66om1oUkY2lBJqzFjNBHngNosUTbIMp+o66MHq/5rFOW2qPWJ X-Received: by 10.223.175.196 with SMTP id y4mr1381279wrd.195.1517905090660; Tue, 06 Feb 2018 00:18:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517905090; cv=none; d=google.com; s=arc-20160816; b=EwHdrrFLeW6LnZHApVsJiexvEfkgs3k+8S/jTv+n49XIr9Nyxdc5xiue13v0Xjhl6k 2UAG9WkxN6nUcTNIZGIOs/64B5faYCHw7J0M2LUcOin2gCn0TKodYfO2EWI9ynW+UxwF XFlueCsVr1L8HErNxihxD912mJx1TOVfR/IChRW71eoQOfMDbpau3+N6rrERoW0WyiYx +193IFuTn+/Od8DlD3klVoR7yU0igEm3+DqAg0DCQznBIU5Lqsw/25nC0lG4/sQJI2eu N6VUgHhS4XjEQImIC5Ne4RZwk3wafMdGD7suiFiPVhrpzUtuWXlBruoh8oiVxne/PqQT EQ9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:delivered-to :arc-authentication-results; bh=IxixdBeg35ZlGqjYTkMDKVUsqQ3es4cLhNfdyOaL2Dc=; b=GQ7VfynORRQv0Cyi+ZE9Bb+BUzcsiVmKzEsgHOULRPewe8HoYCOIB7U2Jya/xIlg6s ioov9krTodacEi+qKbG7aaCer0VxThJh5Mr6c11+ip9fjQkgSrxojPIlBURRqwke+kgh CO09fdIznPyzyB55MicR6uGmZdbd3OvPwEday6Dfroyrlf8UDyo57GtjvQQYFE7ztNTA tOQU9pL4/+dhWxBcYj6l4wNc/YSGqnfyjQr5Uf3QCXEkbCNK5WXyXm+oeo1hZQHMwasY y03Pmgl/FE99YidjhCISs/LJuoynSJaOiJCT8fX0mLVvZ95YUyeAlMxRYqR5GB7YpfbJ Zfkw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id k19si6223402wrg.290.2018.02.06.00.18.10; Tue, 06 Feb 2018 00:18:10 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6D12B688294; Tue, 6 Feb 2018 10:17:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0E6A6688294 for ; Tue, 6 Feb 2018 10:17:51 +0200 (EET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Feb 2018 00:17:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,467,1511856000"; d="scan'208";a="201713166" Received: from xhh-cfl64.sh.intel.com ([10.239.13.24]) by fmsmga006.fm.intel.com with ESMTP; 06 Feb 2018 00:17:57 -0800 From: Haihao Xiang To: FFmpeg development discussions and patches Date: Tue, 6 Feb 2018 16:17:55 +0800 Message-Id: <20180206081755.24616-1-haihao.xiang@intel.com> X-Mailer: git-send-email 2.14.1 Subject: [FFmpeg-devel] [PATCH] lavc/vaapi_encode_h265: add support for low-power encoding 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: Haihao Xiang , Mark Thompson MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Although VAEntrypointEncSliceLP was added in old version of VAAPI, we never implemented it for VAAPI H265 encoder before. so it is reasonable to require VAAPI 1.0 Signed-off-by: Haihao Xiang --- libavcodec/vaapi_encode_h265.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c index f3b4f6c7e26..efe1148127f 100644 --- a/libavcodec/vaapi_encode_h265.c +++ b/libavcodec/vaapi_encode_h265.c @@ -65,6 +65,7 @@ typedef struct VAAPIEncodeH265Options { int aud; int profile; int level; + int low_power; } VAAPIEncodeH265Options; @@ -914,7 +915,18 @@ static av_cold int vaapi_encode_h265_init(AVCodecContext *avctx) avctx->profile); return AVERROR(EINVAL); } - ctx->va_entrypoint = VAEntrypointEncSlice; + + if (opt->low_power) { +#if VA_CHECK_VERSION(1, 0, 0) + ctx->va_entrypoint = VAEntrypointEncSliceLP; +#else + av_log(avctx, AV_LOG_ERROR, "Low-power encoding is not " + "supported with this VAAPI version.\n"); + return AVERROR(EINVAL); +#endif + } else { + ctx->va_entrypoint = VAEntrypointEncSlice; + } if (avctx->bit_rate > 0) { if (avctx->rc_max_rate == avctx->bit_rate) @@ -986,6 +998,10 @@ static const AVOption vaapi_encode_h265_options[] = { { LEVEL("6.2", 186) }, #undef LEVEL + { "low_power", "Use low-power encoding mode (experimental: only supported " + "on some platforms, does not support all features)", + OFFSET(low_power), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, FLAGS }, + { NULL }, };