From 6019cd9ff27f2e9f092a6149e6c069e2867cd14f Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Sun, 24 Oct 2010 12:31:00 +0000
Subject: [PATCH] Factorize state_transition init out.

Originally committed as revision 25559 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/ffv1.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c
index 46017252860..dd3ff0d12b1 100644
--- a/libavcodec/ffv1.c
+++ b/libavcodec/ffv1.c
@@ -629,8 +629,7 @@ static void write_header(FFV1Context *f){
         put_symbol(c, state, f->ac, 0);
         if(f->ac>1){
             for(i=1; i<256; i++){
-                f->state_transition[i]=ver2_state[i];
-                put_symbol(c, state, ver2_state[i] - c->one_state[i], 1);
+                put_symbol(c, state, f->state_transition[i] - c->one_state[i], 1);
             }
         }
         put_symbol(c, state, f->colorspace, 0); //YUV cs type
@@ -751,8 +750,7 @@ static int write_extra_header(FFV1Context *f){
     put_symbol(c, state, f->ac, 0);
     if(f->ac>1){
         for(i=1; i<256; i++){
-            f->state_transition[i]=ver2_state[i];
-            put_symbol(c, state, ver2_state[i] - c->one_state[i], 1);
+            put_symbol(c, state, f->state_transition[i] - c->one_state[i], 1);
         }
     }
     put_symbol(c, state, f->colorspace, 0); //YUV cs type
@@ -783,6 +781,10 @@ static av_cold int encode_init(AVCodecContext *avctx)
     s->version=0;
     s->ac= avctx->coder_type ? 2:0;
 
+    if(s->ac>1)
+        for(i=1; i<256; i++)
+            s->state_transition[i]=ver2_state[i];
+
     s->plane_count=2;
     for(i=0; i<256; i++){
         s->quant_table_count=2;
-- 
GitLab