summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_ts.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demux_ts.c')
-rw-r--r--libmpdemux/demux_ts.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c
index ebb1709f5a..6658e3b796 100644
--- a/libmpdemux/demux_ts.c
+++ b/libmpdemux/demux_ts.c
@@ -80,6 +80,7 @@ typedef enum
AUDIO_AAC = mmioFOURCC('M', 'P', '4', 'A'),
AUDIO_AAC_LATM = mmioFOURCC('M', 'P', '4', 'L'),
AUDIO_TRUEHD = mmioFOURCC('T', 'R', 'H', 'D'),
+ AUDIO_S302M = mmioFOURCC('B', 'S', 'S', 'D'),
SPU_DVD = 0x3000000,
SPU_DVB = 0x3000001,
SPU_TELETEXT = 0x3000002,
@@ -260,6 +261,7 @@ static int IS_AUDIO(es_stream_type_t type)
case AUDIO_AAC_LATM:
case AUDIO_DTS:
case AUDIO_TRUEHD:
+ case AUDIO_S302M:
return 1;
}
return 0;
@@ -661,7 +663,7 @@ static int a52_check(char *buf, int len)
static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param)
{
- int video_found = 0, audio_found = 0, sub_found av_unused = 0, i, num_packets = 0, req_apid, req_vpid, req_spid;
+ int video_found = 0, audio_found = 0, i, num_packets = 0, req_apid, req_vpid, req_spid;
int is_audio, is_video, is_sub, has_tables;
int32_t p, chosen_pid = 0;
off_t pos=0, ret = 0, init_pos, end_pos;
@@ -828,7 +830,6 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param)
{
param->stype = es.type;
param->spid = es.pid;
- sub_found = 1;
}
}
@@ -896,6 +897,8 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param)
mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO AAC LATM(pid=%d)", param->apid);
else if(param->atype == AUDIO_TRUEHD)
mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO TRUEHD(pid=%d)", param->apid);
+ else if(param->atype == AUDIO_S302M)
+ mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO S302M(pid=%d)", param->apid);
else
{
audio_found = 0;
@@ -2357,6 +2360,10 @@ static int parse_descriptors(struct pmt_es_t *es, uint8_t *ptr)
{
es->type = VIDEO_DIRAC;
}
+ else if(d[0] == 'B' && d[1] == 'S' && d[2] == 'S' && d[3] == 'D')
+ {
+ es->type = AUDIO_S302M;
+ }
else
es->type = UNKNOWN;
mp_msg(MSGT_DEMUX, MSGL_DBG2, "FORMAT %s\n", es->format_descriptor);