summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2010-01-12 21:09:36 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2010-01-12 21:09:36 +0000
commit537599eb87073993d3d5a931b0973cf56c107ab6 (patch)
treef0f9aafcb53fcdcd6a783b6d2bcdd4e463125f8a
parentf95b2adaeccea14060f232d4f9e67dd25eb1801e (diff)
parent5a48c726a76dac9b2a5612d65af2a65622e1b680 (diff)
downloadxine-lib-537599eb87073993d3d5a931b0973cf56c107ab6.tar.gz
xine-lib-537599eb87073993d3d5a931b0973cf56c107ab6.tar.bz2
Merge from 1.1.
-rw-r--r--src/demuxers/demux_ts.c23
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 */