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 DAD664F7FC for ; Mon, 23 Jun 2025 13:40:06 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1424A68E224; Mon, 23 Jun 2025 16:38:22 +0300 (EEST) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 2302968E197 for ; Mon, 23 Jun 2025 16:38:21 +0300 (EEST) Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-23633a6ac50so57929285ad.2 for ; Mon, 23 Jun 2025 06:38:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750685899; x=1751290699; 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=OaMh0iLeXpDla5jIfzKEo+IlNVfPAJTCbMbNCvlAb+o=; b=hXuxqsYrT+yKYvIZyhQgmjXhSoGvvYz6kCynqXuxCR39lYt3QHDhFSNXeav1usuhfx VajE0FOqMVaX9RxIJ5GbWtE5g3z3njXhvT0ZRdfLk3agAirRmRnJDrKfCQMO0mH5j3YN xlt8cYHMJsGtzoLwTqBvbXpkyoFjlgCIpAZiEuyzoiD4H/SSFYOlxQtDpxYx3puUJM1G a7u4WmT6V794sbk9Ny8AW6bzBKZ5leD3bl8R3SBZuEKPDQjcOpMcX2YSA4E6KpxY1U8+ WQZ+3Q7gfUMIfqHI4bu1XPTLk0MmR4re+yHkR1YNeF5SH/hvjg/UmQkKBY89P2pnSFZ+ YS8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750685899; x=1751290699; 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=OaMh0iLeXpDla5jIfzKEo+IlNVfPAJTCbMbNCvlAb+o=; b=PkJDNuF7LNW97wLL7VvBoUlkkH5JvH3cLTx6Ma6/HPnmAGnvD8ZdQ0oSH1SenApb6a yBlHmFmQ/lDEu3biBUmkiHrrBk1QDqZTFIU23OMLtXNmKywLN1x7xfxDo6xuhAHApmkE Ez38mJ72octq/xhMwmqlgnHQ7VFUxFl3+1aGU9MGZAUk8jMbaY5MRJWjiAy0BC8CS1bd bTiaVkU8bIw5KwquR/Kdapcn8Ol+Xg/8e6s7e42QcDM0CedfDkovrENLvTXOoaFhY3cN ODkLKeOD03EbubeEgFvA3ahS0hW+xC/Ejd2iPx1WQkME7qAHxmGuhfS1t5IZqqsB3qfL rZ7w== X-Gm-Message-State: AOJu0YyHcTq9kz1wOj0TesaVhnTVeYUYzs4HZlKEeMb4VFYodRAKF7gc Vgw1sn9aPNjXnrNmnEYVo5+Nm4AQ0J/+8ZJW/hGHpsfoFtmHFxeLrVbBukOZ2g== X-Gm-Gg: ASbGnctCnYBvUL/bZ5k1I6qkHN1+fiyr1HcOmQZZn82WoHvIIw9EXCax0IA8XJUyuZH EAp7bNW0ltR+MVdoVgmPJ8Ki+oN3i6OWSgI/l0bBrbvN66jGA7Yhu/bTOtbiH1UAtw0l8gxQAMO bJacF3H22tHWu3MzDM/ZfQ33ZD8mhwtL9yelWMDqzvMy2loWF6ovHltXoYeL2w2kiy57Q5VwixD xb36FIxnqA8kQKrkObT/dIym/yL1DHCspoCVC2eMrSpH7UkGilsLHbm1GBCvrcAUguZQaSRAuVY j44wjvtCzjGBGatEveNKryCEaO5vADrFEI+htbB+FrXKe0aOlHe6RCaM/pZlmljlbpGxQ8gGQnK KNLSFFMHRQ9zl6rL5NRRT8kA8sxQ= X-Google-Smtp-Source: AGHT+IFiGh//a7cfUolWccXHhAZmWhl8DPPOaUbPBlUWDAa4pd+Z7ivUWHZvdYHrZXy4Ocuc/Ckqow== X-Received: by 2002:a17:902:f547:b0:234:ba37:87b6 with SMTP id d9443c01a7336-237d9730702mr204665995ad.17.1750685899243; Mon, 23 Jun 2025 06:38:19 -0700 (PDT) Received: from [127.0.0.1] (master.gitmailbox.com. [34.83.118.50]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-237d87391e5sm82453505ad.244.2025.06.23.06.38.18 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jun 2025 06:38:18 -0700 (PDT) From: Andreas Rheinhardt X-Google-Original-From: Andreas Rheinhardt Message-Id: <72dae5cae80232f9eb3277845470f0efb93b75ec.1750685809.git.ffmpegagent@gmail.com> In-Reply-To: References: Date: Mon, 23 Jun 2025 13:36:15 +0000 Fcc: Sent MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH 15/48] avcodec/rv34: Don't use MpegEncContext.gb 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 This is in preparation for removing MpegEncContext.gb. Signed-off-by: Andreas Rheinhardt --- libavcodec/rv30.c | 2 +- libavcodec/rv34.c | 28 ++++++++++++++-------------- libavcodec/rv34.h | 2 ++ libavcodec/rv40.c | 2 +- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/libavcodec/rv30.c b/libavcodec/rv30.c index 351276995b..e0b5395fa6 100644 --- a/libavcodec/rv30.c +++ b/libavcodec/rv30.c @@ -116,7 +116,7 @@ static int rv30_decode_mb_info(RV34DecContext *r) static const int rv30_p_types[6] = { RV34_MB_SKIP, RV34_MB_P_16x16, RV34_MB_P_8x8, -1, RV34_MB_TYPE_INTRA, RV34_MB_TYPE_INTRA16x16 }; static const int rv30_b_types[6] = { RV34_MB_SKIP, RV34_MB_B_DIRECT, RV34_MB_B_FORWARD, RV34_MB_B_BACKWARD, RV34_MB_TYPE_INTRA, RV34_MB_TYPE_INTRA16x16 }; MpegEncContext *s = &r->s; - GetBitContext *gb = &s->gb; + GetBitContext *const gb = &r->gb; unsigned code = get_interleaved_ue_golomb(gb); if (code > 11) { diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c index 5dcbe9a222..73fd16b3e2 100644 --- a/libavcodec/rv34.c +++ b/libavcodec/rv34.c @@ -363,7 +363,7 @@ static inline RV34VLC* choose_vlc_set(int quant, int mod, int type) static int rv34_decode_intra_mb_header(RV34DecContext *r, int8_t *intra_types) { MpegEncContext *s = &r->s; - GetBitContext *gb = &s->gb; + GetBitContext *const gb = &r->gb; int mb_pos = s->mb_x + s->mb_y * s->mb_stride; int t; @@ -398,7 +398,7 @@ static int rv34_decode_intra_mb_header(RV34DecContext *r, int8_t *intra_types) static int rv34_decode_inter_mb_header(RV34DecContext *r, int8_t *intra_types) { MpegEncContext *s = &r->s; - GetBitContext *gb = &s->gb; + GetBitContext *const gb = &r->gb; int mb_pos = s->mb_x + s->mb_y * s->mb_stride; int i, t; @@ -871,7 +871,7 @@ static const int num_mvs[RV34_MB_TYPES] = { 0, 0, 1, 4, 1, 1, 0, 0, 2, 2, 2, 1 } static int rv34_decode_mv(RV34DecContext *r, int block_type) { MpegEncContext *s = &r->s; - GetBitContext *gb = &s->gb; + GetBitContext *const gb = &r->gb; int i, j, k, l; int mv_pos = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride; int next_bt; @@ -1031,7 +1031,7 @@ static inline void rv34_process_block(RV34DecContext *r, { MpegEncContext *s = &r->s; int16_t *ptr = s->block[0]; - int has_ac = rv34_decode_block(ptr, &s->gb, r->cur_vlcs, + int has_ac = rv34_decode_block(ptr, &r->gb, r->cur_vlcs, fc, sc, q_dc, q_ac, q_ac); if(has_ac){ r->rdsp.rv34_idct_add(pdst, stride, ptr); @@ -1045,7 +1045,7 @@ static void rv34_output_i16x16(RV34DecContext *r, int8_t *intra_types, int cbp) { LOCAL_ALIGNED_16(int16_t, block16, [16]); MpegEncContext *s = &r->s; - GetBitContext *gb = &s->gb; + GetBitContext *const gb = &r->gb; int q_dc = rv34_qscale_tab[ r->luma_dc_quant_i[s->qscale] ], q_ac = rv34_qscale_tab[s->qscale]; uint8_t *dst = s->dest[0]; @@ -1213,7 +1213,7 @@ static int rv34_set_deblock_coef(RV34DecContext *r) static int rv34_decode_inter_macroblock(RV34DecContext *r, int8_t *intra_types) { MpegEncContext *s = &r->s; - GetBitContext *gb = &s->gb; + GetBitContext *const gb = &r->gb; uint8_t *dst = s->dest[0]; int16_t *ptr = s->block[0]; int mb_pos = s->mb_x + s->mb_y * s->mb_stride; @@ -1367,8 +1367,8 @@ static int check_slice_end(RV34DecContext *r, MpegEncContext *s) return 1; if(r->s.mb_skip_run > 1) return 0; - bits = get_bits_left(&s->gb); - if(bits <= 0 || (bits < 8 && !show_bits(&s->gb, bits))) + bits = get_bits_left(&r->gb); + if (bits <= 0 || (bits < 8 && !show_bits(&r->gb, bits))) return 1; return 0; } @@ -1424,11 +1424,11 @@ static int rv34_decoder_realloc(RV34DecContext *r) static int rv34_decode_slice(RV34DecContext *r, int end, const uint8_t* buf, int buf_size) { MpegEncContext *s = &r->s; - GetBitContext *gb = &s->gb; + GetBitContext *const gb = &r->gb; int mb_pos, slice_type; int res; - init_get_bits(&r->s.gb, buf, buf_size*8); + init_get_bits(gb, buf, buf_size*8); res = r->parse_slice_header(r, gb, &r->si); if(res < 0){ av_log(s->avctx, AV_LOG_ERROR, "Incorrect or unknown slice header\n"); @@ -1651,8 +1651,8 @@ int ff_rv34_decode_frame(AVCodecContext *avctx, AVFrame *pict, av_log(avctx, AV_LOG_ERROR, "Slice offset is invalid\n"); return AVERROR_INVALIDDATA; } - init_get_bits(&s->gb, buf+offset, (buf_size-offset)*8); - if(r->parse_slice_header(r, &r->s.gb, &si) < 0 || si.start){ + init_get_bits(&r->gb, buf+offset, (buf_size-offset)*8); + if (r->parse_slice_header(r, &r->gb, &si) < 0 || si.start) { av_log(avctx, AV_LOG_ERROR, "First slice header is incorrect\n"); return AVERROR_INVALIDDATA; } @@ -1781,8 +1781,8 @@ int ff_rv34_decode_frame(AVCodecContext *avctx, AVFrame *pict, av_log(avctx, AV_LOG_ERROR, "Slice offset is invalid\n"); break; } - init_get_bits(&s->gb, buf+offset1, (buf_size-offset1)*8); - if(r->parse_slice_header(r, &r->s.gb, &si) < 0){ + init_get_bits(&r->gb, buf+offset1, (buf_size-offset1)*8); + if (r->parse_slice_header(r, &r->gb, &si) < 0) { size = offset2 - offset; }else r->si.end = si.start; diff --git a/libavcodec/rv34.h b/libavcodec/rv34.h index 6fe1f8087d..485a034f9e 100644 --- a/libavcodec/rv34.h +++ b/libavcodec/rv34.h @@ -30,6 +30,7 @@ #include "libavutil/mem_internal.h" #include "avcodec.h" +#include "get_bits.h" #include "mpegvideo.h" #include "h264pred.h" @@ -85,6 +86,7 @@ typedef struct SliceInfo{ /** decoder context */ typedef struct RV34DecContext{ MpegEncContext s; + GetBitContext gb; RV34DSPContext rdsp; int8_t *intra_types_hist;///< old block types, used for prediction int8_t *intra_types; ///< block types diff --git a/libavcodec/rv40.c b/libavcodec/rv40.c index d28e02c2d1..79e99e9efd 100644 --- a/libavcodec/rv40.c +++ b/libavcodec/rv40.c @@ -226,7 +226,7 @@ static int rv40_decode_intra_types(RV34DecContext *r, GetBitContext *gb, int8_t static int rv40_decode_mb_info(RV34DecContext *r) { MpegEncContext *s = &r->s; - GetBitContext *gb = &s->gb; + GetBitContext *const gb = &r->gb; int q, i; int prev_type = 0; int mb_pos = s->mb_x + s->mb_y * s->mb_stride; -- 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".