FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
cmdutils.h File Reference
#include <stdint.h>
#include "config.h"
#include "libavcodec/avcodec.h"
#include "libavfilter/avfilter.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"

Go to the source code of this file.

Data Structures

struct  SpecifierOpt
 
struct  OptionDef
 
struct  Option
 An option extracted from the commandline. More...
 
struct  OptionGroupDef
 
struct  OptionGroup
 
struct  OptionGroupList
 A list of option groups that all have the same group type (e.g. More...
 
struct  OptionParseContext
 

Macros

#define HAS_ARG   0x0001
 
#define OPT_BOOL   0x0002
 
#define OPT_EXPERT   0x0004
 
#define OPT_STRING   0x0008
 
#define OPT_VIDEO   0x0010
 
#define OPT_AUDIO   0x0020
 
#define OPT_INT   0x0080
 
#define OPT_FLOAT   0x0100
 
#define OPT_SUBTITLE   0x0200
 
#define OPT_INT64   0x0400
 
#define OPT_EXIT   0x0800
 
#define OPT_DATA   0x1000
 
#define OPT_PERFILE
 
#define OPT_OFFSET   0x4000 /* option is specified as an offset in a passed optctx */
 
#define OPT_SPEC
 
#define OPT_TIME   0x10000
 
#define OPT_DOUBLE   0x20000
 
#define OPT_INPUT   0x40000
 
#define OPT_OUTPUT   0x80000
 
#define CMDUTILS_COMMON_OPTIONS_OPENCL
 
#define CMDUTILS_COMMON_OPTIONS_AVDEVICE
 
#define CMDUTILS_COMMON_OPTIONS
 
#define media_type_string   av_get_media_type_string
 
#define GROW_ARRAY(array, nb_elems)   array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1)
 
#define GET_PIX_FMT_NAME(pix_fmt)   const char *name = av_get_pix_fmt_name(pix_fmt);
 
#define GET_SAMPLE_FMT_NAME(sample_fmt)   const char *name = av_get_sample_fmt_name(sample_fmt)
 
#define GET_SAMPLE_RATE_NAME(rate)
 
#define GET_CH_LAYOUT_NAME(ch_layout)
 
#define GET_CH_LAYOUT_DESC(ch_layout)
 

Functions

void register_exit (void(*cb)(int ret))
 Register a program-specific cleanup routine. More...
 
void exit_program (int ret) av_noreturn
 Wraps exit with a program-specific cleanup routine. More...
 
void init_dynload (void)
 Initialize dynamic library loading. More...
 
void init_opts (void)
 Initialize the cmdutils option system, in particular allocate the *_opts contexts. More...
 
void uninit_opts (void)
 Uninitialize the cmdutils option system, in particular free the *_opts contexts and their contents. More...
 
void log_callback_help (void *ptr, int level, const char *fmt, va_list vl)
 Trivial log callback. More...
 
int opt_cpuflags (void *optctx, const char *opt, const char *arg)
 Override the cpuflags. More...
 
int opt_default (void *optctx, const char *opt, const char *arg)
 Fallback for options that are not explicitly handled, these will be parsed through AVOptions. More...
 
int opt_loglevel (void *optctx, const char *opt, const char *arg)
 Set the libav* libraries log level. More...
 
int opt_report (const char *opt)
 
int opt_max_alloc (void *optctx, const char *opt, const char *arg)
 
int opt_codec_debug (void *optctx, const char *opt, const char *arg)
 
int opt_timelimit (void *optctx, const char *opt, const char *arg)
 Limit the execution time. More...
 
double parse_number_or_die (const char *context, const char *numstr, int type, double min, double max)
 Parse a string and return its corresponding value as a double. More...
 
int64_t parse_time_or_die (const char *context, const char *timestr, int is_duration)
 Parse a string specifying a time and return its corresponding value as a number of microseconds. More...
 
void show_help_options (const OptionDef *options, const char *msg, int req_flags, int rej_flags, int alt_flags)
 Print help for all options matching specified flags. More...
 
void show_help_children (const AVClass *class, int flags)
 Show help for all options with given flags in class and all its children. More...
 
void show_help_default (const char *opt, const char *arg)
 Per-fftool specific help handler. More...
 
int show_help (void *optctx, const char *opt, const char *arg)
 Generic -h handler common to all fftools. More...
 
void parse_options (void *optctx, int argc, char **argv, const OptionDef *options, void(*parse_arg_function)(void *optctx, const char *))
 Parse the command line arguments. More...
 
int parse_option (void *optctx, const char *opt, const char *arg, const OptionDef *options)
 Parse one given option. More...
 
int parse_optgroup (void *optctx, OptionGroup *g)
 Parse an options group and write results into optctx. More...
 
int split_commandline (OptionParseContext *octx, int argc, char *argv[], const OptionDef *options, const OptionGroupDef *groups, int nb_groups)
 Split the commandline into an intermediate form convenient for further processing. More...
 
void uninit_parse_context (OptionParseContext *octx)
 Free all allocated memory in an OptionParseContext. More...
 
void parse_loglevel (int argc, char **argv, const OptionDef *options)
 Find the '-loglevel' option in the command line args and apply it. More...
 
int locate_option (int argc, char **argv, const OptionDef *options, const char *optname)
 Return index of option opt in argv or 0 if not found. More...
 
int check_stream_specifier (AVFormatContext *s, AVStream *st, const char *spec)
 Check if the given stream matches a stream specifier. More...
 
AVDictionaryfilter_codec_opts (AVDictionary *opts, enum AVCodecID codec_id, AVFormatContext *s, AVStream *st, AVCodec *codec)
 Filter out options for given codec. More...
 
AVDictionary ** setup_find_stream_info_opts (AVFormatContext *s, AVDictionary *codec_opts)
 Setup AVCodecContext options for avformat_find_stream_info(). More...
 
void print_error (const char *filename, int err)
 Print an error message to stderr, indicating filename and a human readable description of the error code err. More...
 
void show_banner (int argc, char **argv, const OptionDef *options)
 Print the program banner to stderr. More...
 
int show_version (void *optctx, const char *opt, const char *arg)
 Print the version of the program to stdout. More...
 
int show_buildconf (void *optctx, const char *opt, const char *arg)
 Print the build configuration of the program to stdout. More...
 
int show_license (void *optctx, const char *opt, const char *arg)
 Print the license of the program to stdout. More...
 
int show_formats (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the formats supported by the program (including devices). More...
 
int show_muxers (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the muxers supported by the program (including devices). More...
 
int show_demuxers (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the demuxer supported by the program (including devices). More...
 
int show_devices (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the devices supported by the program. More...
 
int show_codecs (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the codecs supported by the program. More...
 
int show_decoders (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the decoders supported by the program. More...
 
int show_encoders (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the encoders supported by the program. More...
 
int show_filters (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the filters supported by the program. More...
 
int show_bsfs (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the bit stream filters supported by the program. More...
 
int show_protocols (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the protocols supported by the program. More...
 
int show_pix_fmts (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the pixel formats supported by the program. More...
 
int show_layouts (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the standard channel layouts supported by the program. More...
 
int show_sample_fmts (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the sample formats supported by the program. More...
 
int show_colors (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the color names and values recognized by the program. More...
 
int read_yesno (void)
 Return a positive value if a line read from standard input starts with [yY], otherwise return 0. More...
 
FILE * get_preset_file (char *filename, size_t filename_size, const char *preset_name, int is_path, const char *codec_name)
 Get a file corresponding to a preset file. More...
 
voidgrow_array (void *array, int elem_size, int *size, int new_size)
 Realloc array to hold new_size elements of elem_size. More...
 
double get_rotation (AVStream *st)
 

Variables

const char program_name []
 program name, defined by the program for show_version(). More...
 
const int program_birth_year
 program birth year, defined by the program for show_banner() More...
 
AVCodecContextavcodec_opts [AVMEDIA_TYPE_NB]
 
AVFormatContextavformat_opts
 
AVDictionarysws_dict
 
AVDictionaryswr_opts
 
AVDictionaryformat_opts
 
AVDictionarycodec_opts
 
AVDictionaryresample_opts
 
int hide_banner
 

Macro Definition Documentation

#define HAS_ARG   0x0001

Definition at line 166 of file cmdutils.h.

Referenced by locate_option(), parse_option(), and split_commandline().

#define OPT_BOOL   0x0002

Definition at line 167 of file cmdutils.h.

Referenced by parse_option(), split_commandline(), and write_option().

#define OPT_EXPERT   0x0004

Definition at line 168 of file cmdutils.h.

Referenced by show_help_default().

#define OPT_STRING   0x0008

Definition at line 169 of file cmdutils.h.

Referenced by uninit_options(), and write_option().

#define OPT_VIDEO   0x0010

Definition at line 170 of file cmdutils.h.

Referenced by show_help_default().

#define OPT_AUDIO   0x0020

Definition at line 171 of file cmdutils.h.

Referenced by show_help_default().

#define OPT_INT   0x0080

Definition at line 172 of file cmdutils.h.

Referenced by opt_show_mode(), opt_streamid(), opt_vsync(), parse_number_or_die(), and write_option().

#define OPT_FLOAT   0x0100

Definition at line 173 of file cmdutils.h.

Referenced by write_option().

#define OPT_SUBTITLE   0x0200

Definition at line 174 of file cmdutils.h.

Referenced by show_help_default().

#define OPT_INT64   0x0400

Definition at line 175 of file cmdutils.h.

Referenced by opt_height(), opt_timelimit(), opt_width(), parse_number_or_die(), and write_option().

#define OPT_EXIT   0x0800

Definition at line 176 of file cmdutils.h.

Referenced by show_help_default(), split_commandline(), and write_option().

#define OPT_DATA   0x1000

Definition at line 177 of file cmdutils.h.

#define OPT_PERFILE
Value:
0x2000 /* the option is per-file (currently ffmpeg-only).
implied by OPT_OFFSET or OPT_SPEC */

Definition at line 178 of file cmdutils.h.

Referenced by add_opt(), check_options(), and show_help_default().

#define OPT_OFFSET   0x4000 /* option is specified as an offset in a passed optctx */

Definition at line 180 of file cmdutils.h.

Referenced by add_opt(), show_help_default(), uninit_options(), and write_option().

#define OPT_SPEC
Value:
0x8000 /* option is to be stored in an array of SpecifierOpt.
Implies OPT_OFFSET. Next element after the offset is
an int containing element count in the array. */

Definition at line 181 of file cmdutils.h.

Referenced by add_opt(), show_help_default(), uninit_options(), and write_option().

#define OPT_TIME   0x10000

Definition at line 184 of file cmdutils.h.

Referenced by write_option().

#define OPT_DOUBLE   0x20000

Definition at line 185 of file cmdutils.h.

Referenced by write_option().

#define OPT_INPUT   0x40000

Definition at line 186 of file cmdutils.h.

Referenced by check_options().

#define OPT_OUTPUT   0x80000

Definition at line 187 of file cmdutils.h.

Referenced by check_options().

#define CMDUTILS_COMMON_OPTIONS_OPENCL

Definition at line 217 of file cmdutils.h.

#define CMDUTILS_COMMON_OPTIONS_AVDEVICE

Definition at line 228 of file cmdutils.h.

#define CMDUTILS_COMMON_OPTIONS
Value:
{ "L", OPT_EXIT, { .func_arg = show_license }, "show license" }, \
{ "h", OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \
{ "?", OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \
{ "help", OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \
{ "-help", OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \
{ "version", OPT_EXIT, { .func_arg = show_version }, "show version" }, \
{ "buildconf", OPT_EXIT, { .func_arg = show_buildconf }, "show build configuration" }, \
{ "formats", OPT_EXIT, { .func_arg = show_formats }, "show available formats" }, \
{ "muxers", OPT_EXIT, { .func_arg = show_muxers }, "show available muxers" }, \
{ "demuxers", OPT_EXIT, { .func_arg = show_demuxers }, "show available demuxers" }, \
{ "devices", OPT_EXIT, { .func_arg = show_devices }, "show available devices" }, \
{ "codecs", OPT_EXIT, { .func_arg = show_codecs }, "show available codecs" }, \
{ "decoders", OPT_EXIT, { .func_arg = show_decoders }, "show available decoders" }, \
{ "encoders", OPT_EXIT, { .func_arg = show_encoders }, "show available encoders" }, \
{ "bsfs", OPT_EXIT, { .func_arg = show_bsfs }, "show available bit stream filters" }, \
{ "protocols", OPT_EXIT, { .func_arg = show_protocols }, "show available protocols" }, \
{ "filters", OPT_EXIT, { .func_arg = show_filters }, "show available filters" }, \
{ "pix_fmts", OPT_EXIT, { .func_arg = show_pix_fmts }, "show available pixel formats" }, \
{ "layouts", OPT_EXIT, { .func_arg = show_layouts }, "show standard channel layouts" }, \
{ "sample_fmts", OPT_EXIT, { .func_arg = show_sample_fmts }, "show available audio sample formats" }, \
{ "colors", OPT_EXIT, { .func_arg = show_colors }, "show available color names" }, \
{ "loglevel", HAS_ARG, { .func_arg = opt_loglevel }, "set logging level", "loglevel" }, \
{ "v", HAS_ARG, { .func_arg = opt_loglevel }, "set logging level", "loglevel" }, \
{ "report", 0, { (void*)opt_report }, "generate a report" }, \
{ "max_alloc", HAS_ARG, { .func_arg = opt_max_alloc }, "set maximum size of a single allocated block", "bytes" }, \
{ "cpuflags", HAS_ARG | OPT_EXPERT, { .func_arg = opt_cpuflags }, "force specific cpu flags", "flags" }, \
{ "hide_banner", OPT_BOOL | OPT_EXPERT, {&hide_banner}, "do not show program banner", "hide_banner" }, \
#define CMDUTILS_COMMON_OPTIONS_AVDEVICE
Definition: cmdutils.h:228
int show_bsfs(void *optctx, const char *opt, const char *arg)
Print a listing containing all the bit stream filters supported by the program.
Definition: cmdutils.c:1599
#define OPT_EXPERT
Definition: cmdutils.h:168
int show_pix_fmts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the pixel formats supported by the program.
Definition: cmdutils.c:1686
int hide_banner
Definition: cmdutils.c:76
int show_decoders(void *optctx, const char *opt, const char *arg)
Print a listing containing all the decoders supported by the program.
Definition: cmdutils.c:1587
int opt_max_alloc(void *optctx, const char *opt, const char *arg)
Definition: cmdutils.c:1024
#define HAS_ARG
Definition: cmdutils.h:166
int show_protocols(void *optctx, const char *opt, const char *arg)
Print a listing containing all the protocols supported by the program.
Definition: cmdutils.c:1611
int show_license(void *optctx, const char *opt, const char *arg)
Print the license of the program to stdout.
Definition: cmdutils.c:1178
int show_layouts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the standard channel layouts supported by the program.
Definition: cmdutils.c:1719
int show_buildconf(void *optctx, const char *opt, const char *arg)
Print the build configuration of the program to stdout.
Definition: cmdutils.c:1170
int show_demuxers(void *optctx, const char *opt, const char *arg)
Print a listing containing all the demuxer supported by the program (including devices).
Definition: cmdutils.c:1328
int show_colors(void *optctx, const char *opt, const char *arg)
Print a listing containing all the color names and values recognized by the program.
Definition: cmdutils.c:1672
#define OPT_EXIT
Definition: cmdutils.h:176
int opt_loglevel(void *optctx, const char *opt, const char *arg)
Set the libav* libraries log level.
Definition: cmdutils.c:870
int opt_report(const char *opt)
Definition: cmdutils.c:1019
int show_version(void *optctx, const char *opt, const char *arg)
Print the version of the program to stdout.
Definition: cmdutils.c:1161
int show_formats(void *optctx, const char *opt, const char *arg)
Print a listing containing all the formats supported by the program (including devices).
Definition: cmdutils.c:1318
int show_devices(void *optctx, const char *opt, const char *arg)
Print a listing containing all the devices supported by the program.
Definition: cmdutils.c:1333
int show_codecs(void *optctx, const char *opt, const char *arg)
Print a listing containing all the codecs supported by the program.
Definition: cmdutils.c:1494
int show_muxers(void *optctx, const char *opt, const char *arg)
Print a listing containing all the muxers supported by the program (including devices).
Definition: cmdutils.c:1323
#define OPT_BOOL
Definition: cmdutils.h:167
int show_encoders(void *optctx, const char *opt, const char *arg)
Print a listing containing all the encoders supported by the program.
Definition: cmdutils.c:1593
int show_help(void *optctx, const char *opt, const char *arg)
Generic -h handler common to all fftools.
Definition: cmdutils.c:1899
int show_sample_fmts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the sample formats supported by the program.
Definition: cmdutils.c:1748
int show_filters(void *optctx, const char *opt, const char *arg)
Print a listing containing all the filters supported by the program.
Definition: cmdutils.c:1626
int opt_cpuflags(void *optctx, const char *opt, const char *arg)
Override the cpuflags.
Definition: cmdutils.c:858

Definition at line 231 of file cmdutils.h.

#define media_type_string   av_get_media_type_string

Definition at line 637 of file cmdutils.h.

Referenced by print_final_stats().

#define GROW_ARRAY (   array,
  nb_elems 
)    array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1)
#define GET_PIX_FMT_NAME (   pix_fmt)    const char *name = av_get_pix_fmt_name(pix_fmt);

Definition at line 642 of file cmdutils.h.

Referenced by print_codec().

#define GET_SAMPLE_FMT_NAME (   sample_fmt)    const char *name = av_get_sample_fmt_name(sample_fmt)

Definition at line 645 of file cmdutils.h.

Referenced by print_codec().

#define GET_SAMPLE_RATE_NAME (   rate)
Value:
char name[16];\
snprintf(name, sizeof(name), "%d", rate);
#define snprintf
Definition: snprintf.h:34
const char * name
Definition: opengl_enc.c:103

Definition at line 648 of file cmdutils.h.

Referenced by print_codec().

#define GET_CH_LAYOUT_NAME (   ch_layout)
Value:
char name[16];\
snprintf(name, sizeof(name), "0x%"PRIx64, ch_layout);
#define snprintf
Definition: snprintf.h:34
const char * name
Definition: opengl_enc.c:103

Definition at line 652 of file cmdutils.h.

#define GET_CH_LAYOUT_DESC (   ch_layout)
Value:
char name[128];\
av_get_channel_layout_string(name, sizeof(name), 0, ch_layout);
void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout)
Return a description of a channel layout.
const char * name
Definition: opengl_enc.c:103

Definition at line 656 of file cmdutils.h.

Referenced by print_codec().

Function Documentation

void register_exit ( void(*)(int ret)  cb)

Register a program-specific cleanup routine.

Definition at line 130 of file cmdutils.c.

Referenced by main().

void exit_program ( int  ret)
void init_dynload ( void  )

Initialize dynamic library loading.

Definition at line 119 of file cmdutils.c.

Referenced by main().

void init_opts ( void  )

Initialize the cmdutils option system, in particular allocate the *_opts contexts.

Definition at line 84 of file cmdutils.c.

Referenced by finish_group(), init_parse_context(), and main().

void uninit_opts ( void  )

Uninitialize the cmdutils option system, in particular free the *_opts contexts and their contents.

Definition at line 89 of file cmdutils.c.

Referenced by do_exit(), ffmpeg_cleanup(), main(), and uninit_parse_context().

void log_callback_help ( void ptr,
int  level,
const char *  fmt,
va_list  vl 
)

Trivial log callback.

Only suitable for opt_help and similar since it lacks prefix handling.

Definition at line 98 of file cmdutils.c.

Referenced by show_buildconf(), show_help(), show_help_default(), and show_version().

int opt_cpuflags ( void optctx,
const char *  opt,
const char *  arg 
)

Override the cpuflags.

Definition at line 858 of file cmdutils.c.

int opt_default ( void optctx,
const char *  opt,
const char *  arg 
)

Fallback for options that are not explicitly handled, these will be parsed through AVOptions.

Definition at line 544 of file cmdutils.c.

Referenced by opt_default_new(), opt_frame_pix_fmt(), opt_frame_size(), opt_target(), opt_video_channel(), opt_video_standard(), and split_commandline().

int opt_loglevel ( void optctx,
const char *  opt,
const char *  arg 
)

Set the libav* libraries log level.

Definition at line 870 of file cmdutils.c.

Referenced by parse_loglevel().

int opt_report ( const char *  opt)

Definition at line 1019 of file cmdutils.c.

int opt_max_alloc ( void optctx,
const char *  opt,
const char *  arg 
)

Definition at line 1024 of file cmdutils.c.

int opt_codec_debug ( void optctx,
const char *  opt,
const char *  arg 
)
int opt_timelimit ( void optctx,
const char *  opt,
const char *  arg 
)

Limit the execution time.

Definition at line 1038 of file cmdutils.c.

double parse_number_or_die ( const char *  context,
const char *  numstr,
int  type,
double  min,
double  max 
)

Parse a string and return its corresponding value as a double.

Exit from the application if the string cannot be correctly parsed or the corresponding value is invalid.

Parameters
contextthe context of the value to be set (e.g. the corresponding command line option name)
numstrthe string to be parsed
typethe type (OPT_INT64 or OPT_FLOAT) as which the string should be parsed
minthe minimum valid accepted value
maxthe maximum valid accepted value

Definition at line 143 of file cmdutils.c.

Referenced by opt_height(), opt_show_mode(), opt_streamid(), opt_timelimit(), opt_vsync(), opt_width(), and write_option().

int64_t parse_time_or_die ( const char *  context,
const char *  timestr,
int  is_duration 
)

Parse a string specifying a time and return its corresponding value as a number of microseconds.

Exit from the application if the string cannot be correctly parsed.

Parameters
contextthe context of the value to be set (e.g. the corresponding command line option name)
timestrthe string to be parsed
is_durationa flag which tells how to interpret timestr, if not zero timestr is interpreted as a duration, otherwise as a date
See Also
av_parse_time()

Definition at line 164 of file cmdutils.c.

Referenced by opt_duration(), opt_recording_timestamp(), opt_seek(), parse_forced_key_frames(), and write_option().

void show_help_options ( const OptionDef options,
const char *  msg,
int  req_flags,
int  rej_flags,
int  alt_flags 
)

Print help for all options matching specified flags.

Parameters
optionsa list of options
msgtitle of this group. Only printed if at least one option matches.
req_flagsprint only options which have all those flags set.
rej_flagsdon't print options which have any of those flags set.
alt_flagsprint only options that have at least one of those flags set

Definition at line 176 of file cmdutils.c.

Referenced by show_help_default().

void show_help_children ( const AVClass class,
int  flags 
)

Show help for all options with given flags in class and all its children.

Definition at line 205 of file cmdutils.c.

Referenced by print_codec(), show_help_children(), show_help_default(), show_help_demuxer(), and show_help_muxer().

void show_help_default ( const char *  opt,
const char *  arg 
)

Per-fftool specific help handler.

Implemented in each fftool, called by show_help().

Definition at line 3172 of file ffmpeg_opt.c.

Referenced by show_help().

int show_help ( void optctx,
const char *  opt,
const char *  arg 
)

Generic -h handler common to all fftools.

Definition at line 1899 of file cmdutils.c.

void parse_options ( void optctx,
int  argc,
char **  argv,
const OptionDef options,
void(*)(void *optctx, const char *)  parse_arg_function 
)

Parse the command line arguments.

Parameters
optctxan opaque options context
argcnumber of command line arguments
argvvalues of command line arguments
optionsArray with the definitions required to interpret every option of the form: -option_name [argument]
parse_arg_functionName of the function called to process every argument without a leading option name flag. NULL if such arguments do not have to be processed.
int parse_option ( void optctx,
const char *  opt,
const char *  arg,
const OptionDef options 
)
int parse_optgroup ( void optctx,
OptionGroup g 
)

Parse an options group and write results into optctx.

Parameters
optctxan app-specific options context. NULL for global options group

Definition at line 413 of file cmdutils.c.

Referenced by ffmpeg_parse_options(), and open_files().

int split_commandline ( OptionParseContext octx,
int  argc,
char *  argv[],
const OptionDef options,
const OptionGroupDef groups,
int  nb_groups 
)

Split the commandline into an intermediate form convenient for further processing.

The commandline is assumed to be composed of options which either belong to a group (those with OPT_SPEC, OPT_OFFSET or OPT_PERFILE) or are global (everything else).

A group (defined by an OptionGroupDef struct) is a sequence of options terminated by either a group separator option (e.g. -i) or a parameter that is not an option (doesn't start with -). A group without a separator option must always be first in the supplied groups list.

All options within the same group are stored in one OptionGroup struct in an OptionGroupList, all groups with the same group definition are stored in one OptionGroupList in OptionParseContext.groups. The order of group lists is the same as the order of group definitions.

Definition at line 752 of file cmdutils.c.

Referenced by ffmpeg_parse_options().

void uninit_parse_context ( OptionParseContext octx)

Free all allocated memory in an OptionParseContext.

Definition at line 726 of file cmdutils.c.

Referenced by ffmpeg_parse_options().

void parse_loglevel ( int  argc,
char **  argv,
const OptionDef options 
)

Find the '-loglevel' option in the command line args and apply it.

Definition at line 505 of file cmdutils.c.

Referenced by main().

int locate_option ( int  argc,
char **  argv,
const OptionDef options,
const char *  optname 
)

Return index of option opt in argv or 0 if not found.

Definition at line 446 of file cmdutils.c.

Referenced by parse_loglevel(), and show_banner().

int check_stream_specifier ( AVFormatContext s,
AVStream st,
const char *  spec 
)

Check if the given stream matches a stream specifier.

Parameters
sCorresponding format context.
stStream from s to be checked.
specA stream specifier of the [v|a|s|d]:[<stream index>] form.
Returns
1 if the stream matches, 0 if it doesn't, <0 on error

Definition at line 1994 of file cmdutils.c.

Referenced by copy_metadata(), filter_codec_opts(), init_input_filter(), open_input_file(), open_output_file(), and opt_map().

AVDictionary* filter_codec_opts ( AVDictionary opts,
enum AVCodecID  codec_id,
AVFormatContext s,
AVStream st,
AVCodec codec 
)

Filter out options for given codec.

Create a new options dictionary containing only the options from opts which apply to the codec with ID codec_id.

Parameters
optsdictionary to place options in
codec_idID of the codec that should be filtered for
sCorresponding format context.
stA stream from s for which the options should be filtered.
codecThe particular codec for which the options should be filtered. If null, the default one is looked up according to the codec id.
Returns
a pointer to the created dictionary

Definition at line 2002 of file cmdutils.c.

Referenced by add_input_streams(), new_output_stream(), open_input_file(), setup_find_stream_info_opts(), and stream_component_open().

AVDictionary** setup_find_stream_info_opts ( AVFormatContext s,
AVDictionary codec_opts 
)

Setup AVCodecContext options for avformat_find_stream_info().

Create an array of dictionaries, one dictionary for each stream contained in s. Each dictionary will contain the options from codec_opts which can be applied to the corresponding stream codec context.

Returns
pointer to the created array of dictionaries, NULL if it cannot be created

Definition at line 2059 of file cmdutils.c.

Referenced by open_input_file(), and read_thread().

void print_error ( const char *  filename,
int  err 
)

Print an error message to stderr, indicating filename and a human readable description of the error code err.

If strerror_r() is not available the use of this function in a multithreaded application may be unsafe.

See Also
av_strerror()

Definition at line 1051 of file cmdutils.c.

Referenced by open_input_file(), open_output_file(), process_input(), read_thread(), and write_packet().

void show_banner ( int  argc,
char **  argv,
const OptionDef options 
)

Print the program banner to stderr.

The banner contents depend on the current version of the repository and of the libav* libraries used by the program.

Definition at line 1150 of file cmdutils.c.

Referenced by main().

int show_version ( void optctx,
const char *  opt,
const char *  arg 
)

Print the version of the program to stdout.

The version message depends on the current versions of the repository and of the libav* libraries. This option processing function does not utilize the arguments.

Definition at line 1161 of file cmdutils.c.

int show_buildconf ( void optctx,
const char *  opt,
const char *  arg 
)

Print the build configuration of the program to stdout.

The contents depend on the definition of FFMPEG_CONFIGURATION. This option processing function does not utilize the arguments.

Definition at line 1170 of file cmdutils.c.

int show_license ( void optctx,
const char *  opt,
const char *  arg 
)

Print the license of the program to stdout.

The license depends on the license of the libraries compiled into the program. This option processing function does not utilize the arguments.

Definition at line 1178 of file cmdutils.c.

int show_formats ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the formats supported by the program (including devices).

This option processing function does not utilize the arguments.

Definition at line 1318 of file cmdutils.c.

int show_muxers ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the muxers supported by the program (including devices).

This option processing function does not utilize the arguments.

Definition at line 1323 of file cmdutils.c.

int show_demuxers ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the demuxer supported by the program (including devices).

This option processing function does not utilize the arguments.

Definition at line 1328 of file cmdutils.c.

int show_devices ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the devices supported by the program.

This option processing function does not utilize the arguments.

Definition at line 1333 of file cmdutils.c.

int show_codecs ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the codecs supported by the program.

This option processing function does not utilize the arguments.

Definition at line 1494 of file cmdutils.c.

int show_decoders ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the decoders supported by the program.

Definition at line 1587 of file cmdutils.c.

int show_encoders ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the encoders supported by the program.

Definition at line 1593 of file cmdutils.c.

int show_filters ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the filters supported by the program.

This option processing function does not utilize the arguments.

Definition at line 1626 of file cmdutils.c.

int show_bsfs ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the bit stream filters supported by the program.

This option processing function does not utilize the arguments.

Definition at line 1599 of file cmdutils.c.

int show_protocols ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the protocols supported by the program.

This option processing function does not utilize the arguments.

Definition at line 1611 of file cmdutils.c.

int show_pix_fmts ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the pixel formats supported by the program.

This option processing function does not utilize the arguments.

Definition at line 1686 of file cmdutils.c.

int show_layouts ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the standard channel layouts supported by the program.

This option processing function does not utilize the arguments.

Definition at line 1719 of file cmdutils.c.

int show_sample_fmts ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the sample formats supported by the program.

Definition at line 1748 of file cmdutils.c.

int show_colors ( void optctx,
const char *  opt,
const char *  arg 
)

Print a listing containing all the color names and values recognized by the program.

Definition at line 1672 of file cmdutils.c.

int read_yesno ( void  )

Return a positive value if a line read from standard input starts with [yY], otherwise return 0.

Definition at line 1933 of file cmdutils.c.

Referenced by assert_file_overwrite().

FILE* get_preset_file ( char *  filename,
size_t  filename_size,
const char *  preset_name,
int  is_path,
const char *  codec_name 
)

Get a file corresponding to a preset file.

If is_path is non-zero, look for the file in the path preset_name. Otherwise search for a file named arg.ffpreset in the directories $FFMPEG_DATADIR (if set), $HOME/.ffmpeg, and in the datadir defined at configuration time or in a "ffpresets" folder along the executable on win32, in that order. If no such file is found and codec_name is defined, then search for a file named codec_name-preset_name.avpreset in the above-mentioned directories.

Parameters
filenamebuffer where the name of the found filename is written
filename_sizesize in bytes of the filename buffer
preset_namename of the preset to search
is_pathtell if preset_name is a filename path
codec_namename of the codec for which to look for the preset, may be NULL

Definition at line 1944 of file cmdutils.c.

Referenced by ffserver_opt_preset(), and opt_preset().

void* grow_array ( void array,
int  elem_size,
int size,
int  new_size 
)

Realloc array to hold new_size elements of elem_size.

Calls exit() on failure.

Parameters
arrayarray to reallocate
elem_sizesize in bytes of each element
sizenew element count will be written here
new_sizenumber of elements to place in reallocated array
Returns
reallocated array

Definition at line 2079 of file cmdutils.c.

Referenced by opt_streamid(), and write_option().

double get_rotation ( AVStream st)

Definition at line 2098 of file cmdutils.c.

Referenced by configure_input_video_filter().

Variable Documentation

const char program_name[]

program name, defined by the program for show_version().

Definition at line 112 of file ffmpeg.c.

Referenced by compute_status(), expand_filename_template(), init_report(), main(), print_program_info(), show_help_default(), show_license(), and show_usage().

const int program_birth_year

program birth year, defined by the program for show_banner()

Definition at line 113 of file ffmpeg.c.

Referenced by ffprobe_show_program_version(), and print_program_info().

AVFormatContext* avformat_opts
AVDictionary* sws_dict

Definition at line 70 of file cmdutils.c.

Referenced by finish_group().

AVDictionary* swr_opts

Definition at line 71 of file cmdutils.c.

Referenced by finish_group().

AVDictionary* format_opts

Definition at line 72 of file cmdutils.c.

Referenced by finish_group(), main(), open_input_file(), opt_default_new(), opt_target(), and read_thread().

AVDictionary * codec_opts
AVDictionary * resample_opts

Definition at line 72 of file cmdutils.c.

Referenced by finish_group().

int hide_banner

Definition at line 76 of file cmdutils.c.

Referenced by parse_loglevel(), and show_banner().