iLBC: Handle a case of bad input data

We detect an unreasonable state (caused by a bad encoded stream)
before it can lead to problems, and handle it by resetting the
decoder.

NOPRESUBMIT=true
BUG=chromium:617124

Review-Url: https://codereview.webrtc.org/2255203002
Cr-Commit-Position: refs/heads/master@{#13888}
This commit is contained in:
kwiberg
2016-08-24 02:46:44 -07:00
committed by Commit bot
parent 0aa9d1808b
commit 619a211562
16 changed files with 211 additions and 99 deletions

View File

@ -25,13 +25,14 @@
* main decoder function
*---------------------------------------------------------------*/
void WebRtcIlbcfix_DecodeImpl(
int16_t *decblock, /* (o) decoded signal block */
const uint16_t *bytes, /* (i) encoded signal bits */
IlbcDecoder *iLBCdec_inst, /* (i/o) the decoder state
// Returns 0 on success, -1 on error.
int WebRtcIlbcfix_DecodeImpl(
int16_t* decblock, /* (o) decoded signal block */
const uint16_t* bytes, /* (i) encoded signal bits */
IlbcDecoder* iLBCdec_inst, /* (i/o) the decoder state
structure */
int16_t mode /* (i) 0: bad packet, PLC,
1: normal */
);
int16_t mode /* (i) 0: bad packet, PLC,
1: normal */
) WARN_UNUSED_RESULT;
#endif