summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-12-15 14:05:09 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-12-22 14:42:19 +0200
commit8dfaecfa3d78ed864bd4dfc3cb435304248e6157 (patch)
tree2eb2cc9df46928e8ef6422ed5a66fe32e98bf7ee /sys
parent5341390c627ccdcc43e40faf1bc8aa1ff1c6f16b (diff)
downloadgstreamer-plugins-bad-8dfaecfa3d78ed864bd4dfc3cb435304248e6157.tar.gz
amcaudiodec: Set "is-adts" to 1 for ADTS AAC
Otherwise it fails to decode. https://bugzilla.gnome.org/show_bug.cgi?id=740101
Diffstat (limited to 'sys')
-rw-r--r--sys/androidmedia/gstamcaudiodec.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/androidmedia/gstamcaudiodec.c b/sys/androidmedia/gstamcaudiodec.c
index 49c8c602c..f46df7b09 100644
--- a/sys/androidmedia/gstamcaudiodec.c
+++ b/sys/androidmedia/gstamcaudiodec.c
@@ -882,6 +882,21 @@ gst_amc_audio_dec_set_format (GstAudioDecoder * decoder, GstCaps * caps)
return FALSE;
}
+ if (gst_structure_has_name (s, "audio/mpeg")) {
+ gint mpegversion;
+ const gchar *stream_format;
+
+ if (!gst_structure_get_int (s, "mpegversion", &mpegversion))
+ mpegversion = -1;
+ stream_format = gst_structure_get_string (s, "stream-format");
+
+ if (mpegversion == 4 && g_strcmp0 (stream_format, "adts") == 0) {
+ gst_amc_format_set_int (format, "is-adts", 1, &err);
+ if (err)
+ GST_ELEMENT_WARNING_FROM_ERROR (self, err);
+ }
+ }
+
/* FIXME: These buffers needs to be valid until the codec is stopped again */
g_list_foreach (self->codec_datas, (GFunc) gst_buffer_unref, NULL);
g_list_free (self->codec_datas);