diff options
Diffstat (limited to 'libmpdemux/demux_ts.c')
-rw-r--r-- | libmpdemux/demux_ts.c | 11 |
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); |