summaryrefslogtreecommitdiff
path: root/orkbasecxx/filters
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-11-10 03:39:23 +0000
committerHenri Herscher <henri@oreka.org>2006-11-10 03:39:23 +0000
commit3e98fa80955a23e12ceae8944b2fd9537443dd26 (patch)
treeae7ba2c422184995d9f8c07b594ceb52b1fd4175 /orkbasecxx/filters
parent4fc16507815bc36b055aa4cc8b4160e318ad1dc3 (diff)
GSM RTP payload type can now be decoded under Linux.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@351 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkbasecxx/filters')
-rw-r--r--orkbasecxx/filters/Makefile.am1
-rw-r--r--orkbasecxx/filters/gsm/GsmFilters.cpp3
-rw-r--r--orkbasecxx/filters/gsm/GsmFilters.h3
-rw-r--r--orkbasecxx/filters/gsm/Makefile.am7
-rw-r--r--orkbasecxx/filters/gsm/gsm610/Makefile.am9
-rw-r--r--orkbasecxx/filters/gsm/gsm610/cscope.out15350
6 files changed, 21 insertions, 15352 deletions
diff --git a/orkbasecxx/filters/Makefile.am b/orkbasecxx/filters/Makefile.am
new file mode 100644
index 0000000..65aed24
--- /dev/null
+++ b/orkbasecxx/filters/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = gsm
diff --git a/orkbasecxx/filters/gsm/GsmFilters.cpp b/orkbasecxx/filters/gsm/GsmFilters.cpp
index e35017c..90ab6d5 100644
--- a/orkbasecxx/filters/gsm/GsmFilters.cpp
+++ b/orkbasecxx/filters/gsm/GsmFilters.cpp
@@ -99,4 +99,5 @@ void GsmToPcmFilter::CaptureEventIn(CaptureEventRef& event)
void GsmToPcmFilter::CaptureEventOut(CaptureEventRef& event)
{
;
-} \ No newline at end of file
+}
+
diff --git a/orkbasecxx/filters/gsm/GsmFilters.h b/orkbasecxx/filters/gsm/GsmFilters.h
index b030fb0..4119785 100644
--- a/orkbasecxx/filters/gsm/GsmFilters.h
+++ b/orkbasecxx/filters/gsm/GsmFilters.h
@@ -35,4 +35,5 @@ public:
private:
AudioChunkRef m_outputAudioChunk;
struct gsm_state * gsmState;
-}; \ No newline at end of file
+};
+
diff --git a/orkbasecxx/filters/gsm/Makefile.am b/orkbasecxx/filters/gsm/Makefile.am
new file mode 100644
index 0000000..26be37b
--- /dev/null
+++ b/orkbasecxx/filters/gsm/Makefile.am
@@ -0,0 +1,7 @@
+METASOURCES = AUTO
+SUBDIRS = gsm610
+noinst_LTLIBRARIES = libgsm.la
+libgsm_la_SOURCES = GsmFilters.cpp
+
+INCLUDES = -I@top_srcdir@ -I./gsm610
+AM_CXXFLAGS = -D_REENTRANT
diff --git a/orkbasecxx/filters/gsm/gsm610/Makefile.am b/orkbasecxx/filters/gsm/gsm610/Makefile.am
new file mode 100644
index 0000000..aba1767
--- /dev/null
+++ b/orkbasecxx/filters/gsm/gsm610/Makefile.am
@@ -0,0 +1,9 @@
+METASOURCES = AUTO
+noinst_LTLIBRARIES = libgsm610.la
+libgsm610_la_SOURCES = add.c code.c decode.c gsm_create.c gsm_decode.c \
+ gsm_destroy.c gsm_encode.c gsm_option.c \
+ long_term.c lpc.c preprocess.c rpe.c \
+ short_term.c table.c
+
+INCLUDES = -I@top_srcdir@
+AM_CFLAGS = -D_REENTRANT
diff --git a/orkbasecxx/filters/gsm/gsm610/cscope.out b/orkbasecxx/filters/gsm/gsm610/cscope.out
deleted file mode 100644
index c6b9268..0000000
--- a/orkbasecxx/filters/gsm/gsm610/cscope.out
+++ /dev/null
@@ -1,15350 +0,0 @@
-cscope 15 c:/sfTrunk/orkbasecxx/filters/gsm/gsm610 0000076221
- @add.c
-
-11 
- ~<¡dio.h
->
-
-12 
- ~<as£¹.h
->
-
-14 
- ~"gsm610_´iv.h
-"
-
-15 
- ~"gsm.h
-"
-
-17 
- #§tu¿‹
-(
-x
-) \
-
-18 ((
-x
-è<
-MIN_WORD
- ? MIN_WORD : (xè>
-MAX_WORD
- ? MAX_WORD: (x))
-
- )
-
-20
-wÜd
-
- $gsm_add
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-22
-lÚgwÜd
-
-sum
- = (lÚgwÜd)
-a
- + (lÚgwÜd)
-b
-;
-
-23 
- `§tu¿‹
-(
-sum
-);
-
-24
- }
-}
-
-26
-wÜd
-
- $gsm_sub
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-28
-lÚgwÜd
-
-diff
- = (lÚgwÜd)
-a
- - (lÚgwÜd)
-b
-;
-
-29 
- `§tu¿‹
-(
-diff
-);
-
-30
- }
-}
-
-32
-wÜd
-
- $gsm_muÉ
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-34 ià(
-a
- =ð
-MIN_WORD
- &&
-b
- == MIN_WORD)
-
-35 
-MAX_WORD
-;
-
-37 
- `SASR_L
-Ð(
-lÚgwÜd
-)
-a
- * (lÚgwÜd)
-b
-, 15 );
-
-38
- }
-}
-
-40
-wÜd
-
- $gsm_muÉ_r
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-42 ià(
-b
- =ð
-MIN_WORD
- &&
-a
- =ðMIN_WORDè
-MAX_WORD
-;
-
-44
-lÚgwÜd
-
-´od
- = (lÚgwÜd)
-a
- * (lÚgwÜd)
-b
- + 16384;
-
-45
-´od
- >>= 15;
-
-46 
-´od
- & 0xFFFF;
-
-48
- }
-}
-
-50
-wÜd
-
- $gsm_abs
- (
-wÜd
-
-a
-)
-
-52 
-a
- < 0 ? (¨=ð
-MIN_WORD
- ?
-MAX_WORD
- : -a) :‡;
-
-53
- }
-}
-
-55
-lÚgwÜd
-
- $gsm_L_muÉ
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-57
- `as£¹
-a
- !ð
-MIN_WORD
- ||
-b
- != MIN_WORD );
-
-58  ((
-lÚgwÜd
-)
-a
- * (lÚgwÜd)
-b
-) << 1;
-
-59
- }
-}
-
-61
-lÚgwÜd
-
- $gsm_L_add
- (
-lÚgwÜd
-
-a
-,†ÚgwÜd
-b
-)
-
-63 ià(
-a
- < 0) {
-
-64 ià(
-b
- >ð0è
-a
- + b;
-
-66
-ulÚgwÜd
-
-A
- = (ulÚgwÜd)-(
-a
- + 1è+ (ulÚgwÜd)-(
-b
- + 1);
-
-67 
-A
- >ð
-MAX_LONGWORD
- ?
-MIN_LONGWORD
- :-(
-lÚgwÜd
-)A-2;
-
-70 ià(
-b
- <ð0è
-a
- + b;
-
-72
-ulÚgwÜd
-
-A
- = (ulÚgwÜd)
-a
- + (ulÚgwÜd)
-b
-;
-
-73 
-A
- >
-MAX_LONGWORD
- ? MAX_LONGWORD : A;
-
-75
- }
-}
-
-77
-lÚgwÜd
-
- $gsm_L_sub
- (
-lÚgwÜd
-
-a
-,†ÚgwÜd
-b
-)
-
-79 ià(
-a
- >= 0) {
-
-80 ià(
-b
- >ð0è
-a
- - b;
-
-84
-ulÚgwÜd
-
-A
- = (ulÚgwÜd)
-a
- + -(
-b
- + 1);
-
-85 
-A
- >ð
-MAX_LONGWORD
- ? MAX_LONGWORD : (A + 1);
-
-88 ià(
-b
- <ð0è
-a
- - b;
-
-92
-ulÚgwÜd
-
-A
- = (ulÚgwÜd)-(
-a
- + 1è+
-b
-;
-
-93 
-A
- >ð
-MAX_LONGWORD
- ?
-MIN_LONGWORD
- : -(
-lÚgwÜd
-)A - 1;
-
-95
- }
-}
-
-97 cÚ¡
- gb™off
-[ 256 ] = {
-
-116
-wÜd
-
- $gsm_nÜm
- (
-lÚgwÜd
-
-a
- )
-
-136
- `as£¹
-(
-a
- != 0);
-
-138 ià(
-a
- < 0) {
-
-139 ià(
-a
- <= -1073741824)  0;
-
-140
-a
- = ~a;
-
-143 
-a
- & 0xffff0000
-
-144 ? (
-a
- & 0xff000000
-
-145 ? -1 +
-b™off
-[ 0xFF & (
-a
- >> 24) ]
-
-146 : 7 +
-b™off
-[ 0xFF & (
-a
- >> 16) ] )
-
-147 : (
-a
- & 0xff00
-
-148 ? 15 +
-b™off
-[ 0xFF & (
-a
- >> 8) ]
-
-149 : 23 +
-b™off
-[ 0xFF &
-a
- ] );
-
-150
- }
-}
-
-152
-lÚgwÜd
-
- $gsm_L_a¦
- (
-lÚgwÜd
-
-a
-, 
-n
-)
-
-154 ià(
-n
- >= 32)  0;
-
-155 ià(
-n
- <ð-32è -(
-a
- < 0);
-
-156 ià(
-n
- < 0è
- `gsm_L_a¤
-(
-a
-, -n);
-
-157 
-a
- <<
-n
-;
-
-158
- }
-}
-
-160
-wÜd
-
- $gsm_a¤
- (
-wÜd
-
-a
-, 
-n
-)
-
-162 ià(
-n
- >ð16è -(
-a
- < 0);
-
-163 ià(
-n
- <= -16)  0;
-
-164 ià(
-n
- < 0è
-a
- << -n;
-
-166 
- `SASR_W
- (
-a
-, (
-wÜd
-n
-);
-
-167
- }
-}
-
-169
-wÜd
-
- $gsm_a¦
- (
-wÜd
-
-a
-, 
-n
-)
-
-171 ià(
-n
- >= 16)  0;
-
-172 ià(
-n
- <ð-16è -(
-a
- < 0);
-
-173 ià(
-n
- < 0è
- `gsm_a¤
-(
-a
-, -n);
-
-174 
-a
- <<
-n
-;
-
-175
- }
-}
-
-177
-lÚgwÜd
-
- $gsm_L_a¤
- (
-lÚgwÜd
-
-a
-, 
-n
-)
-
-179 ià(
-n
- >ð32è -(
-a
- < 0);
-
-180 ià(
-n
- <= -32)  0;
-
-181 ià(
-n
- < 0è
-a
- << -n;
-
-183 
- `SASR_L
- (
-a
-, (
-wÜd
-n
-);
-
-184
- }
-}
-
-211
-wÜd
-
- $gsm_div
- (
-wÜd
-
-num
-, wÜd
-d’um
-)
-
-213
-lÚgwÜd
-
-L_num
- =
-num
-;
-
-214
-lÚgwÜd
-
-L_d’um
- =
-d’um
-;
-
-215
-wÜd
-
-div
- = 0;
-
-216 
-k
- = 15;
-
-225
- `as£¹
-(
-num
- >ð0 &&
-d’um
- >=‚um);
-
-226 ià(
-num
- == 0)
-
-229 
-k
---) {
-
-230
-div
- <<= 1;
-
-231
-L_num
- <<= 1;
-
-233 ià(
-L_num
- >ð
-L_d’um
-) {
-
-234
-L_num
- -ð
-L_d’um
-;
-
-235
-div
-++;
-
-239 
-div
-;
-
-240
- }
-}
-
- @code.c
-
-8 
- ~<¡dlib.h
->
-
-9 
- ~<¡ršg.h
->
-
-11 
- ~"cÚfig.h
-"
-
-13 
- ~"gsm610_´iv.h
-"
-
-14 
- ~"gsm.h
-"
-
-20 
- $Gsm_Cod”
- (
-
-22 
-gsm_¡©e
- *
-S‹
-,
-
-24
-wÜd
- *
-s
-,
-
-36
-wÜd
- *
-LARc
-,
-
-44
-wÜd
- *
-Nc
-,
-
-45
-wÜd
- *
-bc
-,
-
-46
-wÜd
- *
-Mc
-,
-
-47
-wÜd
- *
-xmaxc
-,
-
-48
-wÜd
- *
-xMc
-
-
-51 
-k
-;
-
-52
-wÜd
- *
-dp
- =
-S‹
-->
-dp0
- + 120;
-
-53
-wÜd
- *
-dµ
- =
-dp
-;
-
-55
-wÜd
-
-so
-[160];
-
-57
- `Gsm_P»´oûss
- (
-S‹
-,
-s
-,
-so
-);
-
-58
- `Gsm_LPC_AÇlysis
- (
-S‹
-,
-so
-,
-LARc
-);
-
-59
- `Gsm_ShÜt_T”m_AÇlysis_Fž‹r
- (
-S‹
-,
-LARc
-,
-so
-);
-
-61 
-k
- = 0; k <ð3; k++,
-xMc
- += 13) {
-
-63
- `Gsm_LÚg_T”m_P»diùÜ
- (
-S‹
-,
-
-64
-so
-+
-k
-*40,
-
-65
-dp
-,
-
-66
-S‹
-->
-e
- + 5,
-
-67
-dµ
-,
-
-68
-Nc
-++,
-
-69
-bc
-++);
-
-71
- `Gsm_RPE_Encodšg
- (
-
-72
-S‹
-->
-e
- + 5,
-
-73
-xmaxc
-++,
-Mc
-++,
-xMc
- );
-
-79 { 
-i
-;
-
-80 
-i
- = 0; i <= 39; i++)
-
-81
-dp
-[
-i
- ] =
- `GSM_ADD
-S‹
-->
-e
-[5 + i],
-dµ
-[i] );
-
-83
-dp
- += 40;
-
-84
-dµ
- += 40;
-
-87 ()
- `memýy
-Ð(*)
-S‹
-->
-dp0
-, (*)(State->dp0 + 160),
-
-88 120 * (*
-S‹
-->
-dp0
-) );
-
-89
- }
-}
-
- @config.h
-
-7 #iâdef
-CONFIG_H
-
-
-8 
- #CONFIG_H
-
-
- )
-
-10 
- #HAS_STDLIB_H
- 1
-
- )
-
-11 
- #HAS_FCNTL_H
- 1
-
- )
-
-13 
- #HAS_FSTAT
- 1
-
- )
-
-14 
- #HAS_FCHMOD
- 1
-
- )
-
-15 
- #HAS_CHMOD
- 1
-
- )
-
-16 
- #HAS_FCHOWN
- 1
-
- )
-
-17 
- #HAS_CHOWN
- 1
-
- )
-
-19 
- #HAS_STRING_H
- 1
-
- )
-
-21 
- #HAS_UNISTD_H
- 1
-
- )
-
-22 
- #HAS_UTIME
- 1
-
- )
-
-23 
- #HAS_UTIME_H
- 1
-
- )
-
- @decode.c
-
-7 
- ~<¡dio.h
->
-
-9 
- ~"gsm610_´iv.h
-"
-
-10 
- ~"gsm.h
-"
-
-16 
- $Po¡´oûssšg
- (
-
-17 
-gsm_¡©e
- *
-S
-,
-
-18 
-wÜd
- *
-s
-)
-
-20 
-k
-;
-
-21 
-wÜd
-
-m¤
- =
-S
-->msr;
-
-22 
-wÜd
-
-tmp
-;
-
-24 
-k
- = 160; k--;
-s
-++) {
-
-25
-tmp
- =
- `GSM_MULT_R
-m¤
-, 28180 );
-
-26
-m¤
- =
- `GSM_ADD
-(*
-s
-,
-tmp
-);
-
-27 *
-s
- =
- `GSM_ADD
-(
-m¤
-, msr) & 0xFFF8;
-
-29
-S
-->
-m¤
- = msr;
-
-30
- }
-}
-
-32 
- $Gsm_Decod”
- (
-
-33 
-gsm_¡©e
- *
-S
-,
-
-35
-wÜd
- *
-LARü
-,
-
-37
-wÜd
- *
-Nü
-,
-
-38
-wÜd
- *
-bü
-,
-
-39
-wÜd
- *
-Mü
-,
-
-40
-wÜd
- *
-xmaxü
-,
-
-41
-wÜd
- *
-xMü
-,
-
-43
-wÜd
- *
-s
-)
-
-45 
-j
-,
-k
-;
-
-46
-wÜd
-
-”p
-[40],
-wt
-[160];
-
-47
-wÜd
- *
-d½
- =
-S
-->
-dp0
- + 120;
-
-49 
-j
-=0; j <ð3; j++,
-xmaxü
-++,
-bü
-++,
-Nü
-++,
-Mü
-++,
-xMü
- += 13) {
-
-51
- `Gsm_RPE_Decodšg
-Ð *
-xmaxü
-, *
-Mü
-,
-xMü
-,
-”p
- );
-
-52
- `Gsm_LÚg_T”m_SyÁhesis_Fž‹ršg
-S
-, *
-Nü
-, *
-bü
-,
-”p
-,
-d½
- );
-
-54 
-k
- = 0; k <ð39; k++è
-wt
-[
-j
- * 40 + k ] =
-d½
-[ k ];
-
-57
- `Gsm_ShÜt_T”m_SyÁhesis_Fž‹r
-S
-,
-LARü
-,
-wt
-,
-s
- );
-
-58
- `Po¡´oûssšg
-(
-S
-,
-s
-);
-
-59
- }
-}
-
- @gsm.h
-
-7 #iâdef
-GSM_H
-
-
-8 
- #GSM_H
-
-
- )
-
-10 
- ~<¡dio.h
->
-
-16 
-gsm_¡©e
- *
- tgsm
-;
-
-17 
- tgsm_sigÇl
-;
-
-18 
- tgsm_by‹
-;
-
-19 
-gsm_by‹
-
- tgsm_äame
-[33];
-
-21 
- #GSM_MAGIC
- 0xD
-
- )
-
-23 
- #GSM_PATCHLEVEL
- 10
-
- )
-
-24 
- #GSM_MINOR
- 0
-
- )
-
-25 
- #GSM_MAJOR
- 1
-
- )
-
-27 
- #GSM_OPT_VERBOSE
- 1
-
- )
-
-28 
- #GSM_OPT_FAST
- 2
-
- )
-
-29 
- #GSM_OPT_LTP_CUT
- 3
-
- )
-
-30 
- #GSM_OPT_WAV49
- 4
-
- )
-
-31 
- #GSM_OPT_FRAME_INDEX
- 5
-
- )
-
-32 
- #GSM_OPT_FRAME_CHAIN
- 6
-
- )
-
-34
-gsm
-
-gsm_ü—‹
- ();
-
-37 
-gsm_š™
- (
-gsm
-);
-
-39 
-gsm_de¡roy
- (
-gsm
-);
-
-41 
-gsm_´št
- (
-FILE
- *,
-gsm
-,
-gsm_by‹
- *);
-
-42 
-gsm_ÝtiÚ
- (
-gsm
-, , *);
-
-44 
-gsm_’code
- (
-gsm
-,
-gsm_sigÇl
- *,
-gsm_by‹
- *);
-
-45 
-gsm_decode
- (
-gsm
-,
-gsm_by‹
- *,
-gsm_sigÇl
- *);
-
-47 
-gsm_ex¶ode
- (
-gsm
-,
-gsm_by‹
- *,
-gsm_sigÇl
- *);
-
-48 
-gsm_im¶ode
- (
-gsm
-,
-gsm_sigÇl
- *,
-gsm_by‹
- *);
-
- @gsm610_priv.h
-
-7 #iâdef
-PRIVATE_H
-
-
-8 
- #PRIVATE_H
-
-
- )
-
-11 
- #USE_FLOAT_MUL
-
-
- )
-
-12 
- #FAST
-
-
- )
-
-13 
- #WAV49
-
-
- )
-
-18 
- twÜd
-;
-
-19 
- tlÚgwÜd
-;
-
-21 
- tuwÜd
-;
-
-22 
- tulÚgwÜd
-;
-
-24 
- sgsm_¡©e
-
-
-25 {
-wÜd
-
- mdp0
-[ 280 ] ;
-
-27
-wÜd
-
- mz1
-;
-
-28
-lÚgwÜd
-
- mL_z2
-;
-
-29 
- mmp
-;
-
-31
-wÜd
-
- mu
-[8] ;
-
-32
-wÜd
-
- mLARµ
-[2][8] ;
-
-33
-wÜd
-
- mj
-;
-
-35
-wÜd
-
- mÉp_cut
-;
-
-36
-wÜd
-
- mÄp
-;
-
-37
-wÜd
-
- mv
-[9] ;
-
-38
-wÜd
-
- mm¤
-;
-
-40 
- mv”bo£
-;
-
-41 
- mç¡
-;
-
-43 
- mwav_fmt
-;
-
-44 
- mäame_šdex
-;
-
-45 
- mäame_chaš
-;
-
-48
-wÜd
-
- me
-[50] ;
-
-51 
-gsm_¡©e
-
- tGSM_STATE
- ;
-
-53 
- #MIN_WORD
- (-32767 - 1)
-
- )
-
-54 
- #MAX_WORD
- 32767
-
- )
-
-56 
- #MIN_LONGWORD
- (-2147483647 - 1)
-
- )
-
-57 
- #MAX_LONGWORD
- 2147483647
-
- )
-
-60 
-šlše
-
-wÜd
-
-
-61
- $SASR_W
- (
-wÜd
-
-x
-, wÜd
-by
-)
-
-62 {  (
-x
- >>
-by
-) ;
-
-63
- }
-}
-
-65 
-šlše
-
-lÚgwÜd
-
-
-66
- $SASR_L
- (
-lÚgwÜd
-
-x
-,
-wÜd
-
-by
-)
-
-67 {  (
-x
- >>
-by
-) ;
-
-68
- }
-}
-
-73
-wÜd
-
-gsm_muÉ
- (wÜd
-a
-, wÜd
-b
-) ;
-
-74
-lÚgwÜd
-
-gsm_L_muÉ
- (
-wÜd
-
-a
-, wÜd
-b
-) ;
-
-75
-wÜd
-
-gsm_muÉ_r
- (wÜd
-a
-, wÜd
-b
-) ;
-
-77
-wÜd
-
-gsm_div
- (wÜd
-num
-, wÜd
-d’um
-) ;
-
-79
-wÜd
-
-gsm_add
- (wÜd
-a
-, wÜd
-b
- ) ;
-
-80
-lÚgwÜd
-
-gsm_L_add
- (lÚgwÜd
-a
-,†ÚgwÜd
-b
- ) ;
-
-82
-wÜd
-
-gsm_sub
- (wÜd
-a
-, wÜd
-b
-) ;
-
-83
-lÚgwÜd
-
-gsm_L_sub
- (lÚgwÜd
-a
-,†ÚgwÜd
-b
-) ;
-
-85
-wÜd
-
-gsm_abs
- (wÜd
-a
-) ;
-
-87
-wÜd
-
-gsm_nÜm
- (
-lÚgwÜd
-
-a
- ) ;
-
-89
-lÚgwÜd
-
-gsm_L_a¦
- (lÚgwÜd
-a
-, 
-n
-) ;
-
-90
-wÜd
-
-gsm_a¦
- (wÜd
-a
-, 
-n
-) ;
-
-92
-lÚgwÜd
-
-gsm_L_a¤
- (lÚgwÜd
-a
-, 
-n
-) ;
-
-93
-wÜd
-
-gsm_a¤
- (wÜd
-a
-, 
-n
-) ;
-
-99 
-šlše
-
-lÚgwÜd
-
-
-100
- $GSM_MULT_R
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-101 {  (((
-lÚgwÜd
-è(
-a
-)è* (ÖÚgwÜdè(
-b
-)) + 16384) >> 15 ;
-
-102
- }
-}
-
-104 
-šlše
-
-lÚgwÜd
-
-
-105
- $GSM_MULT
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-106 {  (((
-lÚgwÜd
-è(
-a
-)è* (ÖÚgwÜdè(
-b
-))) >> 15 ;
-
-107
- }
-}
-
-109 
-šlše
-
-lÚgwÜd
-
-
-110
- $GSM_L_MULT
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-111 {  ((
-lÚgwÜd
-è(
-a
-)è* (ÖÚgwÜdè(
-b
-)) << 1 ;
-
-112
- }
-}
-
-114 
-šlše
-
-lÚgwÜd
-
-
-115
- $GSM_L_ADD
- (
-lÚgwÜd
-
-a
-,†ÚgwÜd
-b
-)
-
-116 {
-ulÚgwÜd
-
-utmp
- ;
-
-118 ià(
-a
- < 0 &&
-b
- < 0)
-
-119 {
-utmp
- = (
-ulÚgwÜd
-)-((
-a
-è+ 1è+ (ulÚgwÜd)-((
-b
-) + 1) ;
-
-120  (
-utmp
- >ð(
-ulÚgwÜd
-MAX_LONGWORD
-è?
-MIN_LONGWORD
- : -(
-lÚgwÜd
-)utmp-2 ;
-
-123 ià(
-a
- > 0 &&
-b
- > 0)
-
-124 {
-utmp
- = (
-ulÚgwÜd
-a
- + (ulÚgwÜdè
-b
- ;
-
-125  (
-utmp
- >ð(
-ulÚgwÜd
-MAX_LONGWORD
-) ? MAX_LONGWORD : utmp ;
-
-128 
-a
- +
-b
- ;
-
-129
- }
-}
-
-131 
-šlše
-
-lÚgwÜd
-
-
-132
- $GSM_ADD
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-133 {
-lÚgwÜd
-
-Émp
- ;
-
-135
-Émp
- = ((
-lÚgwÜd
-a
-è+ (ÖÚgwÜdè
-b
-) ;
-
-137 ià(
-Émp
- >ð
-MAX_WORD
-)
-
-138 
-MAX_WORD
- ;
-
-139 ià(
-Émp
- <ð
-MIN_WORD
-)
-
-140 
-MIN_WORD
- ;
-
-142 
-Émp
- ;
-
-143
- }
-}
-
-145 
-šlše
-
-lÚgwÜd
-
-
-146
- $GSM_SUB
- (
-wÜd
-
-a
-, wÜd
-b
-)
-
-147 {
-lÚgwÜd
-
-Émp
- ;
-
-149
-Émp
- = ((
-lÚgwÜd
-a
-è- (ÖÚgwÜdè
-b
-) ;
-
-151 ià(
-Émp
- >ð
-MAX_WORD
-)
-
-152
-Émp
- =
-MAX_WORD
- ;
-
-153 ià(
-Émp
- <ð
-MIN_WORD
-)
-
-154
-Émp
- =
-MIN_WORD
- ;
-
-156 
-Émp
- ;
-
-157
- }
-}
-
-159 
-šlše
-
-wÜd
-
-
-160
- $GSM_ABS
- (
-wÜd
-
-a
-)
-
-162 ià(
-a
- > 0)
-
-163 
-a
- ;
-
-164 ià(
-a
- =ð
-MIN_WORD
-)
-
-165 
-MAX_WORD
- ;
-
-166  -
-a
- ;
-
-167
- }
-}
-
-173 
-Gsm_Cod”
- (
-
-174 
-gsm_¡©e
- *
-S
-,
-
-175
-wÜd
- *
-s
-,
-
-176
-wÜd
- *
-LARc
-,
-
-177
-wÜd
- *
-Nc
-,
-
-178
-wÜd
- *
-bc
-,
-
-179
-wÜd
- *
-Mc
-,
-
-180
-wÜd
- *
-xmaxc
-,
-
-181
-wÜd
- *
-xMc
-) ;
-
-183 
-Gsm_LÚg_T”m_P»diùÜ
- (
-
-184 
-gsm_¡©e
- *
-S
-,
-
-185
-wÜd
- *
-d
-,
-
-186
-wÜd
- *
-dp
-,
-
-187
-wÜd
- *
-e
-,
-
-188
-wÜd
- *
-dµ
-,
-
-189
-wÜd
- *
-Nc
-,
-
-190
-wÜd
- *
-bc
-) ;
-
-192 
-Gsm_LPC_AÇlysis
- (
-
-193 
-gsm_¡©e
- *
-S
-,
-
-194
-wÜd
- *
-s
-,
-
-195
-wÜd
- *
-LARc
-) ;
-
-197 
-Gsm_P»´oûss
- (
-
-198 
-gsm_¡©e
- *
-S
-,
-
-199
-wÜd
- *
-s
-, wÜd *
-so
-) ;
-
-201 
-Gsm_Encodšg
- (
-
-202 
-gsm_¡©e
- *
-S
-,
-
-203
-wÜd
- *
-e
-,
-
-204
-wÜd
- *
-•
-,
-
-205
-wÜd
- *
-xmaxc
-,
-
-206
-wÜd
- *
-Mc
-,
-
-207
-wÜd
- *
-xMc
-) ;
-
-209 
-Gsm_ShÜt_T”m_AÇlysis_Fž‹r
- (
-
-210 
-gsm_¡©e
- *
-S
-,
-
-211
-wÜd
- *
-LARc
-,
-
-212
-wÜd
- *
-d
-) ;
-
-214 
-Gsm_Decod”
- (
-
-215 
-gsm_¡©e
- *
-S
-,
-
-216
-wÜd
- *
-LARü
-,
-
-217
-wÜd
- *
-Nü
-,
-
-218
-wÜd
- *
-bü
-,
-
-219
-wÜd
- *
-Mü
-,
-
-220
-wÜd
- *
-xmaxü
-,
-
-221
-wÜd
- *
-xMü
-,
-
-222
-wÜd
- *
-s
-) ;
-
-224 
-Gsm_Decodšg
- (
-
-225 
-gsm_¡©e
- *
-S
-,
-
-226
-wÜd
-
-xmaxü
-,
-
-227
-wÜd
-
-Mü
-,
-
-228
-wÜd
- *
-xMü
-,
-
-229
-wÜd
- *
-”p
-) ;
-
-231 
-Gsm_LÚg_T”m_SyÁhesis_Fž‹ršg
- (
-
-232 
-gsm_¡©e
-*
-S
-,
-
-233
-wÜd
-
-Nü
-,
-
-234
-wÜd
-
-bü
-,
-
-235
-wÜd
- *
-”p
-,
-
-236
-wÜd
- *
-d½
-) ;
-
-238 
-Gsm_RPE_Decodšg
- (
-
-240
-wÜd
-
-xmaxü
-,
-
-241
-wÜd
-
-Mü
-,
-
-242
-wÜd
- *
-xMü
-,
-
-243
-wÜd
- *
-”p
-) ;
-
-245 
-Gsm_RPE_Encodšg
- (
-
-247
-wÜd
- *
-e
-,
-
-248
-wÜd
- *
-xmaxc
-,
-
-249
-wÜd
- *
-Mc
-,
-
-250
-wÜd
- *
-xMc
-) ;
-
-252 
-Gsm_ShÜt_T”m_SyÁhesis_Fž‹r
- (
-
-253 
-gsm_¡©e
- *
-S
-,
-
-254
-wÜd
- *
-LARü
-,
-
-255
-wÜd
- *
-d½
-,
-
-256
-wÜd
- *
-s
-) ;
-
-258 
-Gsm_Upd©e_of_»cÚ¡ruùed_shÜt_time_»sidu®_sigÇl
- (
-
-259
-wÜd
- *
-dµ
-,
-
-260
-wÜd
- *
-•
-,
-
-261
-wÜd
- *
-dp
-) ;
-
-266 #iâdef
-GSM_TABLE_C
-
-
-268
-wÜd
-
-gsm_A
- [8],
-gsm_B
- [8],
-gsm_MIC
- [8],
-gsm_MAC
- [8] ;
-
-269
-wÜd
-
-gsm_INVA
- [8] ;
-
-270
-wÜd
-
-gsm_DLB
- [4],
-gsm_QLB
- [4] ;
-
-271
-wÜd
-
-gsm_H
- [11] ;
-
-272
-wÜd
-
-gsm_NRFAC
- [8] ;
-
-273
-wÜd
-
-gsm_FAC
- [8] ;
-
-280 #ifdeà
-NDEBUG
-
-
-282 
- #gsm_debug_wÜds
-(
-a
-,
-b
-,
-c
-,
-d
-
- )
-
-283 
- #gsm_debug_lÚgwÜds
-(
-a
-,
-b
-,
-c
-,
-d
-
- )
-
-284 
- #gsm_debug_wÜd
-(
-a
-,
-b
-
- )
-
-285 
- #gsm_debug_lÚgwÜd
-(
-a
-,
-b
-
- )
-
-289 
-gsm_debug_wÜds
- (*
-Çme
-, , ,
-wÜd
- *) ;
-
-290 
-gsm_debug_lÚgwÜds
- (*
-Çme
-, , ,
-lÚgwÜd
- *) ;
-
-291 
-gsm_debug_lÚgwÜd
- (*
-Çme
-,
-lÚgwÜd
-) ;
-
-292 
-gsm_debug_wÜd
- (*
-Çme
-,
-wÜd
-) ;
-
- @gsm_create.c
-
-7 
- ~"cÚfig.h
-"
-
-9 
- ~<¡dio.h
->
-
-10 
- ~<¡dlib.h
->
-
-11 
- ~<¡ršg.h
->
-
-15 
- ~"gsm.h
-"
-
-16 
- ~"gsm610_´iv.h
-"
-
-18
-gsm
-
- $gsm_ü—‹
- ()
-
-20
-gsm
-
-r
-;
-
-22
-r
- =
- `m®loc
- ((
-gsm_¡©e
-));
-
-23 ià(!
-r
-) „;
-
-25
- `mem£t
-((*)
-r
-, 0,  (
-gsm_¡©e
-));
-
-26
-r
-->
-Äp
- = 40;
-
-28 
-r
-;
-
-29
- }
-}
-
-32 
- $gsm_š™
- (
-gsm
-
-¡©e
-)
-
-34
- `mem£t
- (
-¡©e
-, 0,  (
-gsm_¡©e
-)) ;
-
-35
-¡©e
-->
-Äp
- = 40 ;
-
-36
- }
-}
-
- @gsm_decode.c
-
-7 
- ~"gsm610_´iv.h
-"
-
-9 
- ~"gsm.h
-"
-
-11 
- $gsm_decode
- (
-gsm
-
-s
-,
-gsm_by‹
- *
-c
-,
-gsm_sigÇl
- *
-rg‘
-)
-
-13
-wÜd
-
-LARc
-[8],
-Nc
-[4],
-Mc
-[4],
-bc
-[4],
-xmaxc
-[4],
-xmc
-[13*4];
-
-15 #ifdeà
-WAV49
-
-
-16 ià(
-s
-->
-wav_fmt
-) {
-
-18
-uwÜd
-
- = 0;
-
-20
-s
-->
-äame_šdex
- = !s->frame_index;
-
-21 ià(
-s
-->
-äame_šdex
-) {
-
-23
- = *
-c
-++;
-
-24
-LARc
-[0] =
- & 0x3f; sr >>= 6;
-
-25
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-26
-LARc
-[1] =
- & 0x3f; sr >>= 6;
-
-27
- |ð(
-uwÜd
-)*
-c
-++ << 4;
-
-28
-LARc
-[2] =
- & 0x1f; sr >>= 5;
-
-29
-LARc
-[3] =
- & 0x1f; sr >>= 5;
-
-30
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-31
-LARc
-[4] =
- & 0xf; sr >>= 4;
-
-32
-LARc
-[5] =
- & 0xf; sr >>= 4;
-
-33
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-34
-LARc
-[6] =
- & 0x7; sr >>= 3;
-
-35
-LARc
-[7] =
- & 0x7; sr >>= 3;
-
-36
- |ð(
-uwÜd
-)*
-c
-++ << 4;
-
-37
-Nc
-[0] =
- & 0x7f; sr >>= 7;
-
-38
-bc
-[0] =
- & 0x3; sr >>= 2;
-
-39
-Mc
-[0] =
- & 0x3; sr >>= 2;
-
-40
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-41
-xmaxc
-[0] =
- & 0x3f; sr >>= 6;
-
-42
-xmc
-[0] =
- & 0x7; sr >>= 3;
-
-43
- = *
-c
-++;
-
-44
-xmc
-[1] =
- & 0x7; sr >>= 3;
-
-45
-xmc
-[2] =
- & 0x7; sr >>= 3;
-
-46
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-47
-xmc
-[3] =
- & 0x7; sr >>= 3;
-
-48
-xmc
-[4] =
- & 0x7; sr >>= 3;
-
-49
-xmc
-[5] =
- & 0x7; sr >>= 3;
-
-50
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-51
-xmc
-[6] =
- & 0x7; sr >>= 3;
-
-52
-xmc
-[7] =
- & 0x7; sr >>= 3;
-
-53
-xmc
-[8] =
- & 0x7; sr >>= 3;
-
-54
- = *
-c
-++;
-
-55
-xmc
-[9] =
- & 0x7; sr >>= 3;
-
-56
-xmc
-[10] =
- & 0x7; sr >>= 3;
-
-57
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-58
-xmc
-[11] =
- & 0x7; sr >>= 3;
-
-59
-xmc
-[12] =
- & 0x7; sr >>= 3;
-
-60
- |ð(
-uwÜd
-)*
-c
-++ << 4;
-
-61
-Nc
-[1] =
- & 0x7f; sr >>= 7;
-
-62
-bc
-[1] =
- & 0x3; sr >>= 2;
-
-63
-Mc
-[1] =
- & 0x3; sr >>= 2;
-
-64
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-65
-xmaxc
-[1] =
- & 0x3f; sr >>= 6;
-
-66
-xmc
-[13] =
- & 0x7; sr >>= 3;
-
-67
- = *
-c
-++;
-
-68
-xmc
-[14] =
- & 0x7; sr >>= 3;
-
-69
-xmc
-[15] =
- & 0x7; sr >>= 3;
-
-70
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-71
-xmc
-[16] =
- & 0x7; sr >>= 3;
-
-72
-xmc
-[17] =
- & 0x7; sr >>= 3;
-
-73
-xmc
-[18] =
- & 0x7; sr >>= 3;
-
-74
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-75
-xmc
-[19] =
- & 0x7; sr >>= 3;
-
-76
-xmc
-[20] =
- & 0x7; sr >>= 3;
-
-77
-xmc
-[21] =
- & 0x7; sr >>= 3;
-
-78
- = *
-c
-++;
-
-79
-xmc
-[22] =
- & 0x7; sr >>= 3;
-
-80
-xmc
-[23] =
- & 0x7; sr >>= 3;
-
-81
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-82
-xmc
-[24] =
- & 0x7; sr >>= 3;
-
-83
-xmc
-[25] =
- & 0x7; sr >>= 3;
-
-84
- |ð(
-uwÜd
-)*
-c
-++ << 4;
-
-85
-Nc
-[2] =
- & 0x7f; sr >>= 7;
-
-86
-bc
-[2] =
- & 0x3; sr >>= 2;
-
-87
-Mc
-[2] =
- & 0x3; sr >>= 2;
-
-88
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-89
-xmaxc
-[2] =
- & 0x3f; sr >>= 6;
-
-90
-xmc
-[26] =
- & 0x7; sr >>= 3;
-
-91
- = *
-c
-++;
-
-92
-xmc
-[27] =
- & 0x7; sr >>= 3;
-
-93
-xmc
-[28] =
- & 0x7; sr >>= 3;
-
-94
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-95
-xmc
-[29] =
- & 0x7; sr >>= 3;
-
-96
-xmc
-[30] =
- & 0x7; sr >>= 3;
-
-97
-xmc
-[31] =
- & 0x7; sr >>= 3;
-
-98
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-99
-xmc
-[32] =
- & 0x7; sr >>= 3;
-
-100
-xmc
-[33] =
- & 0x7; sr >>= 3;
-
-101
-xmc
-[34] =
- & 0x7; sr >>= 3;
-
-102
- = *
-c
-++;
-
-103
-xmc
-[35] =
- & 0x7; sr >>= 3;
-
-104
-xmc
-[36] =
- & 0x7; sr >>= 3;
-
-105
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-106
-xmc
-[37] =
- & 0x7; sr >>= 3;
-
-107
-xmc
-[38] =
- & 0x7; sr >>= 3;
-
-108
- |ð(
-uwÜd
-)*
-c
-++ << 4;
-
-109
-Nc
-[3] =
- & 0x7f; sr >>= 7;
-
-110
-bc
-[3] =
- & 0x3; sr >>= 2;
-
-111
-Mc
-[3] =
- & 0x3; sr >>= 2;
-
-112
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-113
-xmaxc
-[3] =
- & 0x3f; sr >>= 6;
-
-114
-xmc
-[39] =
- & 0x7; sr >>= 3;
-
-115
- = *
-c
-++;
-
-116
-xmc
-[40] =
- & 0x7; sr >>= 3;
-
-117
-xmc
-[41] =
- & 0x7; sr >>= 3;
-
-118
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-119
-xmc
-[42] =
- & 0x7; sr >>= 3;
-
-120
-xmc
-[43] =
- & 0x7; sr >>= 3;
-
-121
-xmc
-[44] =
- & 0x7; sr >>= 3;
-
-122
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-123
-xmc
-[45] =
- & 0x7; sr >>= 3;
-
-124
-xmc
-[46] =
- & 0x7; sr >>= 3;
-
-125
-xmc
-[47] =
- & 0x7; sr >>= 3;
-
-126
- = *
-c
-++;
-
-127
-xmc
-[48] =
- & 0x7; sr >>= 3;
-
-128
-xmc
-[49] =
- & 0x7; sr >>= 3;
-
-129
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-130
-xmc
-[50] =
- & 0x7; sr >>= 3;
-
-131
-xmc
-[51] =
- & 0x7; sr >>= 3;
-
-133
-s
-->
-äame_chaš
- =
- & 0xf;
-
-136
- =
-s
-->
-äame_chaš
-;
-
-137
- |ð(
-uwÜd
-)*
-c
-++ << 4;
-
-138
-LARc
-[0] =
- & 0x3f; sr >>= 6;
-
-139
-LARc
-[1] =
- & 0x3f; sr >>= 6;
-
-140
- = *
-c
-++;
-
-141
-LARc
-[2] =
- & 0x1f; sr >>= 5;
-
-142
- |ð(
-uwÜd
-)*
-c
-++ << 3;
-
-143
-LARc
-[3] =
- & 0x1f; sr >>= 5;
-
-144
-LARc
-[4] =
- & 0xf; sr >>= 4;
-
-145
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-146
-LARc
-[5] =
- & 0xf; sr >>= 4;
-
-147
-LARc
-[6] =
- & 0x7; sr >>= 3;
-
-148
-LARc
-[7] =
- & 0x7; sr >>= 3;
-
-149
- = *
-c
-++;
-
-150
-Nc
-[0] =
- & 0x7f; sr >>= 7;
-
-151
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-152
-bc
-[0] =
- & 0x3; sr >>= 2;
-
-153
-Mc
-[0] =
- & 0x3; sr >>= 2;
-
-154
- |ð(
-uwÜd
-)*
-c
-++ << 5;
-
-155
-xmaxc
-[0] =
- & 0x3f; sr >>= 6;
-
-156
-xmc
-[0] =
- & 0x7; sr >>= 3;
-
-157
-xmc
-[1] =
- & 0x7; sr >>= 3;
-
-158
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-159
-xmc
-[2] =
- & 0x7; sr >>= 3;
-
-160
-xmc
-[3] =
- & 0x7; sr >>= 3;
-
-161
-xmc
-[4] =
- & 0x7; sr >>= 3;
-
-162
- = *
-c
-++;
-
-163
-xmc
-[5] =
- & 0x7; sr >>= 3;
-
-164
-xmc
-[6] =
- & 0x7; sr >>= 3;
-
-165
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-166
-xmc
-[7] =
- & 0x7; sr >>= 3;
-
-167
-xmc
-[8] =
- & 0x7; sr >>= 3;
-
-168
-xmc
-[9] =
- & 0x7; sr >>= 3;
-
-169
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-170
-xmc
-[10] =
- & 0x7; sr >>= 3;
-
-171
-xmc
-[11] =
- & 0x7; sr >>= 3;
-
-172
-xmc
-[12] =
- & 0x7; sr >>= 3;
-
-173
- = *
-c
-++;
-
-174
-Nc
-[1] =
- & 0x7f; sr >>= 7;
-
-175
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-176
-bc
-[1] =
- & 0x3; sr >>= 2;
-
-177
-Mc
-[1] =
- & 0x3; sr >>= 2;
-
-178
- |ð(
-uwÜd
-)*
-c
-++ << 5;
-
-179
-xmaxc
-[1] =
- & 0x3f; sr >>= 6;
-
-180
-xmc
-[13] =
- & 0x7; sr >>= 3;
-
-181
-xmc
-[14] =
- & 0x7; sr >>= 3;
-
-182
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-183
-xmc
-[15] =
- & 0x7; sr >>= 3;
-
-184
-xmc
-[16] =
- & 0x7; sr >>= 3;
-
-185
-xmc
-[17] =
- & 0x7; sr >>= 3;
-
-186
- = *
-c
-++;
-
-187
-xmc
-[18] =
- & 0x7; sr >>= 3;
-
-188
-xmc
-[19] =
- & 0x7; sr >>= 3;
-
-189
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-190
-xmc
-[20] =
- & 0x7; sr >>= 3;
-
-191
-xmc
-[21] =
- & 0x7; sr >>= 3;
-
-192
-xmc
-[22] =
- & 0x7; sr >>= 3;
-
-193
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-194
-xmc
-[23] =
- & 0x7; sr >>= 3;
-
-195
-xmc
-[24] =
- & 0x7; sr >>= 3;
-
-196
-xmc
-[25] =
- & 0x7; sr >>= 3;
-
-197
- = *
-c
-++;
-
-198
-Nc
-[2] =
- & 0x7f; sr >>= 7;
-
-199
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-200
-bc
-[2] =
- & 0x3; sr >>= 2;
-
-201
-Mc
-[2] =
- & 0x3; sr >>= 2;
-
-202
- |ð(
-uwÜd
-)*
-c
-++ << 5;
-
-203
-xmaxc
-[2] =
- & 0x3f; sr >>= 6;
-
-204
-xmc
-[26] =
- & 0x7; sr >>= 3;
-
-205
-xmc
-[27] =
- & 0x7; sr >>= 3;
-
-206
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-207
-xmc
-[28] =
- & 0x7; sr >>= 3;
-
-208
-xmc
-[29] =
- & 0x7; sr >>= 3;
-
-209
-xmc
-[30] =
- & 0x7; sr >>= 3;
-
-210
- = *
-c
-++;
-
-211
-xmc
-[31] =
- & 0x7; sr >>= 3;
-
-212
-xmc
-[32] =
- & 0x7; sr >>= 3;
-
-213
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-214
-xmc
-[33] =
- & 0x7; sr >>= 3;
-
-215
-xmc
-[34] =
- & 0x7; sr >>= 3;
-
-216
-xmc
-[35] =
- & 0x7; sr >>= 3;
-
-217
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-218
-xmc
-[36] =
- & 0x7; sr >>= 3;
-
-219
-xmc
-[37] =
- & 0x7; sr >>= 3;
-
-220
-xmc
-[38] =
- & 0x7; sr >>= 3;
-
-221
- = *
-c
-++;
-
-222
-Nc
-[3] =
- & 0x7f; sr >>= 7;
-
-223
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-224
-bc
-[3] =
- & 0x3; sr >>= 2;
-
-225
-Mc
-[3] =
- & 0x3; sr >>= 2;
-
-226
- |ð(
-uwÜd
-)*
-c
-++ << 5;
-
-227
-xmaxc
-[3] =
- & 0x3f; sr >>= 6;
-
-228
-xmc
-[39] =
- & 0x7; sr >>= 3;
-
-229
-xmc
-[40] =
- & 0x7; sr >>= 3;
-
-230
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-231
-xmc
-[41] =
- & 0x7; sr >>= 3;
-
-232
-xmc
-[42] =
- & 0x7; sr >>= 3;
-
-233
-xmc
-[43] =
- & 0x7; sr >>= 3;
-
-234
- = *
-c
-++;
-
-235
-xmc
-[44] =
- & 0x7; sr >>= 3;
-
-236
-xmc
-[45] =
- & 0x7; sr >>= 3;
-
-237
- |ð(
-uwÜd
-)*
-c
-++ << 2;
-
-238
-xmc
-[46] =
- & 0x7; sr >>= 3;
-
-239
-xmc
-[47] =
- & 0x7; sr >>= 3;
-
-240
-xmc
-[48] =
- & 0x7; sr >>= 3;
-
-241
- |ð(
-uwÜd
-)*
-c
-++ << 1;
-
-242
-xmc
-[49] =
- & 0x7; sr >>= 3;
-
-243
-xmc
-[50] =
- & 0x7; sr >>= 3;
-
-244
-xmc
-[51] =
- & 0x7; sr >>= 3;
-
-252 ià(((*
-c
- >> 4è& 0x0Fè!ð
-GSM_MAGIC
-)  -1;
-
-254
-LARc
-[0] = (*
-c
-++ & 0xF) << 2;
-
-255
-LARc
-[0] |ð(*
-c
- >> 6) & 0x3;
-
-256
-LARc
-[1] = *
-c
-++ & 0x3F;
-
-257
-LARc
-[2] = (*
-c
- >> 3) & 0x1F;
-
-258
-LARc
-[3] = (*
-c
-++ & 0x7) << 2;
-
-259
-LARc
-[3] |ð(*
-c
- >> 6) & 0x3;
-
-260
-LARc
-[4] = (*
-c
- >> 2) & 0xF;
-
-261
-LARc
-[5] = (*
-c
-++ & 0x3) << 2;
-
-262
-LARc
-[5] |ð(*
-c
- >> 6) & 0x3;
-
-263
-LARc
-[6] = (*
-c
- >> 3) & 0x7;
-
-264
-LARc
-[7] = *
-c
-++ & 0x7;
-
-265
-Nc
-[0] = (*
-c
- >> 1) & 0x7F;
-
-266
-bc
-[0] = (*
-c
-++ & 0x1) << 1;
-
-267
-bc
-[0] |ð(*
-c
- >> 7) & 0x1;
-
-268
-Mc
-[0] = (*
-c
- >> 5) & 0x3;
-
-269
-xmaxc
-[0] = (*
-c
-++ & 0x1F) << 1;
-
-270
-xmaxc
-[0] |ð(*
-c
- >> 7) & 0x1;
-
-271
-xmc
-[0] = (*
-c
- >> 4) & 0x7;
-
-272
-xmc
-[1] = (*
-c
- >> 1) & 0x7;
-
-273
-xmc
-[2] = (*
-c
-++ & 0x1) << 2;
-
-274
-xmc
-[2] |ð(*
-c
- >> 6) & 0x3;
-
-275
-xmc
-[3] = (*
-c
- >> 3) & 0x7;
-
-276
-xmc
-[4] = *
-c
-++ & 0x7;
-
-277
-xmc
-[5] = (*
-c
- >> 5) & 0x7;
-
-278
-xmc
-[6] = (*
-c
- >> 2) & 0x7;
-
-279
-xmc
-[7] = (*
-c
-++ & 0x3) << 1;
-
-280
-xmc
-[7] |ð(*
-c
- >> 7) & 0x1;
-
-281
-xmc
-[8] = (*
-c
- >> 4) & 0x7;
-
-282
-xmc
-[9] = (*
-c
- >> 1) & 0x7;
-
-283
-xmc
-[10] = (*
-c
-++ & 0x1) << 2;
-
-284
-xmc
-[10] |ð(*
-c
- >> 6) & 0x3;
-
-285
-xmc
-[11] = (*
-c
- >> 3) & 0x7;
-
-286
-xmc
-[12] = *
-c
-++ & 0x7;
-
-287
-Nc
-[1] = (*
-c
- >> 1) & 0x7F;
-
-288
-bc
-[1] = (*
-c
-++ & 0x1) << 1;
-
-289
-bc
-[1] |ð(*
-c
- >> 7) & 0x1;
-
-290
-Mc
-[1] = (*
-c
- >> 5) & 0x3;
-
-291
-xmaxc
-[1] = (*
-c
-++ & 0x1F) << 1;
-
-292
-xmaxc
-[1] |ð(*
-c
- >> 7) & 0x1;
-
-293
-xmc
-[13] = (*
-c
- >> 4) & 0x7;
-
-294
-xmc
-[14] = (*
-c
- >> 1) & 0x7;
-
-295
-xmc
-[15] = (*
-c
-++ & 0x1) << 2;
-
-296
-xmc
-[15] |ð(*
-c
- >> 6) & 0x3;
-
-297
-xmc
-[16] = (*
-c
- >> 3) & 0x7;
-
-298
-xmc
-[17] = *
-c
-++ & 0x7;
-
-299
-xmc
-[18] = (*
-c
- >> 5) & 0x7;
-
-300
-xmc
-[19] = (*
-c
- >> 2) & 0x7;
-
-301
-xmc
-[20] = (*
-c
-++ & 0x3) << 1;
-
-302
-xmc
-[20] |ð(*
-c
- >> 7) & 0x1;
-
-303
-xmc
-[21] = (*
-c
- >> 4) & 0x7;
-
-304
-xmc
-[22] = (*
-c
- >> 1) & 0x7;
-
-305
-xmc
-[23] = (*
-c
-++ & 0x1) << 2;
-
-306
-xmc
-[23] |ð(*
-c
- >> 6) & 0x3;
-
-307
-xmc
-[24] = (*
-c
- >> 3) & 0x7;
-
-308
-xmc
-[25] = *
-c
-++ & 0x7;
-
-309
-Nc
-[2] = (*
-c
- >> 1) & 0x7F;
-
-310
-bc
-[2] = (*
-c
-++ & 0x1) << 1;
-
-311
-bc
-[2] |ð(*
-c
- >> 7) & 0x1;
-
-312
-Mc
-[2] = (*
-c
- >> 5) & 0x3;
-
-313
-xmaxc
-[2] = (*
-c
-++ & 0x1F) << 1;
-
-314
-xmaxc
-[2] |ð(*
-c
- >> 7) & 0x1;
-
-315
-xmc
-[26] = (*
-c
- >> 4) & 0x7;
-
-316
-xmc
-[27] = (*
-c
- >> 1) & 0x7;
-
-317
-xmc
-[28] = (*
-c
-++ & 0x1) << 2;
-
-318
-xmc
-[28] |ð(*
-c
- >> 6) & 0x3;
-
-319
-xmc
-[29] = (*
-c
- >> 3) & 0x7;
-
-320
-xmc
-[30] = *
-c
-++ & 0x7;
-
-321
-xmc
-[31] = (*
-c
- >> 5) & 0x7;
-
-322
-xmc
-[32] = (*
-c
- >> 2) & 0x7;
-
-323
-xmc
-[33] = (*
-c
-++ & 0x3) << 1;
-
-324
-xmc
-[33] |ð(*
-c
- >> 7) & 0x1;
-
-325
-xmc
-[34] = (*
-c
- >> 4) & 0x7;
-
-326
-xmc
-[35] = (*
-c
- >> 1) & 0x7;
-
-327
-xmc
-[36] = (*
-c
-++ & 0x1) << 2;
-
-328
-xmc
-[36] |ð(*
-c
- >> 6) & 0x3;
-
-329
-xmc
-[37] = (*
-c
- >> 3) & 0x7;
-
-330
-xmc
-[38] = *
-c
-++ & 0x7;
-
-331
-Nc
-[3] = (*
-c
- >> 1) & 0x7F;
-
-332
-bc
-[3] = (*
-c
-++ & 0x1) << 1;
-
-333
-bc
-[3] |ð(*
-c
- >> 7) & 0x1;
-
-334
-Mc
-[3] = (*
-c
- >> 5) & 0x3;
-
-335
-xmaxc
-[3] = (*
-c
-++ & 0x1F) << 1;
-
-336
-xmaxc
-[3] |ð(*
-c
- >> 7) & 0x1;
-
-337
-xmc
-[39] = (*
-c
- >> 4) & 0x7;
-
-338
-xmc
-[40] = (*
-c
- >> 1) & 0x7;
-
-339
-xmc
-[41] = (*
-c
-++ & 0x1) << 2;
-
-340
-xmc
-[41] |ð(*
-c
- >> 6) & 0x3;
-
-341
-xmc
-[42] = (*
-c
- >> 3) & 0x7;
-
-342
-xmc
-[43] = *
-c
-++ & 0x7;
-
-343
-xmc
-[44] = (*
-c
- >> 5) & 0x7;
-
-344
-xmc
-[45] = (*
-c
- >> 2) & 0x7;
-
-345
-xmc
-[46] = (*
-c
-++ & 0x3) << 1;
-
-346
-xmc
-[46] |ð(*
-c
- >> 7) & 0x1;
-
-347
-xmc
-[47] = (*
-c
- >> 4) & 0x7;
-
-348
-xmc
-[48] = (*
-c
- >> 1) & 0x7;
-
-349
-xmc
-[49] = (*
-c
-++ & 0x1) << 2;
-
-350
-xmc
-[49] |ð(*
-c
- >> 6) & 0x3;
-
-351
-xmc
-[50] = (*
-c
- >> 3) & 0x7;
-
-352
-xmc
-[51] = *
-c
- & 0x7;
-
-355
- `Gsm_Decod”
-(
-s
-,
-LARc
-,
-Nc
-,
-bc
-,
-Mc
-,
-xmaxc
-,
-xmc
-,
-rg‘
-);
-
-358
- }
-}
-
- @gsm_destroy.c
-
-7 
- ~"gsm.h
-"
-
-8 
- ~"cÚfig.h
-"
-
-10 #ifdef
-HAS_STDLIB_H
-
-
-11 
- ~<¡dlib.h
->
-
-13 #ifdef
-HAS_MALLOC_H
-
-
-14 
- ~<m®loc.h
->
-
-16 
-ä“
-();
-
-20 
- $gsm_de¡roy
- (
-gsm
-
-S
-)
-
-22 ià(
-S
- `ä“
-((*)S);
-
-23
- }
-}
-
- @gsm_encode.c
-
-7 
- ~"gsm610_´iv.h
-"
-
-8 
- ~"gsm.h
-"
-
-10 
- $gsm_’code
- (
-gsm
-
-s
-,
-gsm_sigÇl
- *
-sourû
-,
-gsm_by‹
- *
-c
-)
-
-12
-wÜd
-
-LARc
-[8],
-Nc
-[4],
-Mc
-[4],
-bc
-[4],
-xmaxc
-[4],
-xmc
-[13*4];
-
-14
- `Gsm_Cod”
-(
-s
-,
-sourû
-,
-LARc
-,
-Nc
-,
-bc
-,
-Mc
-,
-xmaxc
-,
-xmc
-);
-
-103 #ifdeà
-WAV49
-
-
-105 ià(
-s
-->
-wav_fmt
-) {
-
-106
-s
-->
-äame_šdex
- = !s->frame_index;
-
-107 ià(
-s
-->
-äame_šdex
-) {
-
-109
-uwÜd
-
-;
-
-111
- = 0;
-
-112
- = s¸>> 6 |
-LARc
-[0] << 10;
-
-113
- = s¸>> 6 |
-LARc
-[1] << 10;
-
-114 *
-c
-++ =
- >> 4;
-
-115
- = s¸>> 5 |
-LARc
-[2] << 11;
-
-116 *
-c
-++ =
- >> 7;
-
-117
- = s¸>> 5 |
-LARc
-[3] << 11;
-
-118
- = s¸>> 4 |
-LARc
-[4] << 12;
-
-119 *
-c
-++ =
- >> 6;
-
-120
- = s¸>> 4 |
-LARc
-[5] << 12;
-
-121
- = s¸>> 3 |
-LARc
-[6] << 13;
-
-122 *
-c
-++ =
- >> 7;
-
-123
- = s¸>> 3 |
-LARc
-[7] << 13;
-
-124
- = s¸>> 7 |
-Nc
-[0] << 9;
-
-125 *
-c
-++ =
- >> 5;
-
-126
- = s¸>> 2 |
-bc
-[0] << 14;
-
-127
- = s¸>> 2 |
-Mc
-[0] << 14;
-
-128
- = s¸>> 6 |
-xmaxc
-[0] << 10;
-
-129 *
-c
-++ =
- >> 3;
-
-130
- = s¸>> 3 |
-xmc
-[0] << 13;
-
-131 *
-c
-++ =
- >> 8;
-
-132
- = s¸>> 3 |
-xmc
-[1] << 13;
-
-133
- = s¸>> 3 |
-xmc
-[2] << 13;
-
-134
- = s¸>> 3 |
-xmc
-[3] << 13;
-
-135 *
-c
-++ =
- >> 7;
-
-136
- = s¸>> 3 |
-xmc
-[4] << 13;
-
-137
- = s¸>> 3 |
-xmc
-[5] << 13;
-
-138
- = s¸>> 3 |
-xmc
-[6] << 13;
-
-139 *
-c
-++ =
- >> 6;
-
-140
- = s¸>> 3 |
-xmc
-[7] << 13;
-
-141
- = s¸>> 3 |
-xmc
-[8] << 13;
-
-142 *
-c
-++ =
- >> 8;
-
-143
- = s¸>> 3 |
-xmc
-[9] << 13;
-
-144
- = s¸>> 3 |
-xmc
-[10] << 13;
-
-145
- = s¸>> 3 |
-xmc
-[11] << 13;
-
-146 *
-c
-++ =
- >> 7;
-
-147
- = s¸>> 3 |
-xmc
-[12] << 13;
-
-148
- = s¸>> 7 |
-Nc
-[1] << 9;
-
-149 *
-c
-++ =
- >> 5;
-
-150
- = s¸>> 2 |
-bc
-[1] << 14;
-
-151
- = s¸>> 2 |
-Mc
-[1] << 14;
-
-152
- = s¸>> 6 |
-xmaxc
-[1] << 10;
-
-153 *
-c
-++ =
- >> 3;
-
-154
- = s¸>> 3 |
-xmc
-[13] << 13;
-
-155 *
-c
-++ =
- >> 8;
-
-156
- = s¸>> 3 |
-xmc
-[14] << 13;
-
-157
- = s¸>> 3 |
-xmc
-[15] << 13;
-
-158
- = s¸>> 3 |
-xmc
-[16] << 13;
-
-159 *
-c
-++ =
- >> 7;
-
-160
- = s¸>> 3 |
-xmc
-[17] << 13;
-
-161
- = s¸>> 3 |
-xmc
-[18] << 13;
-
-162
- = s¸>> 3 |
-xmc
-[19] << 13;
-
-163 *
-c
-++ =
- >> 6;
-
-164
- = s¸>> 3 |
-xmc
-[20] << 13;
-
-165
- = s¸>> 3 |
-xmc
-[21] << 13;
-
-166 *
-c
-++ =
- >> 8;
-
-167
- = s¸>> 3 |
-xmc
-[22] << 13;
-
-168
- = s¸>> 3 |
-xmc
-[23] << 13;
-
-169
- = s¸>> 3 |
-xmc
-[24] << 13;
-
-170 *
-c
-++ =
- >> 7;
-
-171
- = s¸>> 3 |
-xmc
-[25] << 13;
-
-172
- = s¸>> 7 |
-Nc
-[2] << 9;
-
-173 *
-c
-++ =
- >> 5;
-
-174
- = s¸>> 2 |
-bc
-[2] << 14;
-
-175
- = s¸>> 2 |
-Mc
-[2] << 14;
-
-176
- = s¸>> 6 |
-xmaxc
-[2] << 10;
-
-177 *
-c
-++ =
- >> 3;
-
-178
- = s¸>> 3 |
-xmc
-[26] << 13;
-
-179 *
-c
-++ =
- >> 8;
-
-180
- = s¸>> 3 |
-xmc
-[27] << 13;
-
-181
- = s¸>> 3 |
-xmc
-[28] << 13;
-
-182
- = s¸>> 3 |
-xmc
-[29] << 13;
-
-183 *
-c
-++ =
- >> 7;
-
-184
- = s¸>> 3 |
-xmc
-[30] << 13;
-
-185
- = s¸>> 3 |
-xmc
-[31] << 13;
-
-186
- = s¸>> 3 |
-xmc
-[32] << 13;
-
-187 *
-c
-++ =
- >> 6;
-
-188
- = s¸>> 3 |
-xmc
-[33] << 13;
-
-189
- = s¸>> 3 |
-xmc
-[34] << 13;
-
-190 *
-c
-++ =
- >> 8;
-
-191
- = s¸>> 3 |
-xmc
-[35] << 13;
-
-192
- = s¸>> 3 |
-xmc
-[36] << 13;
-
-193
- = s¸>> 3 |
-xmc
-[37] << 13;
-
-194 *
-c
-++ =
- >> 7;
-
-195
- = s¸>> 3 |
-xmc
-[38] << 13;
-
-196
- = s¸>> 7 |
-Nc
-[3] << 9;
-
-197 *
-c
-++ =
- >> 5;
-
-198
- = s¸>> 2 |
-bc
-[3] << 14;
-
-199
- = s¸>> 2 |
-Mc
-[3] << 14;
-
-200
- = s¸>> 6 |
-xmaxc
-[3] << 10;
-
-201 *
-c
-++ =
- >> 3;
-
-202
- = s¸>> 3 |
-xmc
-[39] << 13;
-
-203 *
-c
-++ =
- >> 8;
-
-204
- = s¸>> 3 |
-xmc
-[40] << 13;
-
-205
- = s¸>> 3 |
-xmc
-[41] << 13;
-
-206
- = s¸>> 3 |
-xmc
-[42] << 13;
-
-207 *
-c
-++ =
- >> 7;
-
-208
- = s¸>> 3 |
-xmc
-[43] << 13;
-
-209
- = s¸>> 3 |
-xmc
-[44] << 13;
-
-210
- = s¸>> 3 |
-xmc
-[45] << 13;
-
-211 *
-c
-++ =
- >> 6;
-
-212
- = s¸>> 3 |
-xmc
-[46] << 13;
-
-213
- = s¸>> 3 |
-xmc
-[47] << 13;
-
-214 *
-c
-++ =
- >> 8;
-
-215
- = s¸>> 3 |
-xmc
-[48] << 13;
-
-216
- = s¸>> 3 |
-xmc
-[49] << 13;
-
-217
- = s¸>> 3 |
-xmc
-[50] << 13;
-
-218 *
-c
-++ =
- >> 7;
-
-219
- = s¸>> 3 |
-xmc
-[51] << 13;
-
-220
- = sr >> 4;
-
-221 *
-c
- =
- >> 8;
-
-222
-s
-->
-äame_chaš
- = *
-c
-;
-
-225
-uwÜd
-
-;
-
-227
- = 0;
-
-228
- = s¸>> 4 |
-s
-->
-äame_chaš
- << 12;
-
-229
- = s¸>> 6 |
-LARc
-[0] << 10;
-
-230 *
-c
-++ =
- >> 6;
-
-231
- = s¸>> 6 |
-LARc
-[1] << 10;
-
-232 *
-c
-++ =
- >> 8;
-
-233
- = s¸>> 5 |
-LARc
-[2] << 11;
-
-234
- = s¸>> 5 |
-LARc
-[3] << 11;
-
-235 *
-c
-++ =
- >> 6;
-
-236
- = s¸>> 4 |
-LARc
-[4] << 12;
-
-237
- = s¸>> 4 |
-LARc
-[5] << 12;
-
-238 *
-c
-++ =
- >> 6;
-
-239
- = s¸>> 3 |
-LARc
-[6] << 13;
-
-240
- = s¸>> 3 |
-LARc
-[7] << 13;
-
-241 *
-c
-++ =
- >> 8;
-
-242
- = s¸>> 7 |
-Nc
-[0] << 9;
-
-243
- = s¸>> 2 |
-bc
-[0] << 14;
-
-244 *
-c
-++ =
- >> 7;
-
-245
- = s¸>> 2 |
-Mc
-[0] << 14;
-
-246
- = s¸>> 6 |
-xmaxc
-[0] << 10;
-
-247 *
-c
-++ =
- >> 7;
-
-248
- = s¸>> 3 |
-xmc
-[0] << 13;
-
-249
- = s¸>> 3 |
-xmc
-[1] << 13;
-
-250
- = s¸>> 3 |
-xmc
-[2] << 13;
-
-251 *
-c
-++ =
- >> 6;
-
-252
- = s¸>> 3 |
-xmc
-[3] << 13;
-
-253
- = s¸>> 3 |
-xmc
-[4] << 13;
-
-254 *
-c
-++ =
- >> 8;
-
-255
- = s¸>> 3 |
-xmc
-[5] << 13;
-
-256
- = s¸>> 3 |
-xmc
-[6] << 13;
-
-257
- = s¸>> 3 |
-xmc
-[7] << 13;
-
-258 *
-c
-++ =
- >> 7;
-
-259
- = s¸>> 3 |
-xmc
-[8] << 13;
-
-260
- = s¸>> 3 |
-xmc
-[9] << 13;
-
-261
- = s¸>> 3 |
-xmc
-[10] << 13;
-
-262 *
-c
-++ =
- >> 6;
-
-263
- = s¸>> 3 |
-xmc
-[11] << 13;
-
-264
- = s¸>> 3 |
-xmc
-[12] << 13;
-
-265 *
-c
-++ =
- >> 8;
-
-266
- = s¸>> 7 |
-Nc
-[1] << 9;
-
-267
- = s¸>> 2 |
-bc
-[1] << 14;
-
-268 *
-c
-++ =
- >> 7;
-
-269
- = s¸>> 2 |
-Mc
-[1] << 14;
-
-270
- = s¸>> 6 |
-xmaxc
-[1] << 10;
-
-271 *
-c
-++ =
- >> 7;
-
-272
- = s¸>> 3 |
-xmc
-[13] << 13;
-
-273
- = s¸>> 3 |
-xmc
-[14] << 13;
-
-274
- = s¸>> 3 |
-xmc
-[15] << 13;
-
-275 *
-c
-++ =
- >> 6;
-
-276
- = s¸>> 3 |
-xmc
-[16] << 13;
-
-277
- = s¸>> 3 |
-xmc
-[17] << 13;
-
-278 *
-c
-++ =
- >> 8;
-
-279
- = s¸>> 3 |
-xmc
-[18] << 13;
-
-280
- = s¸>> 3 |
-xmc
-[19] << 13;
-
-281
- = s¸>> 3 |
-xmc
-[20] << 13;
-
-282 *
-c
-++ =
- >> 7;
-
-283
- = s¸>> 3 |
-xmc
-[21] << 13;
-
-284
- = s¸>> 3 |
-xmc
-[22] << 13;
-
-285
- = s¸>> 3 |
-xmc
-[23] << 13;
-
-286 *
-c
-++ =
- >> 6;
-
-287
- = s¸>> 3 |
-xmc
-[24] << 13;
-
-288
- = s¸>> 3 |
-xmc
-[25] << 13;
-
-289 *
-c
-++ =
- >> 8;
-
-290
- = s¸>> 7 |
-Nc
-[2] << 9;
-
-291
- = s¸>> 2 |
-bc
-[2] << 14;
-
-292 *
-c
-++ =
- >> 7;
-
-293
- = s¸>> 2 |
-Mc
-[2] << 14;
-
-294
- = s¸>> 6 |
-xmaxc
-[2] << 10;
-
-295 *
-c
-++ =
- >> 7;
-
-296
- = s¸>> 3 |
-xmc
-[26] << 13;
-
-297
- = s¸>> 3 |
-xmc
-[27] << 13;
-
-298
- = s¸>> 3 |
-xmc
-[28] << 13;
-
-299 *
-c
-++ =
- >> 6;
-
-300
- = s¸>> 3 |
-xmc
-[29] << 13;
-
-301
- = s¸>> 3 |
-xmc
-[30] << 13;
-
-302 *
-c
-++ =
- >> 8;
-
-303
- = s¸>> 3 |
-xmc
-[31] << 13;
-
-304
- = s¸>> 3 |
-xmc
-[32] << 13;
-
-305
- = s¸>> 3 |
-xmc
-[33] << 13;
-
-306 *
-c
-++ =
- >> 7;
-
-307
- = s¸>> 3 |
-xmc
-[34] << 13;
-
-308
- = s¸>> 3 |
-xmc
-[35] << 13;
-
-309
- = s¸>> 3 |
-xmc
-[36] << 13;
-
-310 *
-c
-++ =
- >> 6;
-
-311
- = s¸>> 3 |
-xmc
-[37] << 13;
-
-312
- = s¸>> 3 |
-xmc
-[38] << 13;
-
-313 *
-c
-++ =
- >> 8;
-
-314
- = s¸>> 7 |
-Nc
-[3] << 9;
-
-315
- = s¸>> 2 |
-bc
-[3] << 14;
-
-316 *
-c
-++ =
- >> 7;
-
-317
- = s¸>> 2 |
-Mc
-[3] << 14;
-
-318
- = s¸>> 6 |
-xmaxc
-[3] << 10;
-
-319 *
-c
-++ =
- >> 7;
-
-320
- = s¸>> 3 |
-xmc
-[39] << 13;
-
-321
- = s¸>> 3 |
-xmc
-[40] << 13;
-
-322
- = s¸>> 3 |
-xmc
-[41] << 13;
-
-323 *
-c
-++ =
- >> 6;
-
-324
- = s¸>> 3 |
-xmc
-[42] << 13;
-
-325
- = s¸>> 3 |
-xmc
-[43] << 13;
-
-326 *
-c
-++ =
- >> 8;
-
-327
- = s¸>> 3 |
-xmc
-[44] << 13;
-
-328
- = s¸>> 3 |
-xmc
-[45] << 13;
-
-329
- = s¸>> 3 |
-xmc
-[46] << 13;
-
-330 *
-c
-++ =
- >> 7;
-
-331
- = s¸>> 3 |
-xmc
-[47] << 13;
-
-332
- = s¸>> 3 |
-xmc
-[48] << 13;
-
-333
- = s¸>> 3 |
-xmc
-[49] << 13;
-
-334 *
-c
-++ =
- >> 6;
-
-335
- = s¸>> 3 |
-xmc
-[50] << 13;
-
-336
- = s¸>> 3 |
-xmc
-[51] << 13;
-
-337 *
-c
-++ =
- >> 8;
-
-346 *
-c
-++ = ((
-GSM_MAGIC
- & 0xF) << 4)
-
-347 | ((
-LARc
-[0] >> 2) & 0xF);
-
-348 *
-c
-++ = ((
-LARc
-[0] & 0x3) << 6)
-
-349 | (
-LARc
-[1] & 0x3F);
-
-350 *
-c
-++ = ((
-LARc
-[2] & 0x1F) << 3)
-
-351 | ((
-LARc
-[3] >> 2) & 0x7);
-
-352 *
-c
-++ = ((
-LARc
-[3] & 0x3) << 6)
-
-353 | ((
-LARc
-[4] & 0xF) << 2)
-
-354 | ((
-LARc
-[5] >> 2) & 0x3);
-
-355 *
-c
-++ = ((
-LARc
-[5] & 0x3) << 6)
-
-356 | ((
-LARc
-[6] & 0x7) << 3)
-
-357 | (
-LARc
-[7] & 0x7);
-
-358 *
-c
-++ = ((
-Nc
-[0] & 0x7F) << 1)
-
-359 | ((
-bc
-[0] >> 1) & 0x1);
-
-360 *
-c
-++ = ((
-bc
-[0] & 0x1) << 7)
-
-361 | ((
-Mc
-[0] & 0x3) << 5)
-
-362 | ((
-xmaxc
-[0] >> 1) & 0x1F);
-
-363 *
-c
-++ = ((
-xmaxc
-[0] & 0x1) << 7)
-
-364 | ((
-xmc
-[0] & 0x7) << 4)
-
-365 | ((
-xmc
-[1] & 0x7) << 1)
-
-366 | ((
-xmc
-[2] >> 2) & 0x1);
-
-367 *
-c
-++ = ((
-xmc
-[2] & 0x3) << 6)
-
-368 | ((
-xmc
-[3] & 0x7) << 3)
-
-369 | (
-xmc
-[4] & 0x7);
-
-370 *
-c
-++ = ((
-xmc
-[5] & 0x7) << 5)
-
-371 | ((
-xmc
-[6] & 0x7) << 2)
-
-372 | ((
-xmc
-[7] >> 1) & 0x3);
-
-373 *
-c
-++ = ((
-xmc
-[7] & 0x1) << 7)
-
-374 | ((
-xmc
-[8] & 0x7) << 4)
-
-375 | ((
-xmc
-[9] & 0x7) << 1)
-
-376 | ((
-xmc
-[10] >> 2) & 0x1);
-
-377 *
-c
-++ = ((
-xmc
-[10] & 0x3) << 6)
-
-378 | ((
-xmc
-[11] & 0x7) << 3)
-
-379 | (
-xmc
-[12] & 0x7);
-
-380 *
-c
-++ = ((
-Nc
-[1] & 0x7F) << 1)
-
-381 | ((
-bc
-[1] >> 1) & 0x1);
-
-382 *
-c
-++ = ((
-bc
-[1] & 0x1) << 7)
-
-383 | ((
-Mc
-[1] & 0x3) << 5)
-
-384 | ((
-xmaxc
-[1] >> 1) & 0x1F);
-
-385 *
-c
-++ = ((
-xmaxc
-[1] & 0x1) << 7)
-
-386 | ((
-xmc
-[13] & 0x7) << 4)
-
-387 | ((
-xmc
-[14] & 0x7) << 1)
-
-388 | ((
-xmc
-[15] >> 2) & 0x1);
-
-389 *
-c
-++ = ((
-xmc
-[15] & 0x3) << 6)
-
-390 | ((
-xmc
-[16] & 0x7) << 3)
-
-391 | (
-xmc
-[17] & 0x7);
-
-392 *
-c
-++ = ((
-xmc
-[18] & 0x7) << 5)
-
-393 | ((
-xmc
-[19] & 0x7) << 2)
-
-394 | ((
-xmc
-[20] >> 1) & 0x3);
-
-395 *
-c
-++ = ((
-xmc
-[20] & 0x1) << 7)
-
-396 | ((
-xmc
-[21] & 0x7) << 4)
-
-397 | ((
-xmc
-[22] & 0x7) << 1)
-
-398 | ((
-xmc
-[23] >> 2) & 0x1);
-
-399 *
-c
-++ = ((
-xmc
-[23] & 0x3) << 6)
-
-400 | ((
-xmc
-[24] & 0x7) << 3)
-
-401 | (
-xmc
-[25] & 0x7);
-
-402 *
-c
-++ = ((
-Nc
-[2] & 0x7F) << 1)
-
-403 | ((
-bc
-[2] >> 1) & 0x1);
-
-404 *
-c
-++ = ((
-bc
-[2] & 0x1) << 7)
-
-405 | ((
-Mc
-[2] & 0x3) << 5)
-
-406 | ((
-xmaxc
-[2] >> 1) & 0x1F);
-
-407 *
-c
-++ = ((
-xmaxc
-[2] & 0x1) << 7)
-
-408 | ((
-xmc
-[26] & 0x7) << 4)
-
-409 | ((
-xmc
-[27] & 0x7) << 1)
-
-410 | ((
-xmc
-[28] >> 2) & 0x1);
-
-411 *
-c
-++ = ((
-xmc
-[28] & 0x3) << 6)
-
-412 | ((
-xmc
-[29] & 0x7) << 3)
-
-413 | (
-xmc
-[30] & 0x7);
-
-414 *
-c
-++ = ((
-xmc
-[31] & 0x7) << 5)
-
-415 | ((
-xmc
-[32] & 0x7) << 2)
-
-416 | ((
-xmc
-[33] >> 1) & 0x3);
-
-417 *
-c
-++ = ((
-xmc
-[33] & 0x1) << 7)
-
-418 | ((
-xmc
-[34] & 0x7) << 4)
-
-419 | ((
-xmc
-[35] & 0x7) << 1)
-
-420 | ((
-xmc
-[36] >> 2) & 0x1);
-
-421 *
-c
-++ = ((
-xmc
-[36] & 0x3) << 6)
-
-422 | ((
-xmc
-[37] & 0x7) << 3)
-
-423 | (
-xmc
-[38] & 0x7);
-
-424 *
-c
-++ = ((
-Nc
-[3] & 0x7F) << 1)
-
-425 | ((
-bc
-[3] >> 1) & 0x1);
-
-426 *
-c
-++ = ((
-bc
-[3] & 0x1) << 7)
-
-427 | ((
-Mc
-[3] & 0x3) << 5)
-
-428 | ((
-xmaxc
-[3] >> 1) & 0x1F);
-
-429 *
-c
-++ = ((
-xmaxc
-[3] & 0x1) << 7)
-
-430 | ((
-xmc
-[39] & 0x7) << 4)
-
-431 | ((
-xmc
-[40] & 0x7) << 1)
-
-432 | ((
-xmc
-[41] >> 2) & 0x1);
-
-433 *
-c
-++ = ((
-xmc
-[41] & 0x3) << 6)
-
-434 | ((
-xmc
-[42] & 0x7) << 3)
-
-435 | (
-xmc
-[43] & 0x7);
-
-436 *
-c
-++ = ((
-xmc
-[44] & 0x7) << 5)
-
-437 | ((
-xmc
-[45] & 0x7) << 2)
-
-438 | ((
-xmc
-[46] >> 1) & 0x3);
-
-439 *
-c
-++ = ((
-xmc
-[46] & 0x1) << 7)
-
-440 | ((
-xmc
-[47] & 0x7) << 4)
-
-441 | ((
-xmc
-[48] & 0x7) << 1)
-
-442 | ((
-xmc
-[49] >> 2) & 0x1);
-
-443 *
-c
-++ = ((
-xmc
-[49] & 0x3) << 6)
-
-444 | ((
-xmc
-[50] & 0x7) << 3)
-
-445 | (
-xmc
-[51] & 0x7);
-
-448
- }
-}
-
- @gsm_option.c
-
-7 
- ~"gsm610_´iv.h
-"
-
-9 
- ~"gsm.h
-"
-
-11 
- $gsm_ÝtiÚ
- (
-gsm
-
-r
-, 
-Ýt
-, *
-v®
-)
-
-13 
-»suÉ
- = -1;
-
-15 
-Ýt
-) {
-
-16 
-GSM_OPT_LTP_CUT
-:
-
-17 #ifdeà
-LTP_CUT
-
-
-18
-»suÉ
- =
-r
-->
-Ép_cut
-;
-
-19 ià(
-v®
-r
-->
-Ép_cut
- = *val;
-
-23 
-GSM_OPT_VERBOSE
-:
-
-24 #iâdef
-NDEBUG
-
-
-25
-»suÉ
- =
-r
-->
-v”bo£
-;
-
-26 ià(
-v®
-r
-->
-v”bo£
- = *val;
-
-30 
-GSM_OPT_FAST
-:
-
-32 #if
- `defšed
-(
-FAST
-è&& defšed(
-USE_FLOAT_MUL
-)
-
-33
-»suÉ
- =
-r
-->
-ç¡
-;
-
-34 ià(
-v®
-r
-->
-ç¡
- = !!*val;
-
-38 
-GSM_OPT_FRAME_CHAIN
-:
-
-40 #ifdeà
-WAV49
-
-
-41
-»suÉ
- =
-r
-->
-äame_chaš
-;
-
-42 ià(
-v®
-r
-->
-äame_chaš
- = *val;
-
-46 
-GSM_OPT_FRAME_INDEX
-:
-
-48 #ifdeà
-WAV49
-
-
-49
-»suÉ
- =
-r
-->
-äame_šdex
-;
-
-50 ià(
-v®
-r
-->
-äame_šdex
- = *val;
-
-54 
-GSM_OPT_WAV49
-:
-
-56 #ifdeà
-WAV49
-
-
-57
-»suÉ
- =
-r
-->
-wav_fmt
-;
-
-58 ià(
-v®
-r
-->
-wav_fmt
- = !!*val;
-
-65 
-»suÉ
-;
-
-66
- }
-}
-
- @long_term.c
-
-7 
- ~<¡dio.h
->
-
-8 
- ~<as£¹.h
->
-
-10 
- ~"gsm610_´iv.h
-"
-
-12 
- ~"gsm.h
-"
-
-42 #iâdeà
-USE_FLOAT_MUL
-
-
-44 #ifdef
-LTP_CUT
-
-
-46 
- $Cut_C®cuÏtiÚ_of_the_LTP_·¿m‘”s
- (
-
-48 
-gsm_¡©e
- *
-,
-
-50 
-wÜd
- *
-d
-,
-
-51 
-wÜd
- *
-dp
-,
-
-52
-wÜd
- *
-bc_out
-,
-
-53
-wÜd
- *
-Nc_out
-
-
-56 
-k
-,
-Ïmbda
-;
-
-57
-wÜd
-
-Nc
-,
-bc
-;
-
-58
-wÜd
-
-wt
-[40];
-
-60
-lÚgwÜd
-
-L_»suÉ
-;
-
-61
-lÚgwÜd
-
-L_max
-,
-L_pow”
-;
-
-62
-wÜd
-
-R
-,
-S
-,
-dmax
-,
-sÿl
-,
-be¡_k
-;
-
-63
-wÜd
-
-Ép_cut
-;
-
-65 
-wÜd
-
-‹mp
-,
-wt_k
-;
-
-69
-dmax
- = 0;
-
-70 
-k
- = 0; k <= 39; k++) {
-
-71
-‹mp
- =
-d
-[
-k
-];
-
-72
-‹mp
- =
- `GSM_ABS
-(emp );
-
-73 ià(
-‹mp
- >
-dmax
-) {
-
-74
-dmax
- =
-‹mp
-;
-
-75
-be¡_k
- =
-k
-;
-
-78
-‹mp
- = 0;
-
-79 ià(
-dmax
- =ð0è
-sÿl
- = 0;
-
-81
- `as£¹
-(
-dmax
- > 0);
-
-82
-‹mp
- =
- `gsm_nÜm
-Ð(
-lÚgwÜd
-)
-dmax
- << 16 );
-
-84 ià(
-‹mp
- > 6è
-sÿl
- = 0;
-
-85
-sÿl
- = 6 -
-‹mp
-;
-
-86
- `as£¹
-(
-sÿl
- >= 0);
-
-90
-L_max
- = 0;
-
-91
-Nc
- = 40;
-
-92
-wt_k
- =
- `SASR_W
-(
-d
-[
-be¡_k
-],
-sÿl
-);
-
-94 
-Ïmbda
- = 40;†ambda <= 120;†ambda++) {
-
-95
-L_»suÉ
- = (
-lÚgwÜd
-)
-wt_k
- *
-dp
-[
-be¡_k
- -
-Ïmbda
-];
-
-96 ià(
-L_»suÉ
- >
-L_max
-) {
-
-97
-Nc
- =
-Ïmbda
-;
-
-98
-L_max
- =
-L_»suÉ
-;
-
-101 *
-Nc_out
- =
-Nc
-;
-
-102
-L_max
- <<= 1;
-
-106
- `as£¹
-(
-sÿl
- <= 100 && scal >= -100);
-
-107
-L_max
- = L_max >> (6 -
-sÿl
-);
-
-109
- `as£¹
-Nc
- <= 120 && Nc >= 40);
-
-114
-L_pow”
- = 0;
-
-115 
-k
- = 0; k <= 39; k++) {
-
-117 
-lÚgwÜd
-
-L_‹mp
-;
-
-119
-L_‹mp
- =
- `SASR_W
-dp
-[
-k
- -
-Nc
-], 3 );
-
-120
-L_pow”
- +ð
-L_‹mp
- * L_temp;
-
-122
-L_pow”
- <<= 1;
-
-127 ià(
-L_max
- <= 0) {
-
-128 *
-bc_out
- = 0;
-
-131 ià(
-L_max
- >ð
-L_pow”
-) {
-
-132 *
-bc_out
- = 3;
-
-136
-‹mp
- =
- `gsm_nÜm
-L_pow”
- );
-
-138
-R
- =
- `SASR
-L_max
- <<
-‹mp
-, 16 );
-
-139
-S
- =
- `SASR
-L_pow”
- <<
-‹mp
-, 16 );
-
-147 
-bc
- = 0; bø<ð2; bc++èià(
-R
- <ð
- `gsm_muÉ
-(
-S
-,
-gsm_DLB
-[bc])) ;
-
-148 *
-bc_out
- =
-bc
-;
-
-149
- }
-}
-
-153 
- $C®cuÏtiÚ_of_the_LTP_·¿m‘”s
- (
-
-154 
-wÜd
- *
-d
-,
-
-155 
-wÜd
- *
-dp
-,
-
-156
-wÜd
- *
-bc_out
-,
-
-157
-wÜd
- *
-Nc_out
-
-
-160 
-k
-,
-Ïmbda
-;
-
-161
-wÜd
-
-Nc
-,
-bc
-;
-
-162
-wÜd
-
-wt
-[40];
-
-164
-lÚgwÜd
-
-L_max
-,
-L_pow”
-;
-
-165
-wÜd
-
-R
-,
-S
-,
-dmax
-,
-sÿl
-;
-
-166 
-wÜd
-
-‹mp
-;
-
-170
-dmax
- = 0;
-
-172 
-k
- = 0; k <= 39; k++) {
-
-173
-‹mp
- =
-d
-[
-k
-];
-
-174
-‹mp
- =
- `GSM_ABS
-(emp );
-
-175 ià(
-‹mp
- >
-dmax
-) dmax =emp;
-
-178
-‹mp
- = 0;
-
-179 ià(
-dmax
- =ð0è
-sÿl
- = 0;
-
-181
- `as£¹
-(
-dmax
- > 0);
-
-182
-‹mp
- =
- `gsm_nÜm
-Ð(
-lÚgwÜd
-)
-dmax
- << 16 );
-
-185 ià(
-‹mp
- > 6è
-sÿl
- = 0;
-
-186
-sÿl
- = 6 -
-‹mp
-;
-
-188
- `as£¹
-(
-sÿl
- >= 0);
-
-193 
-k
- = 0; k <ð39; k++è
-wt
-[k] =
- `SASR_W
-d
-[k],
-sÿl
- );
-
-197
-L_max
- = 0;
-
-198
-Nc
- = 40;
-
-200 
-Ïmbda
- = 40;†ambda <= 120;†ambda++) {
-
-202 #undeà
-STEP
-
-
-203 
- #STEP
-(
-k
-è(
-lÚgwÜd
-)
-wt
-[k] *
-dp
-[k -
-Ïmbda
-]
-
- )
-
-205 
-lÚgwÜd
-
-L_»suÉ
-;
-
-207
-L_»suÉ
- =
- `STEP
-(0) ; L_result += STEP(1) ;
-
-208
-L_»suÉ
- +ð
- `STEP
-(2) ; L_result += STEP(3) ;
-
-209
-L_»suÉ
- +ð
- `STEP
-(4) ; L_result += STEP(5) ;
-
-210
-L_»suÉ
- +ð
- `STEP
-(6) ; L_result += STEP(7) ;
-
-211
-L_»suÉ
- +ð
- `STEP
-(8) ; L_result += STEP(9) ;
-
-212
-L_»suÉ
- +ð
- `STEP
-(10) ; L_result += STEP(11) ;
-
-213
-L_»suÉ
- +ð
- `STEP
-(12) ; L_result += STEP(13) ;
-
-214
-L_»suÉ
- +ð
- `STEP
-(14) ; L_result += STEP(15) ;
-
-215
-L_»suÉ
- +ð
- `STEP
-(16) ; L_result += STEP(17) ;
-
-216
-L_»suÉ
- +ð
- `STEP
-(18) ; L_result += STEP(19) ;
-
-217
-L_»suÉ
- +ð
- `STEP
-(20) ; L_result += STEP(21) ;
-
-218
-L_»suÉ
- +ð
- `STEP
-(22) ; L_result += STEP(23) ;
-
-219
-L_»suÉ
- +ð
- `STEP
-(24) ; L_result += STEP(25) ;
-
-220
-L_»suÉ
- +ð
- `STEP
-(26) ; L_result += STEP(27) ;
-
-221
-L_»suÉ
- +ð
- `STEP
-(28) ; L_result += STEP(29) ;
-
-222
-L_»suÉ
- +ð
- `STEP
-(30) ; L_result += STEP(31) ;
-
-223
-L_»suÉ
- +ð
- `STEP
-(32) ; L_result += STEP(33) ;
-
-224
-L_»suÉ
- +ð
- `STEP
-(34) ; L_result += STEP(35) ;
-
-225
-L_»suÉ
- +ð
- `STEP
-(36) ; L_result += STEP(37) ;
-
-226
-L_»suÉ
- +ð
- `STEP
-(38) ; L_result += STEP(39) ;
-
-228 ià(
-L_»suÉ
- >
-L_max
-) {
-
-230
-Nc
- =
-Ïmbda
-;
-
-231
-L_max
- =
-L_»suÉ
-;
-
-235 *
-Nc_out
- =
-Nc
-;
-
-237
-L_max
- <<= 1;
-
-241
- `as£¹
-(
-sÿl
- <= 100 && scal >= -100);
-
-242
-L_max
- = L_max >> (6 -
-sÿl
-);
-
-244
- `as£¹
-Nc
- <= 120 && Nc >= 40);
-
-249
-L_pow”
- = 0;
-
-250 
-k
- = 0; k <= 39; k++) {
-
-252 
-lÚgwÜd
-
-L_‹mp
-;
-
-254
-L_‹mp
- =
- `SASR_W
-dp
-[
-k
- -
-Nc
-], 3 );
-
-255
-L_pow”
- +ð
-L_‹mp
- * L_temp;
-
-257
-L_pow”
- <<= 1;
-
-262 ià(
-L_max
- <= 0) {
-
-263 *
-bc_out
- = 0;
-
-266 ià(
-L_max
- >ð
-L_pow”
-) {
-
-267 *
-bc_out
- = 3;
-
-271
-‹mp
- =
- `gsm_nÜm
-L_pow”
- );
-
-273
-R
- =
- `SASR_L
-L_max
- <<
-‹mp
-, 16 );
-
-274
-S
- =
- `SASR_L
-L_pow”
- <<
-‹mp
-, 16 );
-
-282 
-bc
- = 0; bø<ð2; bc++èià(
-R
- <ð
- `gsm_muÉ
-(
-S
-,
-gsm_DLB
-[bc])) ;
-
-283 *
-bc_out
- =
-bc
-;
-
-284
- }
-}
-
-288 #ifdef
-LTP_CUT
-
-
-290 
- $Cut_C®cuÏtiÚ_of_the_LTP_·¿m‘”s
- (
-
-291 
-gsm_¡©e
- *
-,
-
-292 
-wÜd
- *
-d
-,
-
-293 
-wÜd
- *
-dp
-,
-
-294
-wÜd
- *
-bc_out
-,
-
-295
-wÜd
- *
-Nc_out
-
-
-298 
-k
-,
-Ïmbda
-;
-
-299
-wÜd
-
-Nc
-,
-bc
-;
-
-300
-wÜd
-
-Ép_cut
-;
-
-302 
-wt_æßt
-[40];
-
-303 
-dp_æßt_ba£
-[120], *
-dp_æßt
- = dp_float_base + 120;
-
-305
-lÚgwÜd
-
-L_max
-,
-L_pow”
-;
-
-306
-wÜd
-
-R
-,
-S
-,
-dmax
-,
-sÿl
-;
-
-307 
-wÜd
-
-‹mp
-;
-
-311
-dmax
- = 0;
-
-313 
-k
- = 0; k <= 39; k++) {
-
-314
-‹mp
- =
-d
-[
-k
-];
-
-315
-‹mp
- =
- `GSM_ABS
-(emp );
-
-316 ià(
-‹mp
- >
-dmax
-) dmax =emp;
-
-319
-‹mp
- = 0;
-
-320 ià(
-dmax
- =ð0è
-sÿl
- = 0;
-
-322
- `as£¹
-(
-dmax
- > 0);
-
-323
-‹mp
- =
- `gsm_nÜm
-Ð(
-lÚgwÜd
-)
-dmax
- << 16 );
-
-326 ià(
-‹mp
- > 6è
-sÿl
- = 0;
-
-327
-sÿl
- = 6 -
-‹mp
-;
-
-329
- `as£¹
-(
-sÿl
- >= 0);
-
-330
-Ép_cut
- = (
-lÚgwÜd
-)
- `SASR_W
-(
-dmax
-,
-sÿl
-è*
-->ltp_cut / 100;
-
-336 
-k
- = 0; k < 40; k++) {
-
-337 
-wÜd
-
-w
- =
- `SASR_W
-d
-[
-k
-],
-sÿl
- );
-
-338 ià(
-w
- < 0 ? w > -
-Ép_cut
- : w <†tp_cut) {
-
-339
-wt_æßt
-[
-k
-] = 0.0;
-
-342
-wt_æßt
-[
-k
-] =
-w
-;
-
-345 
-k
- = -120; k < 0; k++è
-dp_æßt
-[k] =
-dp
-[k];
-
-349
-L_max
- = 0;
-
-350
-Nc
- = 40;
-
-352 
-Ïmbda
- = 40;†ambda <= 120;†ambda += 9) {
-
-356 *
- =
-dp_æßt
- -
-Ïmbda
-;
-
-358 
-W
-;
-
-359 
-a
- =
-[-8],
-b
- =†p[-7],
-c
- =†p[-6],
-
-360
-d
- =
-[-5],
-e
- =†p[-4],
-f
- =†p[-3],
-
-361
-g
- =
-[-2],
-h
- =†p[-1];
-
-362 
-E
-;
-
-363 
-S0
- = 0,
-S1
- = 0,
-S2
- = 0,
-S3
- = 0,
-S4
- = 0,
-
-364
-S5
- = 0,
-S6
- = 0,
-S7
- = 0,
-S8
- = 0;
-
-366 #undeà
-STEP
-
-
-367 
- #STEP
-(
-K
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-) \
-
-368 ià((
-W
- =
-wt_æßt
-[
-K
-]) != 0.0) { \
-
-369
-E
- =
-W
- *
-a
-;
-S8
- += E; \
-
-370
-E
- =
-W
- *
-b
-;
-S7
- += E; \
-
-371
-E
- =
-W
- *
-c
-;
-S6
- += E; \
-
-372
-E
- =
-W
- *
-d
-;
-S5
- += E; \
-
-373
-E
- =
-W
- *
-e
-;
-S4
- += E; \
-
-374
-E
- =
-W
- *
-f
-;
-S3
- += E; \
-
-375
-E
- =
-W
- *
-g
-;
-S2
- += E; \
-
-376
-E
- =
-W
- *
-h
-;
-S1
- += E; \
-
-377
-a
- =
-[
-K
-]; \
-
-378
-E
- =
-W
- *
-a
-;
-S0
- +ðE; } × =
-[
-K
-])
-
- )
-
-380 
- #STEP_A
-(
-K
- `STEP
-(K,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-)
-
- )
-
-381 
- #STEP_B
-(
-K
- `STEP
-(K,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-)
-
- )
-
-382 
- #STEP_C
-(
-K
- `STEP
-(K,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-)
-
- )
-
-383 
- #STEP_D
-(
-K
- `STEP
-(K,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-)
-
- )
-
-384 
- #STEP_E
-(
-K
- `STEP
-(K,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-)
-
- )
-
-385 
- #STEP_F
-(
-K
- `STEP
-(K,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-)
-
- )
-
-386 
- #STEP_G
-(
-K
- `STEP
-(K,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-)
-
- )
-
-387 
- #STEP_H
-(
-K
- `STEP
-(K,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-)
-
- )
-
-389
- `STEP_A
-Ð0);
- `STEP_B
-Ð1);
- `STEP_C
-Ð2);
- `STEP_D
-( 3);
-
-390
- `STEP_E
-Ð4);
- `STEP_F
-Ð5);
- `STEP_G
-Ð6);
- `STEP_H
-( 7);
-
-392
- `STEP_A
-Ð8);
- `STEP_B
-Ð9);
- `STEP_C
-(10);
- `STEP_D
-(11);
-
-393
- `STEP_E
-(12);
- `STEP_F
-(13);
- `STEP_G
-(14);
- `STEP_H
-(15);
-
-395
- `STEP_A
-(16);
- `STEP_B
-(17);
- `STEP_C
-(18);
- `STEP_D
-(19);
-
-396
- `STEP_E
-(20);
- `STEP_F
-(21);
- `STEP_G
-(22);
- `STEP_H
-(23);
-
-398
- `STEP_A
-(24);
- `STEP_B
-(25);
- `STEP_C
-(26);
- `STEP_D
-(27);
-
-399
- `STEP_E
-(28);
- `STEP_F
-(29);
- `STEP_G
-(30);
- `STEP_H
-(31);
-
-401
- `STEP_A
-(32);
- `STEP_B
-(33);
- `STEP_C
-(34);
- `STEP_D
-(35);
-
-402
- `STEP_E
-(36);
- `STEP_F
-(37);
- `STEP_G
-(38);
- `STEP_H
-(39);
-
-404 ià(
-S0
- >
-L_max
-è{ L_max = S0;
-Nc
- =
-Ïmbda
-; }
-
-405 ià(
-S1
- >
-L_max
-è{ L_max = S1;
-Nc
- =
-Ïmbda
- + 1; }
-
-406 ià(
-S2
- >
-L_max
-è{ L_max = S2;
-Nc
- =
-Ïmbda
- + 2; }
-
-407 ià(
-S3
- >
-L_max
-è{ L_max = S3;
-Nc
- =
-Ïmbda
- + 3; }
-
-408 ià(
-S4
- >
-L_max
-è{ L_max = S4;
-Nc
- =
-Ïmbda
- + 4; }
-
-409 ià(
-S5
- >
-L_max
-è{ L_max = S5;
-Nc
- =
-Ïmbda
- + 5; }
-
-410 ià(
-S6
- >
-L_max
-è{ L_max = S6;
-Nc
- =
-Ïmbda
- + 6; }
-
-411 ià(
-S7
- >
-L_max
-è{ L_max = S7;
-Nc
- =
-Ïmbda
- + 7; }
-
-412 ià(
-S8
- >
-L_max
-è{ L_max = S8;
-Nc
- =
-Ïmbda
- + 8; }
-
-415 *
-Nc_out
- =
-Nc
-;
-
-417
-L_max
- <<= 1;
-
-421
- `as£¹
-(
-sÿl
- <= 100 && scal >= -100);
-
-422
-L_max
- = L_max >> (6 -
-sÿl
-);
-
-424
- `as£¹
-Nc
- <= 120 && Nc >= 40);
-
-429
-L_pow”
- = 0;
-
-430 
-k
- = 0; k <= 39; k++) {
-
-432 
-lÚgwÜd
-
-L_‹mp
-;
-
-434
-L_‹mp
- =
- `SASR_W
-dp
-[
-k
- -
-Nc
-], 3 );
-
-435
-L_pow”
- +ð
-L_‹mp
- * L_temp;
-
-437
-L_pow”
- <<= 1;
-
-442 ià(
-L_max
- <= 0) {
-
-443 *
-bc_out
- = 0;
-
-446 ià(
-L_max
- >ð
-L_pow”
-) {
-
-447 *
-bc_out
- = 3;
-
-451
-‹mp
- =
- `gsm_nÜm
-L_pow”
- );
-
-453
-R
- =
- `SASR
-L_max
- <<
-‹mp
-, 16 );
-
-454
-S
- =
- `SASR
-L_pow”
- <<
-‹mp
-, 16 );
-
-462 
-bc
- = 0; bø<ð2; bc++èià(
-R
- <ð
- `gsm_muÉ
-(
-S
-,
-gsm_DLB
-[bc])) ;
-
-463 *
-bc_out
- =
-bc
-;
-
-464
- }
-}
-
-468 
- $C®cuÏtiÚ_of_the_LTP_·¿m‘”s
- (
-
-469 
-wÜd
- *
-dš
-,
-
-470 
-wÜd
- *
-dp
-,
-
-471
-wÜd
- *
-bc_out
-,
-
-472
-wÜd
- *
-Nc_out
-
-
-475 
-k
-,
-Ïmbda
-;
-
-476
-wÜd
-
-Nc
-,
-bc
-;
-
-478 
-wt_æßt
-[40];
-
-479 
-dp_æßt_ba£
-[120], *
-dp_æßt
- = dp_float_base + 120;
-
-481
-lÚgwÜd
-
-L_max
-,
-L_pow”
-;
-
-482
-wÜd
-
-R
-,
-S
-,
-dmax
-,
-sÿl
-;
-
-483 
-wÜd
-
-‹mp
-;
-
-487
-dmax
- = 0;
-
-489 
-k
- = 0; k <= 39; k++) {
-
-490
-‹mp
- =
-dš
- [
-k
-] ;
-
-491
-‹mp
- =
- `GSM_ABS
- (temp) ;
-
-492 ià(
-‹mp
- >
-dmax
-) dmax =emp;
-
-495
-‹mp
- = 0;
-
-496 ià(
-dmax
- =ð0è
-sÿl
- = 0;
-
-498
- `as£¹
-(
-dmax
- > 0);
-
-499
-‹mp
- =
- `gsm_nÜm
-Ð(
-lÚgwÜd
-)
-dmax
- << 16 );
-
-502 ià(
-‹mp
- > 6è
-sÿl
- = 0;
-
-503
-sÿl
- = 6 -
-‹mp
-;
-
-505
- `as£¹
-(
-sÿl
- >= 0);
-
-510 
-k
- = 0; k < 40; k++è
-wt_æßt
-[k] =
- `SASR_W
- (
-dš
- [k],
-sÿl
-) ;
-
-511 
-k
- = -120; k < 0; k++è
-dp_æßt
-[k] =
-dp
-[k];
-
-515
-L_max
- = 0;
-
-516
-Nc
- = 40;
-
-518 
-Ïmbda
- = 40;†ambda <= 120;†ambda += 9) {
-
-522 *
- =
-dp_æßt
- -
-Ïmbda
-;
-
-524 
-W
-;
-
-525 
-a
- =
-[-8],
-b
- =†p[-7],
-c
- =†p[-6],
-
-526
-d
- =
-[-5],
-e
- =†p[-4],
-f
- =†p[-3],
-
-527
-g
- =
-[-2],
-h
- =†p[-1];
-
-528 
-E
-;
-
-529 
-S0
- = 0,
-S1
- = 0,
-S2
- = 0,
-S3
- = 0,
-S4
- = 0,
-
-530
-S5
- = 0,
-S6
- = 0,
-S7
- = 0,
-S8
- = 0;
-
-532 #undeà
-STEP
-
-
-533 
- #STEP
-(
-K
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-) \
-
-534
-W
- =
-wt_æßt
-[
-K
-]; \
-
-535
-E
- =
-W
- *
-a
-;
-S8
- += E; \
-
-536
-E
- =
-W
- *
-b
-;
-S7
- += E; \
-
-537
-E
- =
-W
- *
-c
-;
-S6
- += E; \
-
-538
-E
- =
-W
- *
-d
-;
-S5
- += E; \
-
-539
-E
- =
-W
- *
-e
-;
-S4
- += E; \
-
-540
-E
- =
-W
- *
-f
-;
-S3
- += E; \
-
-541
-E
- =
-W
- *
-g
-;
-S2
- += E; \
-
-542
-E
- =
-W
- *
-h
-;
-S1
- += E; \
-
-543
-a
- =
-[
-K
-]; \
-
-544
-E
- =
-W
- *
-a
-;
-S0
- +ð
- )
-E
-
-546 
- #STEP_A
-(
-K
- `STEP
-(K,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-)
-
- )
-
-547 
- #STEP_B
-(
-K
- `STEP
-(K,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-)
-
- )
-
-548 
- #STEP_C
-(
-K
- `STEP
-(K,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-)
-
- )
-
-549 
- #STEP_D
-(
-K
- `STEP
-(K,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-)
-
- )
-
-550 
- #STEP_E
-(
-K
- `STEP
-(K,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-)
-
- )
-
-551 
- #STEP_F
-(
-K
- `STEP
-(K,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-)
-
- )
-
-552 
- #STEP_G
-(
-K
- `STEP
-(K,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-)
-
- )
-
-553 
- #STEP_H
-(
-K
- `STEP
-(K,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-)
-
- )
-
-555
- `STEP_A
-Ð0);
- `STEP_B
-Ð1);
- `STEP_C
-Ð2);
- `STEP_D
-( 3);
-
-556
- `STEP_E
-Ð4);
- `STEP_F
-Ð5);
- `STEP_G
-Ð6);
- `STEP_H
-( 7);
-
-558
- `STEP_A
-Ð8);
- `STEP_B
-Ð9);
- `STEP_C
-(10);
- `STEP_D
-(11);
-
-559
- `STEP_E
-(12);
- `STEP_F
-(13);
- `STEP_G
-(14);
- `STEP_H
-(15);
-
-561
- `STEP_A
-(16);
- `STEP_B
-(17);
- `STEP_C
-(18);
- `STEP_D
-(19);
-
-562
- `STEP_E
-(20);
- `STEP_F
-(21);
- `STEP_G
-(22);
- `STEP_H
-(23);
-
-564
- `STEP_A
-(24);
- `STEP_B
-(25);
- `STEP_C
-(26);
- `STEP_D
-(27);
-
-565
- `STEP_E
-(28);
- `STEP_F
-(29);
- `STEP_G
-(30);
- `STEP_H
-(31);
-
-567
- `STEP_A
-(32);
- `STEP_B
-(33);
- `STEP_C
-(34);
- `STEP_D
-(35);
-
-568
- `STEP_E
-(36);
- `STEP_F
-(37);
- `STEP_G
-(38);
- `STEP_H
-(39);
-
-570 ià(
-S0
- >
-L_max
-è{ L_max = S0;
-Nc
- =
-Ïmbda
-; }
-
-571 ià(
-S1
- >
-L_max
-è{ L_max = S1;
-Nc
- =
-Ïmbda
- + 1; }
-
-572 ià(
-S2
- >
-L_max
-è{ L_max = S2;
-Nc
- =
-Ïmbda
- + 2; }
-
-573 ià(
-S3
- >
-L_max
-è{ L_max = S3;
-Nc
- =
-Ïmbda
- + 3; }
-
-574 ià(
-S4
- >
-L_max
-è{ L_max = S4;
-Nc
- =
-Ïmbda
- + 4; }
-
-575 ià(
-S5
- >
-L_max
-è{ L_max = S5;
-Nc
- =
-Ïmbda
- + 5; }
-
-576 ià(
-S6
- >
-L_max
-è{ L_max = S6;
-Nc
- =
-Ïmbda
- + 6; }
-
-577 ià(
-S7
- >
-L_max
-è{ L_max = S7;
-Nc
- =
-Ïmbda
- + 7; }
-
-578 ià(
-S8
- >
-L_max
-è{ L_max = S8;
-Nc
- =
-Ïmbda
- + 8; }
-
-580 *
-Nc_out
- =
-Nc
-;
-
-582
-L_max
- <<= 1;
-
-586
- `as£¹
-(
-sÿl
- <= 100 && scal >= -100);
-
-587
-L_max
- = L_max >> (6 -
-sÿl
-);
-
-589
- `as£¹
-Nc
- <= 120 && Nc >= 40);
-
-594
-L_pow”
- = 0;
-
-595 
-k
- = 0; k <= 39; k++) {
-
-597 
-lÚgwÜd
-
-L_‹mp
-;
-
-599
-L_‹mp
- =
- `SASR_W
-dp
-[
-k
- -
-Nc
-], 3 );
-
-600
-L_pow”
- +ð
-L_‹mp
- * L_temp;
-
-602
-L_pow”
- <<= 1;
-
-607 ià(
-L_max
- <= 0) {
-
-608 *
-bc_out
- = 0;
-
-611 ià(
-L_max
- >ð
-L_pow”
-) {
-
-612 *
-bc_out
- = 3;
-
-616
-‹mp
- =
- `gsm_nÜm
-L_pow”
- );
-
-618
-R
- =
- `SASR_L
- (
-L_max
- <<
-‹mp
-, 16 );
-
-619
-S
- =
- `SASR_L
- (
-L_pow”
- <<
-‹mp
-, 16 );
-
-627 
-bc
- = 0; bø<ð2; bc++èià(
-R
- <ð
- `gsm_muÉ
-(
-S
-,
-gsm_DLB
-[bc])) ;
-
-628 *
-bc_out
- =
-bc
-;
-
-629
- }
-}
-
-631 #ifdef
-FAST
-
-
-632 #ifdef
-LTP_CUT
-
-
-634 
- $Cut_Fa¡_C®cuÏtiÚ_of_the_LTP_·¿m‘”s
- (
-
-635 
-gsm_¡©e
- *
-,
-
-636 
-wÜd
- *
-d
-,
-
-637 
-wÜd
- *
-dp
-,
-
-638
-wÜd
- *
-bc_out
-,
-
-639
-wÜd
- *
-Nc_out
-
-
-642 
-k
-,
-Ïmbda
-;
-
-643 
-wt_æßt
-;
-
-644
-wÜd
-
-Nc
-,
-bc
-;
-
-645
-wÜd
-
-wt_max
-,
-be¡_k
-,
-Ép_cut
-;
-
-647 
-dp_æßt_ba£
-[120], *
-dp_æßt
- = dp_float_base + 120;
-
-649 
-L_»suÉ
-,
-L_max
-,
-L_pow”
-;
-
-651
-wt_max
- = 0;
-
-653 
-k
- = 0; k < 40; ++k) {
-
-654 iàÐ
-d
-[
-k
-] >
-wt_max
-èwt_max = d[
-be¡_k
- = k];
-
-655 ià(-
-d
-[
-k
-] >
-wt_max
-èwt_max = -d[
-be¡_k
- = k];
-
-658
- `as£¹
-(
-wt_max
- >= 0);
-
-659
-wt_æßt
- = ()
-wt_max
-;
-
-661 
-k
- = -120; k < 0; ++kè
-dp_æßt
-[k] = ()
-dp
-[k];
-
-665
-L_max
- = 0;
-
-666
-Nc
- = 40;
-
-668 
-Ïmbda
- = 40;†ambda <= 120;†ambda++) {
-
-669
-L_»suÉ
- =
-wt_æßt
- *
-dp_æßt
-[
-be¡_k
- -
-Ïmbda
-];
-
-670 ià(
-L_»suÉ
- >
-L_max
-) {
-
-671
-Nc
- =
-Ïmbda
-;
-
-672
-L_max
- =
-L_»suÉ
-;
-
-676 *
-Nc_out
- =
-Nc
-;
-
-677 ià(
-L_max
- <= 0.) {
-
-678 *
-bc_out
- = 0;
-
-685
-dp_æßt
- -ð
-Nc
-;
-
-686
-L_pow”
- = 0;
-
-687 
-k
- = 0; k < 40; ++k) {
-
-688 
-f
- =
-dp_æßt
-[
-k
-];
-
-689
-L_pow”
- +ð
-f
- * f;
-
-692 ià(
-L_max
- >ð
-L_pow”
-) {
-
-693 *
-bc_out
- = 3;
-
-701
-Ïmbda
- =
-L_max
- /
-L_pow”
- * 32768.;
-
-702 
-bc
- = 0; bø<ð2; ++bcèià(
-Ïmbda
- <ð
-gsm_DLB
-[bc]) ;
-
-703 *
-bc_out
- =
-bc
-;
-
-704
- }
-}
-
-708 
- $Fa¡_C®cuÏtiÚ_of_the_LTP_·¿m‘”s
- (
-
-709 
-wÜd
- *
-dš
-,
-
-710 
-wÜd
- *
-dp
-,
-
-711
-wÜd
- *
-bc_out
-,
-
-712
-wÜd
- *
-Nc_out
-
-
-715 
-k
-,
-Ïmbda
-;
-
-716
-wÜd
-
-Nc
-,
-bc
-;
-
-718 
-wt_æßt
-[40];
-
-719 
-dp_æßt_ba£
-[120], *
-dp_æßt
- = dp_float_base + 120;
-
-721 
-L_max
-,
-L_pow”
-;
-
-723 
-k
- = 0; k < 40; ++kè
-wt_æßt
-[k] = (è
-dš
- [k] ;
-
-724 
-k
- = -120; k < 0; ++kè
-dp_æßt
-[k] = (è
-dp
- [k] ;
-
-728
-L_max
- = 0;
-
-729
-Nc
- = 40;
-
-731 
-Ïmbda
- = 40;†ambda <= 120;†ambda += 9) {
-
-735 *
- =
-dp_æßt
- -
-Ïmbda
-;
-
-737 
-W
-;
-
-738 
-a
- =
-[-8],
-b
- =†p[-7],
-c
- =†p[-6],
-
-739
-d
- =
-[-5],
-e
- =†p[-4],
-f
- =†p[-3],
-
-740
-g
- =
-[-2],
-h
- =†p[-1];
-
-741 
-E
-;
-
-742 
-S0
- = 0,
-S1
- = 0,
-S2
- = 0,
-S3
- = 0,
-S4
- = 0,
-
-743
-S5
- = 0,
-S6
- = 0,
-S7
- = 0,
-S8
- = 0;
-
-745 #undeà
-STEP
-
-
-746 
- #STEP
-(
-K
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-) \
-
-747
-W
- =
-wt_æßt
-[
-K
-]; \
-
-748
-E
- =
-W
- *
-a
-;
-S8
- += E; \
-
-749
-E
- =
-W
- *
-b
-;
-S7
- += E; \
-
-750
-E
- =
-W
- *
-c
-;
-S6
- += E; \
-
-751
-E
- =
-W
- *
-d
-;
-S5
- += E; \
-
-752
-E
- =
-W
- *
-e
-;
-S4
- += E; \
-
-753
-E
- =
-W
- *
-f
-;
-S3
- += E; \
-
-754
-E
- =
-W
- *
-g
-;
-S2
- += E; \
-
-755
-E
- =
-W
- *
-h
-;
-S1
- += E; \
-
-756
-a
- =
-[
-K
-]; \
-
-757
-E
- =
-W
- *
-a
-;
-S0
- +ð
- )
-E
-
-759 
- #STEP_A
-(
-K
- `STEP
-(K,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-)
-
- )
-
-760 
- #STEP_B
-(
-K
- `STEP
-(K,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-)
-
- )
-
-761 
- #STEP_C
-(
-K
- `STEP
-(K,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-)
-
- )
-
-762 
- #STEP_D
-(
-K
- `STEP
-(K,
-d
-,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-)
-
- )
-
-763 
- #STEP_E
-(
-K
- `STEP
-(K,
-e
-,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-)
-
- )
-
-764 
- #STEP_F
-(
-K
- `STEP
-(K,
-f
-,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-)
-
- )
-
-765 
- #STEP_G
-(
-K
- `STEP
-(K,
-g
-,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-)
-
- )
-
-766 
- #STEP_H
-(
-K
- `STEP
-(K,
-h
-,
-a
-,
-b
-,
-c
-,
-d
-,
-e
-,
-f
-,
-g
-)
-
- )
-
-768
- `STEP_A
-Ð0);
- `STEP_B
-Ð1);
- `STEP_C
-Ð2);
- `STEP_D
-( 3);
-
-769
- `STEP_E
-Ð4);
- `STEP_F
-Ð5);
- `STEP_G
-Ð6);
- `STEP_H
-( 7);
-
-771
- `STEP_A
-Ð8);
- `STEP_B
-Ð9);
- `STEP_C
-(10);
- `STEP_D
-(11);
-
-772
- `STEP_E
-(12);
- `STEP_F
-(13);
- `STEP_G
-(14);
- `STEP_H
-(15);
-
-774
- `STEP_A
-(16);
- `STEP_B
-(17);
- `STEP_C
-(18);
- `STEP_D
-(19);
-
-775
- `STEP_E
-(20);
- `STEP_F
-(21);
- `STEP_G
-(22);
- `STEP_H
-(23);
-
-777
- `STEP_A
-(24);
- `STEP_B
-(25);
- `STEP_C
-(26);
- `STEP_D
-(27);
-
-778
- `STEP_E
-(28);
- `STEP_F
-(29);
- `STEP_G
-(30);
- `STEP_H
-(31);
-
-780
- `STEP_A
-(32);
- `STEP_B
-(33);
- `STEP_C
-(34);
- `STEP_D
-(35);
-
-781
- `STEP_E
-(36);
- `STEP_F
-(37);
- `STEP_G
-(38);
- `STEP_H
-(39);
-
-783 ià(
-S0
- >
-L_max
-è{ L_max = S0;
-Nc
- =
-Ïmbda
-; }
-
-784 ià(
-S1
- >
-L_max
-è{ L_max = S1;
-Nc
- =
-Ïmbda
- + 1; }
-
-785 ià(
-S2
- >
-L_max
-è{ L_max = S2;
-Nc
- =
-Ïmbda
- + 2; }
-
-786 ià(
-S3
- >
-L_max
-è{ L_max = S3;
-Nc
- =
-Ïmbda
- + 3; }
-
-787 ià(
-S4
- >
-L_max
-è{ L_max = S4;
-Nc
- =
-Ïmbda
- + 4; }
-
-788 ià(
-S5
- >
-L_max
-è{ L_max = S5;
-Nc
- =
-Ïmbda
- + 5; }
-
-789 ià(
-S6
- >
-L_max
-è{ L_max = S6;
-Nc
- =
-Ïmbda
- + 6; }
-
-790 ià(
-S7
- >
-L_max
-è{ L_max = S7;
-Nc
- =
-Ïmbda
- + 7; }
-
-791 ià(
-S8
- >
-L_max
-è{ L_max = S8;
-Nc
- =
-Ïmbda
- + 8; }
-
-793 *
-Nc_out
- =
-Nc
-;
-
-795 ià(
-L_max
- <= 0.) {
-
-796 *
-bc_out
- = 0;
-
-803
-dp_æßt
- -ð
-Nc
-;
-
-804
-L_pow”
- = 0;
-
-805 
-k
- = 0; k < 40; ++k) {
-
-806 
-f
- =
-dp_æßt
-[
-k
-];
-
-807
-L_pow”
- +ð
-f
- * f;
-
-810 ià(
-L_max
- >ð
-L_pow”
-) {
-
-811 *
-bc_out
- = 3;
-
-819
-Ïmbda
- =
-L_max
- /
-L_pow”
- * 32768.;
-
-820 
-bc
- = 0; bø<ð2; ++bcèià(
-Ïmbda
- <ð
-gsm_DLB
-[bc]) ;
-
-821 *
-bc_out
- =
-bc
-;
-
-822
- }
-}
-
-830 
- $LÚg_‹rm_ª®ysis_fž‹ršg
- (
-
-831
-wÜd
-
-bc
-,
-
-832
-wÜd
-
-Nc
-,
-
-833 
-wÜd
- *
-dp
-,
-
-834 
-wÜd
- *
-d
-,
-
-835 
-wÜd
- *
-dµ
-,
-
-836 
-wÜd
- *
-e
-
-
-845 
-k
-;
-
-847 #undeà
-STEP
-
-
-848 
- #STEP
-(
-BP
-) \
-
-849 
-k
- = 0; k <= 39; k++) { \
-
-850
-dµ
-[
-k
-] =
- `GSM_MULT_R
-BP
-,
-dp
-[k -
-Nc
-]); \
-
-851
-e
-[
-k
-] =
- `GSM_SUB
-d
-[k],
-dµ
-[k] ); \
-
-852 }
-
- )
-
-854 
-bc
-) {
-
-855 0:
- `STEP
-( 3277 ); ;
-
-856 1:
- `STEP
-( 11469 ); ;
-
-857 2:
- `STEP
-( 21299 ); ;
-
-858 3:
- `STEP
-( 32767 ); ;
-
-860
- }
-}
-
-862 
- $Gsm_LÚg_T”m_P»diùÜ
- (
-
-864 
-gsm_¡©e
- *
-S
-,
-
-866
-wÜd
- *
-d
-,
-
-867
-wÜd
- *
-dp
-,
-
-869
-wÜd
- *
-e
-,
-
-870
-wÜd
- *
-dµ
-,
-
-871
-wÜd
- *
-Nc
-,
-
-872
-wÜd
- *
-bc
-
-
-875
- `as£¹
-d
- );‡s£¹Ð
-dp
- );‡s£¹Ð
-e
- );
-
-876
- `as£¹
-dµ
-);‡s£¹Ð
-Nc
- );‡s£¹Ð
-bc
- );
-
-878 #ià
- `defšed
-(
-FAST
-è&& defšed(
-USE_FLOAT_MUL
-)
-
-879 ià(
-S
-->
-ç¡
-)
-
-880 #ià
- `defšed
- (
-LTP_CUT
-)
-
-881 ià(
-S
-->
-Ép_cut
-)
-
-882
- `Cut_Fa¡_C®cuÏtiÚ_of_the_LTP_·¿m‘”s
-(
-S
-,
-
-883
-d
-,
-dp
-,
-bc
-,
-Nc
-);
-
-886
- `Fa¡_C®cuÏtiÚ_of_the_LTP_·¿m‘”s
-(
-d
-,
-dp
-,
-bc
-,
-Nc
- );
-
-889 #ifdeà
-LTP_CUT
-
-
-890 ià(
-S
-->
-Ép_cut
-)
-
-891
- `Cut_C®cuÏtiÚ_of_the_LTP_·¿m‘”s
-(
-S
-,
-d
-,
-dp
-,
-bc
-,
-Nc
-);
-
-894
- `C®cuÏtiÚ_of_the_LTP_·¿m‘”s
-(
-d
-,
-dp
-,
-bc
-,
-Nc
-);
-
-896
- `LÚg_‹rm_ª®ysis_fž‹ršg
-Ð*
-bc
-, *
-Nc
-,
-dp
-,
-d
-,
-dµ
-,
-e
- );
-
-897
- }
-}
-
-900 
- $Gsm_LÚg_T”m_SyÁhesis_Fž‹ršg
- (
-
-901 
-gsm_¡©e
- *
-S
-,
-
-903
-wÜd
-
-Nü
-,
-
-904
-wÜd
-
-bü
-,
-
-905 
-wÜd
- *
-”p
-,
-
-906 
-wÜd
- *
-d½
-
-
-914 
-k
-;
-
-915
-wÜd
-
-b½
-,
-d½p
-,
-Nr
-;
-
-919
-Nr
- =
-Nü
- < 40 || Nü > 120 ?
-S
-->
-Äp
- : Ncr;
-
-920
-S
-->
-Äp
- =
-Nr
-;
-
-921
- `as£¹
-(
-Nr
- >= 40 && Nr <= 120);
-
-925
-b½
- =
-gsm_QLB
-[
-bü
- ];
-
-930
- `as£¹
-(
-b½
- !ð
-MIN_WORD
-);
-
-932 
-k
- = 0; k <= 39; k++) {
-
-933
-d½p
- =
- `GSM_MULT_R
-b½
-,
-d½
-[
-k
- -
-Nr
- ] );
-
-934
-d½
-[
-k
-] =
- `GSM_ADD
-”p
-[k],
-d½p
- );
-
-942 
-k
- = 0; k <ð119; k++è
-d½
-[ -120 + k ] = drp[ -80 + k ];
-
-943
- }
-}
-
- @lpc.c
-
-7 
- ~<¡dio.h
->
-
-8 
- ~<as£¹.h
->
-
-10 
- ~"gsm610_´iv.h
-"
-
-12 
- ~"gsm.h
-"
-
-21 
- $AutocÜ»ÏtiÚ
- (
-
-22
-wÜd
- *
-s
-,
-
-23
-lÚgwÜd
- *
-L_ACF
-)
-
-29 
-k
-,
-i
-;
-
-31
-wÜd
-
-‹mp
-,
-smax
-,
-sÿÏuto
-;
-
-33 #ifdef
-USE_FLOAT_MUL
-
-
-34 
-æßt_s
-[160];
-
-42
-smax
- = 0;
-
-43 
-k
- = 0; k <= 159; k++) {
-
-44
-‹mp
- =
- `GSM_ABS
-s
-[
-k
-] );
-
-45 ià(
-‹mp
- >
-smax
-) smax =emp;
-
-50 ià(
-smax
- =ð0è
-sÿÏuto
- = 0;
-
-52
- `as£¹
-(
-smax
- > 0);
-
-53
-sÿÏuto
- = 4 -
- `gsm_nÜm
-Ð(
-lÚgwÜd
-)
-smax
- << 16 );
-
-59 ià(
-sÿÏuto
- > 0) {
-
-61 #ifdeà
-USE_FLOAT_MUL
-
-
-62 
- #SCALE
-(
-n
-) \
-
-63 
-n
-: 
-k
- = 0; k <= 159; k++) \
-
-64
-æßt_s
-[
-k
-] = () \
-
-65 (
-s
-[
-k
-] =
- `GSM_MULT_R
-(s[k], 16384 >> (
-n
--1)));\
-
-66 ;
-
- )
-
-68 
- #SCALE
-(
-n
-) \
-
-69 
-n
-: 
-k
- = 0; k <= 159; k++) \
-
-70
-s
-[
-k
-] =
- `GSM_MULT_R
-Ðs[k], 16384 >> (
-n
--1) );\
-
-71 ;
-
- )
-
-74 
-sÿÏuto
-) {
-
-75
- `SCALE
-(1)
-
-76
- `SCALE
-(2)
-
-77
- `SCALE
-(3)
-
-78
- `SCALE
-(4)
-
-80 #undeà
-SCALE
-
-
-82 #ifdef
-USE_FLOAT_MUL
-
-
-83 
-k
- = 0; k <ð159; k++è
-æßt_s
-[k] = (è
-s
-[k];
-
-89 #ifdef
-USE_FLOAT_MUL
-
-
-90 *
- =
-æßt_s
-;
-
-91 
- = *
-;
-
-93 
- #STEP
-(
-k
-L_ACF
-[k] +ð(
-lÚgwÜd
-)(
- *
-[ -(kè]);
-
- )
-
-95
-wÜd
- *
- =
-s
-;
-
-96
-wÜd
-
- = *
-;
-
-98 
- #STEP
-(
-k
-L_ACF
-[k] +ð((
-lÚgwÜd
-)
- *
-[ -(kè]);
-
- )
-
-101 
- #NEXTI
-
- = *++
-
-
- )
-
-104 
-k
- = 9; k--;
-L_ACF
-[k] = 0) ;
-
-106
- `STEP
- (0);
-
-107
-NEXTI
-;
-
-108
- `STEP
-(0); STEP(1);
-
-109
-NEXTI
-;
-
-110
- `STEP
-(0); STEP(1); STEP(2);
-
-111
-NEXTI
-;
-
-112
- `STEP
-(0); STEP(1); STEP(2); STEP(3);
-
-113
-NEXTI
-;
-
-114
- `STEP
-(0); STEP(1); STEP(2); STEP(3); STEP(4);
-
-115
-NEXTI
-;
-
-116
- `STEP
-(0); STEP(1); STEP(2); STEP(3); STEP(4); STEP(5);
-
-117
-NEXTI
-;
-
-118
- `STEP
-(0); STEP(1); STEP(2); STEP(3); STEP(4); STEP(5); STEP(6);
-
-119
-NEXTI
-;
-
-120
- `STEP
-(0); STEP(1); STEP(2); STEP(3); STEP(4); STEP(5); STEP(6); STEP(7);
-
-122 
-i
- = 8; i <= 159; i++) {
-
-124
-NEXTI
-;
-
-126
- `STEP
-(0);
-
-127
- `STEP
-(1); STEP(2); STEP(3); STEP(4);
-
-128
- `STEP
-(5); STEP(6); STEP(7); STEP(8);
-
-131 
-k
- = 9; k--;
-L_ACF
-[k] <<= 1) ;
-
-136 ià(
-sÿÏuto
- > 0) {
-
-137
- `as£¹
-(
-sÿÏuto
- <= 4);
-
-138 
-k
- = 160; k--; *
-s
-++ <<ð
-sÿÏuto
-) ;
-
-140
- }
-}
-
-142 #ià
-defšed
-(
-USE_FLOAT_MUL
-è&& defšed(
-FAST
-)
-
-144 
- $Fa¡_AutocÜ»ÏtiÚ
- (
-
-145
-wÜd
- *
-s
-,
-
-146
-lÚgwÜd
- *
-L_ACF
-)
-
-148 
-k
-,
-i
-;
-
-149 
-f_L_ACF
-[9];
-
-150 
-sÿË
-;
-
-152 
-s_f
-[160];
-
-153 *
-sf
- =
-s_f
-;
-
-155 
-i
- = 0; i < 160; ++iè
-sf
-[i] =
-s
-[i];
-
-156 
-k
- = 0; k <= 8; k++) {
-
-157 
-L_‹mp2
- = 0;
-
-158 *
-sæ
- =
-sf
- -
-k
-;
-
-159 
-i
- =
-k
-; i < 160; ++iè
-L_‹mp2
- +ð
-sf
-[i] *
-sæ
-[i];
-
-160
-f_L_ACF
-[
-k
-] =
-L_‹mp2
-;
-
-162
-sÿË
- =
-MAX_LONGWORD
- /
-f_L_ACF
-[0];
-
-164 
-k
- = 0; k <= 8; k++) {
-
-165
-L_ACF
-[
-k
-] =
-f_L_ACF
-[k] *
-sÿË
-;
-
-167
- }
-}
-
-172 
- $ReæeùiÚ_cÛffic›Ás
- (
-
-173
-lÚgwÜd
- *
-L_ACF
-,
-
-174 
-wÜd
- *
-r
-
-
-177 
-i
-,
-m
-,
-n
-;
-
-178 
-wÜd
-
-‹mp
-;
-
-179
-wÜd
-
-ACF
-[9];
-
-180
-wÜd
-
-P
-[ 9];
-
-181
-wÜd
-
-K
-[ 9];
-
-186 ià(
-L_ACF
-[0] == 0) {
-
-187 
-i
- = 8; i--; *
-r
-++ = 0) ;
-
-191
- `as£¹
-L_ACF
-[0] != 0 );
-
-192
-‹mp
- =
- `gsm_nÜm
-L_ACF
-[0] );
-
-194
- `as£¹
-(
-‹mp
- >= 0 &&emp < 32);
-
-197 
-i
- = 0; i <ð8; i++è
-ACF
-[i] =
- `SASR_L
-L_ACF
-[i] <<
-‹mp
-, 16 );
-
-202 
-i
- = 1; i <ð7; i++è
-K
-[ i ] =
-ACF
-[ i ];
-
-203 
-i
- = 0; i <ð8; i++è
-P
-[ i ] =
-ACF
-[ i ];
-
-207 
-n
- = 1;‚ <ð8;‚++,
-r
-++) {
-
-209
-‹mp
- =
-P
-[1];
-
-210
-‹mp
- =
- `GSM_ABS
-(temp);
-
-211 ià(
-P
-[0] <
-‹mp
-) {
-
-212 
-i
- =
-n
-; i <ð8; i++è*
-r
-++ = 0;
-
-216 *
-r
- =
- `gsm_div
-‹mp
-,
-P
-[0] );
-
-218
- `as£¹
-(*
-r
- >= 0);
-
-219 ià(
-P
-[1] > 0è*
-r
- = -*r;
-
-220
- `as£¹
- (*
-r
- !ð
-MIN_WORD
-);
-
-221 ià(
-n
- == 8) ;
-
-225
-‹mp
- =
- `GSM_MULT_R
-P
-[1], *
-r
- );
-
-226
-P
-[0] =
- `GSM_ADD
-ÐP[0],
-‹mp
- );
-
-228 
-m
- = 1; m <ð8 -
-n
-; m++) {
-
-229
-‹mp
- =
- `GSM_MULT_R
-K
-[
-m
- ], *
-r
- );
-
-230
-P
-[
-m
-] =
- `GSM_ADD
-ÐP[ m+1 ],
-‹mp
- );
-
-232
-‹mp
- =
- `GSM_MULT_R
-P
-[
-m
-+1 ], *
-r
- );
-
-233
-K
-[
-m
-] =
- `GSM_ADD
-ÐK[ m ],
-‹mp
- );
-
-236
- }
-}
-
-240 
- $T¿nsfÜm©iÚ_to_Log_A»a_R©ios
- (
-
-241 
-wÜd
- *
-r
-
-
-251 
-wÜd
-
-‹mp
-;
-
-252 
-i
-;
-
-257 
-i
- = 1; i <ð8; i++,
-r
-++) {
-
-259
-‹mp
- = *
-r
-;
-
-260
-‹mp
- =
- `GSM_ABS
-(temp);
-
-261
- `as£¹
-(
-‹mp
- >= 0);
-
-263 ià(
-‹mp
- < 22118) {
-
-264
-‹mp
- >>= 1;
-
-265 } ià(
-‹mp
- < 31130) {
-
-266
- `as£¹
-‹mp
- >= 11059 );
-
-267
-‹mp
- -= 11059;
-
-269
- `as£¹
-‹mp
- >= 26112 );
-
-270
-‹mp
- -= 26112;
-
-271
-‹mp
- <<= 2;
-
-274 *
-r
- = *¸< 0 ? -
-‹mp
- :emp;
-
-275
- `as£¹
-Ð*
-r
- !ð
-MIN_WORD
- );
-
-277
- }
-}
-
-281 
- $Quªtiz©iÚ_ªd_codšg
- (
-
-282 
-wÜd
- *
-LAR
-
-
-285 
-wÜd
-
-‹mp
-;
-
-296 #undeà
-STEP
-
-
-297 
- #STEP
-A
-,
-B
-,
-MAC
-,
-MIC
- ) \
-
-298
-‹mp
- =
- `GSM_MULT
-A
-, *
-LAR
- ); \
-
-299
-‹mp
- =
- `GSM_ADD
-Ћmp,
-B
- ); \
-
-300
-‹mp
- =
- `GSM_ADD
-(emp, 256 ); \
-
-301
-‹mp
- =
- `SASR_W
-(emp, 9 ); \
-
-302 *
-LAR
- =
-‹mp
->
-MAC
- ? MAC -
-MIC
- : (temp<MIC ? 0 :emp - MIC); \
-
-303
-LAR
-++;
-
- )
-
-305
- `STEP
-( 20480, 0, 31, -32 );
-
-306
- `STEP
-( 20480, 0, 31, -32 );
-
-307
- `STEP
-( 20480, 2048, 15, -16 );
-
-308
- `STEP
-( 20480, -2560, 15, -16 );
-
-310
- `STEP
-( 13964, 94, 7, -8 );
-
-311
- `STEP
-( 15360, -1792, 7, -8 );
-
-312
- `STEP
-( 8534, -341, 3, -4 );
-
-313
- `STEP
-( 9036, -1144, 3, -4 );
-
-315 #undeà
-STEP
-
-
-316
- }
-}
-
-318 
- $Gsm_LPC_AÇlysis
- (
-
-319 
-gsm_¡©e
- *
-S
-,
-
-320
-wÜd
- *
-s
-,
-
-321
-wÜd
- *
-LARc
-)
-
-323
-lÚgwÜd
-
-L_ACF
-[9];
-
-325 #ià
- `defšed
-(
-USE_FLOAT_MUL
-è&& defšed(
-FAST
-)
-
-326 ià(
-S
-->
-ç¡
- `Fa¡_AutocÜ»ÏtiÚ
- (
-s
-,
-L_ACF
- );
-
-329
- `AutocÜ»ÏtiÚ
- (
-s
-,
-L_ACF
- );
-
-330
- `ReæeùiÚ_cÛffic›Ás
- (
-L_ACF
-,
-LARc
- );
-
-331
- `T¿nsfÜm©iÚ_to_Log_A»a_R©ios
- (
-LARc
-);
-
-332
- `Quªtiz©iÚ_ªd_codšg
- (
-LARc
-);
-
-333
- }
-}
-
- @preprocess.c
-
-7 
- ~<¡dio.h
->
-
-8 
- ~<as£¹.h
->
-
-10 
- ~"gsm610_´iv.h
-"
-
-12 
- ~"gsm.h
-"
-
-31 
- $Gsm_P»´oûss
- (
-
-32 
-gsm_¡©e
- *
-S
-,
-
-33
-wÜd
- *
-s
-,
-
-34
-wÜd
- *
-so
- )
-
-37
-wÜd
-
-z1
- =
-S
-->z1;
-
-38
-lÚgwÜd
-
-L_z2
- =
-S
-->L_z2;
-
-39
-wÜd
-
-mp
- =
-S
-->mp;
-
-41
-wÜd
-
-s1
-;
-
-42
-lÚgwÜd
-
-L_s2
-;
-
-44
-lÚgwÜd
-
-L_‹mp
-;
-
-46
-wÜd
-
-m¥
-,
-l¥
-;
-
-47
-wÜd
-
-SO
-;
-
-49 
-k
- = 160;
-
-51 
-k
---) {
-
-55
-SO
- =
- `SASR_W
-Ð*
-s
-, 3 ) << 2;
-
-56
-s
-++;
-
-58
- `as£¹
- (
-SO
- >= -0x4000);
-
-59
- `as£¹
- (
-SO
- <= 0x3FFC);
-
-72
-s1
- =
-SO
- -
-z1
-;
-
-73
-z1
- =
-SO
-;
-
-75
- `as£¹
-(
-s1
- !ð
-MIN_WORD
-);
-
-79
-L_s2
- =
-s1
-;
-
-80
-L_s2
- <<= 15;
-
-85
-m¥
- =
- `SASR_L
-L_z2
-, 15 );
-
-86
-l¥
- =
-L_z2
--((
-lÚgwÜd
-)
-m¥
-<<15);
-
-88
-L_s2
- +ð
- `GSM_MULT_R
-l¥
-, 32735 );
-
-89
-L_‹mp
- = (
-lÚgwÜd
-)
-m¥
- * 32735;
-
-90
-L_z2
- =
- `GSM_L_ADD
-L_‹mp
-,
-L_s2
- );
-
-94
-L_‹mp
- =
- `GSM_L_ADD
-L_z2
-, 16384 );
-
-99
-m¥
- =
- `GSM_MULT_R
-mp
-, -28180 );
-
-100
-mp
- =
- `SASR_L
-L_‹mp
-, 15 );
-
-101 *
-so
-++ =
- `GSM_ADD
-mp
-,
-m¥
- );
-
-104
-S
-->
-z1
- = z1;
-
-105
-S
-->
-L_z2
- = L_z2;
-
-106
-S
-->
-mp
- = mp;
-
-107
- }
-}
-
- @rpe.c
-
-7 
- ~<¡dio.h
->
-
-8 
- ~<as£¹.h
->
-
-10 
- ~"gsm610_´iv.h
-"
-
-12 
- ~"gsm.h
-"
-
-19 
- $Weightšg_fž‹r
- (
-
-20 
-wÜd
- *
-e
-,
-
-21
-wÜd
- *
-x
-
-
-32 
-lÚgwÜd
-
-L_»suÉ
-;
-
-33 
-k
- ;
-
-45
-e
- -= 5;
-
-49 
-k
- = 0; k <= 39; k++) {
-
-51
-L_»suÉ
- = 8192 >> 1;
-
-59 #undeà
-STEP
-
-
-60 
- #STEP
-i
-,
-H
- ) (
-e
-[
-k
- + i ] * (
-lÚgwÜd
-)H)
-
- )
-
-67 #ifdef
-STUPID_COMPILER
-
-
-68
-L_»suÉ
- +ð
- `STEP
-( 0, -134 ) ;
-
-69
-L_»suÉ
- +ð
- `STEP
-( 1, -374 ) ;
-
-71
-L_»suÉ
- +ð
- `STEP
-( 3, 2054 ) ;
-
-72
-L_»suÉ
- +ð
- `STEP
-( 4, 5741 ) ;
-
-73
-L_»suÉ
- +ð
- `STEP
-( 5, 8192 ) ;
-
-74
-L_»suÉ
- +ð
- `STEP
-( 6, 5741 ) ;
-
-75
-L_»suÉ
- +ð
- `STEP
-( 7, 2054 ) ;
-
-77
-L_»suÉ
- +ð
- `STEP
-( 9, -374 ) ;
-
-78
-L_»suÉ
- +ð
- `STEP
-( 10, -134 ) ;
-
-80
-L_»suÉ
- +=
-
-81
- `STEP
-( 0, -134 )
-
-82 +
- `STEP
-( 1, -374 )
-
-84 +
- `STEP
-( 3, 2054 )
-
-85 +
- `STEP
-( 4, 5741 )
-
-86 +
- `STEP
-( 5, 8192 )
-
-87 +
- `STEP
-( 6, 5741 )
-
-88 +
- `STEP
-( 7, 2054 )
-
-90 +
- `STEP
-( 9, -374 )
-
-91 +
- `STEP
-(10, -134 )
-
-105
-L_»suÉ
- =
- `SASR_L
-( L_result, 13 );
-
-106
-x
-[
-k
-] = (
-L_»suÉ
- <
-MIN_WORD
- ? MIN_WORD
-
-107 : (
-L_»suÉ
- >
-MAX_WORD
- ? MAX_WORD : L_result ));
-
-109
- }
-}
-
-113 
- $RPE_grid_£ËùiÚ
- (
-
-114
-wÜd
- *
-x
-,
-
-115
-wÜd
- *
-xM
-,
-
-116
-wÜd
- *
-Mc_out
-
-
-124 
-i
-;
-
-125 
-lÚgwÜd
-
-L_»suÉ
-,
-L_‹mp
-;
-
-126
-lÚgwÜd
-
-EM
-;
-
-127
-wÜd
-
-Mc
-;
-
-129
-lÚgwÜd
-
-L_commÚ_0_3
-;
-
-131
-EM
- = 0;
-
-132
-Mc
- = 0;
-
-155 #undeà
-STEP
-
-
-156 
- #STEP
-m
-,
-i
- )
-L_‹mp
- =
- `SASR_W
-x
-[m + 3 * i], 2 ); \
-
-157
-L_»suÉ
- +ð
-L_‹mp
- * L_‹mp;
-
- )
-
-161
-L_»suÉ
- = 0;
-
-162
- `STEP
-( 0, 1 ); STEP( 0, 2 ); STEP( 0, 3 ); STEP( 0, 4 );
-
-163
- `STEP
-( 0, 5 ); STEP( 0, 6 ); STEP( 0, 7 ); STEP( 0, 8 );
-
-164
- `STEP
-( 0, 9 ); STEP( 0, 10); STEP( 0, 11); STEP( 0, 12);
-
-165
-L_commÚ_0_3
- =
-L_»suÉ
-;
-
-169
- `STEP
-( 0, 0 );
-
-170
-L_»suÉ
- <<= 1;
-
-171
-EM
- =
-L_»suÉ
-;
-
-175
-L_»suÉ
- = 0;
-
-176
- `STEP
-( 1, 0 );
-
-177
- `STEP
-( 1, 1 ); STEP( 1, 2 ); STEP( 1, 3 ); STEP( 1, 4 );
-
-178
- `STEP
-( 1, 5 ); STEP( 1, 6 ); STEP( 1, 7 ); STEP( 1, 8 );
-
-179
- `STEP
-( 1, 9 ); STEP( 1, 10); STEP( 1, 11); STEP( 1, 12);
-
-180
-L_»suÉ
- <<= 1;
-
-181 ià(
-L_»suÉ
- >
-EM
-) {
-
-182
-Mc
- = 1;
-
-183
-EM
- =
-L_»suÉ
-;
-
-188
-L_»suÉ
- = 0;
-
-189
- `STEP
-( 2, 0 );
-
-190
- `STEP
-( 2, 1 ); STEP( 2, 2 ); STEP( 2, 3 ); STEP( 2, 4 );
-
-191
- `STEP
-( 2, 5 ); STEP( 2, 6 ); STEP( 2, 7 ); STEP( 2, 8 );
-
-192
- `STEP
-( 2, 9 ); STEP( 2, 10); STEP( 2, 11); STEP( 2, 12);
-
-193
-L_»suÉ
- <<= 1;
-
-194 ià(
-L_»suÉ
- >
-EM
-) {
-
-195
-Mc
- = 2;
-
-196
-EM
- =
-L_»suÉ
-;
-
-201
-L_»suÉ
- =
-L_commÚ_0_3
-;
-
-202
- `STEP
-( 3, 12 );
-
-203
-L_»suÉ
- <<= 1;
-
-204 ià(
-L_»suÉ
- >
-EM
-) {
-
-205
-Mc
- = 3;
-
-206
-EM
- =
-L_»suÉ
-;
-
-214 
-i
- = 0; i <ð12; i ++è
-xM
-[i] =
-x
-[
-Mc
- + 3*i];
-
-215 *
-Mc_out
- =
-Mc
-;
-
-216
- }
-}
-
-220 
- $APCM_quªtiz©iÚ_xmaxc_to_exp_mªt
- (
-
-221
-wÜd
-
-xmaxc
-,
-
-222
-wÜd
- *
-expÚ_out
-,
-
-223
-wÜd
- *
-mªt_out
- )
-
-225
-wÜd
-
-expÚ
-,
-mªt
-;
-
-230
-expÚ
- = 0;
-
-231 ià(
-xmaxc
- > 15è
-expÚ
- =
- `SASR_W
-(xmaxc, 3) - 1;
-
-232
-mªt
- =
-xmaxc
- - (
-expÚ
- << 3);
-
-234 ià(
-mªt
- == 0) {
-
-235
-expÚ
- = -4;
-
-236
-mªt
- = 7;
-
-239 
-mªt
- <= 7) {
-
-240
-mªt
- = mant << 1 | 1;
-
-241
-expÚ
---;
-
-243
-mªt
- -= 8;
-
-246
- `as£¹
-expÚ
- >= -4 &&ƒxpon <= 6 );
-
-247
- `as£¹
-mªt
- >= 0 && mant <= 7 );
-
-249 *
-expÚ_out
- =
-expÚ
-;
-
-250 *
-mªt_out
- =
-mªt
-;
-
-251
- }
-}
-
-253 
- $APCM_quªtiz©iÚ
- (
-
-254
-wÜd
- *
-xM
-,
-
-255
-wÜd
- *
-xMc
-,
-
-256
-wÜd
- *
-mªt_out
-,
-
-257
-wÜd
- *
-expÚ_out
-,
-
-258
-wÜd
- *
-xmaxc_out
-
-
-261 
-i
-,
-™e¡
-;
-
-263
-wÜd
-
-xmax
-,
-xmaxc
-,
-‹mp
-,
-‹mp1
-,
-‹mp2
-;
-
-264
-wÜd
-
-expÚ
-,
-mªt
-;
-
-270
-xmax
- = 0;
-
-271 
-i
- = 0; i <= 12; i++) {
-
-272
-‹mp
- =
-xM
-[
-i
-];
-
-273
-‹mp
- =
- `GSM_ABS
-(temp);
-
-274 ià(
-‹mp
- >
-xmax
-) xmax =emp;
-
-280
-expÚ
- = 0;
-
-281
-‹mp
- =
- `SASR_W
-xmax
-, 9 );
-
-282
-™e¡
- = 0;
-
-284 
-i
- = 0; i <= 5; i++) {
-
-286
-™e¡
- |ð(
-‹mp
- <= 0);
-
-287
-‹mp
- =
- `SASR_W
-(emp, 1 );
-
-289
- `as£¹
-(
-expÚ
- <= 5);
-
-290 ià(
-™e¡
- =ð0è
-expÚ
-++;
-
-293
- `as£¹
-(
-expÚ
- <= 6 &&ƒxpon >= 0);
-
-294
-‹mp
- =
-expÚ
- + 5;
-
-296
- `as£¹
-(
-‹mp
- <= 11 &&emp >= 0);
-
-297
-xmaxc
- =
- `gsm_add
- `SASR_W
-(
-xmax
-,
-‹mp
-), (
-wÜd
-è(
-expÚ
- << 3) );
-
-303
- `APCM_quªtiz©iÚ_xmaxc_to_exp_mªt
-xmaxc
-, &
-expÚ
-, &
-mªt
- );
-
-319
- `as£¹
-expÚ
- <= 4096 &&ƒxpon >= -4096);
-
-320
- `as£¹
-mªt
- >= 0 && mant <= 7 );
-
-322
-‹mp1
- = 6 -
-expÚ
-;
-
-323
-‹mp2
- =
-gsm_NRFAC
-[
-mªt
- ];
-
-325 
-i
- = 0; i <= 12; i++) {
-
-327
- `as£¹
-(
-‹mp1
- >= 0 &&emp1 < 16);
-
-329
-‹mp
- =
-xM
-[
-i
-] <<
-‹mp1
-;
-
-330
-‹mp
- =
- `GSM_MULT
-Ћmp,
-‹mp2
- );
-
-331
-‹mp
- =
- `SASR_W
-(temp, 12);
-
-332
-xMc
-[
-i
-] =
-‹mp
- + 4;
-
-338 *
-mªt_out
- =
-mªt
-;
-
-339 *
-expÚ_out
- =
-expÚ
-;
-
-340 *
-xmaxc_out
- =
-xmaxc
-;
-
-341
- }
-}
-
-345 
- $APCM_šv”£_quªtiz©iÚ
- (
-
-346 
-wÜd
- *
-xMc
-,
-
-347
-wÜd
-
-mªt
-,
-
-348
-wÜd
-
-expÚ
-,
-
-349 
-wÜd
- *
-xMp
-)
-
-356 
-i
-;
-
-357
-wÜd
-
-‹mp
-,
-‹mp1
-,
-‹mp2
-,
-‹mp3
-;
-
-359
- `as£¹
-mªt
- >= 0 && mant <= 7 );
-
-361
-‹mp1
- =
-gsm_FAC
-[
-mªt
- ];
-
-362
-‹mp2
- =
- `gsm_sub
-Ð6,
-expÚ
- );
-
-363
-‹mp3
- =
- `gsm_a¦
-Ð1,
- `gsm_sub
-‹mp2
-, 1 ));
-
-365 
-i
- = 13; i--;) {
-
-367
- `as£¹
-Ð*
-xMc
- <= 7 && *xMc >= 0 );
-
-370
-‹mp
- = (*
-xMc
-++ << 1) - 7;
-
-371
- `as£¹
-‹mp
- <= 7 &&emp >= -7 );
-
-373
-‹mp
- <<= 12;
-
-374
-‹mp
- =
- `GSM_MULT_R
-‹mp1
-,emp );
-
-375
-‹mp
- =
- `GSM_ADD
-Ћmp,
-‹mp3
- );
-
-376 *
-xMp
-++ =
- `gsm_a¤
-‹mp
-,
-‹mp2
- );
-
-378
- }
-}
-
-382 
- $RPE_grid_pos™iÚšg
- (
-
-383
-wÜd
-
-Mc
-,
-
-384 
-wÜd
- *
-xMp
-,
-
-385 
-wÜd
- *
-•
-
-
-395 
-i
- = 13;
-
-397
- `as£¹
-(0 <ð
-Mc
- && Mc <= 3);
-
-399 
-Mc
-) {
-
-400 3: *
-•
-++ = 0;
-
-402 *
-•
-++ = 0;
-
-403 1: *
-•
-++ = 0;
-
-404 0: *
-•
-++ = *
-xMp
-++;
-
-405 } --
-i
-);
-
-407 ++
-Mc
- < 4è*
-•
-++ = 0;
-
-417
- }
-}
-
-429 
- $Gsm_Upd©e_of_»cÚ¡ruùed_shÜt_time_»sidu®_sigÇl
- (
-
-430
-wÜd
- *
-dµ
-,
-
-431
-wÜd
- *
-•
-,
-
-432
-wÜd
- *
-dp
-)
-
-434 
-k
-;
-
-436 
-k
- = 0; k <= 79; k++)
-
-437
-dp
-[ -120 +
-k
- ] = dp[ -80 + k ];
-
-439 
-k
- = 0; k <= 39; k++)
-
-440
-dp
-[ -40 +
-k
- ] =
- `gsm_add
-•
-[k],
-dµ
-[k] );
-
-441
- }
-}
-
-444 
- $Gsm_RPE_Encodšg
- (
-
-447
-wÜd
- *
-e
-,
-
-448
-wÜd
- *
-xmaxc
-,
-
-449
-wÜd
- *
-Mc
-,
-
-450
-wÜd
- *
-xMc
-)
-
-452
-wÜd
-
-x
-[40];
-
-453
-wÜd
-
-xM
-[13],
-xMp
-[13];
-
-454
-wÜd
-
-mªt
-,
-expÚ
-;
-
-456
- `Weightšg_fž‹r
-(
-e
-,
-x
-);
-
-457
- `RPE_grid_£ËùiÚ
-(
-x
-,
-xM
-,
-Mc
-);
-
-459
- `APCM_quªtiz©iÚ
-xM
-,
-xMc
-, &
-mªt
-, &
-expÚ
-,
-xmaxc
-);
-
-460
- `APCM_šv”£_quªtiz©iÚ
-xMc
-,
-mªt
-,
-expÚ
-,
-xMp
-);
-
-462
- `RPE_grid_pos™iÚšg
-Ð*
-Mc
-,
-xMp
-,
-e
- );
-
-464
- }
-}
-
-466 
- $Gsm_RPE_Decodšg
- (
-
-469
-wÜd
-
-xmaxü
-,
-
-470
-wÜd
-
-Mü
-,
-
-471
-wÜd
- *
-xMü
-,
-
-472
-wÜd
- *
-”p
-
-
-475
-wÜd
-
-expÚ
-,
-mªt
-;
-
-476
-wÜd
-
-xMp
-[ 13 ];
-
-478
- `APCM_quªtiz©iÚ_xmaxc_to_exp_mªt
-xmaxü
-, &
-expÚ
-, &
-mªt
- );
-
-479
- `APCM_šv”£_quªtiz©iÚ
-xMü
-,
-mªt
-,
-expÚ
-,
-xMp
- );
-
-480
- `RPE_grid_pos™iÚšg
-Mü
-,
-xMp
-,
-”p
- );
-
-482
- }
-}
-
- @short_term.c
-
-7 
- ~<¡dio.h
->
-
-8 
- ~<as£¹.h
->
-
-10 
- ~"gsm610_´iv.h
-"
-
-12 
- ~"gsm.h
-"
-
-20 
- $Decodšg_of_the_coded_Log_A»a_R©ios
- (
-
-21
-wÜd
- *
-LARc
-,
-
-22
-wÜd
- *
-LARµ
-)
-
-24 
-wÜd
-
-‹mp1
- ;
-
-49 #undeà
-STEP
-
-
-50 
- #STEP
-B
-,
-MIC
-,
-INVA
- ) \
-
-51
-‹mp1
- =
- `GSM_ADD
-Ð*
-LARc
-++,
-MIC
- ) << 10; \
-
-52
-‹mp1
- =
- `GSM_SUB
-Ћmp1,
-B
- << 1 ); \
-
-53
-‹mp1
- =
- `GSM_MULT_R
-INVA
-,emp1 ); \
-
-54 *
-LARµ
-++ =
- `GSM_ADD
-‹mp1
-,emp1 );
-
- )
-
-56
- `STEP
-( 0, -32, 13107 );
-
-57
- `STEP
-( 0, -32, 13107 );
-
-58
- `STEP
-( 2048, -16, 13107 );
-
-59
- `STEP
-( -2560, -16, 13107 );
-
-61
- `STEP
-( 94, -8, 19223 );
-
-62
- `STEP
-( -1792, -8, 17476 );
-
-63
- `STEP
-( -341, -4, 31454 );
-
-64
- `STEP
-( -1144, -4, 29708 );
-
-69
- }
-}
-
-87 
- $CÛffic›Ás_0_12
- (
-
-88 
-wÜd
- *
-LARµ_j_1
-,
-
-89 
-wÜd
- *
-LARµ_j
-,
-
-90 
-wÜd
- *
-LARp
-)
-
-92 
-i
-;
-
-94 
-i
- = 1; i <ð8; i++,
-LARp
-++,
-LARµ_j_1
-++,
-LARµ_j
-++) {
-
-95 *
-LARp
- =
- `GSM_ADD
- `SASR_W
-Ð*
-LARµ_j_1
-, 2 ), SASR_WÐ*
-LARµ_j
-, 2 ));
-
-96 *
-LARp
- =
- `GSM_ADD
-Ð*LARp,
- `SASR_W
-Ð*
-LARµ_j_1
-, 1));
-
-98
- }
-}
-
-100 
- $CÛffic›Ás_13_26
- (
-
-101 
-wÜd
- *
-LARµ_j_1
-,
-
-102 
-wÜd
- *
-LARµ_j
-,
-
-103 
-wÜd
- *
-LARp
-)
-
-105 
-i
-;
-
-106 
-i
- = 1; i <ð8; i++,
-LARµ_j_1
-++,
-LARµ_j
-++,
-LARp
-++) {
-
-107 *
-LARp
- =
- `GSM_ADD
- `SASR_W
-Ð*
-LARµ_j_1
-, 1), SASR_WÐ*
-LARµ_j
-, 1 ));
-
-109
- }
-}
-
-111 
- $CÛffic›Ás_27_39
- (
-
-112 
-wÜd
- *
-LARµ_j_1
-,
-
-113 
-wÜd
- *
-LARµ_j
-,
-
-114 
-wÜd
- *
-LARp
-)
-
-116 
-i
-;
-
-118 
-i
- = 1; i <ð8; i++,
-LARµ_j_1
-++,
-LARµ_j
-++,
-LARp
-++) {
-
-119 *
-LARp
- =
- `GSM_ADD
- `SASR_W
-Ð*
-LARµ_j_1
-, 2 ), SASR_WÐ*
-LARµ_j
-, 2 ));
-
-120 *
-LARp
- =
- `GSM_ADD
-Ð*LARp,
- `SASR_W
-Ð*
-LARµ_j
-, 1 ));
-
-122
- }
-}
-
-125 
- $CÛffic›Ás_40_159
- (
-
-126 
-wÜd
- *
-LARµ_j
-,
-
-127 
-wÜd
- *
-LARp
-)
-
-129 
-i
-;
-
-131 
-i
- = 1; i <ð8; i++,
-LARp
-++,
-LARµ_j
-++)
-
-132 *
-LARp
- = *
-LARµ_j
-;
-
-133
- }
-}
-
-137 
- $LARp_to_½
- (
-
-138 
-wÜd
- *
-LARp
-)
-
-145 
-i
-;
-
-146 
-wÜd
-
-‹mp
-;
-
-148 
-i
- = 1; i <ð8; i++,
-LARp
-++) {
-
-159 ià(*
-LARp
- < 0) {
-
-160
-‹mp
- = *
-LARp
- =ð
-MIN_WORD
- ?
-MAX_WORD
- : -(*LARp);
-
-161 *
-LARp
- = - ((
-‹mp
- < 11059) ?emp << 1
-
-162 : ((
-‹mp
- < 20070) ?emp + 11059
-
-163 :
- `GSM_ADD
-Ð(
-wÜd
-è(
-‹mp
- >> 2), (word) 26112 )));
-
-165
-‹mp
- = *
-LARp
-;
-
-166 *
-LARp
- = (
-‹mp
- < 11059) ?emp << 1
-
-167 : ((
-‹mp
- < 20070) ?emp + 11059
-
-168 :
- `GSM_ADD
-Ð(
-wÜd
-è(
-‹mp
- >> 2), (word) 26112 ));
-
-171
- }
-}
-
-175 
- $ShÜt_‹rm_ª®ysis_fž‹ršg
- (
-
-176 
-gsm_¡©e
- *
-S
-,
-
-177 
-wÜd
- *
-,
-
-178 
-k_n
-,
-
-179 
-wÜd
- *
-s
-
-
-192 
-wÜd
- *
-u
- =
-S
-->u;
-
-193 
-i
-;
-
-194 
-wÜd
-
-di
-,
-zzz
-,
-ui
-,
-§v
-,
-½i
-;
-
-196 ;
-k_n
---;
-s
-++) {
-
-198
-di
- =
-§v
- = *
-s
-;
-
-200 
-i
- = 0; i < 8; i++) {
-
-202
-ui
- =
-u
-[
-i
-];
-
-203
-½i
- =
-[
-i
-];
-
-204
-u
-[
-i
-] =
-§v
-;
-
-206
-zzz
- =
- `GSM_MULT_R
-(
-½i
-,
-di
-);
-
-207
-§v
- =
- `GSM_ADD
-ui
-,
-zzz
-);
-
-209
-zzz
- =
- `GSM_MULT_R
-(
-½i
-,
-ui
-);
-
-210
-di
- =
- `GSM_ADD
-Ðdi,
-zzz
- );
-
-213 *
-s
- =
-di
-;
-
-215
- }
-}
-
-217 #ià
-defšed
-(
-USE_FLOAT_MUL
-è&& defšed(
-FAST
-)
-
-219 
- $Fa¡_ShÜt_‹rm_ª®ysis_fž‹ršg
- (
-
-220 
-gsm_¡©e
- *
-S
-,
-
-221 
-wÜd
- *
-,
-
-222 
-k_n
-,
-
-223 
-wÜd
- *
-s
-
-
-226 
-wÜd
- *
-u
- =
-S
-->u;
-
-227 
-i
-;
-
-229 
-uf
-[8],
-
-230
-½f
-[8];
-
-232 
-sÿËf
- = 3.0517578125e-5;
-
-233 
-§v
-,
-di
-,
-‹mp
-;
-
-235 
-i
- = 0; i < 8; ++i) {
-
-236
-uf
-[
-i
-] =
-u
-[i];
-
-237
-½f
-[
-i
-] =
-[i] *
-sÿËf
-;
-
-239 ;
-k_n
---;
-s
-++) {
-
-240
-§v
- =
-di
- = *
-s
-;
-
-241 
-i
- = 0; i < 8; ++i) {
-
-242 
-½fi
- =
-½f
-[
-i
-];
-
-243 
-ufi
- =
-uf
-[
-i
-];
-
-245
-uf
-[
-i
-] =
-§v
-;
-
-246
-‹mp
- =
-½fi
- *
-di
- +
-ufi
-;
-
-247
-di
- +ð
-½fi
- *
-ufi
-;
-
-248
-§v
- =
-‹mp
-;
-
-250 *
-s
- =
-di
-;
-
-252 
-i
- = 0; i < 8; ++iè
-u
-[i] =
-uf
-[i];
-
-253
- }
-}
-
-256 
- $ShÜt_‹rm_syÁhesis_fž‹ršg
- (
-
-257 
-gsm_¡©e
- *
-S
-,
-
-258 
-wÜd
- *
-¼p
-,
-
-259 
-k
-,
-
-260 
-wÜd
- *
-wt
-,
-
-261 
-wÜd
- *
-
-
-264 
-wÜd
- *
-v
- =
-S
-->v;
-
-265 
-i
-;
-
-266 
-wÜd
-
-¤i
-,
-tmp1
-,
-tmp2
-;
-
-268 
-k
---) {
-
-269
-¤i
- = *
-wt
-++;
-
-270 
-i
- = 8; i--;) {
-
-274
-tmp1
- =
-¼p
-[
-i
-];
-
-275
-tmp2
- =
-v
-[
-i
-];
-
-276
-tmp2
- = (
-tmp1
- =ð
-MIN_WORD
- &&mp2 == MIN_WORD
-
-277 ?
-MAX_WORD
-
-
-278 : 0x0FFFF & (Ð(
-lÚgwÜd
-)
-tmp1
- * (lÚgwÜd)
-tmp2
-
-
-281
-¤i
- =
- `GSM_SUB
-Фi,
-tmp2
- );
-
-285
-tmp1
- = (mp1 =ð
-MIN_WORD
- &&
-¤i
- == MIN_WORD
-
-286 ?
-MAX_WORD
-
-
-287 : 0x0FFFF & (Ð(
-lÚgwÜd
-)
-tmp1
- * (lÚgwÜd)
-¤i
-
-
-290
-v
-[
-i
-+1] =
- `GSM_ADD
-Ðv[i],
-tmp1
-);
-
-292 *
-++ =
-v
-[0] =
-¤i
-;
-
-294
- }
-}
-
-297 #ià
-defšed
-(
-FAST
-è&& defšed(
-USE_FLOAT_MUL
-)
-
-299 
- $Fa¡_ShÜt_‹rm_syÁhesis_fž‹ršg
- (
-
-300 
-gsm_¡©e
- *
-S
-,
-
-301 
-wÜd
- *
-¼p
-,
-
-302 
-k
-,
-
-303 
-wÜd
- *
-wt
-,
-
-304 
-wÜd
- *
-
-
-307 
-wÜd
- *
-v
- =
-S
-->v;
-
-308 
-i
-;
-
-310 
-va
-[9],
-¼·
-[8];
-
-311 
-sÿËf
- = 3.0517578125e-5,
-‹mp
-;
-
-313 
-i
- = 0; i < 8; ++i) {
-
-314
-va
-[
-i
-] =
-v
-[i];
-
-315
-¼·
-[
-i
-] = ()
-¼p
-[i] *
-sÿËf
-;
-
-317 
-k
---) {
-
-318 
-¤i
- = *
-wt
-++;
-
-319 
-i
- = 8; i--;) {
-
-320
-¤i
- -ð
-¼·
-[
-i
-] *
-va
-[i];
-
-321 ià(
-¤i
- < -32768.) sri = -32768.;
-
-322 ià(
-¤i
- > 32767.) sri = 32767.;
-
-324
-‹mp
- =
-va
-[
-i
-] +
-¼·
-[i] *
-¤i
-;
-
-325 ià(
-‹mp
- < -32768.)emp = -32768.;
-
-326 ià(
-‹mp
- > 32767.)emp = 32767.;
-
-327
-va
-[
-i
-+1] =
-‹mp
-;
-
-329 *
-++ =
-va
-[0] =
-¤i
-;
-
-331 
-i
- = 0; i < 9; ++iè
-v
-[i] =
-va
-[i];
-
-332
- }
-}
-
-336 
- $Gsm_ShÜt_T”m_AÇlysis_Fž‹r
- (
-
-338 
-gsm_¡©e
- *
-S
-,
-
-340
-wÜd
- *
-LARc
-,
-
-341
-wÜd
- *
-s
-
-
-344
-wÜd
- *
-LARµ_j
- =
-S
-->
-LARµ
-[ S->
-j
- ];
-
-345
-wÜd
- *
-LARµ_j_1
- =
-S
-->
-LARµ
-[ S->
-j
- ^= 1 ];
-
-347
-wÜd
-
-LARp
-[8];
-
-349 #undeà
-FILTER
-
-
-350 #ià
- `defšed
-(
-FAST
-è&& defšed(
-USE_FLOAT_MUL
-)
-
-351 
- #FILTER
- (* (
-S
-->
-ç¡
- \
-
-352 ?
-Fa¡_ShÜt_‹rm_ª®ysis_fž‹ršg
- \
-
-353 :
-ShÜt_‹rm_ª®ysis_fž‹ršg
- ))
-
- )
-
-356 
- #FILTER
-
-ShÜt_‹rm_ª®ysis_fž‹ršg
-
-
- )
-
-359
- `Decodšg_of_the_coded_Log_A»a_R©ios
-LARc
-,
-LARµ_j
- );
-
-361
- `CÛffic›Ás_0_12
-LARµ_j_1
-,
-LARµ_j
-,
-LARp
- );
-
-362
- `LARp_to_½
-LARp
- );
-
-363
- `FILTER
-S
-,
-LARp
-, 13,
-s
-);
-
-365
- `CÛffic›Ás_13_26
-LARµ_j_1
-,
-LARµ_j
-,
-LARp
-);
-
-366
- `LARp_to_½
-LARp
- );
-
-367
- `FILTER
-S
-,
-LARp
-, 14,
-s
- + 13);
-
-369
- `CÛffic›Ás_27_39
-LARµ_j_1
-,
-LARµ_j
-,
-LARp
-);
-
-370
- `LARp_to_½
-LARp
- );
-
-371
- `FILTER
-S
-,
-LARp
-, 13,
-s
- + 27);
-
-373
- `CÛffic›Ás_40_159
-LARµ_j
-,
-LARp
-);
-
-374
- `LARp_to_½
-LARp
- );
-
-375
- `FILTER
-S
-,
-LARp
-, 120,
-s
- + 40);
-
-376
- }
-}
-
-378 
- $Gsm_ShÜt_T”m_SyÁhesis_Fž‹r
- (
-
-379 
-gsm_¡©e
- *
-S
-,
-
-381
-wÜd
- *
-LARü
-,
-
-382
-wÜd
- *
-wt
-,
-
-384
-wÜd
- *
-s
-
-
-387
-wÜd
- *
-LARµ_j
- =
-S
-->
-LARµ
-[ S->
-j
- ];
-
-388
-wÜd
- *
-LARµ_j_1
- =
-S
-->
-LARµ
-[ S->
-j
- ^=1 ];
-
-390
-wÜd
-
-LARp
-[8];
-
-392 #undeà
-FILTER
-
-
-393 #ià
- `defšed
-(
-FAST
-è&& defšed(
-USE_FLOAT_MUL
-)
-
-395 
- #FILTER
- (* (
-S
-->
-ç¡
- \
-
-396 ?
-Fa¡_ShÜt_‹rm_syÁhesis_fž‹ršg
- \
-
-397 :
-ShÜt_‹rm_syÁhesis_fž‹ršg
- ))
-
- )
-
-399 
- #FILTER
-
-ShÜt_‹rm_syÁhesis_fž‹ršg
-
-
- )
-
-402
- `Decodšg_of_the_coded_Log_A»a_R©ios
-LARü
-,
-LARµ_j
- );
-
-404
- `CÛffic›Ás_0_12
-LARµ_j_1
-,
-LARµ_j
-,
-LARp
- );
-
-405
- `LARp_to_½
-LARp
- );
-
-406
- `FILTER
-S
-,
-LARp
-, 13,
-wt
-,
-s
- );
-
-408
- `CÛffic›Ás_13_26
-LARµ_j_1
-,
-LARµ_j
-,
-LARp
-);
-
-409
- `LARp_to_½
-LARp
- );
-
-410
- `FILTER
-S
-,
-LARp
-, 14,
-wt
- + 13,
-s
- + 13 );
-
-412
- `CÛffic›Ás_27_39
-LARµ_j_1
-,
-LARµ_j
-,
-LARp
-);
-
-413
- `LARp_to_½
-LARp
- );
-
-414
- `FILTER
-S
-,
-LARp
-, 13,
-wt
- + 27,
-s
- + 27 );
-
-416
- `CÛffic›Ás_40_159
-LARµ_j
-,
-LARp
- );
-
-417
- `LARp_to_½
-LARp
- );
-
-418
- `FILTER
-(
-S
-,
-LARp
-, 120,
-wt
- + 40,
-s
- + 40);
-
-419
- }
-}
-
- @table.c
-
-16 
- #GSM_TABLE_C
-
-
- )
-
-17 
- ~"gsm610_´iv.h
-"
-
-18 
- ~"gsm.h
-"
-
-23
-wÜd
-
- ggsm_A
-[8] = {20480, 20480, 20480, 20480, 13964, 15360, 8534, 9036};
-
-24
-wÜd
-
- ggsm_B
-[8] = { 0, 0, 2048, -2560, 94, -1792, -341, -1144};
-
-25
-wÜd
-
- ggsm_MIC
-[8] = { -32, -32, -16, -16, -8, -8, -4, -4 };
-
-26
-wÜd
-
- ggsm_MAC
-[8] = { 31, 31, 15, 15, 7, 7, 3, 3 };
-
-31
-wÜd
-
- ggsm_INVA
-[8]={ 13107, 13107, 13107, 13107, 19223, 17476, 31454, 29708 };
-
-37
-wÜd
-
- ggsm_DLB
-[4] = { 6554, 16384, 26214, 32767 };
-
-43
-wÜd
-
- ggsm_QLB
-[4] = { 3277, 11469, 21299, 32767 };
-
-49
-wÜd
-
- ggsm_H
-[11] = {-134, -374, 0, 2054, 5741, 8192, 5741, 2054, 0, -374, -134 };
-
-55
-wÜd
-
- ggsm_NRFAC
-[8] = { 29128, 26215, 23832, 21846, 20165, 18725, 17476, 16384 };
-
-61
-wÜd
-
- ggsm_FAC
-[8] = { 18431, 20479, 22527, 24575, 26623, 28671, 30719, 32767 };
-
- @
-1
-.
-0
-17
-175
-add.c
-code.c
-config.h
-decode.c
-gsm.h
-gsm610_priv.h
-gsm_create.c
-gsm_decode.c
-gsm_destroy.c
-gsm_encode.c
-gsm_option.c
-long_term.c
-lpc.c
-preprocess.c
-rpe.c
-short_term.c
-table.c