Implement -onkeydown and -onmousedown options for ffplay.

Patch by Alexei Svitkine cout << name << "." << surname << "@" << "gmail.com".

See thread:
Subject: [FFmpeg-devel] new command-line option for ffplay
Date: Wed, 23 Jun 2010 09:13:50 -0400

Originally committed as revision 24037 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Alexei Svitkine 2010-07-04 12:43:12 +00:00 committed by Stefano Sabatini
parent dbb113e89e
commit 066ce8c93d
3 changed files with 17 additions and 0 deletions

View File

@ -18,6 +18,7 @@ version <next>:
- RTSP tunneling over HTTP - RTSP tunneling over HTTP
- RTP depacketization of SVQ3 - RTP depacketization of SVQ3
- -strict inofficial replaced by -strict unofficial - -strict inofficial replaced by -strict unofficial
- ffplay -exitonkeydown and -exitonmousedown options added
version 0.6: version 0.6:

View File

@ -108,6 +108,10 @@ Select the desired subtitle stream number, counting from 0. The number
refers to the list of all the input subtitle streams. If it is greater refers to the list of all the input subtitle streams. If it is greater
than the number of subtitle streams minus one, then the last one is than the number of subtitle streams minus one, then the last one is
selected, if it is negative the subtitle rendering is disabled. selected, if it is negative the subtitle rendering is disabled.
@item -exitonkeydown
Exit if any key is pressed.
@item -exitonmousedown
Exit if any mouse button is pressed.
@end table @end table
@section While playing @section While playing

View File

@ -260,6 +260,8 @@ static int error_recognition = FF_ER_CAREFUL;
static int error_concealment = 3; static int error_concealment = 3;
static int decoder_reorder_pts= -1; static int decoder_reorder_pts= -1;
static int autoexit; static int autoexit;
static int exit_on_keydown;
static int exit_on_mousedown;
static int loop=1; static int loop=1;
static int framedrop=1; static int framedrop=1;
@ -2819,6 +2821,10 @@ static void event_loop(void)
SDL_WaitEvent(&event); SDL_WaitEvent(&event);
switch(event.type) { switch(event.type) {
case SDL_KEYDOWN: case SDL_KEYDOWN:
if (exit_on_keydown) {
do_exit();
break;
}
switch(event.key.keysym.sym) { switch(event.key.keysym.sym) {
case SDLK_ESCAPE: case SDLK_ESCAPE:
case SDLK_q: case SDLK_q:
@ -2887,6 +2893,10 @@ static void event_loop(void)
} }
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
if (exit_on_mousedown) {
do_exit();
break;
}
case SDL_MOUSEMOTION: case SDL_MOUSEMOTION:
if(event.type ==SDL_MOUSEBUTTONDOWN){ if(event.type ==SDL_MOUSEBUTTONDOWN){
x= event.button.x; x= event.button.x;
@ -3068,6 +3078,8 @@ static const OptionDef options[] = {
{ "sync", HAS_ARG | OPT_FUNC2 | OPT_EXPERT, {(void*)opt_sync}, "set audio-video sync. type (type=audio/video/ext)", "type" }, { "sync", HAS_ARG | OPT_FUNC2 | OPT_EXPERT, {(void*)opt_sync}, "set audio-video sync. type (type=audio/video/ext)", "type" },
{ "threads", HAS_ARG | OPT_FUNC2 | OPT_EXPERT, {(void*)opt_thread_count}, "thread count", "count" }, { "threads", HAS_ARG | OPT_FUNC2 | OPT_EXPERT, {(void*)opt_thread_count}, "thread count", "count" },
{ "autoexit", OPT_BOOL | OPT_EXPERT, {(void*)&autoexit}, "exit at the end", "" }, { "autoexit", OPT_BOOL | OPT_EXPERT, {(void*)&autoexit}, "exit at the end", "" },
{ "exitonkeydown", OPT_BOOL | OPT_EXPERT, {(void*)&exit_on_keydown}, "exit on key down", "" },
{ "exitonmousedown", OPT_BOOL | OPT_EXPERT, {(void*)&exit_on_mousedown}, "exit on mouse down", "" },
{ "loop", OPT_INT | HAS_ARG | OPT_EXPERT, {(void*)&loop}, "set number of times the playback shall be looped", "loop count" }, { "loop", OPT_INT | HAS_ARG | OPT_EXPERT, {(void*)&loop}, "set number of times the playback shall be looped", "loop count" },
{ "framedrop", OPT_BOOL | OPT_EXPERT, {(void*)&framedrop}, "drop frames when cpu is too slow", "" }, { "framedrop", OPT_BOOL | OPT_EXPERT, {(void*)&framedrop}, "drop frames when cpu is too slow", "" },
{ "window_title", OPT_STRING | HAS_ARG, {(void*)&window_title}, "set window title", "window title" }, { "window_title", OPT_STRING | HAS_ARG, {(void*)&window_title}, "set window title", "window title" },