mirror of https://git.ffmpeg.org/ffmpeg.git
ffv1: move init_slice_state() into the decoder threads.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
60217b5b9c
commit
3f4c0dad16
|
@ -1601,12 +1601,13 @@ static int decode_slice(AVCodecContext *c, void *arg){
|
|||
AVFrame * const p= &f->picture;
|
||||
|
||||
if(f->version > 2){
|
||||
if(decode_slice_header(f, fs) < 0)
|
||||
return AVERROR_INVALIDDATA;
|
||||
|
||||
if(init_slice_state(f, fs) < 0)
|
||||
return AVERROR(ENOMEM);
|
||||
if(decode_slice_header(f, fs) < 0)
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
if(init_slice_state(f, fs) < 0)
|
||||
return AVERROR(ENOMEM);
|
||||
if(f->picture.key_frame)
|
||||
clear_slice_state(f, fs);
|
||||
width = fs->slice_width;
|
||||
|
@ -1968,8 +1969,6 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
|
|||
f->key_frame_ok = 0;
|
||||
if(read_header(f) < 0)
|
||||
return -1;
|
||||
if(init_slices_state(f) < 0)
|
||||
return -1;
|
||||
f->key_frame_ok = 1;
|
||||
}else{
|
||||
if (!f->key_frame_ok) {
|
||||
|
@ -1978,13 +1977,6 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
|
|||
}
|
||||
p->key_frame= 0;
|
||||
}
|
||||
if(f->ac>1){
|
||||
int i;
|
||||
for(i=1; i<256; i++){
|
||||
c->one_state[i]= f->state_transition[i];
|
||||
c->zero_state[256-i]= 256-c->one_state[i];
|
||||
}
|
||||
}
|
||||
|
||||
p->reference= 0;
|
||||
if(avctx->get_buffer(avctx, p) < 0){
|
||||
|
|
Loading…
Reference in New Issue