diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-06-05 23:34:17 +0300 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-06-05 23:35:42 +0300 |
commit | dde8b753e417bb44e5f18ac9d6901deb95bf6ab0 (patch) | |
tree | 84fc2a73fc1f514417cacd61c9a57580ca47cd66 /libmpdemux/demux_ts.c | |
parent | 331167ae132d35c821510307d8dd109ce27bfc1b (diff) | |
parent | 09bca6575f66394e1f4ba3845330d21d30895f3d (diff) | |
download | mpv-dde8b753e417bb44e5f18ac9d6901deb95bf6ab0.tar.bz2 mpv-dde8b753e417bb44e5f18ac9d6901deb95bf6ab0.tar.xz |
Merge svn changes r31318 to r31328
r31328 is a somewhat questionable (changing the option at that point
isn't quite safe), but it was a failure case already...
Diffstat (limited to 'libmpdemux/demux_ts.c')
-rw-r--r-- | libmpdemux/demux_ts.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index 697c7e7b9b..e33791fb89 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -69,6 +69,7 @@ typedef enum VIDEO_MPEG4 = 0x10000004, VIDEO_H264 = 0x10000005, VIDEO_AVC = mmioFOURCC('a', 'v', 'c', '1'), + VIDEO_DIRAC = mmioFOURCC('d', 'r', 'a', 'c'), VIDEO_VC1 = mmioFOURCC('W', 'V', 'C', '1'), AUDIO_MP2 = 0x50, AUDIO_A52 = 0x2000, @@ -245,7 +246,7 @@ typedef struct { #define IS_AUDIO(x) (((x) == AUDIO_MP2) || ((x) == AUDIO_A52) || ((x) == AUDIO_LPCM_BE) || ((x) == AUDIO_AAC) || ((x) == AUDIO_DTS) || ((x) == AUDIO_TRUEHD)) -#define IS_VIDEO(x) (((x) == VIDEO_MPEG1) || ((x) == VIDEO_MPEG2) || ((x) == VIDEO_MPEG4) || ((x) == VIDEO_H264) || ((x) == VIDEO_AVC) || ((x) == VIDEO_VC1)) +#define IS_VIDEO(x) (((x) == VIDEO_MPEG1) || ((x) == VIDEO_MPEG2) || ((x) == VIDEO_MPEG4) || ((x) == VIDEO_H264) || ((x) == VIDEO_AVC) || ((x) == VIDEO_DIRAC) || ((x) == VIDEO_VC1)) #define IS_SUB(x) (((x) == SPU_DVD) || ((x) == SPU_DVB) || ((x) == SPU_TELETEXT)) static int ts_parse(demuxer_t *demuxer, ES_stream_t *es, unsigned char *packet, int probe); @@ -2326,6 +2327,10 @@ static int parse_descriptors(struct pmt_es_t *es, uint8_t *ptr) { es->type = VIDEO_VC1; } + else if(d[0] == 'd' && d[1] == 'r' && d[2] == 'a' && d[3] == 'c') + { + es->type = VIDEO_DIRAC; + } else es->type = UNKNOWN; mp_msg(MSGT_DEMUX, MSGL_DBG2, "FORMAT %s\n", es->format_descriptor); @@ -2523,6 +2528,9 @@ static int parse_pmt(ts_priv_t * priv, uint16_t progid, uint16_t pid, int is_sta case 0x86: pmt->es[idx].type = AUDIO_DTS; break; + case 0xD1: + pmt->es[idx].type = VIDEO_DIRAC; + break; case 0xEA: pmt->es[idx].type = VIDEO_VC1; break; |