diff options
author | Rafael Diniz <rafael@riseup.net> | 2011-05-20 09:58:50 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2011-05-20 10:00:02 +0200 |
commit | 83b5b296390838a2e151097e4665b9334cfff1fc (patch) | |
tree | bee4e5b4f84d917668906503718c83455dc261a9 /gst/mpegdemux | |
parent | 6e4a14d231803f92e2dc1c8627eee2162027bce4 (diff) | |
download | gstreamer-plugins-bad-83b5b296390838a2e151097e4665b9334cfff1fc.tar.gz |
mpeg[pt]sdemux: Add support for AAC LATM/LOAS streams
Fixes bug #615681.
Diffstat (limited to 'gst/mpegdemux')
-rw-r--r-- | gst/mpegdemux/gstmpegdefs.h | 4 | ||||
-rw-r--r-- | gst/mpegdemux/gstmpegdemux.c | 12 | ||||
-rw-r--r-- | gst/mpegdemux/gstmpegtsdemux.c | 12 |
3 files changed, 23 insertions, 5 deletions
diff --git a/gst/mpegdemux/gstmpegdefs.h b/gst/mpegdemux/gstmpegdefs.h index 05320ecb1..a34af53a2 100644 --- a/gst/mpegdemux/gstmpegdefs.h +++ b/gst/mpegdemux/gstmpegdefs.h @@ -159,7 +159,9 @@ #define ST_H222_1 0x09 /* later extensions */ -#define ST_AUDIO_AAC 0x0f +#define ST_AUDIO_AAC_ADTS 0x0f +/* LATM/LOAS AAC syntax */ +#define ST_AUDIO_AAC_LOAS 0x11 #define ST_VIDEO_MPEG4 0x10 #define ST_VIDEO_H264 0x1b diff --git a/gst/mpegdemux/gstmpegdemux.c b/gst/mpegdemux/gstmpegdemux.c index ca2bac48b..205d381d5 100644 --- a/gst/mpegdemux/gstmpegdemux.c +++ b/gst/mpegdemux/gstmpegdemux.c @@ -350,11 +350,19 @@ gst_flups_demux_create_stream (GstFluPSDemux * demux, gint id, gint stream_type) case ST_MHEG: case ST_DSMCC: break; - case ST_AUDIO_AAC: + case ST_AUDIO_AAC_ADTS: template = klass->audio_template; name = g_strdup_printf ("audio_%02x", id); caps = gst_caps_new_simple ("audio/mpeg", - "mpegversion", G_TYPE_INT, 4, NULL); + "mpegversion", G_TYPE_INT, 4, + "stream-format", G_TYPE_STRING, "adts", NULL); + break; + case ST_AUDIO_AAC_LOAS: // LATM/LOAS AAC syntax + template = klass->audio_template; + name = g_strdup_printf ("audio_%02x", id); + caps = gst_caps_new_simple ("audio/mpeg", + "mpegversion", G_TYPE_INT, 4, + "stream-format", G_TYPE_STRING, "loas", NULL); break; case ST_VIDEO_H264: template = klass->video_template; diff --git a/gst/mpegdemux/gstmpegtsdemux.c b/gst/mpegdemux/gstmpegtsdemux.c index a251bc5b2..2c5c6cc1e 100644 --- a/gst/mpegdemux/gstmpegtsdemux.c +++ b/gst/mpegdemux/gstmpegtsdemux.c @@ -682,11 +682,19 @@ gst_mpegts_demux_fill_stream (GstMpegTSStream * stream, guint8 id, case ST_MHEG: case ST_DSMCC: break; - case ST_AUDIO_AAC: + case ST_AUDIO_AAC_ADTS: template = klass->audio_template; name = g_strdup_printf ("audio_%04x", stream->PID); caps = gst_caps_new_simple ("audio/mpeg", - "mpegversion", G_TYPE_INT, 4, NULL); + "mpegversion", G_TYPE_INT, 4, + "stream-format", G_TYPE_STRING, "adts", NULL); + break; + case ST_AUDIO_AAC_LOAS: // LATM/LOAS AAC syntax + template = klass->audio_template; + name = g_strdup_printf ("audio_%04x", stream->PID); + caps = gst_caps_new_simple ("audio/mpeg", + "mpegversion", G_TYPE_INT, 4, + "stream-format", G_TYPE_STRING, "loas", NULL); break; case ST_VIDEO_MPEG4: template = klass->video_template; |