Browse code

Move av_reverse table to libavcodec

It is only used in that library.

Diego Biurrun authored on 2012/10/12 01:50:30
Showing 16 changed files
... ...
@@ -23,13 +23,14 @@
23 23
  * ASUS V1/V2 decoder.
24 24
  */
25 25
 
26
-#include "libavutil/common.h"
26
+#include "libavutil/attributes.h"
27 27
 #include "libavutil/mem.h"
28 28
 
29 29
 #include "asv.h"
30 30
 #include "avcodec.h"
31 31
 #include "put_bits.h"
32 32
 #include "dsputil.h"
33
+#include "mathops.h"
33 34
 #include "mpeg12data.h"
34 35
 
35 36
 //#undef NDEBUG
... ...
@@ -70,7 +71,7 @@ static av_cold void init_vlcs(ASV1Context *a){
70 70
 
71 71
 //FIXME write a reversed bitstream reader to avoid the double reverse
72 72
 static inline int asv2_get_bits(GetBitContext *gb, int n){
73
-    return av_reverse[ get_bits(gb, n) << (8-n) ];
73
+    return ff_reverse[ get_bits(gb, n) << (8-n) ];
74 74
 }
75 75
 
76 76
 static inline int asv1_get_level(GetBitContext *gb){
... ...
@@ -210,7 +211,7 @@ static int decode_frame(AVCodecContext *avctx,
210 210
     else{
211 211
         int i;
212 212
         for(i=0; i<buf_size; i++)
213
-            a->bitstream_buffer[i]= av_reverse[ buf[i] ];
213
+            a->bitstream_buffer[i]= ff_reverse[ buf[i] ];
214 214
     }
215 215
 
216 216
     init_get_bits(&a->gb, a->bitstream_buffer, buf_size*8);
... ...
@@ -23,15 +23,16 @@
23 23
  * ASUS V1/V2 encoder.
24 24
  */
25 25
 
26
-#include "libavutil/common.h"
26
+#include "libavutil/attributes.h"
27 27
 #include "libavutil/mem.h"
28 28
 
29 29
 #include "asv.h"
30 30
 #include "avcodec.h"
31
+#include "mathops.h"
31 32
 #include "mpeg12data.h"
32 33
 
33 34
 static inline void asv2_put_bits(PutBitContext *pb, int n, int v){
34
-    put_bits(pb, n, av_reverse[ v << (8-n) ]);
35
+    put_bits(pb, n, ff_reverse[ v << (8-n) ]);
35 36
 }
36 37
 
37 38
 static inline void asv1_put_level(PutBitContext *pb, int level){
... ...
@@ -226,7 +227,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
226 226
     else{
227 227
         int i;
228 228
         for(i=0; i<4*size; i++)
229
-            pkt->data[i] = av_reverse[pkt->data[i]];
229
+            pkt->data[i] = ff_reverse[pkt->data[i]];
230 230
     }
231 231
 
232 232
     pkt->size   = size*4;
... ...
@@ -29,6 +29,7 @@
29 29
  */
30 30
 
31 31
 #include "avcodec.h"
32
+#include "mathops.h"
32 33
 #include "get_bits.h"
33 34
 #include "put_bits.h"
34 35
 
... ...
@@ -114,10 +115,10 @@ static int alloc_table(VLC *vlc, int size, int use_static)
114 114
 }
115 115
 
116 116
 static av_always_inline uint32_t bitswap_32(uint32_t x) {
117
-    return (uint32_t)av_reverse[x&0xFF]<<24
118
-         | (uint32_t)av_reverse[(x>>8)&0xFF]<<16
119
-         | (uint32_t)av_reverse[(x>>16)&0xFF]<<8
120
-         | (uint32_t)av_reverse[x>>24];
117
+    return (uint32_t)ff_reverse[x&0xFF]<<24
118
+         | (uint32_t)ff_reverse[(x>>8)&0xFF]<<16
119
+         | (uint32_t)ff_reverse[(x>>16)&0xFF]<<8
120
+         | (uint32_t)ff_reverse[x>>24];
121 121
 }
122 122
 
123 123
 typedef struct {
... ...
@@ -23,11 +23,13 @@
23 23
  * @file
24 24
  * Intel Indeo 2 decoder.
25 25
  */
26
+
26 27
 #define BITSTREAM_READER_LE
28
+#include "libavutil/attributes.h"
27 29
 #include "avcodec.h"
28 30
 #include "get_bits.h"
29 31
 #include "indeo2data.h"
30
-#include "libavutil/common.h"
32
+#include "mathops.h"
31 33
 
32 34
 typedef struct Ir2Context{
33 35
     AVCodecContext *avctx;
... ...
@@ -168,7 +170,7 @@ static int ir2_decode_frame(AVCodecContext *avctx,
168 168
     /* decide whether frame uses deltas or not */
169 169
 #ifndef BITSTREAM_READER_LE
170 170
     for (i = 0; i < buf_size; i++)
171
-        buf[i] = av_reverse[buf[i]];
171
+        buf[i] = ff_reverse[buf[i]];
172 172
 #endif
173 173
 
174 174
     init_get_bits(&s->gb, buf + start, (buf_size - start) * 8);
... ...
@@ -27,10 +27,11 @@
27 27
  */
28 28
 
29 29
 #define BITSTREAM_READER_LE
30
+#include "libavutil/attributes.h"
30 31
 #include "avcodec.h"
31 32
 #include "get_bits.h"
33
+#include "mathops.h"
32 34
 #include "ivi_common.h"
33
-#include "libavutil/common.h"
34 35
 #include "ivi_dsp.h"
35 36
 
36 37
 extern const IVIHuffDesc ff_ivi_mb_huff_desc[8];  ///< static macroblock huffman tables
... ...
@@ -48,9 +49,9 @@ static uint16_t inv_bits(uint16_t val, int nbits)
48 48
     uint16_t res;
49 49
 
50 50
     if (nbits <= 8) {
51
-        res = av_reverse[val] >> (8-nbits);
51
+        res = ff_reverse[val] >> (8-nbits);
52 52
     } else
53
-        res = ((av_reverse[val & 0xFF] << 8) + (av_reverse[val >> 8])) >> (16-nbits);
53
+        res = ((ff_reverse[val & 0xFF] << 8) + (ff_reverse[val >> 8])) >> (16-nbits);
54 54
 
55 55
     return res;
56 56
 }
... ...
@@ -28,6 +28,7 @@
28 28
 #include "config.h"
29 29
 
30 30
 extern const uint32_t ff_inverse[257];
31
+extern const uint8_t  ff_reverse[256];
31 32
 extern const uint8_t ff_sqrt_tab[256];
32 33
 
33 34
 #if   ARCH_ARM
... ...
@@ -66,3 +66,22 @@ const uint8_t ff_sqrt_tab[256]={
66 66
 222,223,223,224,224,225,226,226,227,227,228,228,229,230,230,231,231,232,232,233,233,234,235,235,236,236,237,237,238,238,239,239,
67 67
 240,240,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248,249,249,250,250,251,251,252,252,253,253,254,254,255,255,255
68 68
 };
69
+
70
+const uint8_t ff_reverse[256] = {
71
+0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0,
72
+0x08,0x88,0x48,0xC8,0x28,0xA8,0x68,0xE8,0x18,0x98,0x58,0xD8,0x38,0xB8,0x78,0xF8,
73
+0x04,0x84,0x44,0xC4,0x24,0xA4,0x64,0xE4,0x14,0x94,0x54,0xD4,0x34,0xB4,0x74,0xF4,
74
+0x0C,0x8C,0x4C,0xCC,0x2C,0xAC,0x6C,0xEC,0x1C,0x9C,0x5C,0xDC,0x3C,0xBC,0x7C,0xFC,
75
+0x02,0x82,0x42,0xC2,0x22,0xA2,0x62,0xE2,0x12,0x92,0x52,0xD2,0x32,0xB2,0x72,0xF2,
76
+0x0A,0x8A,0x4A,0xCA,0x2A,0xAA,0x6A,0xEA,0x1A,0x9A,0x5A,0xDA,0x3A,0xBA,0x7A,0xFA,
77
+0x06,0x86,0x46,0xC6,0x26,0xA6,0x66,0xE6,0x16,0x96,0x56,0xD6,0x36,0xB6,0x76,0xF6,
78
+0x0E,0x8E,0x4E,0xCE,0x2E,0xAE,0x6E,0xEE,0x1E,0x9E,0x5E,0xDE,0x3E,0xBE,0x7E,0xFE,
79
+0x01,0x81,0x41,0xC1,0x21,0xA1,0x61,0xE1,0x11,0x91,0x51,0xD1,0x31,0xB1,0x71,0xF1,
80
+0x09,0x89,0x49,0xC9,0x29,0xA9,0x69,0xE9,0x19,0x99,0x59,0xD9,0x39,0xB9,0x79,0xF9,
81
+0x05,0x85,0x45,0xC5,0x25,0xA5,0x65,0xE5,0x15,0x95,0x55,0xD5,0x35,0xB5,0x75,0xF5,
82
+0x0D,0x8D,0x4D,0xCD,0x2D,0xAD,0x6D,0xED,0x1D,0x9D,0x5D,0xDD,0x3D,0xBD,0x7D,0xFD,
83
+0x03,0x83,0x43,0xC3,0x23,0xA3,0x63,0xE3,0x13,0x93,0x53,0xD3,0x33,0xB3,0x73,0xF3,
84
+0x0B,0x8B,0x4B,0xCB,0x2B,0xAB,0x6B,0xEB,0x1B,0x9B,0x5B,0xDB,0x3B,0xBB,0x7B,0xFB,
85
+0x07,0x87,0x47,0xC7,0x27,0xA7,0x67,0xE7,0x17,0x97,0x57,0xD7,0x37,0xB7,0x77,0xF7,
86
+0x0F,0x8F,0x4F,0xCF,0x2F,0xAF,0x6F,0xEF,0x1F,0x9F,0x5F,0xDF,0x3F,0xBF,0x7F,0xFF,
87
+};
... ...
@@ -24,10 +24,11 @@
24 24
  * PCM codecs
25 25
  */
26 26
 
27
-#include "libavutil/common.h" /* for av_reverse */
27
+#include "libavutil/attributes.h"
28 28
 #include "avcodec.h"
29 29
 #include "bytestream.h"
30 30
 #include "internal.h"
31
+#include "mathops.h"
31 32
 #include "pcm_tablegen.h"
32 33
 
33 34
 #define MAX_CHANNELS 64
... ...
@@ -124,8 +125,8 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
124 124
         break;
125 125
     case AV_CODEC_ID_PCM_S24DAUD:
126 126
         for (; n > 0; n--) {
127
-            uint32_t tmp = av_reverse[(*samples >> 8) & 0xff] +
128
-                           (av_reverse[*samples & 0xff] << 8);
127
+            uint32_t tmp = ff_reverse[(*samples >> 8) & 0xff] +
128
+                           (ff_reverse[*samples & 0xff] << 8);
129 129
             tmp <<= 4; // sync flags would go here
130 130
             bytestream_put_be24(&dst, tmp);
131 131
             samples++;
... ...
@@ -332,8 +333,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data,
332 332
         for (; n > 0; n--) {
333 333
             uint32_t v = bytestream_get_be24(&src);
334 334
             v >>= 4; // sync flags are here
335
-            AV_WN16A(samples, av_reverse[(v >> 8) & 0xff] +
336
-                             (av_reverse[v        & 0xff] << 8));
335
+            AV_WN16A(samples, ff_reverse[(v >> 8) & 0xff] +
336
+                             (ff_reverse[v        & 0xff] << 8));
337 337
             samples += 2;
338 338
         }
339 339
         break;
... ...
@@ -20,9 +20,10 @@
20 20
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 21
  */
22 22
 
23
-#include "libavutil/common.h"
24 23
 #include "libavutil/intreadwrite.h"
24
+#include "libavutil/log.h"
25 25
 #include "avcodec.h"
26
+#include "mathops.h"
26 27
 
27 28
 #define AES3_HEADER_LEN 4
28 29
 
... ...
@@ -105,34 +106,34 @@ static int s302m_decode_frame(AVCodecContext *avctx, void *data,
105 105
     if (avctx->bits_per_coded_sample == 24) {
106 106
         uint32_t *o = (uint32_t *)s->frame.data[0];
107 107
         for (; buf_size > 6; buf_size -= 7) {
108
-            *o++ = (av_reverse[buf[2]]        << 24) |
109
-                   (av_reverse[buf[1]]        << 16) |
110
-                   (av_reverse[buf[0]]        <<  8);
111
-            *o++ = (av_reverse[buf[6] & 0xf0] << 28) |
112
-                   (av_reverse[buf[5]]        << 20) |
113
-                   (av_reverse[buf[4]]        << 12) |
114
-                   (av_reverse[buf[3] & 0x0f] <<  4);
108
+            *o++ = (ff_reverse[buf[2]]        << 24) |
109
+                   (ff_reverse[buf[1]]        << 16) |
110
+                   (ff_reverse[buf[0]]        <<  8);
111
+            *o++ = (ff_reverse[buf[6] & 0xf0] << 28) |
112
+                   (ff_reverse[buf[5]]        << 20) |
113
+                   (ff_reverse[buf[4]]        << 12) |
114
+                   (ff_reverse[buf[3] & 0x0f] <<  4);
115 115
             buf += 7;
116 116
         }
117 117
     } else if (avctx->bits_per_coded_sample == 20) {
118 118
         uint32_t *o = (uint32_t *)s->frame.data[0];
119 119
         for (; buf_size > 5; buf_size -= 6) {
120
-            *o++ = (av_reverse[buf[2] & 0xf0] << 28) |
121
-                   (av_reverse[buf[1]]        << 20) |
122
-                   (av_reverse[buf[0]]        << 12);
123
-            *o++ = (av_reverse[buf[5] & 0xf0] << 28) |
124
-                   (av_reverse[buf[4]]        << 20) |
125
-                   (av_reverse[buf[3]]        << 12);
120
+            *o++ = (ff_reverse[buf[2] & 0xf0] << 28) |
121
+                   (ff_reverse[buf[1]]        << 20) |
122
+                   (ff_reverse[buf[0]]        << 12);
123
+            *o++ = (ff_reverse[buf[5] & 0xf0] << 28) |
124
+                   (ff_reverse[buf[4]]        << 20) |
125
+                   (ff_reverse[buf[3]]        << 12);
126 126
             buf += 6;
127 127
         }
128 128
     } else {
129 129
         uint16_t *o = (uint16_t *)s->frame.data[0];
130 130
         for (; buf_size > 4; buf_size -= 5) {
131
-            *o++ = (av_reverse[buf[1]]        <<  8) |
132
-                    av_reverse[buf[0]];
133
-            *o++ = (av_reverse[buf[4] & 0xf0] << 12) |
134
-                   (av_reverse[buf[3]]        <<  4) |
135
-                   (av_reverse[buf[2]]        >>  4);
131
+            *o++ = (ff_reverse[buf[1]]        <<  8) |
132
+                    ff_reverse[buf[0]];
133
+            *o++ = (ff_reverse[buf[4] & 0xf0] << 12) |
134
+                   (ff_reverse[buf[3]]        <<  4) |
135
+                   (ff_reverse[buf[2]]        >>  4);
136 136
             buf += 5;
137 137
         }
138 138
     }
... ...
@@ -33,7 +33,8 @@
33 33
 #include "lzw.h"
34 34
 #include "tiff.h"
35 35
 #include "faxcompr.h"
36
-#include "libavutil/common.h"
36
+#include "mathops.h"
37
+#include "libavutil/attributes.h"
37 38
 #include "libavutil/intreadwrite.h"
38 39
 #include "libavutil/imgutils.h"
39 40
 
... ...
@@ -171,7 +172,7 @@ static int tiff_unpack_strip(TiffContext *s, uint8_t *dst, int stride,
171 171
             memcpy(src2, src, size);
172 172
         } else {
173 173
             for (i = 0; i < size; i++)
174
-                src2[i] = av_reverse[src[i]];
174
+                src2[i] = ff_reverse[src[i]];
175 175
         }
176 176
         memset(src2 + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
177 177
         switch (s->compr) {
... ...
@@ -199,7 +200,7 @@ static int tiff_unpack_strip(TiffContext *s, uint8_t *dst, int stride,
199 199
             } else {
200 200
                 int i;
201 201
                 for (i = 0; i < width; i++)
202
-                    dst[i] = av_reverse[src[i]];
202
+                    dst[i] = ff_reverse[src[i]];
203 203
             }
204 204
             src += width;
205 205
             break;
... ...
@@ -29,6 +29,7 @@
29 29
 #include "avcodec.h"
30 30
 #include "dsputil.h"
31 31
 #include "get_bits.h"
32
+#include "mathops.h"
32 33
 
33 34
 typedef struct {
34 35
     AVCodecContext *avctx;
... ...
@@ -44,7 +45,7 @@ static uint8_t vble_read_reverse_unary(GetBitContext *gb)
44 44
     uint8_t val = show_bits(gb, 8);
45 45
 
46 46
     if (val) {
47
-        val = 7 - av_log2_16bit(av_reverse[val]);
47
+        val = 7 - av_log2_16bit(ff_reverse[val]);
48 48
         skip_bits(gb, val + 1);
49 49
         return val;
50 50
     } else {
... ...
@@ -26,7 +26,7 @@
26 26
 
27 27
 #include "avcodec.h"
28 28
 #include "get_bits.h"
29
-#include "libavutil/common.h"
29
+#include "mathops.h"
30 30
 
31 31
 
32 32
 typedef struct WNV1Context{
... ...
@@ -52,7 +52,7 @@ static inline int wnv1_get_code(WNV1Context *w, int base_value)
52 52
     int v = get_vlc2(&w->gb, code_vlc.table, CODE_VLC_BITS, 1);
53 53
 
54 54
     if(v==15)
55
-        return av_reverse[ get_bits(&w->gb, 8 - w->shift) ];
55
+        return ff_reverse[ get_bits(&w->gb, 8 - w->shift) ];
56 56
     else
57 57
         return base_value + ((v - 7)<<w->shift);
58 58
 }
... ...
@@ -88,7 +88,7 @@ static int decode_frame(AVCodecContext *avctx,
88 88
     p->key_frame = 1;
89 89
 
90 90
     for(i=8; i<buf_size; i++)
91
-        rbuf[i]= av_reverse[ buf[i] ];
91
+        rbuf[i]= ff_reverse[ buf[i] ];
92 92
     init_get_bits(&l->gb, rbuf+8, (buf_size-8)*8);
93 93
 
94 94
     if (buf[2] >> 4 == 6)
... ...
@@ -22,7 +22,7 @@
22 22
 
23 23
 #include "avcodec.h"
24 24
 #include "internal.h"
25
-#include "libavutil/common.h"
25
+#include "mathops.h"
26 26
 
27 27
 static av_cold int xbm_encode_init(AVCodecContext *avctx)
28 28
 {
... ...
@@ -55,7 +55,7 @@ static int xbm_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
55 55
     buf += snprintf(buf, 40, "static unsigned char image_bits[] = {\n");
56 56
     for (i = 0; i < avctx->height; i++) {
57 57
         for (j = 0; j < linesize; j++)
58
-            buf += snprintf(buf, 7, " 0x%02X,", av_reverse[*ptr++]);
58
+            buf += snprintf(buf, 7, " 0x%02X,", ff_reverse[*ptr++]);
59 59
         ptr += p->linesize[0] - linesize;
60 60
         buf += snprintf(buf, 2, "\n");
61 61
     }
... ...
@@ -34,7 +34,9 @@
34 34
 #include <stdio.h>
35 35
 #include <stdlib.h>
36 36
 #include <string.h>
37
+
37 38
 #include "attributes.h"
39
+#include "version.h"
38 40
 #include "libavutil/avconfig.h"
39 41
 
40 42
 #if AV_HAVE_BIGENDIAN
... ...
@@ -62,7 +64,9 @@
62 62
 /* misc math functions */
63 63
 extern const uint8_t ff_log2_tab[256];
64 64
 
65
-extern const uint8_t av_reverse[256];
65
+#if FF_API_AV_REVERSE
66
+extern attribute_deprecated const uint8_t av_reverse[256];
67
+#endif
66 68
 
67 69
 static av_always_inline av_const int av_log2_c(unsigned int v)
68 70
 {
... ...
@@ -26,8 +26,11 @@
26 26
 #include <assert.h>
27 27
 #include <stdint.h>
28 28
 #include <limits.h>
29
+
29 30
 #include "mathematics.h"
31
+#include "version.h"
30 32
 
33
+#if FF_API_AV_REVERSE
31 34
 const uint8_t av_reverse[256]={
32 35
 0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0,
33 36
 0x08,0x88,0x48,0xC8,0x28,0xA8,0x68,0xE8,0x18,0x98,0x58,0xD8,0x38,0xB8,0x78,0xF8,
... ...
@@ -46,6 +49,7 @@ const uint8_t av_reverse[256]={
46 46
 0x07,0x87,0x47,0xC7,0x27,0xA7,0x67,0xE7,0x17,0x97,0x57,0xD7,0x37,0xB7,0x77,0xF7,
47 47
 0x0F,0x8F,0x4F,0xCF,0x2F,0xAF,0x6F,0xEF,0x1F,0x9F,0x5F,0xDF,0x3F,0xBF,0x7F,0xFF,
48 48
 };
49
+#endif
49 50
 
50 51
 int64_t av_gcd(int64_t a, int64_t b){
51 52
     if(b) return av_gcd(b, a%b);
... ...
@@ -82,6 +82,9 @@
82 82
 #ifndef FF_API_PIX_FMT_DESC
83 83
 #define FF_API_PIX_FMT_DESC             (LIBAVUTIL_VERSION_MAJOR < 52)
84 84
 #endif
85
+#ifndef FF_API_AV_REVERSE
86
+#define FF_API_AV_REVERSE               (LIBAVUTIL_VERSION_MAJOR < 52)
87
+#endif
85 88
 
86 89
 /**
87 90
  * @}