diff options
author | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2016-09-27 16:15:44 +0100 |
---|---|---|
committer | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2016-09-27 17:20:18 +0100 |
commit | fed624a20868fa0adbec11ba059de385ee10ad81 (patch) | |
tree | 42b0ec8cab19a830df428ad49aba13949f4eda66 | |
parent | a828b12ca8c0b253ada58cc5ebc96c24dcd1212d (diff) | |
download | gstreamer-plugins-bad-fed624a20868fa0adbec11ba059de385ee10ad81.tar.gz |
fdkaacdec: do not error out of out of sync return
The docs say we should continue feeding in data and decoding
https://bugzilla.gnome.org/show_bug.cgi?id=772067
-rw-r--r-- | ext/fdkaac/gstfdkaacdec.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/fdkaac/gstfdkaacdec.c b/ext/fdkaac/gstfdkaacdec.c index a9feca5e7..7e6dcb2a2 100644 --- a/ext/fdkaac/gstfdkaacdec.c +++ b/ext/fdkaac/gstfdkaacdec.c @@ -210,6 +210,11 @@ gst_fdkaacdec_handle_frame (GstAudioDecoder * dec, GstBuffer * inbuf) if ((err = aacDecoder_DecodeFrame (self->dec, (gint16 *) self->decode_buffer, self->decode_buffer_size, flags)) != AAC_DEC_OK) { + if (err == AAC_DEC_TRANSPORT_SYNC_ERROR) { + ret = GST_FLOW_OK; + outbuf = NULL; + goto finish; + } GST_AUDIO_DECODER_ERROR (self, 1, STREAM, DECODE, (NULL), ("decoding error: %d", err), ret); goto out; @@ -383,6 +388,7 @@ gst_fdkaacdec_handle_frame (GstAudioDecoder * dec, GstBuffer * inbuf) GST_AUDIO_INFO_CHANNELS (&info), pos, gst_pos); } +finish: ret = gst_audio_decoder_finish_frame (dec, outbuf, 1); out: |