Commit 51ffddfa authored by michael's avatar michael

Try to more completely update time variables on unpause.

Could not notice a differenc in behavior.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@21584 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 6d8a0e43
...@@ -115,6 +115,7 @@ typedef struct VideoState { ...@@ -115,6 +115,7 @@ typedef struct VideoState {
int seek_flags; int seek_flags;
int64_t seek_pos; int64_t seek_pos;
int64_t seek_rel; int64_t seek_rel;
int read_pause_return;
AVFormatContext *ic; AVFormatContext *ic;
int dtg_active_format; int dtg_active_format;
...@@ -991,8 +992,12 @@ static void stream_pause(VideoState *is) ...@@ -991,8 +992,12 @@ static void stream_pause(VideoState *is)
{ {
is->paused = !is->paused; is->paused = !is->paused;
if (!is->paused) { if (!is->paused) {
is->video_current_pts = get_video_clock(is); if(is->read_pause_return != AVERROR(ENOSYS)){
is->video_current_pts = get_video_clock(is);
}
is->frame_timer += (av_gettime() - is->video_current_pts_time) / 1000000.0; is->frame_timer += (av_gettime() - is->video_current_pts_time) / 1000000.0;
is->video_current_pts_time= av_gettime();
} }
} }
...@@ -2007,7 +2012,7 @@ static int decode_thread(void *arg) ...@@ -2007,7 +2012,7 @@ static int decode_thread(void *arg)
if (is->paused != is->last_paused) { if (is->paused != is->last_paused) {
is->last_paused = is->paused; is->last_paused = is->paused;
if (is->paused) if (is->paused)
av_read_pause(ic); is->read_pause_return= av_read_pause(ic);
else else
av_read_play(ic); av_read_play(ic);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment