summaryrefslogtreecommitdiffstats
path: root/mencoder.c
diff options
context:
space:
mode:
authorods15 <ods15@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-10-08 17:21:00 +0000
committerods15 <ods15@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-10-08 17:21:00 +0000
commitfa70ed4a032fa20cb922811494bc54d517072470 (patch)
tree5c6a2aba67076f8f07326981e15b0b44887587e0 /mencoder.c
parente4c85b0f524701cfd00fd91c53d81874d8eec88d (diff)
downloadmpv-fa70ed4a032fa20cb922811494bc54d517072470.tar.bz2
mpv-fa70ed4a032fa20cb922811494bc54d517072470.tar.xz
100000l to me
fixdelay() pre-read a frame to make pts sane, and then called slowseek(), which AGAIN read another frame, and then tries to decode it (which breaks as all frames should be read) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16709 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mencoder.c')
-rw-r--r--mencoder.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/mencoder.c b/mencoder.c
index b0c6b623ea..16deef9af0 100644
--- a/mencoder.c
+++ b/mencoder.c
@@ -1690,9 +1690,12 @@ static int slowseek(float end_pts, demux_stream_t *d_video, demux_stream_t *d_au
while (!interrupted) {
float a_pts = 0.;
- frame_data->in_size = video_read_frame(sh_video, &frame_data->frame_time, &frame_data->start, force_fps);
- if(frame_data->in_size<0) return 2;
- sh_video->timer += frame_data->frame_time;
+ if (!frame_data->already_read) { // when called after fixdelay, a frame is already read
+ frame_data->in_size = video_read_frame(sh_video, &frame_data->frame_time, &frame_data->start, force_fps);
+ if(frame_data->in_size<0) return 2;
+ sh_video->timer += frame_data->frame_time;
+ }
+ frame_data->already_read = 0;
a_pts = forward_audio(sh_video->pts - frame_data->frame_time + audio_delay, d_audio, mux_a);