From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 2770C4F7FC for ; Mon, 23 Jun 2025 13:41:00 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id B505968E249; Mon, 23 Jun 2025 16:38:44 +0300 (EEST) Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 601FB68E179 for ; Mon, 23 Jun 2025 16:38:43 +0300 (EEST) Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-7390d21bb1cso3196200b3a.2 for ; Mon, 23 Jun 2025 06:38:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750685921; x=1751290721; darn=ffmpeg.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date :references:in-reply-to:message-id:from:from:to:cc:subject:date :message-id:reply-to; bh=lN+Z5f5IfxaPvX/CWxwX0x12Rhr7/39MA24rQwD4hr0=; b=KMCnZDQh0ga5qTyFFZ6LrMP3bUIXTng/9ILNBE/Sm54eyLFsJqLoodz0j1C9fU7H4J FxTcYdaQa4yD1kTmXIat8j+r7DUSqE0ZNht79LlIVPqG8h6nkRyAfb2BhoQ+0s60LSKF dH4oKhLyzTyudrez9LF9B+C+CWc7TL/KkIbUR2MLgQXgPjcJ+sgUDe9bY93J0gVAKY1c Aq8sa0oteKlFBN2C09koCf+1PELfUm29xvB0kMbctzZMPr7R66U9tYOgsOPxEEQL2axi X+EoR6rx75eFDYi6X+zrw4PMQwxa3JTKdHCaZVJ2+feFrtbnrfmbkVN9d8DrCnHPEojM PSqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750685921; x=1751290721; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date :references:in-reply-to:message-id:from:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=lN+Z5f5IfxaPvX/CWxwX0x12Rhr7/39MA24rQwD4hr0=; b=p7WE4m6FUv5S47Ake2k+hJZQIwI5xgDUm2KQFUCt/y4XxyJWxzyR0V99WtCUHYxZwb 1qIqRigIzoEwv8a/fRxyuUXJKBA0C7xHItTvjY3oVVVJcvzKeUaYYIAvyV36jO8LPau9 FNoXoQm1c5Lt+cbTvhIqrUgrp86V6rNQltUp1KX/DO8k1sJZoggcMSgzAYtnnuYlCT7s V34bqAfS1a7Zr59yFvEhOrb7DbHd3lvbOOp+o+0zZC1rqoxrrjCuLHrIC168mSeKCYQT zD80tNPAeFaPeFGtVOSIc4KqvgBM0ryOA1pZ1J83LKrSKcw8Qy8OIw6Rtc2lUiMReYSX /Jew== X-Gm-Message-State: AOJu0YwvBy7EQWxJ6o7y0HaklYmvD1Kd//cHYxUDEbDK5cI4qMfZuKp2 m8Am5sEkBoaK6j1YMVJP5YREgnh4yTTi1EeQa+wvUmefnUeNn7JvN+3gqhSEzA== X-Gm-Gg: ASbGncv15hQIRNHexlNGa/B02bZjvsjZrHqP6fhDyxbb05g1Yl5kFWudpBK/lmIuQXF HNr437IVix1K73ilddy/w6f8fujEwn4sC/3IngvLMQH8qKTiKDUm6bhKgLX0lADFMxRSRlE7Sbu Hh3ryLB0bKbPcZ4WHt4RFYy6kFe2cmSm/tkaU94cDsiL1UxDVx02rcCXsTPNqb4vk/y8ogSfK2i sydtHEOueR0CjFUX1dmucKp22YUmp7XWUQ1AzxbuseLltTQIpsPyVtMktFOciD/TcbjnXbGsL/2 wbg+fsUpWE2gYdtUc2+YGJ3NgHUwXgR16uqSgFSDv3LMAiwdbmwwLQuWTwbugl3Bp4h+4L5zqQW 2DnKOAIgFjtCyO7Ra X-Google-Smtp-Source: AGHT+IHxowE571852Za1E1EUxT8nHJDsyFoYZDqSJowRCgnNsmEMCcavOH2tvtIQq4uH4Yz4gbgufw== X-Received: by 2002:a05:6a21:9011:b0:21f:5324:34d with SMTP id adf61e73a8af0-22026e6dfe9mr15987948637.28.1750685921491; Mon, 23 Jun 2025 06:38:41 -0700 (PDT) Received: from [127.0.0.1] (master.gitmailbox.com. [34.83.118.50]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b31f125d668sm6867463a12.54.2025.06.23.06.38.41 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jun 2025 06:38:41 -0700 (PDT) From: Andreas Rheinhardt X-Google-Original-From: Andreas Rheinhardt Message-Id: <69e85bdd3bfc60ffec06c7d1ce545efbfbacb2b1.1750685809.git.ffmpegagent@gmail.com> In-Reply-To: References: Date: Mon, 23 Jun 2025 13:36:19 +0000 Fcc: Sent MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH 19/48] avcodec/vc1: Don't use MpegEncContext.block 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 Cc: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Andreas Rheinhardt Instead add the necessary blocks directly to VC1Context (only six are needed, not 12 as ff_mpv_common_init() currently allocates). Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1.h | 4 ++++ libavcodec/vc1_block.c | 28 ++++++++++++++-------------- libavcodec/vc1dec.c | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/libavcodec/vc1.h b/libavcodec/vc1.h index 1be97aebfd..5eee646e31 100644 --- a/libavcodec/vc1.h +++ b/libavcodec/vc1.h @@ -31,6 +31,8 @@ #include "vc1_common.h" #include "vc1dsp.h" +#include "libavutil/mem_internal.h" + #define AC_VLC_BITS 9 /** Sequence quantizer mode */ @@ -399,6 +401,8 @@ typedef struct VC1Context{ int parse_only; ///< Context is used within parser int resync_marker; ///< could this stream contain resync markers + + DECLARE_ALIGNED_32(int16_t, blocks)[6][64]; } VC1Context; /** diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c index 0e709f5f08..165d875458 100644 --- a/libavcodec/vc1_block.c +++ b/libavcodec/vc1_block.c @@ -1950,22 +1950,22 @@ static int vc1_decode_b_mb(VC1Context *v) if (i == 1 || i == 3 || s->mb_x) v->c_avail = v->mb_type[s->block_index[i] - 1]; - ret = vc1_decode_intra_block(v, s->block[i], i, val, mquant, + ret = vc1_decode_intra_block(v, v->blocks[i], i, val, mquant, (i & 4) ? v->codingset2 : v->codingset); if (ret < 0) return ret; if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) continue; - v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); + v->vc1dsp.vc1_inv_trans_8x8(v->blocks[i]); if (v->rangeredfrm) for (j = 0; j < 64; j++) - s->block[i][j] *= 2; - s->idsp.put_signed_pixels_clamped(s->block[i], + v->blocks[i][j] *= 2; + s->idsp.put_signed_pixels_clamped(v->blocks[i], s->dest[dst_idx] + off, i & 4 ? s->uvlinesize : s->linesize); } else if (val) { - int pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, + int pat = vc1_decode_p_block(v, v->blocks[i], i, mquant, ttmb, first_block, s->dest[dst_idx] + off, (i & 4) ? s->uvlinesize : s->linesize, CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), NULL); @@ -2031,18 +2031,18 @@ static int vc1_decode_b_mb_intfi(VC1Context *v) if (i == 1 || i == 3 || s->mb_x) v->c_avail = v->mb_type[s->block_index[i] - 1]; - ret = vc1_decode_intra_block(v, s->block[i], i, val, mquant, + ret = vc1_decode_intra_block(v, v->blocks[i], i, val, mquant, (i & 4) ? v->codingset2 : v->codingset); if (ret < 0) return ret; if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) continue; - v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); + v->vc1dsp.vc1_inv_trans_8x8(v->blocks[i]); if (v->rangeredfrm) for (j = 0; j < 64; j++) - s->block[i][j] <<= 1; + v->blocks[i][j] <<= 1; off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); - s->idsp.put_signed_pixels_clamped(s->block[i], + s->idsp.put_signed_pixels_clamped(v->blocks[i], s->dest[dst_idx] + off, (i & 4) ? s->uvlinesize : s->linesize); @@ -2129,7 +2129,7 @@ static int vc1_decode_b_mb_intfi(VC1Context *v) val = ((cbp >> (5 - i)) & 1); off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize; if (val) { - pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, + pat = vc1_decode_p_block(v, v->blocks[i], i, mquant, ttmb, first_block, s->dest[dst_idx] + off, (i & 4) ? s->uvlinesize : s->linesize, CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), &block_tt); @@ -2227,13 +2227,13 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) if (i == 1 || i == 3 || s->mb_x) v->c_avail = v->mb_type[s->block_index[i] - 1]; - ret = vc1_decode_intra_block(v, s->block[i], i, val, mquant, + ret = vc1_decode_intra_block(v, v->blocks[i], i, val, mquant, (i & 4) ? v->codingset2 : v->codingset); if (ret < 0) return ret; if (CONFIG_GRAY && i > 3 && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) continue; - v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); + v->vc1dsp.vc1_inv_trans_8x8(v->blocks[i]); if (i < 4) { stride_y = s->linesize << fieldtx; off = (fieldtx) ? ((i & 1) * 8) + ((i & 2) >> 1) * s->linesize : (i & 1) * 8 + 4 * (i & 2) * s->linesize; @@ -2241,7 +2241,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) stride_y = s->uvlinesize; off = 0; } - s->idsp.put_signed_pixels_clamped(s->block[i], + s->idsp.put_signed_pixels_clamped(v->blocks[i], s->dest[dst_idx] + off, stride_y); } @@ -2430,7 +2430,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) else off = (i & 4) ? 0 : ((i & 1) * 8 + ((i > 1) * s->linesize)); if (val) { - pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, + pat = vc1_decode_p_block(v, v->blocks[i], i, mquant, ttmb, first_block, s->dest[dst_idx] + off, (i & 4) ? s->uvlinesize : (s->linesize << fieldtx), CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), &block_tt); diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 9c942929b5..de6d9ef7a9 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -420,7 +420,7 @@ static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) return AVERROR(ENOMEM); } - ret = ff_intrax8_common_init(s->avctx, &v->x8, s->block[0], + ret = ff_intrax8_common_init(s->avctx, &v->x8, v->blocks[0], s->mb_width, s->mb_height); if (ret < 0) return ret; -- ffmpeg-codebot _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".