move ff_log2_run to bitstream.c and reuse in ffv1.c
authorStefan Gehrer <stefan.gehrer@gmx.de>
Thu, 26 Jun 2008 16:39:21 +0000 (16:39 +0000)
committerStefan Gehrer <stefan.gehrer@gmx.de>
Thu, 26 Jun 2008 16:39:21 +0000 (16:39 +0000)
Originally committed as revision 13989 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/bitstream.c
libavcodec/ffv1.c
libavcodec/jpegls.c

index b69d3cb..57f1391 100644 (file)
 #include "avcodec.h"
 #include "bitstream.h"
 
+const uint8_t ff_log2_run[32]={
+ 0, 0, 0, 0, 1, 1, 1, 1,
+ 2, 2, 2, 2, 3, 3, 3, 3,
+ 4, 4, 5, 5, 6, 6, 7, 7,
+ 8, 9,10,11,12,13,14,15
+};
+
 /**
  * Same as av_mallocz_static(), but does a realloc.
  *
index 133347e..c1fac10 100644 (file)
@@ -34,6 +34,8 @@
 #define MAX_PLANES 4
 #define CONTEXT_SIZE 32
 
+extern const uint8_t ff_log2_run[32];
+
 static const int8_t quant3[256]={
  0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -143,12 +145,6 @@ static const int8_t quant13[256]={
 -4,-4,-4,-4,-4,-4,-4,-4,-4,-3,-3,-3,-3,-2,-2,-1,
 };
 
-static const uint8_t log2_run[32]={
- 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,
- 4, 4, 5, 5, 6, 6, 7, 7,
- 8, 9,10,11,12,13,14,15,
-};
-
 typedef struct VlcState{
     int16_t drift;
     uint16_t error_sum;
@@ -396,13 +392,13 @@ static inline int encode_line(FFV1Context *s, int w, int_fast16_t *sample[2], in
             if(run_mode){
 
                 if(diff){
-                    while(run_count >= 1<<log2_run[run_index]){
-                        run_count -= 1<<log2_run[run_index];
+                    while(run_count >= 1<<ff_log2_run[run_index]){
+                        run_count -= 1<<ff_log2_run[run_index];
                         run_index++;
                         put_bits(&s->pb, 1, 1);
                     }
 
-                    put_bits(&s->pb, 1 + log2_run[run_index], run_count);
+                    put_bits(&s->pb, 1 + ff_log2_run[run_index], run_count);
                     if(run_index) run_index--;
                     run_count=0;
                     run_mode=0;
@@ -419,8 +415,8 @@ static inline int encode_line(FFV1Context *s, int w, int_fast16_t *sample[2], in
         }
     }
     if(run_mode){
-        while(run_count >= 1<<log2_run[run_index]){
-            run_count -= 1<<log2_run[run_index];
+        while(run_count >= 1<<ff_log2_run[run_index]){
+            run_count -= 1<<ff_log2_run[run_index];
             run_index++;
             put_bits(&s->pb, 1, 1);
         }
@@ -735,10 +731,10 @@ static inline void decode_line(FFV1Context *s, int w, int_fast16_t *sample[2], i
             if(run_mode){
                 if(run_count==0 && run_mode==1){
                     if(get_bits1(&s->gb)){
-                        run_count = 1<<log2_run[run_index];
+                        run_count = 1<<ff_log2_run[run_index];
                         if(x + run_count <= w) run_index++;
                     }else{
-                        if(log2_run[run_index]) run_count = get_bits(&s->gb, log2_run[run_index]);
+                        if(ff_log2_run[run_index]) run_count = get_bits(&s->gb, ff_log2_run[run_index]);
                         else run_count=0;
                         if(run_index) run_index--;
                         run_mode=2;
index 8a6f506..352183b 100644 (file)
 
 #include "jpegls.h"
 
-const uint8_t ff_log2_run[32]={
- 0, 0, 0, 0, 1, 1, 1, 1,
- 2, 2, 2, 2, 3, 3, 3, 3,
- 4, 4, 5, 5, 6, 6, 7, 7,
- 8, 9,10,11,12,13,14,15
-};
-
 void ff_jpegls_init_state(JLSState *state){
     int i;