avcodec/ralf: Move variable from context to stack

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
pull/388/head
Andreas Rheinhardt 2 years ago
parent dcbb7e8a30
commit 5c19cb3f92
  1. 17
      libavcodec/ralf.c

@ -63,7 +63,6 @@ typedef struct RALFContext {
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 block_size[1 << 12]; ///< size of the blocks
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;
int ret;
GetBitContext gb;
int table_size, table_bytes, i;
int table_size, table_bytes, num_blocks;
const uint8_t *src, *block_pointer;
int src_size;
int bytes_left;
@ -462,17 +461,17 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
return AVERROR_INVALIDDATA;
}
init_get_bits(&gb, src + 2, table_size);
ctx->num_blocks = 0;
num_blocks = 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;
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)) {
ctx->block_pts[ctx->num_blocks] = get_bits(&gb, 9);
ctx->block_pts[num_blocks] = get_bits(&gb, 9);
} 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;
@ -483,7 +482,7 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
block_pointer = src + table_bytes + 2;
bytes_left = src_size - table_bytes - 2;
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]) {
av_log(avctx, AV_LOG_ERROR, "I'm pedaling backwards\n");
break;

Loading…
Cancel
Save