summaryrefslogtreecommitdiff
path: root/src/demuxers
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2007-07-08 15:40:40 +0100
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2007-07-08 15:40:40 +0100
commit35a0310f9c67e357a3dc8ea3420ec6d25dd2aad9 (patch)
treee97cbd2454dbe85f17e9e708651151d9b4767911 /src/demuxers
parentcaf1060d009128fa2526bd238b4746acdaeb5d64 (diff)
parent425fa4b12abcf5d04544215aeae58b4af3cee24b (diff)
downloadxine-lib-35a0310f9c67e357a3dc8ea3420ec6d25dd2aad9.tar.gz
xine-lib-35a0310f9c67e357a3dc8ea3420ec6d25dd2aad9.tar.bz2
Merge from 1.1.
Diffstat (limited to 'src/demuxers')
-rw-r--r--src/demuxers/demux_ts.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c
index 2b3f77d11..07f466adb 100644
--- a/src/demuxers/demux_ts.c
+++ b/src/demuxers/demux_ts.c
@@ -341,6 +341,8 @@ typedef struct {
int32_t npkt_read;
uint8_t buf[BUF_SIZE]; /* == PKT_SIZE * NPKT_PER_READ */
+
+ int numPreview;
} demux_ts_t;
@@ -895,6 +897,16 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts,
m->buf->decoder_info[1] = BUF_SPECIAL_SPU_DVD_SUBTYPE;
m->buf->decoder_info[2] = SPU_DVD_SUBTYPE_PACKAGE;
}
+ else {
+ if (this->numPreview<5)
+ ++this->numPreview;
+ if ( this->numPreview==1 )
+ m->buf->decoder_flags=BUF_FLAG_HEADER | BUF_FLAG_FRAME_END;
+ else if ( this->numPreview<5 )
+ m->buf->decoder_flags=BUF_FLAG_PREVIEW;
+ else
+ m->buf->decoder_flags=BUF_FLAG_FRAME_END;
+ }
m->buf->pts = m->pts;
m->buf->decoder_info[0] = 1;
@@ -2256,6 +2268,8 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
/* dvb */
this->event_queue = xine_event_new_queue (this->stream);
+ this->numPreview=0;
+
return &this->demux_plugin;
}