From patchwork Sat Dec 15 11:31:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 11426 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 3F3AD44C99C for ; Sat, 15 Dec 2018 13:39:59 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6B99268A841; Sat, 15 Dec 2018 13:39:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6B96A68A7A4 for ; Sat, 15 Dec 2018 13:39:53 +0200 (EET) Received: by mail-pg1-f195.google.com with SMTP id w7so3896875pgp.13 for ; Sat, 15 Dec 2018 03:39:53 -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=qam4/Lq6A9mngnLWZsjozPTCIKDUKHxyLKI1bhFyxvB5TA+Fs2D9nC4dTpvSX+cPh7 oqkbpQ4p5ugWEWzIx5si7GGg+GEH+/ncJGuPtDSUJIzd7+NSVTH6i8jYcPN/9BiMhlmO wZ2kRdXE/HOTAdNJvRxEBc2PQuuGR1q7OdBuNAd9oWJr2DqE3C7GFUwFVHlZ2F5+vCkj K911z/joE7JwaqRZl3MI6MI3GlPn4SGnamvAKq9Ew4+PIu7MvzFK1L9ckYrShsa8c8rZ EMzcQzCdKApUu8GiAfUU4Rx7Zy9tq0QXVxN9+bDjvfBCLHK917z/ox6cb5RKjCcFt4I4 qyqw== 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=soXWZ8NzWPjnYtpG2yK3hO4skN0Cj5bgg3y8dwG8pAJ2hFZGt0N8mq45r90Yae/Mbh kLuBcfg/5+CvoxYLFYkUkWmpmv3Nv942T+9Dgxxmxyz1prbtzf3kY/DgxSdB0oKRbDDK dzj2G9sFs+Y45HhQFR7ys5rGeZRwV/uqrXup+aBT+jQHEhQEAgBs36ntd8KKW0zQfsbu 0lo9kEy4f8b3geCFe84Oh9DQU+/gboU+vcqyrPrvhr4o/i1poZkZmCy550yhLVDXDmxl cnj0ZevoEE9aHxz4VsniaJdVZxud79WlMDuKeSoCaT67SlUNLjytEYUpmFp+yuB7Uzz2 Z4mQ== X-Gm-Message-State: AA+aEWaMwK3MG/mA3zJn+b51fGL8swkubvmPzFwBYHus1Tb7F64eWNKG 3dEqmAjWuZgVptD3Lg6v+Lhkh+1Z X-Google-Smtp-Source: AFSGD/ULxPtyHeE4DZu2iB8i8Z2f7SDNvtHWnRz+ABv+5piDfPFtTXpII6o+CgrUUz37ZFlm3Z80vg== X-Received: by 2002:a62:9fd9:: with SMTP id v86mr6082579pfk.191.1544873508105; Sat, 15 Dec 2018 03:31:48 -0800 (PST) Received: from localhost.localdomain ([47.90.47.25]) by smtp.gmail.com with ESMTPSA id 196sm31348014pfc.77.2018.12.15.03.31.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Dec 2018 03:31:47 -0800 (PST) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sat, 15 Dec 2018 19:31:36 +0800 Message-Id: <1544873497-17701-2-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1544873497-17701-1-git-send-email-mypopydev@gmail.com> References: <1544873497-17701-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 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;