From patchwork Mon Jun 12 22:40:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Thompson X-Patchwork-Id: 3941 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.22.4 with SMTP id 4csp78023vsw; Mon, 12 Jun 2017 15:42:43 -0700 (PDT) X-Received: by 10.28.166.137 with SMTP id p131mr9084430wme.43.1497307362974; Mon, 12 Jun 2017 15:42:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497307362; cv=none; d=google.com; s=arc-20160816; b=cbQdWbAhK7ONq73FKDdl10P1Vz7F69hYnV3rksZ9im1bqfiLQoZufVgyBDvW9X/A3H weW6zPCEXSOCXvBQlk4K9JjaqKfbNvc/RxXDtN2gCfucejjjvQeZfT3dd6YjIuMXSd5o UIxfnjQXr8tch9ZrKWEEGtip0MmXzfpHWE9yjyndXUsg47ikpqc70Vu562QUPOpqlvfu NRUxWP4tycXK/CH4CQ8GIkfQqXkJZDX+dMVLp+73lo8hWcxLMLFySEr5nfP5fUeN4C3t MtygX/u42x1DXBGLmrerI5Yzg+1l4B0rFcBcp1qIeH9SmEPsOSMIRja1f31xq648ppdV Ia6w== 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:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=RCRCbfnjnugTJDzYcrYIrVPf1sOr7YoeSGsZpfJsyB4=; b=Y8nfMTw+6/FrJAfSPHYWQXNUEmceyLr0ZBKDf/TDMc0LJSrhrtT7Y7Dy9Y0WF/WuH6 5rdyhsB2GBKpKya+yG9wLbzOOcolcRMdvMipdWae6ON9a+6e70tPe8ep9v1+jncm34eU KUX0KcZLS1jZog9P1YD03QpNCMh5x7tXO0vMUNpw2tOGQNkJYUpHMsd1DP/iuYTRwvlZ RH9jGzEg0OS6FYe/sWi53EpMb66YWu6IYLw1W7gWUg2jUtVFO/qejR0Cx2mOe4weGG5R VkCLnMkbA7txvJfa/2z5bgnTLPDJY9mP1bT9UKV64xX6WUxnfMqvRepeJPg45RK+b9LO 3bEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@jkqxz-net.20150623.gappssmtp.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 l33si11410514wrc.111.2017.06.12.15.42.42; Mon, 12 Jun 2017 15:42:42 -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=@jkqxz-net.20150623.gappssmtp.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 F0A8F689FFD; Tue, 13 Jun 2017 01:41:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f179.google.com (mail-wr0-f179.google.com [209.85.128.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D4D2B68A039 for ; Tue, 13 Jun 2017 01:41:08 +0300 (EEST) Received: by mail-wr0-f179.google.com with SMTP id v111so116326179wrc.3 for ; Mon, 12 Jun 2017 15:41:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references; bh=93lGiZOlc7S8cTcuwefXxh1g32TxRBLJDXmO4UN0Hgk=; b=qKXBFXtW1Hl+LEEmxJfOpmYAEMOsFvyWuS0DzpcwrSG50nijz9eX2s/OTXQjR0QfS1 KE1uy+z2zCpLEkSswwn12fX3+8TJP98ySOjCV0FJsVnEP8qwQb636SLpTilYxkFLXlp9 X2KwnRcqan7mrOFZI6N0NsB/3eGOnvPPP8fio+g2yu4DOzlIwYNVSkgpqssjhGcAkPYT D23gt5aMGwff/IVNZbgxqMGtwiJFHrNNuwfi0tFQo7X3wnwSBZK5F4JiwGwLQcmizSvk xGo3n4yLtUkEqyRtyfmAl5Bby8ys+2cuSnjqwtH8lhQJfTLiOUc5Yg+AynrUUhKXHxR5 JnFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=93lGiZOlc7S8cTcuwefXxh1g32TxRBLJDXmO4UN0Hgk=; b=uTRbWl1OKQakRUw/4b0/PMal7YF1YxFQXZaxT+p0F2kCsWXRvm9HiFW58TK25wjqju z5nrHgPhr+j/SqtXe0jZnoT/rvHLUc+W3UutQ7rjPXzBZypd0qO6Pjq65r79Zwr42QOA H6jG92lTtipCsAKmpYUNBORlhsla21BpvbGmEEN/5qONKVu1dGWzm4ybhnJCVv/61Lz1 L9dbO9GTgDguwCkat7XFYaGdgYpRejlzi9kWA/OYxsDk9NVMEreGk5yFzmiEJ1VD4F6B ITpzLRk3F2v3jJ+YTYnd1QkDfFWFTC3UZnOBEVWgMXGmbaxOArLbtjuvvZGDwAIZQK1X Uupg== X-Gm-Message-State: AKS2vOxacNUmW7hz3Ql0UfjKuy3jGvYioeMZ5r+tfq+e/h2t6zTcFq20 c6sbR1RXdHSP4q54Ihw= X-Received: by 10.223.149.2 with SMTP id 2mr780603wrs.46.1497307270195; Mon, 12 Jun 2017 15:41:10 -0700 (PDT) Received: from rywe.jkqxz.net (cpc91242-cmbg18-2-0-cust650.5-4.cable.virginm.net. [82.8.130.139]) by smtp.gmail.com with ESMTPSA id m191sm13098233wmg.30.2017.06.12.15.41.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Jun 2017 15:41:09 -0700 (PDT) From: Mark Thompson To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Jun 2017 23:40:30 +0100 Message-Id: <20170612224041.6750-14-sw@jkqxz.net> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170612224041.6750-1-sw@jkqxz.net> References: <20170612224041.6750-1-sw@jkqxz.net> Subject: [FFmpeg-devel] [PATCH 13/24] vaapi_encode: Use gop_size consistently in RC parameters 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The non-H.26[45] codecs already use this form. Since we don't currently generate I frames for codecs which support them separately to IDR, the p_per_i variable is set to infinity by default so that it doesn't interfere with any other calculation. (All the code for I frames still exists, and it works for H.264 if set manually.) (cherry picked from commit 6af014f4028238b4c50f1731b3369a41d65fa9c4) --- libavcodec/vaapi_encode.c | 3 +-- libavcodec/vaapi_encode_h264.c | 4 ++-- libavcodec/vaapi_encode_h265.c | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 7aaf263d25..2de5f76cab 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -1435,8 +1435,7 @@ av_cold int ff_vaapi_encode_init(AVCodecContext *avctx) ctx->output_order = - ctx->output_delay - 1; // Currently we never generate I frames, only IDR. - ctx->p_per_i = ((avctx->gop_size - 1 + avctx->max_b_frames) / - (avctx->max_b_frames + 1)); + ctx->p_per_i = INT_MAX; ctx->b_per_p = avctx->max_b_frames; if (ctx->codec->sequence_params_size > 0) { diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c index 92e29554ed..f9fcd805a4 100644 --- a/libavcodec/vaapi_encode_h264.c +++ b/libavcodec/vaapi_encode_h264.c @@ -905,8 +905,8 @@ static int vaapi_encode_h264_init_sequence_params(AVCodecContext *avctx) mseq->nal_hrd_parameters_present_flag = 0; } - vseq->intra_period = ctx->p_per_i * (ctx->b_per_p + 1); - vseq->intra_idr_period = vseq->intra_period; + vseq->intra_period = avctx->gop_size; + vseq->intra_idr_period = avctx->gop_size; vseq->ip_period = ctx->b_per_p + 1; } diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c index 6e008b7b9c..1d648a6d87 100644 --- a/libavcodec/vaapi_encode_h265.c +++ b/libavcodec/vaapi_encode_h265.c @@ -832,8 +832,8 @@ static int vaapi_encode_h265_init_sequence_params(AVCodecContext *avctx) vseq->vui_time_scale = avctx->time_base.den; } - vseq->intra_period = ctx->p_per_i * (ctx->b_per_p + 1); - vseq->intra_idr_period = vseq->intra_period; + vseq->intra_period = avctx->gop_size; + vseq->intra_idr_period = avctx->gop_size; vseq->ip_period = ctx->b_per_p + 1; }