From patchwork Sun Dec 16 03:08:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 11433 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 C23BF44CC09 for ; Sun, 16 Dec 2018 05:08:42 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F177C68AB07; Sun, 16 Dec 2018 05:08:42 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5813E68AAD3 for ; Sun, 16 Dec 2018 05:08:36 +0200 (EET) Received: by mail-pf1-f196.google.com with SMTP id g62so4669214pfd.12 for ; Sat, 15 Dec 2018 19:08:37 -0800 (PST) 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=ss0zQf/UWEK7XPjAWdhGcgEL5XnNNDvH3dMNyANJVbI=; b=E7oMirzBPDQOFQfZ1QLbsOwgOa6MDr0poV/IHfSYOLghV7in67hVOjWYPohOCkLneb 19apM3dwTVZx2sGofrE8NgEvQVUJWji6inJWmiFSv+ebBLPVIIZwgTh32xAf1Y3/VwB9 QbkeapvD89/GREeyvEWz/8Y/DwNiph3DVMWswCZFYwLM8QgUn7buJX++pqIqxGbK1E4Y +FaPrQy0k+uCVK8JH4in7VNn+vZqp980b8PhwAPRAw17fZj5h7y8S6UFoqfowONktSNh EcGE478JagRZErOhMOaP1BHIK5a4i72ZXIv2eBOWNkJePwuC3r07l/0H65gpR0xM46w3 en3Q== 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=ss0zQf/UWEK7XPjAWdhGcgEL5XnNNDvH3dMNyANJVbI=; b=thg++RdZv2NZmZjnS007k0nJb8+zKJR1LPjyLng65MRD1TlG+xCWXrfJBvVSGFAL/D HBxvdS8jgtB+Pi9+ztcACCxp4LmJkNUPApFQmLrRAh+2LtBKkNsaBSvT0x6V0iVywuCL yf4+JSXUAQave6y4VokoxzKCPfPDPPgO4yiAeYXzJxseKxbD8SGTg4r1YDnSXRtsmD5r ASr9k9Jco1Gf93plF3GYRbiUcYVd2eL8To9WcGxq7ru+aqv2xh8xUXiRTKoERhymKWd/ 2TdJ22/cAfyLvj1X/sflVVbAvoN1cis/iVVHlpzoMWMwbVhU64vseYLLuQlotZmwke+P Qw2A== X-Gm-Message-State: AA+aEWbG33j5sVq/ObYowiGyMVbPLjSfIjhw0Ma0flhPCjoN+O3waMvm LtpxTu5qtQNhNgEXpwGIaQoSLc43 X-Google-Smtp-Source: AFSGD/WBzeHuJ4M9Wq/B758GJ3zXAh/4T3XWOMjZblnOvuMNiaDtlcZR4WzLAwgQ1w2nneVWRla16Q== X-Received: by 2002:a62:5003:: with SMTP id e3mr8681286pfb.23.1544929715434; Sat, 15 Dec 2018 19:08:35 -0800 (PST) Received: from localhost.localdomain ([47.90.47.25]) by smtp.gmail.com with ESMTPSA id d21sm13757767pgv.37.2018.12.15.19.08.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Dec 2018 19:08:34 -0800 (PST) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 16 Dec 2018 11:08:21 +0800 Message-Id: <1544929702-28120-3-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1544929702-28120-1-git-send-email-mypopydev@gmail.com> References: <1544929702-28120-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH V2 2/3] lavc/libkvazaar: Use avctx->frame_rate first for 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" perfer avctx->frame_rate first than use avctx->time_base when setting the frame rate to encoder. Signed-off-by: Jun Zhao --- libavcodec/libkvazaar.c | 22 ++++++++++++++++------ 1 files changed, 16 insertions(+), 6 deletions(-) diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c index 8f50bef..50910b7 100644 --- a/libavcodec/libkvazaar.c +++ b/libavcodec/libkvazaar.c @@ -79,13 +79,23 @@ static av_cold int libkvazaar_init(AVCodecContext *avctx) cfg->width = avctx->width; cfg->height = avctx->height; - if (avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) { - av_log(avctx, AV_LOG_ERROR, - "Could not set framerate for kvazaar: integer overflow\n"); - return AVERROR(EINVAL); + 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; + } else { + if (avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) { + av_log(avctx, AV_LOG_ERROR, + "Could not set framerate for kvazaar: integer overflow\n"); + return AVERROR(EINVAL); + } + cfg->framerate_num = avctx->time_base.den; + cfg->framerate_denom = avctx->time_base.num * avctx->ticks_per_frame; } - cfg->framerate_num = avctx->time_base.den; - cfg->framerate_denom = avctx->time_base.num * avctx->ticks_per_frame; cfg->target_bitrate = avctx->bit_rate; cfg->vui.sar_width = avctx->sample_aspect_ratio.num; cfg->vui.sar_height = avctx->sample_aspect_ratio.den;