mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-16 19:25:18 +00:00
fdkaacdec: Do not report decoding error for flush request
A flush request is done when set_format is called to empty internal bit buffer maintained by fdk-aac. When this happens, during the explicit call to handle_buffer, decodeFrame does not return a AAC_DEC_OK. This gets reported as a decoding error while no decoding error in fact took place. Since this can be confusing, just return a GST_FLOW_OK and log that an explicit flush was requested.
This commit is contained in:
parent
858e516383
commit
a63d8ee720
1 changed files with 9 additions and 0 deletions
|
@ -585,6 +585,15 @@ gst_fdkaacdec_handle_frame (GstAudioDecoder * dec, GstBuffer * inbuf)
|
|||
ret = GST_FLOW_OK;
|
||||
outbuf = NULL;
|
||||
goto finish;
|
||||
} else if ((err != AAC_DEC_OK) && (flags & AACDEC_FLUSH)) {
|
||||
/*
|
||||
* A flush/drain was requested when set_format got called. When a flush
|
||||
* gets requested, aacDecoder_DecodeFrame may not return AAC_DEC_OK. Do
|
||||
* not report a decoding error with GST_AUDIO_DECODER_ERROR for this case.
|
||||
*/
|
||||
GST_LOG_OBJECT (self, "Decoder flush was requested");
|
||||
ret = GST_FLOW_OK;
|
||||
goto out;
|
||||
} else if (err != AAC_DEC_OK) {
|
||||
GST_AUDIO_DECODER_ERROR (self, 1, STREAM, DECODE, (NULL),
|
||||
("decoding error: %d", err), ret);
|
||||
|
|
Loading…
Reference in a new issue