From patchwork Sun Jul 26 12:48:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Takio Yamaoka X-Patchwork-Id: 21272 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 A7D2C44B6F1 for ; Sun, 26 Jul 2020 15:48:20 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8691E68B5CB; Sun, 26 Jul 2020 15:48:20 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C71CE68ACB2 for ; Sun, 26 Jul 2020 15:48:13 +0300 (EEST) Received: by mail-pf1-f179.google.com with SMTP id s26so7654574pfm.4 for ; Sun, 26 Jul 2020 05:48:13 -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=x9UPAUZbSdHwv7l1F22/T0PFW7REZmZQwwlPRjhtYPA=; b=DHEIEe7WF399z0X0dT/4spIQe5bRu8Ipnwdw1E6uszpp+mLpROgxMdqKzeLqOBMg2C 80gob7wIYEzwfNdciydqwfr29+TGR3uvtSePoGX5G55CjEgH37PtL2CrZ/UDvtKEMlbU eiYnpIWT6agMZROAOvPJs21z2sQ9SMrIs4xhQfGIMAJaNcP1xij99JLN36u3yyeSTCJt uXcNDPNGs7nvfSge1RMXRPW3XkKMXc7JiHvxlGNGAL/mspasAdPvDC20nC74aW7EOk/a ++S3RvXyG0zTOWLNicTKYnpUq7+ofDEQJkrT4VRzDpTXOKzUxIRaACItn6q8qLCwSxm6 GkSQ== 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=x9UPAUZbSdHwv7l1F22/T0PFW7REZmZQwwlPRjhtYPA=; b=P5yukzLNOyvqP0lBYEWvo4BZurwjdUqTFFzCA0Rl37FwQdmXR0+cssG1Yt+q2Kk21s 3ng5HtO74nYdUOOUhA5Nqhf9aIBwg31bpnbvvLPqsgaoXH57lNR/8G7p0HqWwaLRRPmc bfIOkqHJTavuRmkbjVvEKHuJAPiaw5U2iGnVU9//Bfy7jmkU/qwx7gC94u8/kRzQyHZp N1ueiqDP69b9eTWJgcfiBg/qGK4fizdByxMEww0IY0opwqYEmKSkweFSkVlNUG7jVV5v btbVIEPGjx1/vNr5zc/UZkR7X9TdbtvyjJDtLqXQyGi+oeUQt9vK6acEoBJGLEQ5E2aq F9DA== X-Gm-Message-State: AOAM532GrcTVoOaYI7vWSmMPau919YhineZ29KcR63busHAS+HyuDtAc sei0S4Auaxob1g1zgoBKyhz/lttTK9M= X-Google-Smtp-Source: ABdhPJxKTiw2qt7FzeE2wDqM5lWX4nhS8zFJQ2eomAysOVC3uRy7/fWppNDXI/FIEMUrgvd4nZVhxw== X-Received: by 2002:aa7:91cd:: with SMTP id z13mr16998531pfa.133.1595767691520; Sun, 26 Jul 2020 05:48:11 -0700 (PDT) Received: from localhost.localdomain (112-69-119-199f1.osk2.eonet.ne.jp. [112.69.119.199]) by smtp.gmail.com with ESMTPSA id k26sm11687670pgt.90.2020.07.26.05.48.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jul 2020 05:48:10 -0700 (PDT) From: Takio Yamaoka To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Jul 2020 21:48:04 +0900 Message-Id: <20200726124804.2398-1-y.takio@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH] libavcodec/libx264.c: Fix chromaoffset of libx264 doesn't work 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: Takio Yamaoka MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" An initial value of `AVCodecContext::chromaoffset` is zero, then it causes to block `-chromaoffset` setting as result. In addition, even though a negative number of `chromaoffset` is meaningful, `X264Context::chroma_offset` is initialized with `-1` as no setting and ignored if it is negative number. To fix above, it changes ... - a value of `X264Context::chroma_offset` to 0 as no setting - due to x264's default value - conditional statement to import `-chromaoffset` --- libavcodec/libx264.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 7bbeab7d4c..347d29df27 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -681,11 +681,11 @@ static av_cold int X264_init(AVCodecContext *avctx) #if FF_API_PRIVATE_OPT FF_DISABLE_DEPRECATION_WARNINGS - if (avctx->chromaoffset >= 0) + if (avctx->chromaoffset) x4->chroma_offset = avctx->chromaoffset; FF_ENABLE_DEPRECATION_WARNINGS #endif - if (x4->chroma_offset >= 0) + if (x4->chroma_offset) x4->params.analyse.i_chroma_qp_offset = x4->chroma_offset; if (avctx->gop_size >= 0) @@ -1140,7 +1140,7 @@ static const AVOption options[] = { { "vlc", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, VE, "coder" }, { "ac", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, VE, "coder" }, { "b_strategy", "Strategy to choose between I/P/B-frames", OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 2, VE }, - { "chromaoffset", "QP difference between chroma and luma", OFFSET(chroma_offset), AV_OPT_TYPE_INT, { .i64 = -1 }, INT_MIN, INT_MAX, VE }, + { "chromaoffset", "QP difference between chroma and luma", OFFSET(chroma_offset), AV_OPT_TYPE_INT, { .i64 = 0 }, INT_MIN, INT_MAX, VE }, { "sc_threshold", "Scene change threshold", OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, { .i64 = -1 }, INT_MIN, INT_MAX, VE }, { "noise_reduction", "Noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, { .i64 = -1 }, INT_MIN, INT_MAX, VE },