From patchwork Tue Aug 15 06:25:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Liu X-Patchwork-Id: 4709 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.46.211 with SMTP id u202csp5217274vsu; Mon, 14 Aug 2017 23:32:37 -0700 (PDT) X-Received: by 10.28.137.129 with SMTP id l123mr911163wmd.101.1502778757206; Mon, 14 Aug 2017 23:32:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1502778757; cv=none; d=google.com; s=arc-20160816; b=Z14z4pCKtT89mV8S59MDQIyWsGq06PnGlVDwcmPJYISITytIDCe4ZhejnDmClAUbrh 4PoYd53nxlQ2MvYy7q3fkoxPH7ZojmBOQ+HkZd5vPkRhEDbQcoCMfsp22k1gpi+mJGKs 2HYR/p3DPonZI8E1oc8rMcuRHLtOH4P9Ke3lNvN8WC5lPutg3p2hMKJyE+vMq2KTe9+v jqVUBJMcUapGI6kfrH13mzUlnrG4pk0p2+mzdl1IK6FZT7KvxLMjEO6qBSarIDYZTLWY 5Z0PI0pIZH1F9nFglFrw/kemFSHKVJZjWxj+Cv/b1LxNYclqy5V1VW8Kut71iq/AgYgg JGpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:to:message-id:date:from:references :in-reply-to:mime-version:dkim-signature:delivered-to :arc-authentication-results; bh=7C50b/673QsejbWyarzjS89hjNKyv9Q6/fiQseG+W/0=; b=ygJWpvXsW8ZCP7lpYnf4K535LzW9Fm2eJz/KP43LQs44MYjeXhrfA99rZBqa7sPo6L d8gSPeoXNLYHMxWVTKjTIeDPpX3wG30GG0KudoCk8ta8e4TED9ezSjkHUbloJarhcP5U du687EzFwH79vpf5kM0GLdXT0/pF6nJcf06JCHX0PLr9Y4fXX1498PZo1ZNgTHcKqtP3 BLHGVq4frcQmr+TWTaGB62N3AGxnRVjrkvR5qUqjJ8oT8vtpdeN3bPYqbzmwbNfMVKQm OwJHUQD08ksKJvubdYk4cx8jb/c8o5lzuFQXFaUToGJh3VegTh7rbdvgaGLUyBtfFZ02 +oMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=dB8XbGsp; 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 b15si6842755wrf.167.2017.08.14.23.32.36; Mon, 14 Aug 2017 23:32:37 -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=dB8XbGsp; 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 C0838689BC8; Tue, 15 Aug 2017 09:32:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi0-f66.google.com (mail-oi0-f66.google.com [209.85.218.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D490468829F for ; Tue, 15 Aug 2017 09:32:21 +0300 (EEST) Received: by mail-oi0-f66.google.com with SMTP id v11so87490oif.1 for ; Mon, 14 Aug 2017 23:32:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=hXufbVEwJAWv0zrwwVaMeQrkiGZG8fdfQPBF429VXyM=; b=dB8XbGspyHK7dRn8ogFNpvn1D57rkZE50q0wM+ZMD8+dyDUOuT4kxbx3l6pq/5sg7A urRuu7LiZREq1U13XK0nEqItsHRiY/4QsgTiwKaBbqadnEKdkE69mjNP58UV62fX/4qW BS9u2X5r6j9NFZhkUFbemJBOo2mdUStZzXZ0OdnGfL+7edTQ0lJxwkZ/vLDjyLSpEZ52 wJjOM9EecGUB8EMSAGNL4T8+XrH2XYSGq3HtXBpNKBAY/E1yikVihpAh1nHhj5ZnAbva A+HYcLDmcw5uiT2KngBbeN2K893VnhESJoNboaNiWBlbS+M3iy4VpdNluHveCOtGOKN7 qh+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=hXufbVEwJAWv0zrwwVaMeQrkiGZG8fdfQPBF429VXyM=; b=nwki0gbd7LVB1nL0D0THm8ZBJeUeTu7W0SR2/KWzhR9iiVdcbIlWqQMHio1KdVrly5 0csch08oCIP6aU4QXzquOi3GMkIdzNSuaRKKiZixd21oPHbhJErSu0uw9WPh7ww3z390 zoaJQ2lCqd5et6sORhYKeE3TwwnJdisHV8AIugL/V6lRknVXZjtM/RvLWT6lWc0y829L qzAkqR8e+klTTOYHs6eND1ui392RTVvsSksNPucsx3bg05E4HqGeYLOPmDERdtaU1p1r W8yGTp6XERCGH/C3Dfj5tKlhfzJkjwK+UDekJ92cvuBBJCZPmZOWK7N4u8vjOl13Fg4v KHMQ== X-Gm-Message-State: AHYfb5j5/tA6q7b274wNUzqNta2sypC5X7K7eGX94W48hU7BbTPSSCU0 8+hbxkhicE+0CHqR2lAPXlvcVuq8Lg== X-Received: by 10.202.114.146 with SMTP id p140mr29086893oic.175.1502778354882; Mon, 14 Aug 2017 23:25:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.74.48.88 with HTTP; Mon, 14 Aug 2017 23:25:54 -0700 (PDT) In-Reply-To: References: <10c31d14-113b-ce88-16ea-00048e32e858@gmail.com> <46bcf324-7915-6077-d7c9-96f7583c079f@gmail.com> <63aaa823-d913-62ef-4379-f7c199ced35e@gmail.com> From: Steven Liu Date: Tue, 15 Aug 2017 14:25:54 +0800 Message-ID: To: Jun Zhao Subject: Re: [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 Cc: Mark Thompson , Hendrik Leppkes , FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" 2017-08-15 11:33 GMT+08:00 Steven Liu : > 2017-08-15 11:23 GMT+08:00 Jun Zhao : >> >> >> On 2017/8/15 10:41, Steven Liu wrote: >>> 2017-08-15 8:48 GMT+08:00 Jun Zhao : >>>> ping? >>> No Documentation for the coder options? >> >> Do you means man page or the other docs ? > doc/encoders.texi > This one. >> >>>> >>>> On 2017/8/9 9:39, Jun Zhao wrote: >>>>> V2: Follow libx264 "coder" option style, base on Hendrik Leppkes code review. >>>>> >>>> _______________________________________________ >>>> ffmpeg-devel mailing list >>>> ffmpeg-devel@ffmpeg.org >>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> _______________________________________________ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> 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(-) { @@ -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; + } What about write like this? vpic->pic_fields.bits.entropy_coding_mode_flag = opt->coder ? (avctx->profile & 0xff) != 66 : 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 }, }; 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;