[FFmpeg-cvslog] ffv1: move init_slice_state() into the decoder threads.

Michael Niedermayer git at videolan.org
Wed Apr 25 18:23:54 CEST 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Apr 25 17:50:55 2012 +0200| [3f4c0dad16b853fdd16ef89de1b082b9333737c3] | committer: Michael Niedermayer

ffv1: move init_slice_state() into the decoder threads.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3f4c0dad16b853fdd16ef89de1b082b9333737c3
---

 libavcodec/ffv1.c |   16 ++++------------
 1 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c
index c31c3ff..c906ca6 100644
--- a/libavcodec/ffv1.c
+++ b/libavcodec/ffv1.c
@@ -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){



More information about the ffmpeg-cvslog mailing list