diff options
author | Wolfgang Hesseler <qv@multimediaware.com> | 2003-12-28 04:19:41 +0300 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-12-28 04:19:41 +0300 |
commit | bba04f1e9dcf5fb66c2aee45d6163d2548e97f4b (patch) | |
tree | b2c553577bb1777774de66afb01a91d5e3709c94 /ffplay.c | |
parent | 2c293402b0df049d07cf75a09a475958102d7bdb (diff) |
frame stepping patch by (Wolfgang Hesseler <qv at multimediaware dot com>)
Originally committed as revision 2632 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffplay.c')
-rw-r--r-- | ffplay.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -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); |