1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00

avcodec/ralf: Move variable from context to stack

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2022-09-07 02:02:54 +02:00
parent dcbb7e8a30
commit 5c19cb3f92

View File

@ -63,7 +63,6 @@ typedef struct RALFContext {
unsigned bias[2]; ///< a constant value added to channel data after filtering unsigned bias[2]; ///< a constant value added to channel data after filtering
int num_blocks; ///< number of blocks inside the frame
int sample_offset; int sample_offset;
int block_size[1 << 12]; ///< size of the blocks int block_size[1 << 12]; ///< size of the blocks
int block_pts[1 << 12]; ///< block start time (in milliseconds) int block_pts[1 << 12]; ///< block start time (in milliseconds)
@ -418,7 +417,7 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
int16_t *samples1; int16_t *samples1;
int ret; int ret;
GetBitContext gb; GetBitContext gb;
int table_size, table_bytes, i; int table_size, table_bytes, num_blocks;
const uint8_t *src, *block_pointer; const uint8_t *src, *block_pointer;
int src_size; int src_size;
int bytes_left; int bytes_left;
@ -462,17 +461,17 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
init_get_bits(&gb, src + 2, table_size); init_get_bits(&gb, src + 2, table_size);
ctx->num_blocks = 0; num_blocks = 0;
while (get_bits_left(&gb) > 0) { while (get_bits_left(&gb) > 0) {
if (ctx->num_blocks >= FF_ARRAY_ELEMS(ctx->block_size)) if (num_blocks >= FF_ARRAY_ELEMS(ctx->block_size))
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
ctx->block_size[ctx->num_blocks] = get_bits(&gb, 13 + avctx->ch_layout.nb_channels); ctx->block_size[num_blocks] = get_bits(&gb, 13 + avctx->ch_layout.nb_channels);
if (get_bits1(&gb)) { if (get_bits1(&gb)) {
ctx->block_pts[ctx->num_blocks] = get_bits(&gb, 9); ctx->block_pts[num_blocks] = get_bits(&gb, 9);
} else { } else {
ctx->block_pts[ctx->num_blocks] = 0; ctx->block_pts[num_blocks] = 0;
} }
ctx->num_blocks++; num_blocks++;
} }
frame->nb_samples = ctx->max_frame_size; frame->nb_samples = ctx->max_frame_size;
@ -483,7 +482,7 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
block_pointer = src + table_bytes + 2; block_pointer = src + table_bytes + 2;
bytes_left = src_size - table_bytes - 2; bytes_left = src_size - table_bytes - 2;
ctx->sample_offset = 0; ctx->sample_offset = 0;
for (i = 0; i < ctx->num_blocks; i++) { for (int i = 0; i < num_blocks; i++) {
if (bytes_left < ctx->block_size[i]) { if (bytes_left < ctx->block_size[i]) {
av_log(avctx, AV_LOG_ERROR, "I'm pedaling backwards\n"); av_log(avctx, AV_LOG_ERROR, "I'm pedaling backwards\n");
break; break;