From patchwork Sun Nov 27 17:03:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 39496 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp6959525pzb; Sun, 27 Nov 2022 09:06:42 -0800 (PST) X-Google-Smtp-Source: AA0mqf4jgHf6//x754Ng2M62osvmrMGoZBbtyAlk5TG9svaaXhkr5XsmlUtQig0teXsQ8h/Ni+22 X-Received: by 2002:a17:907:8c81:b0:7bf:5cc5:67c5 with SMTP id td1-20020a1709078c8100b007bf5cc567c5mr2163533ejc.488.1669568802543; Sun, 27 Nov 2022 09:06:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669568802; cv=none; d=google.com; s=arc-20160816; b=YONiHP9wcZ8kUBXpDq3Va6yv+pEyjJhPUoaKNHovCz06pvsrQxWbHdtYIWtOpjF3Cj 6jhPt4YqyyMZBG7/AxqPNu0ONWwa3p1iHHpFbF3yhCQqDTuYvDwIGeR3GXIwQPXoiYd2 /OfMlxAVZNE5l3RUmIClxRbGHB3xohiEqlxgMRviHUPlorN61jJ6SJyvso7PH5165I58 HUSzLHV4XclJ8OLGFkCsnruFBgN8zWD93R3wDM9N7byWRKMIpVSA4wKqVpcNN6mvM/hq hVIhb8xU+bfKe8xnbjbjMDFu7OYaLB5vT8gE/2grvjqXNsYA7na+9s+IDuJTY0pAe4/z c1uQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to; bh=bu3XaKhGJmPGZcsZcxW/ghLT34Ez9ZA47R0AUo31hgs=; b=Hhqdm6rR5jjEJXxk8qNPybzMNmsPx/kjnt9PUDuYqPg341WvOhHFUfSiX3Hl3cpuTo wt/BugPZj7eb8ZLGUrOq+/Oq+gdxIkZBQbtqWlz4g1P0g6X30qS2d8SakDBETvr20dYb JvUv9xXzekhYsTXBu3Pf2qGk7ZnM2bt4STTUXR8TpcysVhfz1mJL9Y6qz+55dON2Agxg fUFebEvoaMAWeadKnjLqZytDqbaddLnXtQMxjbs1NHBdOY0KFVrZoOncMMS4h4RkuAaU WpTDPaySEbnbkQbL3LiihHI+3KOaw0VKihUYglNvOcYO/C/zgAdI9C1/p6/8p1/15Yg5 CCaA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cy20-20020a0564021c9400b0046b0fccae83si1898564edb.175.2022.11.27.09.06.42; Sun, 27 Nov 2022 09:06:42 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5471E68B04D; Sun, 27 Nov 2022 19:06:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C57568B6F0 for ; Sun, 27 Nov 2022 19:05:54 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id D3A572405EC for ; Sun, 27 Nov 2022 18:05:53 +0100 (CET) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id ZOJeRLCvLf3C for ; Sun, 27 Nov 2022 18:05:53 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 7F884240591 for ; Sun, 27 Nov 2022 18:05:51 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 2DF0F3A2257 for ; Sun, 27 Nov 2022 18:05:46 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Sun, 27 Nov 2022 18:03:30 +0100 Message-Id: <20221127170351.11477-9-anton@khirnov.net> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221127170351.11477-1-anton@khirnov.net> References: <20221127170351.11477-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/30] lavc/libx264: reorder control flow in setup_roi() to reduce nesting depth X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: h7UzSTvM8pw7 --- libavcodec/libx264.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index f0f8990cf9..342d07a829 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -338,13 +338,6 @@ static int setup_roi(AVCodecContext *ctx, x264_picture_t *pic, int bit_depth, { X264Context *x4 = ctx->priv_data; - if (x4->params.rc.i_aq_mode == X264_AQ_NONE) { - if (!x4->roi_warned) { - x4->roi_warned = 1; - av_log(ctx, AV_LOG_WARNING, "Adaptive quantization must be enabled to use ROI encoding, skipping ROI.\n"); - } - } else { - if (frame->interlaced_frame == 0) { int mbx = (frame->width + MB_SIZE - 1) / MB_SIZE; int mby = (frame->height + MB_SIZE - 1) / MB_SIZE; int qp_range = 51 + 6 * (bit_depth - 8); @@ -353,6 +346,20 @@ static int setup_roi(AVCodecContext *ctx, x264_picture_t *pic, int bit_depth, uint32_t roi_size; float *qoffsets; + if (x4->params.rc.i_aq_mode == X264_AQ_NONE) { + if (!x4->roi_warned) { + x4->roi_warned = 1; + av_log(ctx, AV_LOG_WARNING, "Adaptive quantization must be enabled to use ROI encoding, skipping ROI.\n"); + } + return 0; + } else if (frame->interlaced_frame) { + if (!x4->roi_warned) { + x4->roi_warned = 1; + av_log(ctx, AV_LOG_WARNING, "interlaced_frame not supported for ROI encoding yet, skipping ROI.\n"); + } + return 0; + } + roi = (const AVRegionOfInterest*)data; roi_size = roi->self_size; if (!roi_size || size % roi_size != 0) { @@ -395,13 +402,6 @@ static int setup_roi(AVCodecContext *ctx, x264_picture_t *pic, int bit_depth, pic->prop.quant_offsets = qoffsets; pic->prop.quant_offsets_free = av_free; - } else { - if (!x4->roi_warned) { - x4->roi_warned = 1; - av_log(ctx, AV_LOG_WARNING, "interlaced_frame not supported for ROI encoding yet, skipping ROI.\n"); - } - } - } return 0; }