summaryrefslogtreecommitdiff
path: root/apps/codecs/libspeex/sb_celp.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libspeex/sb_celp.c')
-rw-r--r--apps/codecs/libspeex/sb_celp.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/apps/codecs/libspeex/sb_celp.c b/apps/codecs/libspeex/sb_celp.c
index 313a62e93f..51f255661f 100644
--- a/apps/codecs/libspeex/sb_celp.c
+++ b/apps/codecs/libspeex/sb_celp.c
@@ -354,10 +354,8 @@ int sb_encode(void *state, void *vin, SpeexBits *bits)
354 speex_encode_native(st->st_low, low, bits); 354 speex_encode_native(st->st_low, low, bits);
355 355
356 high = high - (st->windowSize-st->frame_size); 356 high = high - (st->windowSize-st->frame_size);
357 for (i=0;i<st->windowSize-st->frame_size;i++) 357 SPEEX_COPY(high, st->high, st->windowSize-st->frame_size);
358 high[i] = st->high[i]; 358 SPEEX_COPY(st->high, &high[st->frame_size], st->windowSize-st->frame_size);
359 for (i=0;i<st->windowSize-st->frame_size;i++)
360 st->high[i] = high[i+st->frame_size];
361 359
362 360
363 ALLOC(low_pi_gain, st->nbSubframes, spx_word32_t); 361 ALLOC(low_pi_gain, st->nbSubframes, spx_word32_t);
@@ -690,8 +688,7 @@ int sb_encode(void *state, void *vin, SpeexBits *bits)
690 signal_div(target, target, scale, st->subframeSize); 688 signal_div(target, target, scale, st->subframeSize);
691 689
692 /* Reset excitation */ 690 /* Reset excitation */
693 for (i=0;i<st->subframeSize;i++) 691 SPEEX_MEMSET(innov, 0, st->subframeSize);
694 innov[i]=0;
695 692
696 /*print_vec(target, st->subframeSize, "\ntarget");*/ 693 /*print_vec(target, st->subframeSize, "\ntarget");*/
697 SUBMODE(innovation_quant)(target, st->interp_qlpc, bw_lpc1, bw_lpc2, 694 SUBMODE(innovation_quant)(target, st->interp_qlpc, bw_lpc1, bw_lpc2,
@@ -705,8 +702,7 @@ int sb_encode(void *state, void *vin, SpeexBits *bits)
705 char *tmp_stack=stack; 702 char *tmp_stack=stack;
706 VARDECL(spx_sig_t *innov2); 703 VARDECL(spx_sig_t *innov2);
707 ALLOC(innov2, st->subframeSize, spx_sig_t); 704 ALLOC(innov2, st->subframeSize, spx_sig_t);
708 for (i=0;i<st->subframeSize;i++) 705 SPEEX_MEMSET(innov2, 0, st->subframeSize);
709 innov2[i]=0;
710 for (i=0;i<st->subframeSize;i++) 706 for (i=0;i<st->subframeSize;i++)
711 target[i]=MULT16_16_P13(QCONST16(2.5f,13), target[i]); 707 target[i]=MULT16_16_P13(QCONST16(2.5f,13), target[i]);
712 708
@@ -1018,8 +1014,7 @@ int sb_decode(void *state, SpeexBits *bits, void *vout)
1018 if (st->innov_save) 1014 if (st->innov_save)
1019 { 1015 {
1020 innov_save = st->innov_save+2*offset; 1016 innov_save = st->innov_save+2*offset;
1021 for (i=0;i<2*st->subframeSize;i++) 1017 SPEEX_MEMSET(innov_save, 0, 2*st->subframeSize);
1022 innov_save[i]=0;
1023 } 1018 }
1024 1019
1025 /* LSP interpolation */ 1020 /* LSP interpolation */
@@ -1048,8 +1043,7 @@ int sb_decode(void *state, SpeexBits *bits, void *vout)
1048 filter_ratio=(rl+.01)/(rh+.01); 1043 filter_ratio=(rl+.01)/(rh+.01);
1049#endif 1044#endif
1050 1045
1051 for (i=0;i<st->subframeSize;i++) 1046 SPEEX_MEMSET(exc, 0, st->subframeSize);
1052 exc[i]=0;
1053 if (!SUBMODE(innovation_unquant)) 1047 if (!SUBMODE(innovation_unquant))
1054 { 1048 {
1055 spx_word32_t g; 1049 spx_word32_t g;
@@ -1087,8 +1081,7 @@ int sb_decode(void *state, SpeexBits *bits, void *vout)
1087 char *tmp_stack=stack; 1081 char *tmp_stack=stack;
1088 VARDECL(spx_sig_t *innov2); 1082 VARDECL(spx_sig_t *innov2);
1089 ALLOC(innov2, st->subframeSize, spx_sig_t); 1083 ALLOC(innov2, st->subframeSize, spx_sig_t);
1090 for (i=0;i<st->subframeSize;i++) 1084 SPEEX_MEMSET(innov2, 0, st->subframeSize);
1091 innov2[i]=0;
1092 SUBMODE(innovation_unquant)(innov2, SUBMODE(innovation_params), st->subframeSize, 1085 SUBMODE(innovation_unquant)(innov2, SUBMODE(innovation_params), st->subframeSize,
1093 bits, stack, &st->seed); 1086 bits, stack, &st->seed);
1094 signal_mul(innov2, innov2, MULT16_32_P15(QCONST16(0.4f,15),scale), st->subframeSize); 1087 signal_mul(innov2, innov2, MULT16_32_P15(QCONST16(0.4f,15),scale), st->subframeSize);