From patchwork Sat Apr 27 11:17:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 12922 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 ED4D64487EE for ; Sat, 27 Apr 2019 14:18:16 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D23A168A6D1; Sat, 27 Apr 2019 14:18:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B1AF368A7DE for ; Sat, 27 Apr 2019 14:18:09 +0300 (EEST) Received: by mail-pl1-f171.google.com with SMTP id o5so2775201pls.12 for ; Sat, 27 Apr 2019 04:18:09 -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=FquF9Hvv/JaKPy3Z7i50PyH+7CjvN+83B7C+iXIkw6E=; b=kDd/5hAAq43tDVRqdJ+Jpk3n++GwHmHZm89tbzjq6KoSNJ40t5G7H9T5eZwCqDH2D/ B8yNV8xk7XHGiIhEIhmok3jHqlxQ4BvLwwNOTGg61nJqPGwjdjJukO6Xgl4LZJlH58Xk I872yiZuVN1SPUdHpA/iLyX+y7Fh1qyUXESfCMvSyZLXmRAlmIAFxtLCnw2n2F+8/OOj 8Ni2LRJWT1DAEMiHQFLwKyqzzRPmMSTGs8F7B71pT68b/TJz0uh3j+QLZBmRxQmKObKg l9zCcPfodUe8hnC0dVNT15mVXMhJ+4pmPsYmge07RzoCEZ5g6XtVpClr4iL8L1tlCjVD IBqw== 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=FquF9Hvv/JaKPy3Z7i50PyH+7CjvN+83B7C+iXIkw6E=; b=Baax0+GE0m/HRCWS9rhQa7kkr5HKWFwWKlfNLvmKHfCvcUqqYxQ4rHcCVBZAAzHV2X BxdW8R+sNXu0M96LYdtYXnYf/6jctHAcQe2nqMknR42W9c2tNXdp/JhHApF6A28oWtQo 3dVBPooUmosY0GQN8HO9Pj82Q9EZyvMKmdk2CqIIPINWKtK2WObUypOBUEg0pEKU29MP ESRt+2T2fPhkfuR7I7RDFoRbSrUpmcDUB1kWjE5rdEQJcdgK3BNHMBHZlsF2KvNo8Hxo NhW50+X4PgxOls1BgZbWiYLUZ0Z+AO9CbM2FH8YG+RAsWj9qMC7lRfTE4dfnCnESPFpv QDVA== X-Gm-Message-State: APjAAAULafsqSObzRY+zXOdCD26jPfZN3trCJ1ve4TaLBW2ysLuxolp5 gCY8VkrZSQ9F1uYB84I1WH8WGE4+ X-Google-Smtp-Source: APXvYqx555V4u7rA8MOuLmKNgL8rSRvXiJLK/NQLeS+SZCvZuoPVN3tvWngrFhbzVBy7pIc+pEr4Xg== X-Received: by 2002:a17:902:968b:: with SMTP id n11mr50914979plp.118.1556363888020; Sat, 27 Apr 2019 04:18:08 -0700 (PDT) Received: from localhost.localdomain ([47.90.47.25]) by smtp.gmail.com with ESMTPSA id p7sm36200252pgn.64.2019.04.27.04.18.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Apr 2019 04:18:07 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sat, 27 Apr 2019 19:17:56 +0800 Message-Id: <1556363876-7100-3-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1556363876-7100-1-git-send-email-mypopydev@gmail.com> References: <1556363876-7100-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH V1 2/2] lavc/libx265: Use avctx->framerate first for frame rate 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 perfer avctx->framerate first than use avctx->time_base when setting the frame rate to encoder. 1/time_base is not the average frame rate if the frame rate is not constant, so use avctx->framerate if the value is not zero. Signed-off-by: Jun Zhao --- libavcodec/libx265.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index fe39f45..07bca81 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -110,8 +110,13 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) } ctx->params->frameNumThreads = avctx->thread_count; - ctx->params->fpsNum = avctx->time_base.den; - ctx->params->fpsDenom = avctx->time_base.num * avctx->ticks_per_frame; + if (avctx->framerate.num > 0 && avctx->framerate.den > 0) { + ctx->params->fpsNum = avctx->framerate.num; + ctx->params->fpsDenom = avctx->framerate.den; + } else { + ctx->params->fpsNum = avctx->time_base.den; + ctx->params->fpsDenom = avctx->time_base.num * avctx->ticks_per_frame; + } ctx->params->sourceWidth = avctx->width; ctx->params->sourceHeight = avctx->height; ctx->params->bEnablePsnr = !!(avctx->flags & AV_CODEC_FLAG_PSNR);