diff options
| author | phintuka <phintuka> | 2011-03-24 09:46:04 +0000 |
|---|---|---|
| committer | phintuka <phintuka> | 2011-03-24 09:46:04 +0000 |
| commit | 916c3d2db4d2358e7eb003891b33534b5080705a (patch) | |
| tree | b64601575ced8035003745f03a7346a628cb2e5d | |
| parent | cced66afde1913844c7905f3034c522f41c2c09e (diff) | |
| download | xineliboutput-916c3d2db4d2358e7eb003891b33534b5080705a.tar.gz xineliboutput-916c3d2db4d2358e7eb003891b33534b5080705a.tar.bz2 | |
Handle end of still image marker packets
| -rw-r--r-- | xine/demux_xvdr.c | 11 |
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) { |
