Skip to content

Commit

Permalink
ffv1: split init_slice_state() out so individual slices can be inited
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
  • Loading branch information
michaelni committed Apr 20, 2012
1 parent d7a4c43 commit 32883c0
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions libavcodec/ffv1.c
Expand Up @@ -696,11 +696,9 @@ static av_cold int common_init(AVCodecContext *avctx){
return 0;
}

static int init_slice_state(FFV1Context *f){
int i, j;
static int init_slice_state(FFV1Context *f, FFV1Context *fs){
int j;

for(i=0; i<f->slice_count; i++){
FFV1Context *fs= f->slice_context[i];
fs->plane_count= f->plane_count;
fs->transparency= f->transparency;
for(j=0; j<f->plane_count; j++){
Expand All @@ -724,11 +722,20 @@ static int init_slice_state(FFV1Context *f){
fs->c.zero_state[256-j]= 256-fs->c.one_state [j];
}
}
}

return 0;
}

static int init_slices_state(FFV1Context *f){
int i;
for(i=0; i<f->slice_count; i++){
FFV1Context *fs= f->slice_context[i];
if(init_slice_state(f, fs) < 0)
return -1;
}
return 0;
}

static av_cold int init_slice_contexts(FFV1Context *f){
int i;

Expand Down Expand Up @@ -1089,7 +1096,7 @@ static av_cold int encode_init(AVCodecContext *avctx)

if(init_slice_contexts(s) < 0)
return -1;
if(init_slice_state(s) < 0)
if(init_slices_state(s) < 0)
return -1;

#define STATS_OUT_SIZE 1024*1024*6
Expand Down Expand Up @@ -1824,7 +1831,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
p->key_frame= 1;
if(read_header(f) < 0)
return -1;
if(init_slice_state(f) < 0)
if(init_slices_state(f) < 0)
return -1;

clear_state(f);
Expand Down

0 comments on commit 32883c0

Please sign in to comment.