1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00

ffplay: make step variable a member of the VideoState struct

Getting rid of globals are generally a good thing. The patch also makes
toggle_pause and step_to_next_frame use a function parameter instead of
the global cur_stream variable.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Marton Balint 2011-08-21 15:06:08 +02:00 committed by Michael Niedermayer
parent 27667d28a6
commit 5db1f94b8d

View File

@ -207,6 +207,7 @@ typedef struct VideoState {
char filename[1024]; char filename[1024];
int width, height, xleft, ytop; int width, height, xleft, ytop;
int step;
#if CONFIG_AVFILTER #if CONFIG_AVFILTER
AVFilterContext *out_video_filter; ///<the last filter in the video chain AVFilterContext *out_video_filter; ///<the last filter in the video chain
@ -240,7 +241,6 @@ static int show_status = 1;
static int av_sync_type = AV_SYNC_AUDIO_MASTER; static int av_sync_type = AV_SYNC_AUDIO_MASTER;
static int64_t start_time = AV_NOPTS_VALUE; static int64_t start_time = AV_NOPTS_VALUE;
static int64_t duration = AV_NOPTS_VALUE; static int64_t duration = AV_NOPTS_VALUE;
static int step = 0;
static int thread_count = 1; static int thread_count = 1;
static int workaround_bugs = 1; static int workaround_bugs = 1;
static int fast = 0; static int fast = 0;
@ -1794,9 +1794,8 @@ static int video_thread(void *arg)
if (ret < 0) if (ret < 0)
goto the_end; goto the_end;
if (step) if (cur_stream && cur_stream->step)
if (cur_stream) stream_toggle_pause(cur_stream);
stream_toggle_pause(cur_stream);
} }
the_end: the_end:
#if CONFIG_AVFILTER #if CONFIG_AVFILTER
@ -2648,21 +2647,18 @@ static void toggle_full_screen(void)
video_open(cur_stream); video_open(cur_stream);
} }
static void toggle_pause(void) static void toggle_pause(VideoState *is)
{ {
if (cur_stream) stream_toggle_pause(is);
stream_toggle_pause(cur_stream); is->step = 0;
step = 0;
} }
static void step_to_next_frame(void) static void step_to_next_frame(VideoState *is)
{ {
if (cur_stream) { /* if the stream is paused unpause it, then step */
/* if the stream is paused unpause it, then step */ if (is->paused)
if (cur_stream->paused) stream_toggle_pause(is);
stream_toggle_pause(cur_stream); is->step = 1;
}
step = 1;
} }
static void toggle_audio_display(void) static void toggle_audio_display(void)
@ -2702,10 +2698,12 @@ static void event_loop(void)
break; break;
case SDLK_p: case SDLK_p:
case SDLK_SPACE: case SDLK_SPACE:
toggle_pause(); if (cur_stream)
toggle_pause(cur_stream);
break; break;
case SDLK_s: //S: Step to next frame case SDLK_s: //S: Step to next frame
step_to_next_frame(); if (cur_stream)
step_to_next_frame(cur_stream);
break; break;
case SDLK_a: case SDLK_a:
if (cur_stream) if (cur_stream)