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:
@ -19,20 +19,22 @@
|
||||
#ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_MAIN_SOURCE_DECODE_RESIDUAL_H_
|
||||
#define WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_MAIN_SOURCE_DECODE_RESIDUAL_H_
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "defines.h"
|
||||
|
||||
/*----------------------------------------------------------------*
|
||||
* frame residual decoder function (subrutine to iLBC_decode)
|
||||
*---------------------------------------------------------------*/
|
||||
|
||||
void WebRtcIlbcfix_DecodeResidual(
|
||||
IlbcDecoder *iLBCdec_inst,
|
||||
/* (i/o) the decoder state structure */
|
||||
iLBC_bits *iLBC_encbits, /* (i/o) Encoded bits, which are used
|
||||
for the decoding */
|
||||
int16_t *decresidual, /* (o) decoded residual frame */
|
||||
int16_t *syntdenum /* (i) the decoded synthesis filter
|
||||
coefficients */
|
||||
);
|
||||
// Returns true on success, false on failure. In case of failure, the decoder
|
||||
// state may be corrupted and needs resetting.
|
||||
bool WebRtcIlbcfix_DecodeResidual(
|
||||
IlbcDecoder* iLBCdec_inst, /* (i/o) the decoder state structure */
|
||||
iLBC_bits* iLBC_encbits, /* (i/o) Encoded bits, which are used
|
||||
for the decoding */
|
||||
int16_t* decresidual, /* (o) decoded residual frame */
|
||||
int16_t* syntdenum /* (i) the decoded synthesis filter
|
||||
coefficients */
|
||||
) WARN_UNUSED_RESULT;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user