mpegtsdemux: Implement EAC3 handling according some ATSC specs.

Fixes bug #594030.
This commit is contained in:
Josep Torra 2009-09-03 15:40:14 +02:00 committed by Sebastian Dröge
parent 3bb2efeea0
commit 1e865242a7
2 changed files with 14 additions and 1 deletions

View file

@ -178,6 +178,7 @@
#define ST_BD_AUDIO_AC3_TRUE_HD 0x83
#define ST_BD_AUDIO_AC3_PLUS 0x84
#define ST_BD_AUDIO_DTS_HD 0x85
#define ST_BD_AUDIO_EAC3 0x87
#define ST_BD_PGS_SUBPICTURE 0x90
#define ST_BD_IGS 0x91
#define ST_BD_SUBTITLE 0x92

View file

@ -669,9 +669,21 @@ gst_mpegts_demux_fill_stream (GstMpegTSStream * stream, guint8 id,
NULL);
break;
case ST_BD_AUDIO_AC3:
if (gst_mpeg_descriptor_find (stream->ES_info, DESC_DVB_AC3)) {
template = klass->audio_template;
name = g_strdup_printf ("audio_%04x", stream->PID);
caps = gst_caps_new_simple ("audio/x-ac3", NULL);
} else if (gst_mpeg_descriptor_find (stream->ES_info,
DESC_DVB_ENHANCED_AC3)) {
template = klass->audio_template;
name = g_strdup_printf ("audio_%04x", stream->PID);
caps = gst_caps_new_simple ("audio/x-eac3", NULL);
}
break;
case ST_BD_AUDIO_EAC3:
template = klass->audio_template;
name = g_strdup_printf ("audio_%04x", stream->PID);
caps = gst_caps_new_simple ("audio/x-ac3", NULL);
caps = gst_caps_new_simple ("audio/x-eac3", NULL);
break;
case ST_PS_AUDIO_DTS:
template = klass->audio_template;