From bba04f1e9dcf5fb66c2aee45d6163d2548e97f4b Mon Sep 17 00:00:00 2001 From: Wolfgang Hesseler Date: Sun, 28 Dec 2003 01:19:41 +0000 Subject: [PATCH] frame stepping patch by (Wolfgang Hesseler ) Originally committed as revision 2632 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffplay.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ffplay.c b/ffplay.c index ad9410e..8f06f8f 100644 --- a/ffplay.c +++ b/ffplay.c @@ -166,6 +166,7 @@ static int show_status; static int av_sync_type = AV_SYNC_AUDIO_MASTER; static int64_t start_time = AV_NOPTS_VALUE; static int debug = 0; +static int step = 0; /* current context */ static int is_full_screen; @@ -919,6 +920,9 @@ static int video_thread(void *arg) } } av_free_packet(pkt); + if (step) + if (cur_stream) + stream_pause(cur_stream); } the_end: av_free(frame); @@ -1584,6 +1588,17 @@ void toggle_pause(void) { if (cur_stream) stream_pause(cur_stream); + step = 0; +} + +void step_to_next_frame(void) +{ + if (cur_stream) { + if (cur_stream->paused) + cur_stream->paused=0; + cur_stream->video_current_pts = get_video_clock(cur_stream); + } + step = 1; } void do_exit(void) @@ -1627,6 +1642,9 @@ void event_loop(void) case SDLK_SPACE: toggle_pause(); break; + case SDLK_s: //S: Step to next frame + step_to_next_frame(); + break; case SDLK_a: if (cur_stream) stream_cycle_channel(cur_stream, CODEC_TYPE_AUDIO); -- 2.7.4