Commit f521746b authored by Stefano Sabatini's avatar Stefano Sabatini

ffplay: implement -showmode option

The new option allows to select the starting show mode.
parent f8b8c694
......@@ -58,6 +58,24 @@ Force format.
Set window title (default is the input filename).
@item -loop @var{number}
Loops movie playback <number> times. 0 means forever.
@item -showmode @var{mode}
Set the show mode to use.
Available values for @var{mode} are:
@table @samp
@item 0, video
show video
@item 1, waves
show audio waves
@item 2, rdft
show audio frequency band using RDFT ((Inverse) Real Discrete Fourier Transform)
@end table
Default value is "video", if video is not present or cannot be played
"rdft" is automatically selected.
You can interactively cycle through the available show modes by
pressing the key @key{w}.
@item -vf @var{filter_graph}
@var{filter_graph} is a description of the filter graph to apply to
the input video.
......
......@@ -265,6 +265,7 @@ static int exit_on_keydown;
static int exit_on_mousedown;
static int loop=1;
static int framedrop=1;
static int show_mode = SHOW_MODE_VIDEO;
static int rdftspeed=20;
#if CONFIG_AVFILTER
......@@ -2461,6 +2462,8 @@ static int decode_thread(void *arg)
av_dump_format(ic, 0, is->filename, 0);
}
is->show_mode = show_mode;
/* open the streams */
if (st_index[AVMEDIA_TYPE_AUDIO] >= 0) {
stream_component_open(is, st_index[AVMEDIA_TYPE_AUDIO]);
......@@ -2970,6 +2973,15 @@ static int opt_thread_count(const char *opt, const char *arg)
return 0;
}
static int opt_show_mode(const char *opt, const char *arg)
{
show_mode = !strcmp(arg, "video") ? SHOW_MODE_VIDEO :
!strcmp(arg, "waves") ? SHOW_MODE_WAVES :
!strcmp(arg, "rdft" ) ? SHOW_MODE_RDFT :
parse_number_or_die(opt, arg, OPT_INT, 0, SHOW_MODE_NB-1);
return 0;
}
static const OptionDef options[] = {
#include "cmdutils_common_opts.h"
{ "x", HAS_ARG | OPT_FUNC2, {(void*)opt_width}, "force displayed width", "width" },
......@@ -3013,6 +3025,7 @@ static const OptionDef options[] = {
{ "vf", OPT_STRING | HAS_ARG, {(void*)&vfilters}, "video filters", "filter list" },
#endif
{ "rdftspeed", OPT_INT | HAS_ARG| OPT_AUDIO | OPT_EXPERT, {(void*)&rdftspeed}, "rdft speed", "msecs" },
{ "showmode", HAS_ARG | OPT_FUNC2, {(void*)opt_show_mode}, "select show mode (0 = video, 1 = waves, 2 = RDFT)", "mode" },
{ "default", OPT_FUNC2 | HAS_ARG | OPT_AUDIO | OPT_VIDEO | OPT_EXPERT, {(void*)opt_default}, "generic catch all option", "" },
{ "i", OPT_DUMMY, {NULL}, "ffmpeg compatibility dummy option", ""},
{ NULL, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment