diff options
Diffstat (limited to 'apps/codecs')
-rw-r--r-- | apps/codecs/Tremor/bitwise.c | 18 | ||||
-rw-r--r-- | apps/codecs/Tremor/block.c | 1 | ||||
-rw-r--r-- | apps/codecs/Tremor/floor0.c | 10 | ||||
-rw-r--r-- | apps/codecs/Tremor/floor1.c | 34 | ||||
-rw-r--r-- | apps/codecs/Tremor/framing.c | 5 | ||||
-rw-r--r-- | apps/codecs/Tremor/lsp_lookup.h | 10 | ||||
-rw-r--r-- | apps/codecs/Tremor/mapping0.c | 3 | ||||
-rw-r--r-- | apps/codecs/Tremor/mdct.c | 1 | ||||
-rw-r--r-- | apps/codecs/Tremor/ogg.h | 5 | ||||
-rw-r--r-- | apps/codecs/Tremor/registry.c | 6 | ||||
-rw-r--r-- | apps/codecs/Tremor/res012.c | 8 | ||||
-rw-r--r-- | apps/codecs/Tremor/synthesis.c | 1 | ||||
-rw-r--r-- | apps/codecs/Tremor/vorbisfile.c | 4 |
13 files changed, 67 insertions, 39 deletions
diff --git a/apps/codecs/Tremor/bitwise.c b/apps/codecs/Tremor/bitwise.c index 7b6682720a..743389b008 100644 --- a/apps/codecs/Tremor/bitwise.c +++ b/apps/codecs/Tremor/bitwise.c | |||
@@ -22,6 +22,15 @@ | |||
22 | #include <string.h> | 22 | #include <string.h> |
23 | #include "ogg.h" | 23 | #include "ogg.h" |
24 | 24 | ||
25 | const unsigned long oggpack_mask[] ICONST_ATTR = | ||
26 | {0x00000000,0x00000001,0x00000003,0x00000007,0x0000000f, | ||
27 | 0x0000001f,0x0000003f,0x0000007f,0x000000ff,0x000001ff, | ||
28 | 0x000003ff,0x000007ff,0x00000fff,0x00001fff,0x00003fff, | ||
29 | 0x00007fff,0x0000ffff,0x0001ffff,0x0003ffff,0x0007ffff, | ||
30 | 0x000fffff,0x001fffff,0x003fffff,0x007fffff,0x00ffffff, | ||
31 | 0x01ffffff,0x03ffffff,0x07ffffff,0x0fffffff,0x1fffffff, | ||
32 | 0x3fffffff,0x7fffffff,0xffffffff }; | ||
33 | |||
25 | void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){ | 34 | void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){ |
26 | memset(b,0,sizeof(*b)); | 35 | memset(b,0,sizeof(*b)); |
27 | 36 | ||
@@ -42,7 +51,7 @@ void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){ | |||
42 | /* Read in bits without advancing the bitptr; bits <= 32 */ | 51 | /* Read in bits without advancing the bitptr; bits <= 32 */ |
43 | long oggpack_look_full(oggpack_buffer *b,int bits) ICODE_ATTR; | 52 | long oggpack_look_full(oggpack_buffer *b,int bits) ICODE_ATTR; |
44 | long oggpack_look_full(oggpack_buffer *b,int bits){ | 53 | long oggpack_look_full(oggpack_buffer *b,int bits){ |
45 | unsigned long m=(1<<bits)-1; | 54 | unsigned long m=oggpack_mask[bits]; |
46 | unsigned long ret=0; | 55 | unsigned long ret=0; |
47 | 56 | ||
48 | bits+=b->headbit; | 57 | bits+=b->headbit; |
@@ -127,8 +136,9 @@ int oggpack_eop(oggpack_buffer *b){ | |||
127 | } | 136 | } |
128 | 137 | ||
129 | /* bits <= 32 */ | 138 | /* bits <= 32 */ |
139 | long oggpack_read(oggpack_buffer *b,int bits) ICODE_ATTR; | ||
130 | long oggpack_read(oggpack_buffer *b,int bits){ | 140 | long oggpack_read(oggpack_buffer *b,int bits){ |
131 | unsigned long m=(1<<bits)-1; | 141 | unsigned long m=oggpack_mask[bits]; |
132 | ogg_uint32_t ret=0; | 142 | ogg_uint32_t ret=0; |
133 | 143 | ||
134 | bits+=b->headbit; | 144 | bits+=b->headbit; |
@@ -198,8 +208,8 @@ long oggpack_read(oggpack_buffer *b,int bits){ | |||
198 | } | 208 | } |
199 | } | 209 | } |
200 | 210 | ||
201 | b->headptr+=bits/8; | 211 | b->headptr+=((unsigned)bits)/8; |
202 | b->headend-=bits/8; | 212 | b->headend-=((unsigned)bits)/8; |
203 | } | 213 | } |
204 | 214 | ||
205 | ret&=m; | 215 | ret&=m; |
diff --git a/apps/codecs/Tremor/block.c b/apps/codecs/Tremor/block.c index fb451f6868..17b15e5d83 100644 --- a/apps/codecs/Tremor/block.c +++ b/apps/codecs/Tremor/block.c | |||
@@ -256,6 +256,7 @@ void vorbis_dsp_clear(vorbis_dsp_state *v){ | |||
256 | block. The time domain envelope is not yet handled at the point of | 256 | block. The time domain envelope is not yet handled at the point of |
257 | calling (as it relies on the previous block). */ | 257 | calling (as it relies on the previous block). */ |
258 | 258 | ||
259 | int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb) ICODE_ATTR; | ||
259 | int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ | 260 | int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ |
260 | vorbis_info *vi=v->vi; | 261 | vorbis_info *vi=v->vi; |
261 | codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; | 262 | codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; |
diff --git a/apps/codecs/Tremor/floor0.c b/apps/codecs/Tremor/floor0.c index 0c9542b654..8ea36aba2a 100644 --- a/apps/codecs/Tremor/floor0.c +++ b/apps/codecs/Tremor/floor0.c | |||
@@ -47,7 +47,7 @@ typedef struct { | |||
47 | 16.16 format | 47 | 16.16 format |
48 | returns in m.8 format */ | 48 | returns in m.8 format */ |
49 | 49 | ||
50 | static long ADJUST_SQRT2[2] ICODE_ATTR ={8192,5792}; | 50 | static const long ADJUST_SQRT2[2] ICONST_ATTR ={8192,5792}; |
51 | static inline ogg_int32_t vorbis_invsqlook_i(long a,long e){ | 51 | static inline ogg_int32_t vorbis_invsqlook_i(long a,long e){ |
52 | long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); | 52 | long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); |
53 | long d=a&INVSQ_LOOKUP_I_MASK; /* 0.10 */ | 53 | long d=a&INVSQ_LOOKUP_I_MASK; /* 0.10 */ |
@@ -117,21 +117,21 @@ static inline ogg_int32_t toBARK(int n){ | |||
117 | } | 117 | } |
118 | } | 118 | } |
119 | 119 | ||
120 | static const unsigned char MLOOP_1[64] IDATA_ATTR ={ | 120 | static const unsigned char MLOOP_1[64] ICONST_ATTR ={ |
121 | 0,10,11,11, 12,12,12,12, 13,13,13,13, 13,13,13,13, | 121 | 0,10,11,11, 12,12,12,12, 13,13,13,13, 13,13,13,13, |
122 | 14,14,14,14, 14,14,14,14, 14,14,14,14, 14,14,14,14, | 122 | 14,14,14,14, 14,14,14,14, 14,14,14,14, 14,14,14,14, |
123 | 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, | 123 | 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, |
124 | 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, | 124 | 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, |
125 | }; | 125 | }; |
126 | 126 | ||
127 | static const unsigned char MLOOP_2[64] IDATA_ATTR ={ | 127 | static const unsigned char MLOOP_2[64] ICONST_ATTR ={ |
128 | 0,4,5,5, 6,6,6,6, 7,7,7,7, 7,7,7,7, | 128 | 0,4,5,5, 6,6,6,6, 7,7,7,7, 7,7,7,7, |
129 | 8,8,8,8, 8,8,8,8, 8,8,8,8, 8,8,8,8, | 129 | 8,8,8,8, 8,8,8,8, 8,8,8,8, 8,8,8,8, |
130 | 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, | 130 | 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, |
131 | 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, | 131 | 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, |
132 | }; | 132 | }; |
133 | 133 | ||
134 | static const unsigned char MLOOP_3[8] IDATA_ATTR ={0,1,2,2,3,3,3,3}; | 134 | static const unsigned char MLOOP_3[8] ICONST_ATTR ={0,1,2,2,3,3,3,3}; |
135 | 135 | ||
136 | void vorbis_lsp_to_curve(ogg_int32_t *curve,int *map,int n,int ln, | 136 | void vorbis_lsp_to_curve(ogg_int32_t *curve,int *map,int n,int ln, |
137 | ogg_int32_t *lsp,int m, | 137 | ogg_int32_t *lsp,int m, |
@@ -430,7 +430,7 @@ static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i, | |||
430 | } | 430 | } |
431 | 431 | ||
432 | /* export hooks */ | 432 | /* export hooks */ |
433 | vorbis_func_floor floor0_exportbundle={ | 433 | const vorbis_func_floor floor0_exportbundle ICONST_ATTR ={ |
434 | &floor0_unpack,&floor0_look,&floor0_free_info, | 434 | &floor0_unpack,&floor0_look,&floor0_free_info, |
435 | &floor0_free_look,&floor0_inverse1,&floor0_inverse2 | 435 | &floor0_free_look,&floor0_inverse1,&floor0_inverse2 |
436 | }; | 436 | }; |
diff --git a/apps/codecs/Tremor/floor1.c b/apps/codecs/Tremor/floor1.c index e01b08cd11..14515c27e6 100644 --- a/apps/codecs/Tremor/floor1.c +++ b/apps/codecs/Tremor/floor1.c | |||
@@ -197,17 +197,19 @@ static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd,vorbis_info_mode *mi, | |||
197 | static int render_point(int x0,int x1,int y0,int y1,int x){ | 197 | static int render_point(int x0,int x1,int y0,int y1,int x){ |
198 | y0&=0x7fff; /* mask off flag */ | 198 | y0&=0x7fff; /* mask off flag */ |
199 | y1&=0x7fff; | 199 | y1&=0x7fff; |
200 | 200 | #if defined(CPU_COLDFIRE) && !defined(SIMULATOR) | |
201 | { | 201 | asm volatile ("sub.l %[x0],%[x];" |
202 | int dy=y1-y0; | 202 | "sub.l %[y0],%[y1];" |
203 | int adx=x1-x0; | 203 | "sub.l %[x0],%[x1];" |
204 | int ady=abs(dy); | 204 | "muls.l %[y1],%[x];" |
205 | int err=ady*(x-x0); | 205 | "divs.l %[x1],%[x];" |
206 | 206 | "add.l %[y0],%[x];" | |
207 | int off=err/adx; | 207 | : [x] "+d" (x), [x1] "+d" (x1), [y1] "+d" (y1) |
208 | if(dy<0)return(y0-off); | 208 | : [x0] "r" (x0), [y0] "r" (y0) ); |
209 | return(y0+off); | 209 | return x; |
210 | } | 210 | #else |
211 | return y0+((y1-y0)*(x-x0))/(x1-x0); | ||
212 | #endif | ||
211 | } | 213 | } |
212 | 214 | ||
213 | #ifdef _LOW_ACCURACY_ | 215 | #ifdef _LOW_ACCURACY_ |
@@ -217,7 +219,7 @@ static int render_point(int x0,int x1,int y0,int y1,int x){ | |||
217 | #endif | 219 | #endif |
218 | 220 | ||
219 | /* keep the floor lookup table in fast IRAM */ | 221 | /* keep the floor lookup table in fast IRAM */ |
220 | static ogg_int32_t FLOOR_fromdB_LOOKUP[256] IDATA_ATTR = { | 222 | static const ogg_int32_t FLOOR_fromdB_LOOKUP[256] ICONST_ATTR = { |
221 | XdB(0x000000e5), XdB(0x000000f4), XdB(0x00000103), XdB(0x00000114), | 223 | XdB(0x000000e5), XdB(0x000000f4), XdB(0x00000103), XdB(0x00000114), |
222 | XdB(0x00000126), XdB(0x00000139), XdB(0x0000014e), XdB(0x00000163), | 224 | XdB(0x00000126), XdB(0x00000139), XdB(0x0000014e), XdB(0x00000163), |
223 | XdB(0x0000017a), XdB(0x00000193), XdB(0x000001ad), XdB(0x000001c9), | 225 | XdB(0x0000017a), XdB(0x00000193), XdB(0x000001ad), XdB(0x000001c9), |
@@ -283,7 +285,7 @@ static ogg_int32_t FLOOR_fromdB_LOOKUP[256] IDATA_ATTR = { | |||
283 | XdB(0x52606733), XdB(0x57bad899), XdB(0x5d6e593a), XdB(0x6380b298), | 285 | XdB(0x52606733), XdB(0x57bad899), XdB(0x5d6e593a), XdB(0x6380b298), |
284 | XdB(0x69f80e9a), XdB(0x70dafda8), XdB(0x78307d76), XdB(0x7fffffff), | 286 | XdB(0x69f80e9a), XdB(0x70dafda8), XdB(0x78307d76), XdB(0x7fffffff), |
285 | }; | 287 | }; |
286 | 288 | ||
287 | static void render_line(int x0,register int x1,int y0,int y1,ogg_int32_t *d){ | 289 | static void render_line(int x0,register int x1,int y0,int y1,ogg_int32_t *d){ |
288 | int dy=y1-y0; | 290 | int dy=y1-y0; |
289 | register int x=x0; | 291 | register int x=x0; |
@@ -310,6 +312,7 @@ static void render_line(int x0,register int x1,int y0,int y1,ogg_int32_t *d){ | |||
310 | } | 312 | } |
311 | } | 313 | } |
312 | 314 | ||
315 | static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in) ICODE_ATTR; | ||
313 | static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ | 316 | static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ |
314 | vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; | 317 | vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; |
315 | vorbis_info_floor1 *info=look->vi; | 318 | vorbis_info_floor1 *info=look->vi; |
@@ -387,7 +390,6 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ | |||
387 | }else{ | 390 | }else{ |
388 | fit_value[i]=predicted|0x8000; | 391 | fit_value[i]=predicted|0x8000; |
389 | } | 392 | } |
390 | |||
391 | } | 393 | } |
392 | 394 | ||
393 | return(fit_value); | 395 | return(fit_value); |
@@ -397,6 +399,8 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ | |||
397 | } | 399 | } |
398 | 400 | ||
399 | static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, | 401 | static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, |
402 | ogg_int32_t *out) ICODE_ATTR; | ||
403 | static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, | ||
400 | ogg_int32_t *out){ | 404 | ogg_int32_t *out){ |
401 | vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; | 405 | vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; |
402 | vorbis_info_floor1 *info=look->vi; | 406 | vorbis_info_floor1 *info=look->vi; |
@@ -433,7 +437,7 @@ static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, | |||
433 | } | 437 | } |
434 | 438 | ||
435 | /* export hooks */ | 439 | /* export hooks */ |
436 | vorbis_func_floor floor1_exportbundle = { | 440 | const vorbis_func_floor floor1_exportbundle ICONST_ATTR = { |
437 | &floor1_unpack,&floor1_look,&floor1_free_info, | 441 | &floor1_unpack,&floor1_look,&floor1_free_info, |
438 | &floor1_free_look,&floor1_inverse1,&floor1_inverse2 | 442 | &floor1_free_look,&floor1_inverse1,&floor1_inverse2 |
439 | }; | 443 | }; |
diff --git a/apps/codecs/Tremor/framing.c b/apps/codecs/Tremor/framing.c index 7358986946..f17ad86d98 100644 --- a/apps/codecs/Tremor/framing.c +++ b/apps/codecs/Tremor/framing.c | |||
@@ -105,6 +105,7 @@ static ogg_buffer *_fetch_buffer(ogg_buffer_state *bs,long bytes){ | |||
105 | return ob; | 105 | return ob; |
106 | } | 106 | } |
107 | 107 | ||
108 | static ogg_reference *_fetch_ref(ogg_buffer_state *bs) ICODE_ATTR; | ||
108 | static ogg_reference *_fetch_ref(ogg_buffer_state *bs){ | 109 | static ogg_reference *_fetch_ref(ogg_buffer_state *bs){ |
109 | ogg_reference *or; | 110 | ogg_reference *or; |
110 | bs->outstanding++; | 111 | bs->outstanding++; |
@@ -501,7 +502,7 @@ int ogg_page_packets(ogg_page *og){ | |||
501 | /* Static CRC calculation table. See older code in CVS for dead | 502 | /* Static CRC calculation table. See older code in CVS for dead |
502 | run-time initialization code. */ | 503 | run-time initialization code. */ |
503 | 504 | ||
504 | static ogg_uint32_t crc_lookup[256] = { | 505 | static const ogg_uint32_t crc_lookup[256] ICONST_ATTR = { |
505 | 0x00000000,0x04c11db7,0x09823b6e,0x0d4326d9, | 506 | 0x00000000,0x04c11db7,0x09823b6e,0x0d4326d9, |
506 | 0x130476dc,0x17c56b6b,0x1a864db2,0x1e475005, | 507 | 0x130476dc,0x17c56b6b,0x1a864db2,0x1e475005, |
507 | 0x2608edb8,0x22c9f00f,0x2f8ad6d6,0x2b4bcb61, | 508 | 0x2608edb8,0x22c9f00f,0x2f8ad6d6,0x2b4bcb61, |
@@ -856,6 +857,7 @@ static void _next_lace(oggbyte_buffer *ob,ogg_stream_state *os){ | |||
856 | } | 857 | } |
857 | } | 858 | } |
858 | 859 | ||
860 | static void _span_queued_page(ogg_stream_state *os) ICODE_ATTR; | ||
859 | static void _span_queued_page(ogg_stream_state *os){ | 861 | static void _span_queued_page(ogg_stream_state *os){ |
860 | while( !(os->body_fill&FINFLAG) ){ | 862 | while( !(os->body_fill&FINFLAG) ){ |
861 | 863 | ||
@@ -1014,6 +1016,7 @@ int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno){ | |||
1014 | return OGG_SUCCESS; | 1016 | return OGG_SUCCESS; |
1015 | } | 1017 | } |
1016 | 1018 | ||
1019 | static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv) ICODE_ATTR; | ||
1017 | static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){ | 1020 | static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){ |
1018 | 1021 | ||
1019 | ogg_packet_release(op); | 1022 | ogg_packet_release(op); |
diff --git a/apps/codecs/Tremor/lsp_lookup.h b/apps/codecs/Tremor/lsp_lookup.h index cced7c9282..8609936542 100644 --- a/apps/codecs/Tremor/lsp_lookup.h +++ b/apps/codecs/Tremor/lsp_lookup.h | |||
@@ -26,7 +26,7 @@ | |||
26 | #define FROMdB2_SHIFT 3 | 26 | #define FROMdB2_SHIFT 3 |
27 | #define FROMdB2_MASK 31 | 27 | #define FROMdB2_MASK 31 |
28 | 28 | ||
29 | static const ogg_int32_t FROMdB_LOOKUP[FROMdB_LOOKUP_SZ] ={ | 29 | static const ogg_int32_t FROMdB_LOOKUP[FROMdB_LOOKUP_SZ] ICONST_ATTR ={ |
30 | 0x003fffff, 0x0028619b, 0x00197a96, 0x0010137a, | 30 | 0x003fffff, 0x0028619b, 0x00197a96, 0x0010137a, |
31 | 0x000a24b0, 0x00066666, 0x000409c3, 0x00028c42, | 31 | 0x000a24b0, 0x00066666, 0x000409c3, 0x00028c42, |
32 | 0x00019b8c, 0x000103ab, 0x0000a3d7, 0x00006760, | 32 | 0x00019b8c, 0x000103ab, 0x0000a3d7, 0x00006760, |
@@ -37,7 +37,7 @@ static const ogg_int32_t FROMdB_LOOKUP[FROMdB_LOOKUP_SZ] ={ | |||
37 | 0x0000000b, 0x00000007, 0x00000004, 0x00000003, | 37 | 0x0000000b, 0x00000007, 0x00000004, 0x00000003, |
38 | 0x00000002, 0x00000001, 0x00000001}; | 38 | 0x00000002, 0x00000001, 0x00000001}; |
39 | 39 | ||
40 | static const ogg_int32_t FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ] ={ | 40 | static const ogg_int32_t FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ] ICONST_ATTR ={ |
41 | 0x000001fc, 0x000001f5, 0x000001ee, 0x000001e7, | 41 | 0x000001fc, 0x000001f5, 0x000001ee, 0x000001e7, |
42 | 0x000001e0, 0x000001d9, 0x000001d2, 0x000001cc, | 42 | 0x000001e0, 0x000001d9, 0x000001d2, 0x000001cc, |
43 | 0x000001c5, 0x000001bf, 0x000001b8, 0x000001b2, | 43 | 0x000001c5, 0x000001bf, 0x000001b8, 0x000001b2, |
@@ -50,7 +50,7 @@ static const ogg_int32_t FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ] ={ | |||
50 | 50 | ||
51 | #define INVSQ_LOOKUP_I_SHIFT 10 | 51 | #define INVSQ_LOOKUP_I_SHIFT 10 |
52 | #define INVSQ_LOOKUP_I_MASK 1023 | 52 | #define INVSQ_LOOKUP_I_MASK 1023 |
53 | static const long INVSQ_LOOKUP_I[64+1] ={ | 53 | static const long INVSQ_LOOKUP_I[64+1] ICONST_ATTR ={ |
54 | 92682, 91966, 91267, 90583, | 54 | 92682, 91966, 91267, 90583, |
55 | 89915, 89261, 88621, 87995, | 55 | 89915, 89261, 88621, 87995, |
56 | 87381, 86781, 86192, 85616, | 56 | 87381, 86781, 86192, 85616, |
@@ -70,7 +70,7 @@ static const long INVSQ_LOOKUP_I[64+1] ={ | |||
70 | 65536, | 70 | 65536, |
71 | }; | 71 | }; |
72 | 72 | ||
73 | static const long INVSQ_LOOKUP_IDel[64] ={ | 73 | static const long INVSQ_LOOKUP_IDel[64] ICONST_ATTR ={ |
74 | 716, 699, 684, 668, | 74 | 716, 699, 684, 668, |
75 | 654, 640, 626, 614, | 75 | 654, 640, 626, 614, |
76 | 600, 589, 576, 565, | 76 | 600, 589, 576, 565, |
@@ -92,7 +92,7 @@ static const long INVSQ_LOOKUP_IDel[64] ={ | |||
92 | #define COS_LOOKUP_I_SHIFT 9 | 92 | #define COS_LOOKUP_I_SHIFT 9 |
93 | #define COS_LOOKUP_I_MASK 511 | 93 | #define COS_LOOKUP_I_MASK 511 |
94 | #define COS_LOOKUP_I_SZ 128 | 94 | #define COS_LOOKUP_I_SZ 128 |
95 | static const ogg_int32_t COS_LOOKUP_I[COS_LOOKUP_I_SZ+1] ={ | 95 | static const ogg_int32_t COS_LOOKUP_I[COS_LOOKUP_I_SZ+1] ICONST_ATTR ={ |
96 | 16384, 16379, 16364, 16340, | 96 | 16384, 16379, 16364, 16340, |
97 | 16305, 16261, 16207, 16143, | 97 | 16305, 16261, 16207, 16143, |
98 | 16069, 15986, 15893, 15791, | 98 | 16069, 15986, 15893, 15791, |
diff --git a/apps/codecs/Tremor/mapping0.c b/apps/codecs/Tremor/mapping0.c index 6154f5de6b..b5b306fa34 100644 --- a/apps/codecs/Tremor/mapping0.c +++ b/apps/codecs/Tremor/mapping0.c | |||
@@ -184,6 +184,7 @@ static int seq = 0; | |||
184 | 184 | ||
185 | #define CHANNELS 2 /* max 2 channels on the ihp-1xx (stereo) */ | 185 | #define CHANNELS 2 /* max 2 channels on the ihp-1xx (stereo) */ |
186 | 186 | ||
187 | static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l) ICODE_ATTR; | ||
187 | static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){ | 188 | static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){ |
188 | vorbis_dsp_state *vd=vb->vd; | 189 | vorbis_dsp_state *vd=vb->vd; |
189 | vorbis_info *vi=vd->vi; | 190 | vorbis_info *vi=vd->vi; |
@@ -323,7 +324,7 @@ static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){ | |||
323 | } | 324 | } |
324 | 325 | ||
325 | /* export hooks */ | 326 | /* export hooks */ |
326 | vorbis_func_mapping mapping0_exportbundle ={ | 327 | const vorbis_func_mapping mapping0_exportbundle ICONST_ATTR ={ |
327 | &mapping0_unpack, | 328 | &mapping0_unpack, |
328 | &mapping0_look, | 329 | &mapping0_look, |
329 | &mapping0_free_info, | 330 | &mapping0_free_info, |
diff --git a/apps/codecs/Tremor/mdct.c b/apps/codecs/Tremor/mdct.c index f040eea3da..5d7f195616 100644 --- a/apps/codecs/Tremor/mdct.c +++ b/apps/codecs/Tremor/mdct.c | |||
@@ -332,6 +332,7 @@ STIN void mdct_bitreverse(DATA_TYPE *x,int n,int step,int shift) { | |||
332 | } | 332 | } |
333 | 333 | ||
334 | 334 | ||
335 | void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out) ICODE_ATTR; | ||
335 | void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out) { | 336 | void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out) { |
336 | int n2=n>>1; | 337 | int n2=n>>1; |
337 | int n4=n>>2; | 338 | int n4=n>>2; |
diff --git a/apps/codecs/Tremor/ogg.h b/apps/codecs/Tremor/ogg.h index 08d15788c0..e6c78da95e 100644 --- a/apps/codecs/Tremor/ogg.h +++ b/apps/codecs/Tremor/ogg.h | |||
@@ -184,12 +184,13 @@ static inline void oggpack_adv(oggpack_buffer *b,int bits){ | |||
184 | bits+=b->headbit; | 184 | bits+=b->headbit; |
185 | b->headbit=bits&7; | 185 | b->headbit=bits&7; |
186 | b->headptr+=bits/8; | 186 | b->headptr+=bits/8; |
187 | if((b->headend-=bits/8)<1)_span(b); | 187 | if((b->headend-=((unsigned)bits)/8)<1)_span(b); |
188 | } | 188 | } |
189 | 189 | ||
190 | static inline long oggpack_look(oggpack_buffer *b, int bits){ | 190 | static inline long oggpack_look(oggpack_buffer *b, int bits){ |
191 | if(bits+b->headbit < b->headend<<3){ | 191 | if(bits+b->headbit < b->headend<<3){ |
192 | unsigned long m=(1<<bits)-1; | 192 | extern const unsigned long oggpack_mask[]; |
193 | unsigned long m=oggpack_mask[bits]; | ||
193 | unsigned long ret=0; | 194 | unsigned long ret=0; |
194 | 195 | ||
195 | bits+=b->headbit; | 196 | bits+=b->headbit; |
diff --git a/apps/codecs/Tremor/registry.c b/apps/codecs/Tremor/registry.c index 0882309b32..b1592628a1 100644 --- a/apps/codecs/Tremor/registry.c +++ b/apps/codecs/Tremor/registry.c | |||
@@ -31,18 +31,18 @@ extern vorbis_func_residue residue1_exportbundle; | |||
31 | extern vorbis_func_residue residue2_exportbundle; | 31 | extern vorbis_func_residue residue2_exportbundle; |
32 | extern vorbis_func_mapping mapping0_exportbundle; | 32 | extern vorbis_func_mapping mapping0_exportbundle; |
33 | 33 | ||
34 | vorbis_func_floor *_floor_P[] = { | 34 | vorbis_func_floor *_floor_P[] ICONST_ATTR = { |
35 | &floor0_exportbundle, | 35 | &floor0_exportbundle, |
36 | &floor1_exportbundle, | 36 | &floor1_exportbundle, |
37 | }; | 37 | }; |
38 | 38 | ||
39 | vorbis_func_residue *_residue_P[] = { | 39 | vorbis_func_residue *_residue_P[] ICONST_ATTR = { |
40 | &residue0_exportbundle, | 40 | &residue0_exportbundle, |
41 | &residue1_exportbundle, | 41 | &residue1_exportbundle, |
42 | &residue2_exportbundle, | 42 | &residue2_exportbundle, |
43 | }; | 43 | }; |
44 | 44 | ||
45 | vorbis_func_mapping *_mapping_P[] = { | 45 | vorbis_func_mapping *_mapping_P[] ICONST_ATTR = { |
46 | &mapping0_exportbundle, | 46 | &mapping0_exportbundle, |
47 | }; | 47 | }; |
48 | 48 | ||
diff --git a/apps/codecs/Tremor/res012.c b/apps/codecs/Tremor/res012.c index 303a58c2f2..0f4d224f89 100644 --- a/apps/codecs/Tremor/res012.c +++ b/apps/codecs/Tremor/res012.c | |||
@@ -259,6 +259,8 @@ int res1_inverse(vorbis_block *vb,vorbis_look_residue *vl, | |||
259 | 259 | ||
260 | /* duplicate code here as speed is somewhat more important */ | 260 | /* duplicate code here as speed is somewhat more important */ |
261 | int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl, | 261 | int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl, |
262 | ogg_int32_t **in,int *nonzero,int ch) ICODE_ATTR; | ||
263 | int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl, | ||
262 | ogg_int32_t **in,int *nonzero,int ch){ | 264 | ogg_int32_t **in,int *nonzero,int ch){ |
263 | long i,k,l,s; | 265 | long i,k,l,s; |
264 | vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; | 266 | vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; |
@@ -311,7 +313,7 @@ int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl, | |||
311 | } | 313 | } |
312 | 314 | ||
313 | 315 | ||
314 | const vorbis_func_residue residue0_exportbundle ={ | 316 | const vorbis_func_residue residue0_exportbundle ICONST_ATTR ={ |
315 | &res0_unpack, | 317 | &res0_unpack, |
316 | &res0_look, | 318 | &res0_look, |
317 | &res0_free_info, | 319 | &res0_free_info, |
@@ -319,7 +321,7 @@ const vorbis_func_residue residue0_exportbundle ={ | |||
319 | &res0_inverse | 321 | &res0_inverse |
320 | }; | 322 | }; |
321 | 323 | ||
322 | const vorbis_func_residue residue1_exportbundle ={ | 324 | const vorbis_func_residue residue1_exportbundle ICONST_ATTR ={ |
323 | &res0_unpack, | 325 | &res0_unpack, |
324 | &res0_look, | 326 | &res0_look, |
325 | &res0_free_info, | 327 | &res0_free_info, |
@@ -327,7 +329,7 @@ const vorbis_func_residue residue1_exportbundle ={ | |||
327 | &res1_inverse | 329 | &res1_inverse |
328 | }; | 330 | }; |
329 | 331 | ||
330 | const vorbis_func_residue residue2_exportbundle ={ | 332 | const vorbis_func_residue residue2_exportbundle ICONST_ATTR ={ |
331 | &res0_unpack, | 333 | &res0_unpack, |
332 | &res0_look, | 334 | &res0_look, |
333 | &res0_free_info, | 335 | &res0_free_info, |
diff --git a/apps/codecs/Tremor/synthesis.c b/apps/codecs/Tremor/synthesis.c index 081ac9adcd..c7f0bb6cc5 100644 --- a/apps/codecs/Tremor/synthesis.c +++ b/apps/codecs/Tremor/synthesis.c | |||
@@ -35,6 +35,7 @@ | |||
35 | static ogg_int32_t *ipcm_vect[CHANNELS] IBSS_ATTR; | 35 | static ogg_int32_t *ipcm_vect[CHANNELS] IBSS_ATTR; |
36 | static ogg_int32_t ipcm_buff[CHANNELS*IRAM_PCM_END] IBSS_ATTR LINE_ATTR; | 36 | static ogg_int32_t ipcm_buff[CHANNELS*IRAM_PCM_END] IBSS_ATTR LINE_ATTR; |
37 | 37 | ||
38 | int vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep) ICODE_ATTR; | ||
38 | int vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep){ | 39 | int vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep){ |
39 | vorbis_dsp_state *vd=vb->vd; | 40 | vorbis_dsp_state *vd=vb->vd; |
40 | private_state *b=(private_state *)vd->backend_state; | 41 | private_state *b=(private_state *)vd->backend_state; |
diff --git a/apps/codecs/Tremor/vorbisfile.c b/apps/codecs/Tremor/vorbisfile.c index 50f827dae7..54e36d29af 100644 --- a/apps/codecs/Tremor/vorbisfile.c +++ b/apps/codecs/Tremor/vorbisfile.c | |||
@@ -480,6 +480,9 @@ static void _decode_clear(OggVorbis_File *vf){ | |||
480 | 480 | ||
481 | static int _fetch_and_process_packet(OggVorbis_File *vf, | 481 | static int _fetch_and_process_packet(OggVorbis_File *vf, |
482 | int readp, | 482 | int readp, |
483 | int spanp) ICODE_ATTR; | ||
484 | static int _fetch_and_process_packet(OggVorbis_File *vf, | ||
485 | int readp, | ||
483 | int spanp){ | 486 | int spanp){ |
484 | ogg_page og={0,0,0,0}; | 487 | ogg_page og={0,0,0,0}; |
485 | ogg_packet op={0,0,0,0,0,0}; | 488 | ogg_packet op={0,0,0,0,0,0}; |
@@ -1457,6 +1460,7 @@ ogg_int64_t ov_pcm_tell(OggVorbis_File *vf){ | |||
1457 | } | 1460 | } |
1458 | 1461 | ||
1459 | /* return time offset (milliseconds) of next PCM sample to be read */ | 1462 | /* return time offset (milliseconds) of next PCM sample to be read */ |
1463 | ogg_int64_t ov_time_tell(OggVorbis_File *vf) ICODE_ATTR; | ||
1460 | ogg_int64_t ov_time_tell(OggVorbis_File *vf){ | 1464 | ogg_int64_t ov_time_tell(OggVorbis_File *vf){ |
1461 | int link=0; | 1465 | int link=0; |
1462 | ogg_int64_t pcm_total=0; | 1466 | ogg_int64_t pcm_total=0; |