Commit c72cca5a authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/ffv1dec: move initial_states init to init_thread_copy()

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 5be7aecc
......@@ -942,13 +942,19 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac
static int init_thread_copy(AVCodecContext *avctx)
{
FFV1Context *f = avctx->priv_data;
int i;
f->picture.f = NULL;
f->last_picture.f = NULL;
f->sample_buffer = NULL;
f->quant_table_count = 0;
f->slice_count = 0;
for (i = 0; i < f->quant_table_count; i++) {
av_assert0(f->version > 1);
f->initial_states[i] = av_memdup(f->initial_states[i],
f->context_count[i] * sizeof(*f->initial_states[i]));
}
return 0;
}
......@@ -962,12 +968,9 @@ static int update_thread_context(AVCodecContext *dst, const AVCodecContext *src)
return 0;
if (!fdst->picture.f) {
FFV1Context bak = *fdst;
memcpy(fdst, fsrc, sizeof(*fdst));
for (i = 0; i < fdst->quant_table_count; i++) {
fdst->initial_states[i] = av_malloc(fdst->context_count[i] * sizeof(*fdst->initial_states[i]));
memcpy(fdst->initial_states[i], fsrc->initial_states[i], fdst->context_count[i] * sizeof(*fdst->initial_states[i]));
}
memcpy(fdst->initial_states, bak.initial_states, sizeof(fdst->initial_states));
fdst->picture.f = av_frame_alloc();
fdst->last_picture.f = av_frame_alloc();
......
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