From patchwork Mon Mar 20 23:33:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 40735 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp2165830pzb; Mon, 20 Mar 2023 16:34:42 -0700 (PDT) X-Google-Smtp-Source: AK7set89kUIVzq4NR+wWV32zMPfEdLTwYsbtAvRNc4+96zpF4mdo3KXJct253o3aPKfbLYXIfffm X-Received: by 2002:aa7:c313:0:b0:501:d6c2:7439 with SMTP id l19-20020aa7c313000000b00501d6c27439mr1183030edq.37.1679355282589; Mon, 20 Mar 2023 16:34:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679355282; cv=none; d=google.com; s=arc-20160816; b=t4n1mJiMHYwtlc/b9oQXV661vNyLq1Gv37wp082VOqRMAeRMDpjsSRZEwE2rTcJugt TITd6HV8DTsawoy5SCW8mNoHLO7oz/l3a5VqNCgWcT6Am0thy8LA0k7udfq1nckreoCG dIaAocXxM561rSLMoCi2l2lLFLpHaqosCYZbCzNu/Yk/ZprFaTEnLiGrbFw5B9yGK/tj wYIhpDubeIP4QRSHSiAL5YECfGJyWMnvTXE/wfW99GNUmxugomzfI5tlP+bbQb7sXVUS FMwhjqFFAo3F9/UO1EB64kLQpkRlMBf05N3zz8BezLZnqKKvyRHxJSbaTtbzEDOHCUgH JSOg== 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:dkim-signature:delivered-to; bh=hVq8lxJODH8dga7OF2O7urDuJImxYn7ZJ3IzhWC4B10=; b=er7MJ4lx20tkxFwI39MT0rZV9k7aBXG51Vd6DDqx+x9eftE81WjIf3z2GPOby4DEfZ XyY1JKKwoVxNBAWz3S2Vh9zHMQ4IL6Ro3/BZgFmAvpLVwKk94O+ftsAKL6QfPhbMfdVe saY7GWw3T1lBgUc0chXpZuaylwWltl1tiYVyG/cfiVG+peeUlBw2gfW8q+Z+1tjcdkcK 8ERErm5RdwNjddK5Zq2Z6B0xTi7wag7kwv8zK1py/8U9UIsVkMS+ksm2wn/oC38esrOP kFxmchH1nTOLqDmIz5UDtX4f49/h8+OzsqxukP9xXT5n86s7iuQrBXiA+Fle18HDsX/y kSqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=MkLL4gE+; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id u3-20020aa7d983000000b004fc69ce4d82si11359174eds.120.2023.03.20.16.34.36; Mon, 20 Mar 2023 16:34:42 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=MkLL4gE+; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A8CAF68C5A8; Tue, 21 Mar 2023 01:34:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E88F468C4B6 for ; Tue, 21 Mar 2023 01:34:15 +0200 (EET) Received: by mail-lf1-f49.google.com with SMTP id t11so17024099lfr.1 for ; Mon, 20 Mar 2023 16:34:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679355255; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=XRySFUJkuGGbogroZRrn+JynADq9tBKlygqCCsOphew=; b=MkLL4gE+u19ZspQBZi0Y7Je8pZMytC/P5ZSqceJV2or4gtwbry7VLnCJQCpOc3l3Xs NZDLMgv8o2haKxTX0DKcfmogm8k5+E9sTUhMo51V6gkS0i29RryQq9jff9G0a1758aEk hEH1xwrTsjGjEZc+VZT7FNZUapQlgIKq8KfhLoqY3kResUdtTkecN09Gavwq7LWMqrow VnB2QcVCH+h27NATX0Qw/+ojJEuNh90UoAMxYDrGbTNFnKlfoqQijV2AZK0SyTl9v1h/ +YZrMxzzvBuXPcpkdZqApQkFlBD8dMoHv8y1+n2deXnAqJLsVlSWlLL9hkwU5wYdZ6bn KhwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679355255; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XRySFUJkuGGbogroZRrn+JynADq9tBKlygqCCsOphew=; b=llxpST/pD68RfWDXT0nIFC7KmhIHU9khtY5/2K3BFobtqp5iOnA18n5WwMexs0g1/5 4LLRJ6gEZ3EnxjH4q5tjKL6Yk/zkv0n0cyyZVNEySzACuiVB+4ZMfxEq2mkg+voVRsW4 Ld4fezV8VvOERq+FtzXQSbaZ4VS4OlbsL0PvT4CrXJ9klj/2ea67Vmy4USOic7DsCNdD mE+cw+FUT4S98JpGuui7O6nEdMHinjW2F/0TlMhKLJKQAfr9p3DOiPJ12J+/xs+fa8LD eunjfgfOXvtBEH+Tb/2yeM6PiC4UFtfWBEddcZ04HrAIwlbr5Li+eOQJhmhJkReUc5Bz 5PaQ== X-Gm-Message-State: AO0yUKVGEzlUr2KATrduosOCmtJuab8VcVrkg6gYaEYgKEqFFFz9Fq/S y2hPKIoW4I/BZjK+E9xG0xrk7inWJRo= X-Received: by 2002:ac2:48b0:0:b0:4e9:5f1c:fda4 with SMTP id u16-20020ac248b0000000b004e95f1cfda4mr216970lfg.30.1679355255235; Mon, 20 Mar 2023 16:34:15 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id j19-20020a19f513000000b004e84b79de9bsm1900701lfb.254.2023.03.20.16.34.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 16:34:14 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 Mar 2023 01:33:55 +0200 Message-Id: <20230320233408.134255-2-jeebjp@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320233408.134255-1-jeebjp@gmail.com> References: <20230320233408.134255-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v0 01/14] avutil/frame: move counters utilized in loops to their scope 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: 3Ab10mq5tsNV This way we can clean up separate definitions in functions with just a single loop, as well as have no reuse between different loops' counters in functions with multiple. --- libavutil/frame.c | 76 ++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 44 deletions(-) diff --git a/libavutil/frame.c b/libavutil/frame.c index 5c9afb0d03..c905e8d611 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -78,9 +78,7 @@ static void free_side_data(AVFrameSideData **ptr_sd) static void wipe_side_data(AVFrame *frame) { - int i; - - for (i = 0; i < frame->nb_side_data; i++) { + for (int i = 0; i < frame->nb_side_data; i++) { free_side_data(&frame->side_data[i]); } frame->nb_side_data = 0; @@ -112,7 +110,7 @@ void av_frame_free(AVFrame **frame) static int get_video_buffer(AVFrame *frame, int align) { const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(frame->format); - int ret, i, padded_height, total_size; + int ret, padded_height, total_size; int plane_padding = FFMAX(16 + 16/*STRIDE_ALIGN*/, align); ptrdiff_t linesizes[4]; size_t sizes[4]; @@ -127,7 +125,7 @@ static int get_video_buffer(AVFrame *frame, int align) if (align <= 0) align = 32; /* STRIDE_ALIGN. Should be av_cpu_max_align() */ - for(i=1; i<=align; i+=i) { + for (int i = 1; i <= align; i += i) { ret = av_image_fill_linesizes(frame->linesize, frame->format, FFALIGN(frame->width, i)); if (ret < 0) @@ -136,11 +134,11 @@ static int get_video_buffer(AVFrame *frame, int align) break; } - for (i = 0; i < 4 && frame->linesize[i]; i++) + for (int i = 0; i < 4 && frame->linesize[i]; i++) frame->linesize[i] = FFALIGN(frame->linesize[i], align); } - for (i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) linesizes[i] = frame->linesize[i]; padded_height = FFALIGN(frame->height, 32); @@ -149,7 +147,7 @@ static int get_video_buffer(AVFrame *frame, int align) return ret; total_size = 4*plane_padding; - for (i = 0; i < 4; i++) { + for (int i = 0; i < 4; i++) { if (sizes[i] > INT_MAX - total_size) return AVERROR(EINVAL); total_size += sizes[i]; @@ -165,7 +163,7 @@ static int get_video_buffer(AVFrame *frame, int align) frame->buf[0]->data, frame->linesize)) < 0) goto fail; - for (i = 1; i < 4; i++) { + for (int i = 1; i < 4; i++) { if (frame->data[i]) frame->data[i] += i * plane_padding; } @@ -182,7 +180,7 @@ static int get_audio_buffer(AVFrame *frame, int align) { int planar = av_sample_fmt_is_planar(frame->format); int channels, planes; - int ret, i; + int ret; #if FF_API_OLD_CHANNEL_LAYOUT FF_DISABLE_DEPRECATION_WARNINGS @@ -223,7 +221,7 @@ FF_ENABLE_DEPRECATION_WARNINGS } else frame->extended_data = frame->data; - for (i = 0; i < FFMIN(planes, AV_NUM_DATA_POINTERS); i++) { + for (int i = 0; i < FFMIN(planes, AV_NUM_DATA_POINTERS); i++) { frame->buf[i] = av_buffer_alloc(frame->linesize[0]); if (!frame->buf[i]) { av_frame_unref(frame); @@ -231,7 +229,7 @@ FF_ENABLE_DEPRECATION_WARNINGS } frame->extended_data[i] = frame->data[i] = frame->buf[i]->data; } - for (i = 0; i < planes - AV_NUM_DATA_POINTERS; i++) { + for (int i = 0; i < planes - AV_NUM_DATA_POINTERS; i++) { frame->extended_buf[i] = av_buffer_alloc(frame->linesize[0]); if (!frame->extended_buf[i]) { av_frame_unref(frame); @@ -265,7 +263,7 @@ FF_ENABLE_DEPRECATION_WARNINGS static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy) { - int ret, i; + int ret; dst->key_frame = src->key_frame; dst->pict_type = src->pict_type; @@ -318,7 +316,7 @@ FF_ENABLE_DEPRECATION_WARNINGS av_dict_copy(&dst->metadata, src->metadata, 0); - for (i = 0; i < src->nb_side_data; i++) { + for (int i = 0; i < src->nb_side_data; i++) { const AVFrameSideData *sd_src = src->side_data[i]; AVFrameSideData *sd_dst; if ( sd_src->type == AV_FRAME_DATA_PANSCAN @@ -351,7 +349,7 @@ FF_ENABLE_DEPRECATION_WARNINGS int av_frame_ref(AVFrame *dst, const AVFrame *src) { - int i, ret = 0; + int ret = 0; av_assert1(dst->width == 0 && dst->height == 0); #if FF_API_OLD_CHANNEL_LAYOUT @@ -406,7 +404,7 @@ FF_ENABLE_DEPRECATION_WARNINGS } /* ref the buffers */ - for (i = 0; i < FF_ARRAY_ELEMS(src->buf); i++) { + for (int i = 0; i < FF_ARRAY_ELEMS(src->buf); i++) { if (!src->buf[i]) continue; dst->buf[i] = av_buffer_ref(src->buf[i]); @@ -425,7 +423,7 @@ FF_ENABLE_DEPRECATION_WARNINGS } dst->nb_extended_buf = src->nb_extended_buf; - for (i = 0; i < src->nb_extended_buf; i++) { + for (int i = 0; i < src->nb_extended_buf; i++) { dst->extended_buf[i] = av_buffer_ref(src->extended_buf[i]); if (!dst->extended_buf[i]) { ret = AVERROR(ENOMEM); @@ -485,16 +483,14 @@ AVFrame *av_frame_clone(const AVFrame *src) void av_frame_unref(AVFrame *frame) { - int i; - if (!frame) return; wipe_side_data(frame); - for (i = 0; i < FF_ARRAY_ELEMS(frame->buf); i++) + for (int i = 0; i < FF_ARRAY_ELEMS(frame->buf); i++) av_buffer_unref(&frame->buf[i]); - for (i = 0; i < frame->nb_extended_buf; i++) + for (int i = 0; i < frame->nb_extended_buf; i++) av_buffer_unref(&frame->extended_buf[i]); av_freep(&frame->extended_buf); av_dict_free(&frame->metadata); @@ -531,16 +527,16 @@ FF_ENABLE_DEPRECATION_WARNINGS int av_frame_is_writable(AVFrame *frame) { - int i, ret = 1; + int ret = 1; /* assume non-refcounted frames are not writable */ if (!frame->buf[0]) return 0; - for (i = 0; i < FF_ARRAY_ELEMS(frame->buf); i++) + for (int i = 0; i < FF_ARRAY_ELEMS(frame->buf); i++) if (frame->buf[i]) ret &= !!av_buffer_is_writable(frame->buf[i]); - for (i = 0; i < frame->nb_extended_buf; i++) + for (int i = 0; i < frame->nb_extended_buf; i++) ret &= !!av_buffer_is_writable(frame->extended_buf[i]); return ret; @@ -607,7 +603,7 @@ int av_frame_copy_props(AVFrame *dst, const AVFrame *src) AVBufferRef *av_frame_get_plane_buffer(AVFrame *frame, int plane) { uint8_t *data; - int planes, i; + int planes; if (frame->nb_samples) { int channels = frame->ch_layout.nb_channels; @@ -630,12 +626,12 @@ FF_ENABLE_DEPRECATION_WARNINGS return NULL; data = frame->extended_data[plane]; - for (i = 0; i < FF_ARRAY_ELEMS(frame->buf) && frame->buf[i]; i++) { + for (int i = 0; i < FF_ARRAY_ELEMS(frame->buf) && frame->buf[i]; i++) { AVBufferRef *buf = frame->buf[i]; if (data >= buf->data && data < buf->data + buf->size) return buf; } - for (i = 0; i < frame->nb_extended_buf; i++) { + for (int i = 0; i < frame->nb_extended_buf; i++) { AVBufferRef *buf = frame->extended_buf[i]; if (data >= buf->data && data < buf->data + buf->size) return buf; @@ -690,9 +686,7 @@ AVFrameSideData *av_frame_new_side_data(AVFrame *frame, AVFrameSideData *av_frame_get_side_data(const AVFrame *frame, enum AVFrameSideDataType type) { - int i; - - for (i = 0; i < frame->nb_side_data; i++) { + for (int i = 0; i < frame->nb_side_data; i++) { if (frame->side_data[i]->type == type) return frame->side_data[i]; } @@ -702,7 +696,7 @@ AVFrameSideData *av_frame_get_side_data(const AVFrame *frame, static int frame_copy_video(AVFrame *dst, const AVFrame *src) { const uint8_t *src_data[4]; - int i, planes; + int planes; if (dst->width < src->width || dst->height < src->height) @@ -712,7 +706,7 @@ static int frame_copy_video(AVFrame *dst, const AVFrame *src) return av_hwframe_transfer_data(dst, src, 0); planes = av_pix_fmt_count_planes(dst->format); - for (i = 0; i < planes; i++) + for (int i = 0; i < planes; i++) if (!dst->data[i] || !src->data[i]) return AVERROR(EINVAL); @@ -729,7 +723,6 @@ static int frame_copy_audio(AVFrame *dst, const AVFrame *src) int planar = av_sample_fmt_is_planar(dst->format); int channels = dst->ch_layout.nb_channels; int planes = planar ? channels : 1; - int i; #if FF_API_OLD_CHANNEL_LAYOUT FF_DISABLE_DEPRECATION_WARNINGS @@ -757,7 +750,7 @@ FF_ENABLE_DEPRECATION_WARNINGS #endif return AVERROR(EINVAL); - for (i = 0; i < planes; i++) + for (int i = 0; i < planes; i++) if (!dst->extended_data[i] || !src->extended_data[i]) return AVERROR(EINVAL); @@ -789,9 +782,7 @@ FF_ENABLE_DEPRECATION_WARNINGS void av_frame_remove_side_data(AVFrame *frame, enum AVFrameSideDataType type) { - int i; - - for (i = frame->nb_side_data - 1; i >= 0; i--) { + for (int i = frame->nb_side_data - 1; i >= 0; i--) { AVFrameSideData *sd = frame->side_data[i]; if (sd->type == type) { free_side_data(&frame->side_data[i]); @@ -838,9 +829,7 @@ const char *av_frame_side_data_name(enum AVFrameSideDataType type) static int calc_cropping_offsets(size_t offsets[4], const AVFrame *frame, const AVPixFmtDescriptor *desc) { - int i, j; - - for (i = 0; frame->data[i]; i++) { + for (int i = 0; frame->data[i]; i++) { const AVComponentDescriptor *comp = NULL; int shift_x = (i == 1 || i == 2) ? desc->log2_chroma_w : 0; int shift_y = (i == 1 || i == 2) ? desc->log2_chroma_h : 0; @@ -851,7 +840,7 @@ static int calc_cropping_offsets(size_t offsets[4], const AVFrame *frame, } /* find any component descriptor for this plane */ - for (j = 0; j < desc->nb_components; j++) { + for (int j = 0; j < desc->nb_components; j++) { if (desc->comp[j].plane == i) { comp = &desc->comp[j]; break; @@ -871,7 +860,6 @@ int av_frame_apply_cropping(AVFrame *frame, int flags) { const AVPixFmtDescriptor *desc; size_t offsets[4]; - int i; if (!(frame->width > 0 && frame->height > 0)) return AVERROR(EINVAL); @@ -906,7 +894,7 @@ int av_frame_apply_cropping(AVFrame *frame, int flags) int log2_crop_align = frame->crop_left ? ff_ctz(frame->crop_left) : INT_MAX; int min_log2_align = INT_MAX; - for (i = 0; frame->data[i]; i++) { + for (int i = 0; frame->data[i]; i++) { int log2_align = offsets[i] ? ff_ctz(offsets[i]) : INT_MAX; min_log2_align = FFMIN(log2_align, min_log2_align); } @@ -922,7 +910,7 @@ int av_frame_apply_cropping(AVFrame *frame, int flags) } } - for (i = 0; frame->data[i]; i++) + for (int i = 0; frame->data[i]; i++) frame->data[i] += offsets[i]; frame->width -= (frame->crop_left + frame->crop_right);