diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2010-01-12 21:09:36 +0000 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2010-01-12 21:09:36 +0000 |
commit | 537599eb87073993d3d5a931b0973cf56c107ab6 (patch) | |
tree | f0f9aafcb53fcdcd6a783b6d2bcdd4e463125f8a | |
parent | f95b2adaeccea14060f232d4f9e67dd25eb1801e (diff) | |
parent | 5a48c726a76dac9b2a5612d65af2a65622e1b680 (diff) | |
download | xine-lib-537599eb87073993d3d5a931b0973cf56c107ab6.tar.gz xine-lib-537599eb87073993d3d5a931b0973cf56c107ab6.tar.bz2 |
Merge from 1.1.
-rw-r--r-- | src/demuxers/demux_ts.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 8213ceedf..8c8250cf4 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -233,7 +233,6 @@ ISO_14496_PART10_VIDEO = 0x1b, /* ISO/IEC 14496-10 Video (MPEG-4 part 10/AVC, aka H.264) */ STREAM_VIDEO_MPEG = 0x80, STREAM_AUDIO_AC3 = 0x81, - STREAM_SPU_BITMAP_HDMV = 0x90, STREAM_VIDEO_VC1 = 0xea, /* VC-1 Video */ @@ -244,6 +243,10 @@ HDMV_AUDIO_85_DTS_HRA = 0x85, /* DTS-HRA */ HDMV_AUDIO_86_DTS_HD_MA = 0x86, /* DTS-HD Master audio */ + HDMV_SPU_BITMAP = 0x90, + HDMV_SPU_INTERACTIVE = 0x91, + HDMV_SPU_TEXT = 0x92, + } streamType; #define WRAP_THRESHOLD 270000 @@ -763,7 +766,7 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, return 1; } - if (m->descriptor_tag == STREAM_SPU_BITMAP_HDMV) { + if (m->descriptor_tag == HDMV_SPU_BITMAP) { long payload_len = ((buf[4] << 8) | buf[5]) - header_len - 3; m->content = p; @@ -801,7 +804,8 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, m->type |= BUF_AUDIO_A52; return 1; - } else if (m->descriptor_tag == HDMV_AUDIO_86_DTS_HD_MA ) { + } else if (m->descriptor_tag == HDMV_AUDIO_82_DTS || + m->descriptor_tag == HDMV_AUDIO_86_DTS_HD_MA ) { m->content = p; m->size = packet_len; m->type |= BUF_AUDIO_DTS; @@ -966,7 +970,7 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts, else if ( this->numPreview<5 ) m->buf->decoder_flags=BUF_FLAG_PREVIEW; else - m->buf->decoder_flags=BUF_FLAG_FRAME_END; + m->buf->decoder_flags |= BUF_FLAG_FRAME_END; } m->buf->pts = m->pts; m->buf->decoder_info[0] = 1; @@ -1485,7 +1489,16 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num } break; - case STREAM_SPU_BITMAP_HDMV: + case HDMV_SPU_INTERACTIVE: + case HDMV_SPU_TEXT: + if (this->hdmv > 0) { + printf("demux_ts: Skipping unsupported HDMV subtitle stream_type: 0x%.2x pid: 0x%.4x\n", + stream[0], pid); + break; + } + /* fall thru */ + + case HDMV_SPU_BITMAP: if (this->hdmv > 0) { if (pid >= 0x1200 && pid < 0x1300) { /* HDMV Presentation Graphics / SPU */ |