summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2016-09-27 16:15:44 +0100
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2016-09-27 17:20:18 +0100
commitfed624a20868fa0adbec11ba059de385ee10ad81 (patch)
tree42b0ec8cab19a830df428ad49aba13949f4eda66
parenta828b12ca8c0b253ada58cc5ebc96c24dcd1212d (diff)
downloadgstreamer-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.c6
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: