From patchwork Sun Jul 26 12:26:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21266 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 05D6544A760 for ; Sun, 26 Jul 2020 15:26:40 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D0B7368B5B2; Sun, 26 Jul 2020 15:26:39 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9F55768B554 for ; Sun, 26 Jul 2020 15:26:32 +0300 (EEST) Received: by mail-wr1-f48.google.com with SMTP id l2so1655215wrc.7 for ; Sun, 26 Jul 2020 05:26:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=W2VjuZXmn3ReAkU6khHYrOKdHri/gjBkZE0fPmxNCc0=; b=CkgYlRdpu97nEePu8PSBD13QnZIHsSIp2HSpoTH8ab+3ZcQ410Q5ODiY19lzoOFNi7 5P6lRXAfaiLdUOVcLcP3QhVti1psozRZYat3QEv2LZK6bLd6sG4HujQYKAWy20KA3iI+ uzBX5b/iiw4uZVhfTAt3bA7pb0csGOXqw9fGVHjwzcU8lp5hE494KkUTA1gc7o3bcixp y9Pl35kw424cxEPtEkUDvElpSx6nFZSbUbmhD0rvtf5Fv4EQm71ogTXOP5qAWCopEIKd 86gAHg8lns3lvZY8+j8YwVDN4lV7ut/2l3+zBWmjVde5VU14Yc9o59DiWl12LT0I6DwG Uw8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=W2VjuZXmn3ReAkU6khHYrOKdHri/gjBkZE0fPmxNCc0=; b=Oq0TmwsGu3AvgWOKNdM8el5HbxWW4OMn7Nm9fskDgKnu97Yyi6L3OwjOrrLNM4g+9c mDB9orAmciJq371wavARRmHyyuTBlcW4VJcg60aQZ8SYsYrEKPPHBI6j7wix/2s/Cr9H qvbw2w9PUW/AlCV/fprpD507JTWdxtiMaNZHvyQT+sIYhkdkaUVm1MYMq3GKvH+OyNsF HVM27GmQCcV8yqKIv9F3UF1YjpFpV9wODyqFJgY76VPEyUp6n1Gn/FPY9LMt+iLN23Wv ohtRn+wY/2aLWKziXUCRPHOfYjm+ws8ROzw6knZkSU0PWzBQ6GMm3Frg4BeK+xCr2XJ0 YQ5A== X-Gm-Message-State: AOAM530/q+1CdywMT2tgJuvuVyf3J6p1Ps74tcN7SQ5FQred4/i8p7JJ Q7E7Klh7ZeWlv+tCAOXb8MfNACP0 X-Google-Smtp-Source: ABdhPJyHiTHEdQNJ3op6nmg5LJVwAfNkC0z2Y1igCSmlbFeVh+fxbkay2jR5ItkyFjvj7nahwPlK3Q== X-Received: by 2002:adf:e98c:: with SMTP id h12mr15907760wrm.3.1595766391825; Sun, 26 Jul 2020 05:26:31 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id j6sm8506576wro.25.2020.07.26.05.26.31 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 05:26:31 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 20:26:03 +0800 Message-Id: <1595766367-8861-1-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 Subject: [FFmpeg-devel] [PATCH 1/5] lavc/libkvazaar: fix framerate setting 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao fix framerate setting. Signed-off-by: Jun Zhao --- libavcodec/libkvazaar.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c index 02bcae3..71c9c8f 100644 --- a/libavcodec/libkvazaar.c +++ b/libavcodec/libkvazaar.c @@ -80,13 +80,8 @@ static av_cold int libkvazaar_init(AVCodecContext *avctx) cfg->height = avctx->height; if (avctx->framerate.num > 0 && avctx->framerate.den > 0) { - if (avctx->ticks_per_frame > INT_MAX / avctx->framerate.den) { - av_log(avctx, AV_LOG_ERROR, - "Could not set framerate for kvazaar: integer overflow\n"); - return AVERROR(EINVAL); - } cfg->framerate_num = avctx->framerate.num; - cfg->framerate_denom = avctx->time_base.den * avctx->ticks_per_frame; + cfg->framerate_denom = avctx->framerate.den; } else { if (avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) { av_log(avctx, AV_LOG_ERROR, From patchwork Sun Jul 26 12:26:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21267 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 0F2FE44A760 for ; Sun, 26 Jul 2020 15:26:41 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EB60968B5E3; Sun, 26 Jul 2020 15:26:40 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C8B068B474 for ; Sun, 26 Jul 2020 15:26:33 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id z18so8648343wrm.12 for ; Sun, 26 Jul 2020 05:26:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=e8pnUugmEkMvwdUOElWnDr/6i7fCEjn5zglFzQVUPfE=; b=dhf2TCCbqIG3Nj2hgT1zxx61lgkE90qDdiCCqsPGpSZKmFoVi8Qgzq7ua3JAjBjWqI rYMk9m9RNoRohnBvqZo8D41ASo5EeqBoEyQaUte3zw8Bi80FayRlsYITlxJs7NdQCm3g zDp713x33Bknjc1yEdVI5XkhQoH2KYCN4h1UwZUISuVVxcb6xvnqHK1hhoM5xexX4CS9 vEe+v67aUsbHe9CBQW9rah1G3OSVpRfLvI/SyhYh8zIobPdR8Vp6uuu5/Oeaj1uFhrSM 8jJxL3fuEc+4A6WCEw+mjK1qOIrhxf66iAd/2I3VdvEms/OzeXxHVAAS0ID2UaEhA7o1 bxwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=e8pnUugmEkMvwdUOElWnDr/6i7fCEjn5zglFzQVUPfE=; b=rvgX8ZDXyW+cl+41f41AH/XZucJd0i/jj+owv66moW5NYRvHOJYZMV5cxfhtFTEwJt SL0Mm6ixOGaj2igiro7HFfHcNHwCtx34by4crWhtz4zbLD/WRA0oJyowBPLR2sOO/g9G Uu9gYRBErjR1BOh7tthsvAiGhjmgFQIXslHS+imM4z0YPNYD+6XLQJO2OnkbTckrZ2yt IWZfxMmLGpGlAKI0rWtuovRKp1eS6TOyFT2EwBQwy3KzKKDJKnxGZc+TUVWWZcPZ/bG1 TdxJYzWez4LH4mg5Lic9PrxG+gh09B3/3wHtQFhmNOlb3Jzet8qBAUEzetdGzUXhujvi 5znQ== X-Gm-Message-State: AOAM531viuEHc8ypPZCkbqzD44gdzBd5RRW0ok650tyBLUNcyR+yEsMj KO8f5qQ4OB0ibTbYzEfVeDl3sGEd X-Google-Smtp-Source: ABdhPJwnjpMQRf2gJgH17b9o651ubBAZEMYB8behMjo/wJwPGY+7ra3nkqDWBh6A1uJsFgl8G/0NQw== X-Received: by 2002:a5d:4c8f:: with SMTP id z15mr7513009wrs.88.1595766392592; Sun, 26 Jul 2020 05:26:32 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id j6sm8506576wro.25.2020.07.26.05.26.31 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 05:26:31 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 20:26:04 +0800 Message-Id: <1595766367-8861-2-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1595766367-8861-1-git-send-email-mypopydev@gmail.com> References: <1595766367-8861-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/5] lavc/libopenh264enc: use framerate if available 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao Respecting the framerate in the libopenh264enc codec context. Both the libx264 and libx264 encoders already contain similar logic to first check the framerate before falling back to the timebase. Signed-off-by: Jun Zhao --- libavcodec/libopenh264enc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c index f63aa52..cf48566 100644 --- a/libavcodec/libopenh264enc.c +++ b/libavcodec/libopenh264enc.c @@ -156,7 +156,16 @@ static av_cold int svc_encode_init(AVCodecContext *avctx) (*s->encoder)->GetDefaultParams(s->encoder, ¶m); - param.fMaxFrameRate = 1/av_q2d(avctx->time_base); + if (avctx->framerate.num > 0 && avctx->framerate.den > 0) { + param.fMaxFrameRate = av_q2d(avctx->framerate); + } else { + if (avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) { + av_log(avctx, AV_LOG_ERROR, + "Could not set framerate for libopenh264enc: integer overflow\n"); + return AVERROR(EINVAL); + } + param.fMaxFrameRate = 1.0 / av_q2d(avctx->time_base) / FFMAX(avctx->ticks_per_frame, 1); + } param.iPicWidth = avctx->width; param.iPicHeight = avctx->height; param.iTargetBitrate = avctx->bit_rate > 0 ? avctx->bit_rate : TARGET_BITRATE_DEFAULT; From patchwork Sun Jul 26 12:26:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21268 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 D5A1244A760 for ; Sun, 26 Jul 2020 15:26:42 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BEAE868B603; Sun, 26 Jul 2020 15:26:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D255C68B474 for ; Sun, 26 Jul 2020 15:26:33 +0300 (EEST) Received: by mail-wr1-f66.google.com with SMTP id a5so2226726wrm.6 for ; Sun, 26 Jul 2020 05:26:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Zh6bwPcTswKfiT0lr6KaMqfpor/0FGPvQiemLJnoFF4=; b=h8UjBYI83z+Xu8CPwlfcQ6vR00AgLSO1/4k+D/fCSpz2B1ZDHmWeaYqyxYW0KwCWmm ThBjDMRMIHDKr8JHh0iuLzLlEgCIxTVvdLQ/y6GuiLVtjE8uQnJH4bktUn5Tw1IX9mZG yIpOfP4u+LOiaYHf5fRa9v7LZQRAMrLNr2T1iFPZp2NdPAwSbSkYKbowfuPbnJ6l1mTU NO5vzucWSKjXL4r1byuatkHAEzzdyp4tePJDBF+QCsG7gDq7QBew9lOrXyRc8yvLkzrR Aaqp7XJXCIw8j0dzfzSqOSKZ2bj/l0rXbo0zKLFENHTFkEXa1s8dGLaXVBINeoO1ZEZZ YBYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Zh6bwPcTswKfiT0lr6KaMqfpor/0FGPvQiemLJnoFF4=; b=dxlH2uKCWUGfptQ61eP6ZEN0kvpPeSvz+3nlBmYLsHTm7j/KHp4iFQIYJrtUUi4bWa Gyq+r8r18E4lC1q5yFmxMz26zwLmBgiKtxlO5eP4X6A89cOiC/P02+Gtqj8wNAmAeNbu 3wRZIivN2c0xyG7b9scmMJnM+1RYO6IF1A/BtzOif0k4O6ckO/LXuhKETWN3bBtlWQ0r qgnt4g+Pmag4DmKZ4R8Bir7+d4AgWZAbG0LiTbxdxpiHnI2vw8R4zmov+c2fUp73Cu6O X2fEfn0Hd7pd1Ktiw0dMmO5DPoDSMvppDd7YsAhAUzcrqZMBIbvUas5DIo5/HB6Rp1PH Wreg== X-Gm-Message-State: AOAM531nSlpMhUwUCt3PQ6D/WvV5kEJQUlO2PhTug7NI9xcCY9REaUcn msq1KytJuj3RlyQFWr49osHByydY X-Google-Smtp-Source: ABdhPJx/QDrkER0K8IVhfDXP7CxTsKiUcynPQaNwpUSfQGoUczQWwA/chrtDi2R7DGg8MHPZXWpJIA== X-Received: by 2002:adf:bc45:: with SMTP id a5mr15816515wrh.215.1595766393265; Sun, 26 Jul 2020 05:26:33 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id j6sm8506576wro.25.2020.07.26.05.26.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 05:26:32 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 20:26:05 +0800 Message-Id: <1595766367-8861-3-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1595766367-8861-1-git-send-email-mypopydev@gmail.com> References: <1595766367-8861-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/5] lavc/libkvazaar: export encoded frame stats 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao Export choosen pict_type and qp. Signed-off-by: Jun Zhao --- libavcodec/libkvazaar.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c index 71c9c8f..9032547 100644 --- a/libavcodec/libkvazaar.c +++ b/libavcodec/libkvazaar.c @@ -37,6 +37,7 @@ #include "avcodec.h" #include "internal.h" +#include "packet_internal.h" typedef struct LibkvazaarContext { const AVClass *class; @@ -170,6 +171,7 @@ static int libkvazaar_encode(AVCodecContext *avctx, kvz_data_chunk *data_out = NULL; uint32_t len_out = 0; int retval = 0; + int pict_type; *got_packet_ptr = 0; @@ -257,6 +259,34 @@ static int libkvazaar_encode(AVCodecContext *avctx, avpkt->flags |= AV_PKT_FLAG_KEY; } + switch (frame_info.slice_type) { + case KVZ_SLICE_I: + pict_type = AV_PICTURE_TYPE_I; + break; + case KVZ_SLICE_P: + pict_type = AV_PICTURE_TYPE_P; + break; + case KVZ_SLICE_B: + pict_type = AV_PICTURE_TYPE_B; + break; + default: + av_log(avctx, AV_LOG_ERROR, "Unknown picture type encountered.\n"); + return AVERROR_EXTERNAL; + } +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS + avctx->coded_frame->pict_type = pict_type; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + + ff_side_data_set_encoder_stats(avpkt, frame_info.qp * FF_QP2LAMBDA, NULL, 0, pict_type); + +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS + avctx->coded_frame->quality = frame_info.qp * FF_QP2LAMBDA; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + *got_packet_ptr = 1; } From patchwork Sun Jul 26 12:26:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21269 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 77B0644A760 for ; Sun, 26 Jul 2020 15:26:43 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 67AE368B617; Sun, 26 Jul 2020 15:26:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8E02A68B474 for ; Sun, 26 Jul 2020 15:26:34 +0300 (EEST) Received: by mail-wr1-f67.google.com with SMTP id r2so7130387wrs.8 for ; Sun, 26 Jul 2020 05:26:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=fpz+0Jdc2NJN1+pkZEckIW+DvW3K+md91aBBnOnPMBk=; b=WSH1mXWX0DaNSz/B29/fNxH7LackBe3rdK1u3HAL6Q65z/7D/5tXkgeA9w0gU9EqsJ WZ6M0F3XhcMBkG6DkeSMbZQDhe8N0tI2Le+Xc+Po/D0+mty3j974OAKw484QS3qdc2iB MvT8SZH6KN4HT1uom5v8+ra+c/VY6HgOb49Efxw5/YCeTUGxVeFBSa2Qq3ZOAqUFDtaK KKNvZ7lwCIntpQkVAeb+MgwYH75MDNcx+87QDnN6528fYcB1G6QJMJ3/vSagVqxWLNgI D+4d96hx4Amf0l+Gc8tEWWhRn0M8g58IHE0XdeKcRSlGwhc9C3BUaT4n9lCQRatBge2Q 6Wwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=fpz+0Jdc2NJN1+pkZEckIW+DvW3K+md91aBBnOnPMBk=; b=N+DuajijTtsZ+YhU2iR93KlTJkDgLblpwWZ3VfKnSeYHh3AkWMtDoDfmKf/F7B4708 ZlYh7y0GG347m2AaZuSL+P1NCx9gMv8vFgLmKLLXxc6hSQ236ETRdPUrLCveSu5+AtL6 MTX3f1UzTdWM2aiVSxZ4jyn8FMfV9+3uJWczZ8P2JvLzm64w+Oo5WBD3JLFHiPSkkz9v +8hyYv835frbvSjgLtuI//7+y6EzaUDJI/fwWKr5cxzi67OGWv1smI705HAMmFVQIELG Vr4SA+q17yw6lfEViLdGOjYwyVCzWb6uZ6f4iXcPb7A/Y6fba987PBgA2sYhO4CPCTCN N1Tw== X-Gm-Message-State: AOAM531Le/7oZFAU7hg56WNFlkeCg2Yl5fS39Nra2Xta60Sl5M4sMTCR Q5pHU4T4wH3oCffzrOhnOJwm7S8B X-Google-Smtp-Source: ABdhPJxjR4mVW+dRitqTe68g5bRMxoRBTGjjBgzja2N82ai7nYq/i5jbSjB5ydN3FH26U62EvN4/jw== X-Received: by 2002:adf:c401:: with SMTP id v1mr15501850wrf.379.1595766393886; Sun, 26 Jul 2020 05:26:33 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id j6sm8506576wro.25.2020.07.26.05.26.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 05:26:33 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 20:26:06 +0800 Message-Id: <1595766367-8861-4-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1595766367-8861-1-git-send-email-mypopydev@gmail.com> References: <1595766367-8861-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 4/5] lavc/openh264enc: export encoded frame stats 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao Export choosen pict_type and qp. NOTE: now libopenh264enc always export the the average QP with zero. And I have opened a issue for libopenh264 in https://github.com/cisco/openh264/issues/3317 Signed-off-by: Jun Zhao --- libavcodec/libopenh264enc.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c index cf48566..5d934b4 100644 --- a/libavcodec/libopenh264enc.c +++ b/libavcodec/libopenh264enc.c @@ -31,6 +31,7 @@ #include "avcodec.h" #include "internal.h" +#include "packet_internal.h" #include "libopenh264.h" #if !OPENH264_VER_AT_LEAST(1, 6) @@ -376,6 +377,8 @@ static int svc_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, SSourcePicture sp = { 0 }; int size = 0, layer, first_layer = 0; int layer_size[MAX_LAYER_NUM_OF_FRAME] = { 0 }; + int pict_type; + SEncoderStatistics stat = { 0 }; sp.iColorFormat = videoFormatI420; for (i = 0; i < 3; i++) { @@ -426,6 +429,34 @@ static int svc_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, avpkt->pts = frame->pts; if (fbi.eFrameType == videoFrameTypeIDR) avpkt->flags |= AV_PKT_FLAG_KEY; + + (*s->encoder)->GetOption(s->encoder, ENCODER_OPTION_GET_STATISTICS, &stat); + switch (fbi.eFrameType) { + case videoFrameTypeIDR: + case videoFrameTypeI: + pict_type = AV_PICTURE_TYPE_I; + break; + case videoFrameTypeP: + pict_type = AV_PICTURE_TYPE_P; + break; + default: + av_log(avctx, AV_LOG_ERROR, "Unknown picture type encountered.\n"); + return AVERROR_EXTERNAL; + } +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS + avctx->coded_frame->pict_type = pict_type; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + + ff_side_data_set_encoder_stats(avpkt, stat.uiAverageFrameQP * FF_QP2LAMBDA, NULL, 0, pict_type); + +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS + avctx->coded_frame->quality = stat.uiAverageFrameQP * FF_QP2LAMBDA; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + *got_packet = 1; return 0; } From patchwork Sun Jul 26 12:26:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21270 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 2CFB544A760 for ; Sun, 26 Jul 2020 15:26:44 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 18B2868B605; Sun, 26 Jul 2020 15:26:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 38DFA68B5CF for ; Sun, 26 Jul 2020 15:26:35 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id a5so2226760wrm.6 for ; Sun, 26 Jul 2020 05:26:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=V45BQsGUnmbLOvL9mY4alB1DWf59rgwbXHca55HK0fw=; b=pc9sVnDeirdP2iojJYQCIOPBiokab2204mPDO2v9fAFopkfYB79Zd79shsLOoKlrnr BNk8N2wcM9Xyh2J0v8QPN+mxwrDbc0jTEaHx7cj20+wWEUobYfVb59KCkRGv7oEbQce1 41jlEzCRqM4omgOr/411fYPuVw9EZ0VChR9zVLSEwNX6Q1TztEw6U5IQ59ZJfQl1XeZR erWZzYlfn4VfJ0UBxaxcHgme52ATjHoRVbr8o7nLGmmAu/IFa6pa07c3wp1LCB7q1eqQ NVSfdL1sO4jW5VeAYTzkIik94Iyqg+CMJCGPFsnEVVzKE3VHSmCOzEt0hHKTYjMrefla EK4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=V45BQsGUnmbLOvL9mY4alB1DWf59rgwbXHca55HK0fw=; b=hIfwnytVGPW05+fVeBrwrw1pLUT5plEy0VrqS970YNqoJ8rFHGevzW8pmiQfVPjeRp ZgsCkCxz9r5L89f2GRr75h/Zgd3mclJNqfYF737ono7r31xaa4Eate45q9zNknKqfdSZ kMEit5DS+sdIV/VOIfJo/i3EKDS1anBH+YLnvM5Ax3KLPIKPlLvS6ftNLcqlwkHYFNjn aYHrfvWFs5FAd77SbTy2crKyqV0/8BhxNHLL53eeKsffGNw67rWuzaSET9mkm10G0C5G s+ZdbeSLU9oc3GuQgUq0W9y+9CukkDMawd8VluflhctKdQdU5/6gssT+HTUWN7Ukd9Jv jSOg== X-Gm-Message-State: AOAM530RLZbG1NCejXOiZ70eIlUWvcj3vM+NN/qzRcxts/WglM+rvTB3 OApRA7Rllspl9o16u11rX37KJjUZ X-Google-Smtp-Source: ABdhPJyeGEVe/Qj+N/74VieF/skxG96OHfMYZ96KHWs30ILY1+jUxhOYC8J0z2AH3DqtrntZMVHtJQ== X-Received: by 2002:adf:de07:: with SMTP id b7mr17511797wrm.302.1595766394572; Sun, 26 Jul 2020 05:26:34 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id j6sm8506576wro.25.2020.07.26.05.26.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 05:26:34 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 20:26:07 +0800 Message-Id: <1595766367-8861-5-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1595766367-8861-1-git-send-email-mypopydev@gmail.com> References: <1595766367-8861-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 5/5] lavc/vaapi_encode: export encoded frame stats 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao Export choosen pict_type. Signed-off-by: Jun Zhao --- libavcodec/vaapi_encode.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 6766641..2352fdd 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -24,6 +24,7 @@ #include "libavutil/log.h" #include "libavutil/pixdesc.h" +#include "packet_internal.h" #include "vaapi_encode.h" #include "encode.h" #include "avcodec.h" @@ -633,6 +634,7 @@ static int vaapi_encode_output(AVCodecContext *avctx, int total_size = 0; uint8_t *ptr; int err; + int pict_type; err = vaapi_encode_wait(avctx, pic); if (err < 0) @@ -670,6 +672,28 @@ static int vaapi_encode_output(AVCodecContext *avctx, pkt->pts = pic->pts; + switch (pic->type) { + case PICTURE_TYPE_IDR: + case PICTURE_TYPE_I: + pict_type = AV_PICTURE_TYPE_I; + break; + case PICTURE_TYPE_P: + pict_type = AV_PICTURE_TYPE_P; + break; + case PICTURE_TYPE_B: + pict_type = AV_PICTURE_TYPE_B; + break; + default: + pict_type = AV_PICTURE_TYPE_NONE; + break; + } +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS + avctx->coded_frame->pict_type = pict_type; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + ff_side_data_set_encoder_stats(pkt, -1, NULL, 0, pict_type); + vas = vaUnmapBuffer(ctx->hwctx->display, pic->output_buffer); if (vas != VA_STATUS_SUCCESS) { av_log(avctx, AV_LOG_ERROR, "Failed to unmap output buffers: "