Commit 8e6511c1 authored by Michael Niedermayer's avatar Michael Niedermayer

proresdec2: avoid VLA and use SliceContext instead.

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent af2a17c0
...@@ -31,6 +31,7 @@ typedef struct { ...@@ -31,6 +31,7 @@ typedef struct {
unsigned mb_y; unsigned mb_y;
unsigned mb_count; unsigned mb_count;
unsigned data_size; unsigned data_size;
int ret;
} SliceContext; } SliceContext;
typedef struct { typedef struct {
......
...@@ -431,6 +431,7 @@ static int decode_slice_thread(AVCodecContext *avctx, void *arg, int jobnr, int ...@@ -431,6 +431,7 @@ static int decode_slice_thread(AVCodecContext *avctx, void *arg, int jobnr, int
int16_t qmat_chroma_scaled[64]; int16_t qmat_chroma_scaled[64];
int mb_x_shift; int mb_x_shift;
slice->ret = -1;
//av_log(avctx, AV_LOG_INFO, "slice %d mb width %d mb x %d y %d\n", //av_log(avctx, AV_LOG_INFO, "slice %d mb width %d mb x %d y %d\n",
// jobnr, slice->mb_count, slice->mb_x, slice->mb_y); // jobnr, slice->mb_count, slice->mb_x, slice->mb_y);
...@@ -494,19 +495,20 @@ static int decode_slice_thread(AVCodecContext *avctx, void *arg, int jobnr, int ...@@ -494,19 +495,20 @@ static int decode_slice_thread(AVCodecContext *avctx, void *arg, int jobnr, int
qmat_chroma_scaled, log2_chroma_blocks_per_mb); qmat_chroma_scaled, log2_chroma_blocks_per_mb);
} }
slice->ret = 0;
return 0; return 0;
} }
static int decode_picture(AVCodecContext *avctx) static int decode_picture(AVCodecContext *avctx)
{ {
ProresContext *ctx = avctx->priv_data; ProresContext *ctx = avctx->priv_data;
int i, threads_ret[ctx->slice_count]; int i;
avctx->execute2(avctx, decode_slice_thread, NULL, threads_ret, ctx->slice_count); avctx->execute2(avctx, decode_slice_thread, NULL, NULL, ctx->slice_count);
for (i = 0; i < ctx->slice_count; i++) for (i = 0; i < ctx->slice_count; i++)
if (threads_ret[i] < 0) if (ctx->slices[i].ret < 0)
return threads_ret[i]; return ctx->slices[i].ret;
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment