mpeg[pt]sdemux: Add support for AAC LATM/LOAS streams

Fixes bug #615681.
This commit is contained in:
Rafael Diniz 2011-05-20 09:58:50 +02:00 committed by Sebastian Dröge
parent 6e4a14d231
commit 83b5b29639
3 changed files with 23 additions and 5 deletions

View file

@ -159,7 +159,9 @@
#define ST_H222_1 0x09 #define ST_H222_1 0x09
/* later extensions */ /* 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_MPEG4 0x10
#define ST_VIDEO_H264 0x1b #define ST_VIDEO_H264 0x1b

View file

@ -350,11 +350,19 @@ gst_flups_demux_create_stream (GstFluPSDemux * demux, gint id, gint stream_type)
case ST_MHEG: case ST_MHEG:
case ST_DSMCC: case ST_DSMCC:
break; break;
case ST_AUDIO_AAC: case ST_AUDIO_AAC_ADTS:
template = klass->audio_template; template = klass->audio_template;
name = g_strdup_printf ("audio_%02x", id); name = g_strdup_printf ("audio_%02x", id);
caps = gst_caps_new_simple ("audio/mpeg", 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; break;
case ST_VIDEO_H264: case ST_VIDEO_H264:
template = klass->video_template; template = klass->video_template;

View file

@ -682,11 +682,19 @@ gst_mpegts_demux_fill_stream (GstMpegTSStream * stream, guint8 id,
case ST_MHEG: case ST_MHEG:
case ST_DSMCC: case ST_DSMCC:
break; break;
case ST_AUDIO_AAC: case ST_AUDIO_AAC_ADTS:
template = klass->audio_template; template = klass->audio_template;
name = g_strdup_printf ("audio_%04x", stream->PID); name = g_strdup_printf ("audio_%04x", stream->PID);
caps = gst_caps_new_simple ("audio/mpeg", 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; break;
case ST_VIDEO_MPEG4: case ST_VIDEO_MPEG4:
template = klass->video_template; template = klass->video_template;