summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2011-03-24 09:46:04 +0000
committerphintuka <phintuka>2011-03-24 09:46:04 +0000
commit916c3d2db4d2358e7eb003891b33534b5080705a (patch)
treeb64601575ced8035003745f03a7346a628cb2e5d
parentcced66afde1913844c7905f3034c522f41c2c09e (diff)
downloadxineliboutput-916c3d2db4d2358e7eb003891b33534b5080705a.tar.gz
xineliboutput-916c3d2db4d2358e7eb003891b33534b5080705a.tar.bz2
Handle end of still image marker packets
-rw-r--r--xine/demux_xvdr.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/xine/demux_xvdr.c b/xine/demux_xvdr.c
index 5e027045..99276f86 100644
--- a/xine/demux_xvdr.c
+++ b/xine/demux_xvdr.c
@@ -976,6 +976,17 @@ static int32_t parse_video_stream(demux_xvdr_t *this, uint8_t *p, buf_element_t
result = parse_pes_for_pts(this, p, buf);
if (result < 0) return -1;
+ /* Handle marker packets after still images */
+ if (buf->size == 14 && result == 14 && this->pts == 0) {
+ /*if (this->stream->metronom->get_option(this->stream->metronom, XVDR_METRONOM_STILL_MODE))*/ {
+ LOGDBG("video fifo flush and decoder reset after still image");
+ put_control_buf(this->video_fifo, this->video_fifo, BUF_CONTROL_FLUSH_DECODER);
+ put_control_buf(this->video_fifo, this->video_fifo, BUF_CONTROL_RESET_DECODER);
+ buf->free_buffer(buf);
+ return -1;
+ }
+ }
+
p += result;
if (this->video_type == 0 && buf->size >= 4) {