ffv1: split clear_slice_state() out so individual slices can be cleared.
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 20 Apr 2012 12:51:42 +0000 (14:51 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 20 Apr 2012 13:37:23 +0000 (15:37 +0200)
This allows us to clear outside of the main thread for example.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/ffv1.c

index 2bad0f2..df3949c 100644 (file)
@@ -1118,11 +1118,9 @@ static av_cold int encode_init(AVCodecContext *avctx)
 #endif /* CONFIG_FFV1_ENCODER */
 
 
-static void clear_state(FFV1Context *f){
-    int i, si, j;
+static void clear_slice_state(FFV1Context *f, FFV1Context *fs){
+    int i, j;
 
-    for(si=0; si<f->slice_count; si++){
-        FFV1Context *fs= f->slice_context[si];
         for(i=0; i<f->plane_count; i++){
             PlaneContext *p= &fs->plane[i];
 
@@ -1143,6 +1141,14 @@ static void clear_state(FFV1Context *f){
                 }
             }
         }
+}
+
+static void clear_state(FFV1Context *f){
+    int si;
+
+    for(si=0; si<f->slice_count; si++){
+        FFV1Context *fs= f->slice_context[si];
+        clear_slice_state(f, fs);
     }
 }