From patchwork Sun Jul 26 11:41:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21262 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 6F52F44B5F6 for ; Sun, 26 Jul 2020 14:41:26 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E77A68B5D0; Sun, 26 Jul 2020 14:41:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EF27168B5CB for ; Sun, 26 Jul 2020 14:41:19 +0300 (EEST) Received: by mail-wr1-f43.google.com with SMTP id f7so12177446wrw.1 for ; Sun, 26 Jul 2020 04:41:19 -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=uSktRMXvP0E3aS0vnV5bqJ6PuzfmuinFoF5eSrEOeJr59w742dvebvr7oYaDYtWr5k dsLsrVMg+wSTYK4fZrxMS1fl+B1SK824EywbiMFFd1yluw4aiaKgNUGLHnqyZejdjYQp /ZJuoyryVulmDPzk+Y41nlJfkxdux8qcIiXM1fHUcuvjdLK49FkU5HkpKFR4llHIyYU0 XcSth21d6onytDqDYBbyRk6aWdWuT52P23Z/J3+353Ye7LFDhjoh8aIEOTXmcol98MHO RBrG9HmVfp5wNJpwquFJ5tczNZ/GhfzkNr4p1BTuafLC1M8sVg2JHqzQ/xat2lneqJDh FlHw== 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=aqQDj/9PDGVol2e66mSEo8ZcKbmliJJ5FLPiRm+ErI460vkXCNkE/Q33XO3GfCEb6+ KCjzA3IH7OP1k64eiq9HI6lQmvvgmixj2TqsuoPv8PJXLe2+pd0iYUsRcmBiHoov1PlL /xaWZv8d/JQ3U2J2JoRdwbk+pCm/Gk1zz/McNIV6yzeEm29os5m7rI3MF/B+ITKpBHiy IhlchgnTXojiu0IBJsg+/6ql4IX/5QEghj2l8vUc4SJrwKjuUGl+vLhYbImrmWco/YIn 2kmBN7bMDjK50Sj2NNJXylO8VIvKLe1rgBN4awpcudO55UWHHmFwv7OepKwnfijkoIe1 AJXw== X-Gm-Message-State: AOAM531jPv5zJULo+1sYIhS1TmwLxSu66IcppzuR0FkkOXvU1wy+YbKN d+ro4x96Xc3QXprLf4siYdjQwHpn X-Google-Smtp-Source: ABdhPJx6K6bICikvGGkvpAyT/t4Qf3XIOa5RwenSF+eJwGGS0eqdNbt2W9iYgoou6RQp1DgZYIyPZQ== X-Received: by 2002:a5d:5084:: with SMTP id a4mr16595251wrt.191.1595763679079; Sun, 26 Jul 2020 04:41:19 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id h199sm14068068wme.42.2020.07.26.04.41.18 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 04:41:18 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 19:41:11 +0800 Message-Id: <1595763675-1857-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 11:41:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21264 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 E599044A7A8 for ; Sun, 26 Jul 2020 14:46:33 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BFE4E68B038; Sun, 26 Jul 2020 14:46:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4962B689F05 for ; Sun, 26 Jul 2020 14:46:27 +0300 (EEST) Received: by mail-wr1-f65.google.com with SMTP id a14so12177524wra.5 for ; Sun, 26 Jul 2020 04:46:27 -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=Hb8XWlq29uXWAtJbqiPxxWMcMDr9fKcQmwksvhkOcqxCV2+jiXo7bXRZCPnsTjMRtg kmUM2F5aQcCEX1PzXZ4g4RYQvyt/adwAThpRIHkWVRSF1wvFhPzHNny0912XCrNfHvZk /d+KAPicwmzncEsvg9XtpCReXKGBa/vF3s3J5eB9FioethqBwIRnW5dU/u0JiEsOgXAz GOCpb7rZ8/S0ug9wlpddSGYLukwBXU+PQnxrhtYwygYpTrAvgxeyxFDmWZzaCm05P6Yp cRCS5VjDBqmWNuhjvjSzGR/ULOIoJgQ3rpq9U+BRJzTnoxazigR6OXniH6Y7rXoC5J/2 PEuQ== 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=YJwf+0VMVkTAsw9X97RSzQoz0I882MOjBKWPF8iG/BgLU58zZHPMFnDW5FH/TP2xsm KWDMX7xegrjZolxtxeM6HpAQXFqjMpLsNFDQbh5uLZ8LRFEPNSD9MzfTBEN3h8KJJgTB Q0KX0WSIQE6/u3I8N4Ih2ZNVSAH1ZAj8eIr9Vp5/msflOs8oy329N9xev95FCyFELdNe 3R8Hh1UtcfWFcp2IgvHCAOO2p1N1BrD2jEt+k2IpqPJu6t9+4QIuMytPjUzgYdnn55Z8 Nk4yZ6SsifKi/vdLn6INVs4BuIxg/mXUePwGHBAb/GUfzsU6iqEHEseK0msnbyT3STfp juuw== X-Gm-Message-State: AOAM532qp9Ua2YmyDs46xXcD9baBkK5eLh+BqDQ6o32QCPNL2Fj08Mk2 3MTcdk3yNjVh2wLkgeSGwdW/ZvKh X-Google-Smtp-Source: ABdhPJzRNTADY7XftssFKcSECMWN8MbpFXFkyne97PCzLX4gYZ3lfbaJude4Cprc5n/x1jI/z3caWQ== X-Received: by 2002:a5d:480b:: with SMTP id l11mr15339366wrq.85.1595763679602; Sun, 26 Jul 2020 04:41:19 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id h199sm14068068wme.42.2020.07.26.04.41.19 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 04:41:19 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 19:41:12 +0800 Message-Id: <1595763675-1857-2-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1595763675-1857-1-git-send-email-mypopydev@gmail.com> References: <1595763675-1857-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 11:41:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21271 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 4617044A7DA for ; Sun, 26 Jul 2020 15:45:05 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2172C68B474; Sun, 26 Jul 2020 15:45:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6093268B017 for ; Sun, 26 Jul 2020 15:44:58 +0300 (EEST) Received: by mail-wr1-f65.google.com with SMTP id y3so12239782wrl.4 for ; Sun, 26 Jul 2020 05:44:58 -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=MbmpMHv9pjoHlh6xBywJfI+1FPMHfyUosRlR8JheUvtygi0ni8SQz8NsJvUSXN2Awo dmv42wHZErBJxtMY51j/oQlWCCWwaCi2+lTNhV/vVzXOFsxLuWURCrdNNHa8GSjyFlF2 ZESnIaS651JwTV6Bqt0yGrJVxZ9UyPpalhQdjtILNhfhh1cylxsQ1IoBiMidqy0jMvUx L9zZySqy6bD83C590GhAtfddFRfBQtiZZT/viRchqZNGu3xnZQ2xFmX88MZaWdK1sNlT 1O4Mzst5+VYRO5l7X/HUrNnOwtFiicG5jj9xfp8p0PvCbUXB9H2gUa1M57WRXCdHx1Y9 Z6Wg== 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=WYDhY5zdVqBKvt9Oc0AK1Csa8gzQZ/XW0exfAAv8KGY+JKjb70BDLInv+RrkKBPH2q ckQ4PXO0OZrvXnjd+NsUFowblUThrQ/dNhFqzQwJCkzDNqf+D4bYHS5YdMVWhxTxOqAi 2j0lXEwpDqVELtILWnjPa0opR3GA0N3zgavkFagXTowbFjIzbONQsUmZ2g9JSI86DrO5 QXZcD3WzgQWmdM2XEgOIuUirRwud9AxBkYcKwedm3qY0WWLedVIrU8WfBaAdrtDsPe7o 0jWsNDycjnNkEQCDuCyYWleOqBG+SqZnpFIbi9hj4/zfAnzjFHWMkl3dQicNpwqEONLl OrNw== X-Gm-Message-State: AOAM532dKc2YLuRR4ahrVWWhOaIVugNzcFZYMg9Fch5MzR6f+UE299lz CThUHHMKRPTuani2qwtzgMh617oB X-Google-Smtp-Source: ABdhPJymgxT25dAqmJNaX45Qt5jwndrlYXYBcOPAGfkZbQPpR2yURSegjmoHRzD0HA9cEPOcO8Z1Yg== X-Received: by 2002:adf:ebc5:: with SMTP id v5mr12140895wrn.100.1595763680286; Sun, 26 Jul 2020 04:41:20 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id h199sm14068068wme.42.2020.07.26.04.41.19 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 04:41:19 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 19:41:13 +0800 Message-Id: <1595763675-1857-3-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1595763675-1857-1-git-send-email-mypopydev@gmail.com> References: <1595763675-1857-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/5] lavf/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 11:41:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21263 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 74BEA44B5F6 for ; Sun, 26 Jul 2020 14:41:28 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5861668B629; Sun, 26 Jul 2020 14:41:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EF24A68B627 for ; Sun, 26 Jul 2020 14:41:21 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id f18so12065042wml.3 for ; Sun, 26 Jul 2020 04:41:21 -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=NZfZRuVZDIlnqwrxwGmisyNrLYkQOWlJ5yx35rCazOzPl35h1QrvhIMdehIdcxZB8+ X1EJok3GGpHatF31+wpep4rdGDIarJrRJspNfMhU/4/+71nFqdHK/OfIyyf1r63gGEGY 6C+BVZf1OJ9MMMlWYazpKDR7kWKeUUvtbta7qcNtHtlPumYf250BPJ5WGr72CRK/5oYN 34ImFPbTn7ni7tc2Zpq3qi9hT1QsNE+rFQpcHtcVURBO4r5aWl7/pZbTkIlG78TWtGwp 6RG6FYutTlpUPEYkykBsZJq0zVeGFJXcrGw0bzUqjT3qsxwWxy+x7MFSl45geRcoaep+ u5jQ== 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=LFsn8oQSnQ+W7pFN649tcoKlZ0Z4vqTEArnSYcN51Yl2MObVWWfYmZzsermSZq8I0P 3rf1w6CYCY/tGC2xdY9aDNZEMisnLtX7cT8Cv+ZUR+4sttAvIqstOGA9pOuw7wHMWlug /ojiq5fiK97XZPoi4oCqciMi1LdJ1teQaiem/DOBmz+Sz9/hqBdq5Tpziow3LBAnmE8N IFxtX2fiYUuNcZJICCADZSJFjFIxVUi0Ote6FoTs9e9TnnopHhm175Jw1kZpPQwAJtda dw51QJb6kgBtssw8EbHI9Hs0Zj+4bhBsm89vN/DE3+hRytquacnI5EqVSwPJpjcVkc64 yWgQ== X-Gm-Message-State: AOAM5337uVvoioMoAY/3GIRgqeSMKBqd2mvtx9sat3haauLYsvUMMbf8 /cUDycEFRs6M147KupcDsVkp3bNN X-Google-Smtp-Source: ABdhPJwG34bwC9Xzc2CVmqmF6po+ll4MrzhlQc9lc0ELvZehRKIDqZGO29tGe/ssszpShyBPj9UFqA== X-Received: by 2002:a1c:f219:: with SMTP id s25mr15689941wmc.2.1595763680999; Sun, 26 Jul 2020 04:41:20 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id h199sm14068068wme.42.2020.07.26.04.41.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 04:41:20 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 19:41:14 +0800 Message-Id: <1595763675-1857-4-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1595763675-1857-1-git-send-email-mypopydev@gmail.com> References: <1595763675-1857-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 11:41:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 21265 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 D9EA144A8B1 for ; Sun, 26 Jul 2020 14:48:04 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BF46868B50F; Sun, 26 Jul 2020 14:48:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 037FC689BB1 for ; Sun, 26 Jul 2020 14:47:58 +0300 (EEST) Received: by mail-wm1-f68.google.com with SMTP id p14so11278476wmg.1 for ; Sun, 26 Jul 2020 04:47:57 -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=qeYeJL2XFE5MKOSu6IBn2NtHzDaGoMRZC/YWNsdOwusGR8BOuLc0LNhPQeG4vLmio0 BEy+mkgSBSymVAN2E3jgMRN+IDf7NoYc6oIt0wyhO1fE9eo2ri1ZiUMY+wkhI6ilHftV JEvB0gl/LWQBcC3Ut5iNpOkJUDl83dlvKAUZY7IGg0O0ol390i/KtKFw+zdfln172dC5 PDGvOgVWJ7dGM7Lr/FThhNRtbmMy2YhYspG6ygJca0Wpq9JQZG1/pMGMTNajjtmA7vuj JvLEr7tTcDNZWTcU2UyjHF6k5s4+H4B9QUTX7Q0zmH4+i6JEzp1y4aMYvoHNEs/OM5Wx AsOg== 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=uIEZByPFJRck+9FAuSL1Xf88vWTt5LjGAWXqh+WFB4mnhBWhyQ/etXuLgYyY1J1Nsq 8A41VYEvw4JTpTtlekOyjwA8UwGfRMSJKfDM3sNrTOTEFeEuOqo1ZzP6l4jNSaYiJok/ jArZKASE1cH1zZDVxNufJAiXgcI9Ep28UMshw1mL+wlXemAt9HcrTCHipFFo9H7X2Hfg HfZPsTOWxMBm5DGEzqcrPCSA9GMFhtkpPjZSzNFndeJRNowkJLv4y1KVgjGNdZx/MiDs vqu2X4mng3CusMN5iGHZyh7PDsYwIe95BVSGVRbnnjHrO3cS90FV121bxsrT4hwx3Lhg o28w== X-Gm-Message-State: AOAM531AKhnvLPgkamU6/RdUprXEmru1GdZkuIc1xfn3dsxg/TTZgFhN Qm9+RWL4/Nd+ePBoMUMTwh0OMYCT X-Google-Smtp-Source: ABdhPJypP+LDCo1790kurROrmrhvJFMcEyoZB8Gh+1yNQAwT/ArjLmuAaZmmhAC97vCsPaBrVdHSSw== X-Received: by 2002:a1c:6604:: with SMTP id a4mr10401946wmc.81.1595763681545; Sun, 26 Jul 2020 04:41:21 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id h199sm14068068wme.42.2020.07.26.04.41.21 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 04:41:21 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 19:41:15 +0800 Message-Id: <1595763675-1857-5-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1595763675-1857-1-git-send-email-mypopydev@gmail.com> References: <1595763675-1857-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 5/5] lavf/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: "