From patchwork Wed Aug 9 01:39:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 4663 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.46.211 with SMTP id u202csp317211vsu; Tue, 8 Aug 2017 18:39:31 -0700 (PDT) X-Received: by 10.28.154.211 with SMTP id c202mr3781660wme.91.1502242771539; Tue, 08 Aug 2017 18:39:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1502242771; cv=none; d=google.com; s=arc-20160816; b=QuY7FJo1gdqodayaAr9MLbJMD+VPuQSC6GH3xDodB7oQKKARvDLqQcNnX8FhWG5CXt AD9Ar2b/6M9QRIucZonhTkC8glSG9Ga2LKu6spO2i7XQdEYVpVew4uciXD61J7CQvqR4 3nsMShLGdiKN0Bbbh1pZBDkOdhkEsZKxOt73yhcD6gCeofM5OLlqrurrx1nVu5XGYMop i4RY7hUh07JNK/wuZO3pDDOQX/jDKVprzN4Ug8mZmQYwsjFZxPWhhAF0vjbN3w062lOP vYfbeH1c2IaoCK9vLxA6CDVIsqW7gMgE7946ncse8pYkQizqTctIZGyweEyG6/eC0JBv Anew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :content-language:mime-version:user-agent:date:message-id:from:to :dkim-signature:delivered-to:arc-authentication-results; bh=z21d6z0XI//FOWZlne1xbhTM68y0eNPgxnxAzCrWmVA=; b=yqHxuKpM+7hdu7dONCx0svHmDytXARVSMdu9KHRinVEwgatN4VTtY5uyMCGShs+DBf sTgTOBpEggnXGuAOiyX1h8mtRGb7xc5ScoooBGYOfKNA1kqyLqkfYJagaKOot3EnbBLL JDxMYWmMZiSVZLf8RZnAWWQW7HTQprqW8HFUWsVbRelG4Rfk/Y1A8/JfJad8W1U2mfkf +J9EMUlk7+gfqOuakZjAWi419U05OUffAMAnwWECMk1KCe+5O5slpz4e5/TQ18OJTlNQ MIVkAxg1tbACEzbGwlZW3nrGUnfPE5RMsM5L9r+FoKEQxOOt3HcPutd2RcsdQ5p3ZNI3 uwEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=UG+67SjI; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h37si2403270wrh.133.2017.08.08.18.39.31; Tue, 08 Aug 2017 18:39:31 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=UG+67SjI; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EDA85689951; Wed, 9 Aug 2017 04:39:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg0-f68.google.com (mail-pg0-f68.google.com [74.125.83.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 394BB688395 for ; Wed, 9 Aug 2017 04:39:20 +0300 (EEST) Received: by mail-pg0-f68.google.com with SMTP id u185so4570698pgb.0 for ; Tue, 08 Aug 2017 18:39:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:message-id:date:user-agent:mime-version :content-language; bh=DkY1cJrq5jx5HnxC8dhwfhSVQquJWAHEMXogGiPeuVE=; b=UG+67SjINZx7WCgCurjNMJm5REnzHpbmm3ibL7D1oPOdPTXkNlKSNgXhs43PPHV4b8 twKjH0ZKM22glbedAeJ9Gz87mbUJKnBKkH57J2+ZrNBRqHEZ9AFwoEVJuQ92zWgqRDz7 fOx1z5hMbTRyHNKyTR/9+481LvAixrPY6k4nyjnN2OEgLA+H7oO36Z+szbxnPV8jZOZG 61FCEw7YJVaOGWcG8SqRix81YdqFsR2RYBrdJVciYY5P58Es8lsnP+ZRqHyXlw14daAh u69sY+Z01neNXyKV/ZHb0MTSTp06shpJ7zJkVM0CdqS/eMlAvAASdnZw0dmYJnT1Xl2g aWgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-language; bh=DkY1cJrq5jx5HnxC8dhwfhSVQquJWAHEMXogGiPeuVE=; b=p75GNX6e9v8e3lHiZYu7qawd+78fhjqVDwev3CPnHbE2Hv52Wc540hn7/aXBdBFr+Q bfouV5fTJ9DF0JSXRokZYqVva3upzeFHM2ruwegJeF8/LpI7Xo5fx4huVT16PDZbDr+j CF0UAF3l0+z99udvXNiez5DSnfz9GGNa2ZLc1Yv53CWyhFNIbTdYU521P0GSBm/V9n4K F5a6YfCloE6h+Nby/fTR0hZ8BtIWWjEvAiBaNrUt+OHsXqcEuzGObnHkSuhFPLUgxPFX YBAAOlsj0GZJTwjWjA2zi/wFYAAurjsRRYqGKupkeANmWeCnLpFqR943azjL/ZOCVKqG 6N2Q== X-Gm-Message-State: AHYfb5jOXOcyOwW9SYRoU1Gvh6n44oqapwxyJlK3ezo+3iC4u+7XcG/N zwn14boaHesjrQ== X-Received: by 10.84.224.76 with SMTP id a12mr6935073plt.382.1502242760863; Tue, 08 Aug 2017 18:39:20 -0700 (PDT) Received: from [10.67.68.29] ([192.55.54.45]) by smtp.gmail.com with ESMTPSA id d86sm4689390pfk.43.2017.08.08.18.39.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Aug 2017 18:39:19 -0700 (PDT) To: FFmpeg development discussions and patches , Mark Thompson , Hendrik Leppkes From: Jun Zhao Message-ID: <10c31d14-113b-ce88-16ea-00048e32e858@gmail.com> Date: Wed, 9 Aug 2017 09:39:16 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 Content-Language: en-US Subject: [FFmpeg-devel] [PATCH V2] lavc/vaapi_encode_h264: add "coder" option support 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" V2: Follow libx264 "coder" option style, base on Hendrik Leppkes code review. From 28e4dc3533be2b7c7493a08de7143c042c9923c1 Mon Sep 17 00:00:00 2001 From: Jun Zhao Date: Tue, 8 Aug 2017 03:33:53 -0400 Subject: [PATCH V2] lavc/vaapi_encode_h264: add "coder" option support Follow libx264 style to support coder option, default is enabled cabac. Signed-off-by: Yi A Wang Signed-off-by: Jun Zhao --- libavcodec/vaapi_encode_h264.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c index f9fcd805a4..4e1df182a0 100644 --- a/libavcodec/vaapi_encode_h264.c +++ b/libavcodec/vaapi_encode_h264.c @@ -168,6 +168,8 @@ typedef struct VAAPIEncodeH264Options { int qp; int quality; int low_power; + // Entropy encoder type + int coder; } VAAPIEncodeH264Options; @@ -783,6 +785,8 @@ static int vaapi_encode_h264_init_sequence_params(AVCodecContext *avctx) VAEncPictureParameterBufferH264 *vpic = ctx->codec_picture_params; VAAPIEncodeH264Context *priv = ctx->priv_data; VAAPIEncodeH264MiscSequenceParams *mseq = &priv->misc_sequence_params; + VAAPIEncodeH264Options *opt = + (VAAPIEncodeH264Options*)ctx->codec_options_data; int i; { @@ -927,8 +931,12 @@ static int vaapi_encode_h264_init_sequence_params(AVCodecContext *avctx) vpic->num_ref_idx_l0_active_minus1 = 0; vpic->num_ref_idx_l1_active_minus1 = 0; - vpic->pic_fields.bits.entropy_coding_mode_flag = - ((avctx->profile & 0xff) != 66); + if (opt->coder) { + vpic->pic_fields.bits.entropy_coding_mode_flag = + ((avctx->profile & 0xff) != 66); + } else { + vpic->pic_fields.bits.entropy_coding_mode_flag = 0; + } vpic->pic_fields.bits.weighted_pred_flag = 0; vpic->pic_fields.bits.weighted_bipred_idc = 0; vpic->pic_fields.bits.transform_8x8_mode_flag = @@ -1283,6 +1291,12 @@ static const AVOption vaapi_encode_h264_options[] = { { "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 }, + { "coder", "Entropy coder type", + OFFSET(coder), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, FLAGS, "coder" }, + { "cavlc", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, FLAGS, "coder" }, + { "cabac", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, FLAGS, "coder" }, + { "vlc", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, FLAGS, "coder" }, + { "ac", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, FLAGS, "coder" }, { NULL }, };