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}
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/decode.h b/webrtc/modules/audio_coding/codecs/ilbc/decode.h
index 0c4c2ef..f45fedd 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/decode.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/decode.h
@@ -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