Mercurial > libavcodec.hg
annotate ra144.c @ 6836:e271c9b997b1 libavcodec
Only one out of two values of gbuf1 is actually used. Make it half the size.
author | vitor |
---|---|
date | Wed, 21 May 2008 16:41:58 +0000 |
parents | 179da35eba93 |
children | 1acb9df14634 |
rev | line source |
---|---|
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
1 /* |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
2 * Real Audio 1.0 (14.4K) |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
3 * Copyright (c) 2003 the ffmpeg project |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
4 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
5 * This file is part of FFmpeg. |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
6 * |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Lesser General Public |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
9 * License as published by the Free Software Foundation; either |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
11 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
15 * Lesser General Public License for more details. |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
16 * |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
17 * You should have received a copy of the GNU Lesser General Public |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
3036
0b546eab515d
Update licensing information: The FSF changed postal address.
diego
parents:
2979
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
20 */ |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
21 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
22 #include "avcodec.h" |
6768
e14c77547f93
Rewrite unpack_input() completely, patch by Vitor Sessak, vitor1001 gmail com.
diego
parents:
6767
diff
changeset
|
23 #include "bitstream.h" |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
1305
diff
changeset
|
24 #include "ra144.h" |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
25 |
2979 | 26 #define NBLOCKS 4 /* number of segments within a block */ |
27 #define BLOCKSIZE 40 /* (quarter) block size in 16-bit words (80 bytes) */ | |
28 #define HALFBLOCK 20 /* BLOCKSIZE/2 */ | |
29 #define BUFFERSIZE 146 /* for do_output */ | |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
30 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
31 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
32 /* internal globals */ |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
33 typedef struct { |
6806 | 34 unsigned int oldval; |
6836
e271c9b997b1
Only one out of two values of gbuf1 is actually used. Make it half the size.
vitor
parents:
6835
diff
changeset
|
35 unsigned int gbuf1[4]; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
36 unsigned short gbuf2[120]; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
37 unsigned int *decptr; /* decoder ptr */ |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
38 signed short *decsp; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
39 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
40 /* the swapped buffers */ |
6806 | 41 unsigned int swapbuffers[4][10]; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
42 unsigned int *swapbuf1; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
43 unsigned int *swapbuf2; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
44 unsigned int *swapbuf1alt; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
45 unsigned int *swapbuf2alt; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
46 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
47 unsigned int buffer[5]; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
48 unsigned short int buffer_2[148]; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
49 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
50 unsigned short *sptr; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
51 } Real144_internal; |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
52 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
53 static int ra144_decode_init(AVCodecContext * avctx) |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
54 { |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
55 Real144_internal *glob = avctx->priv_data; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
56 |
6806 | 57 glob->swapbuf1 = glob->swapbuffers[0]; |
58 glob->swapbuf2 = glob->swapbuffers[1]; | |
59 glob->swapbuf1alt = glob->swapbuffers[2]; | |
60 glob->swapbuf2alt = glob->swapbuffers[3]; | |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
61 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
62 return 0; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
63 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
64 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
65 /* lookup square roots in table */ |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
66 static int t_sqrt(unsigned int x) |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
67 { |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
68 int s = 0; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
69 while (x > 0xfff) { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
70 s++; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
71 x = x >> 2; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
72 } |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
73 |
6833 | 74 return (ff_sqrt(x << 20) << s) << 2; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
75 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
76 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
77 /* do 'voice' */ |
6808 | 78 static void do_voice(const int *a1, int *a2) |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
79 { |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
80 int buffer[10]; |
6782 | 81 int *b1 = buffer; |
82 int *b2 = a2; | |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
83 int x, y; |
2967 | 84 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
85 for (x=0; x < 10; x++) { |
6782 | 86 b1[x] = a1[x] << 4; |
87 | |
88 for (y=0; y < x; y++) | |
6803 | 89 b1[y] = ((a1[x] * b2[x-y-1]) >> 12) + b2[y]; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
90 |
6781 | 91 FFSWAP(int *, b1, b2); |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
92 } |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
93 |
6782 | 94 for (x=0; x < 10; x++) |
95 a2[x] >>= 4; | |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
96 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
97 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
98 /* rotate block */ |
6808 | 99 static void rotate_block(const short *source, short *target, int offset) |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
100 { |
6810 | 101 int i=0, k=0; |
6831 | 102 source += BUFFERSIZE - offset; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
103 |
6810 | 104 while (i<BLOCKSIZE) { |
6831 | 105 target[i++] = source[k++]; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
106 |
6810 | 107 if (k == offset) |
108 k = 0; | |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
109 } |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
110 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
111 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
112 /* inverse root mean square */ |
6808 | 113 static int irms(const short *data, int factor) |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
114 { |
6808 | 115 const short *p1, *p2; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
116 unsigned int sum; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
117 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
118 p2 = (p1 = data) + BLOCKSIZE; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
119 for (sum=0; p2 > p1; p1++) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
120 sum += (*p1) * (*p1); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
121 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
122 if (sum == 0) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
123 return 0; /* OOPS - division by zero */ |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
124 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
125 return (0x20000000 / (t_sqrt(sum) >> 8)) * factor; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
126 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
127 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
128 /* multiply/add wavetable */ |
6809
b09783068768
Do not pass the context to functions that do not use it
vitor
parents:
6808
diff
changeset
|
129 static void add_wav(int n, int f, int m1, int m2, int m3, const short *s1, |
b09783068768
Do not pass the context to functions that do not use it
vitor
parents:
6808
diff
changeset
|
130 const short *s2, const short *s3, short *dest) |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
131 { |
6807
c19ef48adf18
Do not copy tables to a context var, use them directly
vitor
parents:
6806
diff
changeset
|
132 int a, b, c, i; |
c19ef48adf18
Do not copy tables to a context var, use them directly
vitor
parents:
6806
diff
changeset
|
133 const short *ptr, *ptr2; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
134 |
6807
c19ef48adf18
Do not copy tables to a context var, use them directly
vitor
parents:
6806
diff
changeset
|
135 ptr = wavtable1 + n * 9; |
c19ef48adf18
Do not copy tables to a context var, use them directly
vitor
parents:
6806
diff
changeset
|
136 ptr2 = wavtable2 + n * 9; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
137 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
138 if (f != 0) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
139 a = ((*ptr) * m1) >> ((*ptr2) + 1); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
140 else |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
141 a = 0; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
142 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
143 ptr++; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
144 ptr2++; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
145 b = ((*ptr) * m2) >> ((*ptr2) + 1); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
146 ptr++; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
147 ptr2++; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
148 c = ((*ptr) * m3) >> ((*ptr2) + 1); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
149 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
150 if (f != 0) |
6807
c19ef48adf18
Do not copy tables to a context var, use them directly
vitor
parents:
6806
diff
changeset
|
151 for (i=0; i < BLOCKSIZE; i++) |
c19ef48adf18
Do not copy tables to a context var, use them directly
vitor
parents:
6806
diff
changeset
|
152 dest[i] = ((*(s1++)) * a + (*(s2++)) * b + (*(s3++)) * c) >> 12; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
153 else |
6807
c19ef48adf18
Do not copy tables to a context var, use them directly
vitor
parents:
6806
diff
changeset
|
154 for (i=0; i < BLOCKSIZE; i++) |
c19ef48adf18
Do not copy tables to a context var, use them directly
vitor
parents:
6806
diff
changeset
|
155 dest[i] = ((*(s2++)) * b + (*(s3++)) * c) >> 12; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
156 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
157 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
158 |
6809
b09783068768
Do not pass the context to functions that do not use it
vitor
parents:
6808
diff
changeset
|
159 static void final(const short *i1, const short *i2, |
6808 | 160 void *out, int *statbuf, int len) |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
161 { |
6771 | 162 int x, sum, i; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
163 int buffer[10]; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
164 short *ptr; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
165 short *ptr2; |
6806 | 166 unsigned short int work[50]; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
167 |
6806 | 168 memcpy(work, statbuf,20); |
169 memcpy(work + 10, i2, len * 2); | |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
170 |
6771 | 171 for(i=0; i<10; i++) |
172 buffer[9-i] = i1[i]; | |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
173 |
6806 | 174 ptr2 = (ptr = work) + len; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
175 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
176 while (ptr < ptr2) { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
177 for(sum=0, x=0; x<=9; x++) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
178 sum += buffer[x] * (ptr[x]); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
179 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
180 sum = sum >> 12; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
181 x = ptr[10] - sum; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
182 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
183 if (x<-32768 || x>32767) { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
184 memset(out, 0, len * 2); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
185 memset(statbuf, 0, 20); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
186 return; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
187 } |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
188 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
189 ptr[10] = x; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
190 ptr++; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
191 } |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
192 memcpy(out, ptr+10 - len, len * 2); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
193 memcpy(statbuf, ptr, 20); |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
194 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
195 |
6808 | 196 static unsigned int rms(const int *data, int f) |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
197 { |
6808 | 198 const int *c; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
199 int x; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
200 unsigned int res; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
201 int b; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
202 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
203 c = data; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
204 b = 0; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
205 res = 0x10000; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
206 for (x=0; x<10; x++) { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
207 res = (((0x1000000 - (*c) * (*c)) >> 12) * res) >> 12; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
208 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
209 if (res == 0) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
210 return 0; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
211 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
212 if (res <= 0x3fff) { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
213 while (res <= 0x3fff) { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
214 b++; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
215 res <<= 2; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
216 } |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
217 } else { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
218 if (res > 0x10000) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
219 return 0; /* We're screwed, might as well go out with a bang. :P */ |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
220 } |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
221 c++; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
222 } |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
223 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
224 if (res > 0) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
225 res = t_sqrt(res); |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
226 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
227 res >>= (b + 10); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
228 res = (res * f) >> 10; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
229 return res; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
230 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
231 |
6832
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
232 /* do quarter-block output */ |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
233 static void do_output_subblock(Real144_internal *glob, const unsigned short *gsp, unsigned int gval, signed short *output_buffer, GetBitContext *gb) |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
234 { |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
235 unsigned short int buffer_a[40]; |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
236 unsigned short int *block; |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
237 int e, f, g; |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
238 int a = get_bits(gb, 7); |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
239 int d = get_bits(gb, 8); |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
240 int b = get_bits(gb, 7); |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
241 int c = get_bits(gb, 7); |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
242 |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
243 if (a) { |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
244 a += HALFBLOCK - 1; |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
245 rotate_block(glob->buffer_2, buffer_a, a); |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
246 } |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
247 |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
248 e = ((ftable1[b] >> 4) * gval) >> 8; |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
249 f = ((ftable2[c] >> 4) * gval) >> 8; |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
250 |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
251 if (a) |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
252 g = irms(buffer_a, gval) >> 12; |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
253 else |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
254 g = 0; |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
255 |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
256 memmove(glob->buffer_2, glob->buffer_2 + BLOCKSIZE, (BUFFERSIZE - BLOCKSIZE) * 2); |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
257 block = glob->buffer_2 + BUFFERSIZE - BLOCKSIZE; |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
258 |
6835 | 259 add_wav(d, a, g, e, f, buffer_a, etable1[b], |
260 etable2[c], block); | |
6832
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
261 |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
262 final(gsp, block, output_buffer, glob->buffer, BLOCKSIZE); |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
263 } |
9584a95fefcd
Cosmetics: move function to remove forward declarations
vitor
parents:
6831
diff
changeset
|
264 |
6808 | 265 static void dec1(Real144_internal *glob, const int *data, const int *inp, |
266 int n, int f) | |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
267 { |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
268 short *ptr,*end; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
269 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
270 *(glob->decptr++) = rms(data, f); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
271 end = (ptr = glob->decsp) + (n * 10); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
272 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
273 while (ptr < end) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
274 *(ptr++) = *(inp++); |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
275 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
276 |
6809
b09783068768
Do not pass the context to functions that do not use it
vitor
parents:
6808
diff
changeset
|
277 static int eq(const short *in, int *target) |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
278 { |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
279 int retval; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
280 int a; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
281 int b; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
282 int c; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
283 unsigned int u; |
6808 | 284 const short *sptr; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
285 int *ptr1, *ptr2, *ptr3; |
6781 | 286 int *bp1, *bp2; |
6806 | 287 int buffer1[10]; |
288 int buffer2[10]; | |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
289 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
290 retval = 0; |
6806 | 291 bp1 = buffer1; |
292 bp2 = buffer2; | |
293 ptr2 = (ptr3 = buffer2) + 9; | |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
294 sptr = in; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
295 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
296 while (ptr2 >= ptr3) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
297 *(ptr3++) = *(sptr++); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
298 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
299 target += 9; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
300 a = bp2[9]; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
301 *target = a; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
302 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
303 if (a + 0x1000 > 0x1fff) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
304 return 0; /* We're screwed, might as well go out with a bang. :P */ |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
305 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
306 c = 8; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
307 u = a; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
308 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
309 while (c >= 0) { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
310 if (u == 0x1000) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
311 u++; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
312 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
313 if (u == 0xfffff000) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
314 u--; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
315 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
316 b = 0x1000-((u * u) >> 12); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
317 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
318 if (b == 0) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
319 b++; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
320 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
321 ptr2 = bp1; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
322 ptr1 = (ptr3 = bp2) + c; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
323 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
324 for (u=0; u<=c; u++) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
325 *(ptr2++) = ((*(ptr3++) - (((*target) * (*(ptr1--))) >> 12)) * (0x1000000 / b)) >> 12; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
326 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
327 *(--target) = u = bp1[(c--)]; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
328 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
329 if ((u + 0x1000) > 0x1fff) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
330 retval = 1; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
331 |
6804
24a8b213ba4d
Use correct type in FFSWAP (thanks to Benoit Fouet for pointing it out)
vitor
parents:
6803
diff
changeset
|
332 FFSWAP(int *, bp1, bp2); |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
333 } |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
334 return retval; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
335 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
336 |
6808 | 337 static void dec2(Real144_internal *glob, const int *data, const int *inp, |
338 int n, int f, const int *inp2, int l) | |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
339 { |
6808 | 340 unsigned const int *ptr1,*ptr2; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
341 int work[10]; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
342 int a,b; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
343 int x; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
344 int result; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
345 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
346 if(l + 1 < NBLOCKS / 2) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
347 a = NBLOCKS - (l + 1); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
348 else |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
349 a = l + 1; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
350 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
351 b = NBLOCKS - a; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
352 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
353 if (l == 0) { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
354 glob->decsp = glob->sptr = glob->gbuf2; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
355 glob->decptr = glob->gbuf1; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
356 } |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
357 ptr1 = inp; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
358 ptr2 = inp2; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
359 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
360 for (x=0; x<10*n; x++) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
361 *(glob->sptr++) = (a * (*ptr1++) + b * (*ptr2++)) >> 2; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
362 |
6809
b09783068768
Do not pass the context to functions that do not use it
vitor
parents:
6808
diff
changeset
|
363 result = eq(glob->decsp, work); |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
364 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
365 if (result == 1) { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
366 dec1(glob, data, inp, n, f); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
367 } else { |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
368 *(glob->decptr++) = rms(work, f); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
369 } |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
370 glob->decsp += n * 10; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
371 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
372 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
373 /* Uncompress one block (20 bytes -> 160*2 bytes) */ |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
374 static int ra144_decode_frame(AVCodecContext * avctx, |
1781
bbb6e7667671
cleanup ugly code (also appearently works around a bug gcc 3.4 which fails compiling it) by (mru at kth dot se (Mns Rullgrd))
michael
parents:
1415
diff
changeset
|
375 void *vdata, int *data_size, |
6277 | 376 const uint8_t * buf, int buf_size) |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
377 { |
6805
8faad14a40a5
Read the bitstream where the data is actually needed instead of doing it in unpack_input()
vitor
parents:
6804
diff
changeset
|
378 static const uint8_t sizes[10] = {6, 5, 5, 4, 4, 3, 3, 3, 3, 2}; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
379 unsigned int a, b, c; |
6805
8faad14a40a5
Read the bitstream where the data is actually needed instead of doing it in unpack_input()
vitor
parents:
6804
diff
changeset
|
380 int i; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
381 signed short *shptr; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
382 int16_t *data = vdata; |
6806 | 383 unsigned int val; |
384 | |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
385 Real144_internal *glob = avctx->priv_data; |
6805
8faad14a40a5
Read the bitstream where the data is actually needed instead of doing it in unpack_input()
vitor
parents:
6804
diff
changeset
|
386 GetBitContext gb; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
387 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
388 if(buf_size == 0) |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
389 return 0; |
2967 | 390 |
6805
8faad14a40a5
Read the bitstream where the data is actually needed instead of doing it in unpack_input()
vitor
parents:
6804
diff
changeset
|
391 init_get_bits(&gb, buf, 20 * 8); |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
392 |
6805
8faad14a40a5
Read the bitstream where the data is actually needed instead of doing it in unpack_input()
vitor
parents:
6804
diff
changeset
|
393 for (i=0; i<10; i++) |
8faad14a40a5
Read the bitstream where the data is actually needed instead of doing it in unpack_input()
vitor
parents:
6804
diff
changeset
|
394 // "<< 1"? Doesn't this make one value out of two of the table useless? |
8faad14a40a5
Read the bitstream where the data is actually needed instead of doing it in unpack_input()
vitor
parents:
6804
diff
changeset
|
395 glob->swapbuf1[i] = decodetable[i][get_bits(&gb, sizes[i]) << 1]; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
396 |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
397 do_voice(glob->swapbuf1, glob->swapbuf2); |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
398 |
6806 | 399 val = decodeval[get_bits(&gb, 5) << 1]; // Useless table entries? |
400 a = t_sqrt(val*glob->oldval) >> 12; | |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
401 |
6834
bf3bc36715e6
Simplify ra144_decode_frame() by unrolling a senseless
vitor
parents:
6833
diff
changeset
|
402 dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, glob->oldval, glob->swapbuf2, 0); |
bf3bc36715e6
Simplify ra144_decode_frame() by unrolling a senseless
vitor
parents:
6833
diff
changeset
|
403 if (glob->oldval < val) { |
bf3bc36715e6
Simplify ra144_decode_frame() by unrolling a senseless
vitor
parents:
6833
diff
changeset
|
404 dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, a, glob->swapbuf2alt, 1); |
bf3bc36715e6
Simplify ra144_decode_frame() by unrolling a senseless
vitor
parents:
6833
diff
changeset
|
405 } else { |
bf3bc36715e6
Simplify ra144_decode_frame() by unrolling a senseless
vitor
parents:
6833
diff
changeset
|
406 dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, a, glob->swapbuf2, 1); |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
407 } |
6834
bf3bc36715e6
Simplify ra144_decode_frame() by unrolling a senseless
vitor
parents:
6833
diff
changeset
|
408 dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, val, glob->swapbuf2alt, 2); |
bf3bc36715e6
Simplify ra144_decode_frame() by unrolling a senseless
vitor
parents:
6833
diff
changeset
|
409 dec1(glob, glob->swapbuf1, glob->swapbuf2, 3, val); |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
410 |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
411 /* do output */ |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
412 for (b=0, c=0; c<4; c++) { |
6836
e271c9b997b1
Only one out of two values of gbuf1 is actually used. Make it half the size.
vitor
parents:
6835
diff
changeset
|
413 unsigned int gval = glob->gbuf1[c]; |
6806 | 414 unsigned short *gsp = glob->gbuf2 + b; |
415 signed short output_buffer[40]; | |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
416 |
6806 | 417 do_output_subblock(glob, gsp, gval, output_buffer, &gb); |
418 | |
419 shptr = output_buffer; | |
420 while (shptr < output_buffer + BLOCKSIZE) | |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
421 *data++ = av_clip_int16(*(shptr++) << 2); |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
422 b += 30; |
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
423 } |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
424 |
6806 | 425 glob->oldval = val; |
6781 | 426 |
427 FFSWAP(unsigned int *, glob->swapbuf1alt, glob->swapbuf1); | |
428 FFSWAP(unsigned int *, glob->swapbuf2alt, glob->swapbuf2); | |
429 | |
6828 | 430 *data_size = 2*160; |
6767
f95c5091b802
cosmetics: Reindent file, patch by Vitor Sessak, vitor1001 gmail com,
diego
parents:
6712
diff
changeset
|
431 return 20; |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
432 } |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
433 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
434 |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
435 AVCodec ra_144_decoder = |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
436 { |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
437 "real_144", |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
438 CODEC_TYPE_AUDIO, |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
439 CODEC_ID_RA_144, |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
440 sizeof(Real144_internal), |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
441 ra144_decode_init, |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
442 NULL, |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
443 NULL, |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
444 ra144_decode_frame, |
6712 | 445 .long_name = "RealAudio 1.0 (14.4K)", |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
diff
changeset
|
446 }; |