summaryrefslogtreecommitdiff
path: root/ffplay.c
diff options
context:
space:
mode:
authorWolfgang Hesseler <qv@multimediaware.com>2003-12-28 01:19:41 +0000
committerMichael Niedermayer <michaelni@gmx.at>2003-12-28 01:19:41 +0000
commitbba04f1e9dcf5fb66c2aee45d6163d2548e97f4b (patch)
treeb2c553577bb1777774de66afb01a91d5e3709c94 /ffplay.c
parent2c293402b0df049d07cf75a09a475958102d7bdb (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.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/ffplay.c b/ffplay.c
index ad9410e452..8f06f8fb17 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);