diff options
author | Torsten Jager <t.jager@gmx.de> | 2015-04-02 17:50:00 +0200 |
---|---|---|
committer | Torsten Jager <t.jager@gmx.de> | 2015-04-02 17:50:00 +0200 |
commit | ade430c70fc0e00443fcdb635722c85cc6691bfb (patch) | |
tree | 5ea2e7c3ff1bfb8ea65a60467ff8ade14dfcc244 /src | |
parent | 965c0ed960d6cf2acf4bdfed6eb9389be101eab3 (diff) | |
download | xine-lib-ade430c70fc0e00443fcdb635722c85cc6691bfb.tar.gz xine-lib-ade430c70fc0e00443fcdb635722c85cc6691bfb.tar.bz2 |
demux_ts: Another safety against freeze on heavy seeking.
VDPAU seems not to need this nasty workaround (and it seems
not to be harmed by it either).
Doing this inside ff_video_decoder would affect all demuxers,
and only for MPEG-TS I am halfway sure that there will follow
another sequence header after seek.
Alternatively, demux_ts could seek to keyframes. This is not
as simple as it sounds. Many DVB streams I have seen only
show "Auxillary data" and "Sequence extended info" NAL units
openly. All the rest hides behind escapes...
Diffstat (limited to 'src')
-rw-r--r-- | src/demuxers/demux_ts.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 890b8e12e..a9883963c 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -2536,6 +2536,12 @@ static int demux_ts_seek (demux_plugin_t *this_gen, this->buf_flag_seek = 1; _x_demux_flush_engine(this->stream); + /* Append sequence end code to video stream. */ + /* Keep ffmpeg h.264 video decoder from piling up too many DR1 frames, */ + /* and thus freezing video out. */ + if (this->videoPid != INVALID_PID && this->stream->video_fifo) + post_sequence_end (this->stream->video_fifo, this->media[this->videoMedia].type); + } demux_ts_tbre_reset (this); |