Fix #2116: iLBC using memcpy instead of memmove for overlapping memory.

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5798 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
Riza Sulistyo 2018-05-29 09:02:51 +00:00
parent 09a206cfbb
commit 18f5bc2535
3 changed files with 9 additions and 4 deletions

5
third_party/build/ilbc/notes.txt vendored Normal file
View File

@ -0,0 +1,5 @@
Notes:
* Modify iLBC_decode.c and iLBC_encode.c
- iLBC using memcpy instead of memmove for overlapping memory. This will
cause some weird sound if the call lasted longer than ~30s. To fix this,
some call to memcpy is changed to memmove. Have a look at #2116.

View File

@ -251,7 +251,7 @@
/* update memory */
memcpy(mem, mem+SUBL, (CB_MEML-SUBL)*sizeof(float));
memmove(mem, mem+SUBL, (CB_MEML-SUBL)*sizeof(float));
memcpy(mem+CB_MEML-SUBL,
@ -299,7 +299,7 @@
/* update memory */
memcpy(mem, mem+SUBL, (CB_MEML-SUBL)*sizeof(float));
memmove(mem, mem+SUBL, (CB_MEML-SUBL)*sizeof(float));
memcpy(mem+CB_MEML-SUBL,
&reverseDecresidual[subframe*SUBL],
SUBL*sizeof(float));

View File

@ -308,7 +308,7 @@
/* update memory */
memcpy(mem, mem+SUBL, (CB_MEML-SUBL)*sizeof(float));
memmove(mem, mem+SUBL, (CB_MEML-SUBL)*sizeof(float));
memcpy(mem+CB_MEML-SUBL,
@ -386,7 +386,7 @@
/* update memory */
memcpy(mem, mem+SUBL, (CB_MEML-SUBL)*sizeof(float));
memmove(mem, mem+SUBL, (CB_MEML-SUBL)*sizeof(float));
memcpy(mem+CB_MEML-SUBL,
&reverseDecresidual[subframe*SUBL],
SUBL*sizeof(float));