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:
parent
27667d28a6
commit
5db1f94b8d
32
ffplay.c
32
ffplay.c
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user