FFmpegKit Linux API 6.0
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions | Variables
fftools_cmdutils.h File Reference

Go to the source code of this file.

Data Structures

struct  SpecifierOpt
 
struct  OptionDef
 
struct  Option
 
struct  OptionGroupDef
 
struct  OptionGroup
 
struct  OptionGroupList
 
struct  OptionParseContext
 

Macros

#define AV_LOG_STDERR   -16
 
#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 GROW_ARRAY(array, nb_elems)    array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1)
 
#define ALLOC_ARRAY_ELEM(array, nb_elems)    allocate_array_elem(&array, sizeof(*array[0]), &nb_elems)
 
#define GET_PIX_FMT_NAME(pix_fmt)    const char *name = av_get_pix_fmt_name(pix_fmt);
 
#define GET_CODEC_NAME(id)    const char *name = avcodec_descriptor_get(id)->name;
 
#define GET_SAMPLE_FMT_NAME(sample_fmt)    const char *name = av_get_sample_fmt_name(sample_fmt)
 
#define GET_SAMPLE_RATE_NAME(rate)
 

Typedefs

typedef struct SpecifierOpt SpecifierOpt
 
typedef struct OptionDef OptionDef
 
typedef struct Option Option
 
typedef struct OptionGroupDef OptionGroupDef
 
typedef struct OptionGroup OptionGroup
 
typedef struct OptionGroupList OptionGroupList
 
typedef struct OptionParseContext OptionParseContext
 

Functions

void register_exit (void(*cb)(int ret))
 
void report_and_exit (int ret) av_noreturn
 
void exit_program (int ret) av_noreturn
 
void init_dynload (void)
 
void uninit_opts (void)
 
void log_callback_help (void *ptr, int level, const char *fmt, va_list vl)
 
int opt_default (void *optctx, const char *opt, const char *arg)
 
int opt_timelimit (void *optctx, const char *opt, const char *arg)
 
double parse_number_or_die (const char *context, const char *numstr, int type, double min, double max)
 
int64_t parse_time_or_die (const char *context, const char *timestr, int is_duration)
 
void show_help_options (const OptionDef *options, const char *msg, int req_flags, int rej_flags, int alt_flags)
 
void show_help_children (const AVClass *clazz, int flags)
 
void show_help_default_ffmpeg (const char *opt, const char *arg)
 
void show_help_default_ffprobe (const char *opt, const char *arg)
 
void parse_options (void *optctx, int argc, char **argv, const OptionDef *options, void(*parse_arg_function)(void *optctx, const char *))
 
int parse_option (void *optctx, const char *opt, const char *arg, const OptionDef *options)
 
int parse_optgroup (void *optctx, OptionGroup *g)
 
int split_commandline (OptionParseContext *octx, int argc, char *argv[], const OptionDef *options, const OptionGroupDef *groups, int nb_groups)
 
void uninit_parse_context (OptionParseContext *octx)
 
void parse_loglevel (int argc, char **argv, const OptionDef *options)
 
int locate_option (int argc, char **argv, const OptionDef *options, const char *optname)
 
int check_stream_specifier (AVFormatContext *s, AVStream *st, const char *spec)
 
AVDictionary * filter_codec_opts (AVDictionary *opts, enum AVCodecID codec_id, AVFormatContext *s, AVStream *st, const AVCodec *codec)
 
AVDictionary ** setup_find_stream_info_opts (AVFormatContext *s, AVDictionary *codec_opts)
 
void print_error (const char *filename, int err)
 
void show_banner (int argc, char **argv, const OptionDef *options)
 
int read_yesno (void)
 
FILE * get_preset_file (char *filename, size_t filename_size, const char *preset_name, int is_path, const char *codec_name)
 
void * grow_array (void *array, int elem_size, int *size, int new_size)
 
void * allocate_array_elem (void *array, size_t elem_size, int *nb_elems)
 
double get_rotation (int32_t *displaymatrix)
 

Variables

__thread char * program_name
 
__thread int program_birth_year
 
__thread AVDictionary * sws_dict
 
__thread AVDictionary * swr_opts
 
__thread AVDictionary * format_opts
 
__thread AVDictionary * codec_opts
 
__thread int hide_banner
 
__thread int find_stream_info
 

Macro Definition Documentation

◆ ALLOC_ARRAY_ELEM

#define ALLOC_ARRAY_ELEM (   array,
  nb_elems 
)     allocate_array_elem(&array, sizeof(*array[0]), &nb_elems)

Definition at line 495 of file fftools_cmdutils.h.

◆ AV_LOG_STDERR

#define AV_LOG_STDERR   -16

Defines logs printed to stderr by ffmpeg. They are not filtered and always redirected.

Definition at line 82 of file fftools_cmdutils.h.

◆ GET_CODEC_NAME

#define GET_CODEC_NAME (   id)     const char *name = avcodec_descriptor_get(id)->name;

Definition at line 501 of file fftools_cmdutils.h.

◆ GET_PIX_FMT_NAME

#define GET_PIX_FMT_NAME (   pix_fmt)     const char *name = av_get_pix_fmt_name(pix_fmt);

Definition at line 498 of file fftools_cmdutils.h.

◆ GET_SAMPLE_FMT_NAME

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

Definition at line 504 of file fftools_cmdutils.h.

◆ GET_SAMPLE_RATE_NAME

#define GET_SAMPLE_RATE_NAME (   rate)
Value:
char name[16];\
snprintf(name, sizeof(name), "%d", rate);

Definition at line 507 of file fftools_cmdutils.h.

◆ GROW_ARRAY

#define GROW_ARRAY (   array,
  nb_elems 
)     array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1)

Definition at line 492 of file fftools_cmdutils.h.

◆ HAS_ARG

#define HAS_ARG   0x0001

Definition at line 197 of file fftools_cmdutils.h.

◆ OPT_AUDIO

#define OPT_AUDIO   0x0020

Definition at line 202 of file fftools_cmdutils.h.

◆ OPT_BOOL

#define OPT_BOOL   0x0002

Definition at line 198 of file fftools_cmdutils.h.

◆ OPT_DATA

#define OPT_DATA   0x1000

Definition at line 208 of file fftools_cmdutils.h.

◆ OPT_DOUBLE

#define OPT_DOUBLE   0x20000

Definition at line 213 of file fftools_cmdutils.h.

◆ OPT_EXIT

#define OPT_EXIT   0x0800

Definition at line 207 of file fftools_cmdutils.h.

◆ OPT_EXPERT

#define OPT_EXPERT   0x0004

Definition at line 199 of file fftools_cmdutils.h.

◆ OPT_FLOAT

#define OPT_FLOAT   0x0100

Definition at line 204 of file fftools_cmdutils.h.

◆ OPT_INPUT

#define OPT_INPUT   0x40000

Definition at line 214 of file fftools_cmdutils.h.

◆ OPT_INT

#define OPT_INT   0x0080

Definition at line 203 of file fftools_cmdutils.h.

◆ OPT_INT64

#define OPT_INT64   0x0400

Definition at line 206 of file fftools_cmdutils.h.

◆ OPT_OFFSET

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

Definition at line 210 of file fftools_cmdutils.h.

◆ OPT_OUTPUT

#define OPT_OUTPUT   0x80000

Definition at line 215 of file fftools_cmdutils.h.

◆ OPT_PERFILE

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

Definition at line 209 of file fftools_cmdutils.h.

◆ OPT_SPEC

#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 211 of file fftools_cmdutils.h.

◆ OPT_STRING

#define OPT_STRING   0x0008

Definition at line 200 of file fftools_cmdutils.h.

◆ OPT_SUBTITLE

#define OPT_SUBTITLE   0x0200

Definition at line 205 of file fftools_cmdutils.h.

◆ OPT_TIME

#define OPT_TIME   0x10000

Definition at line 212 of file fftools_cmdutils.h.

◆ OPT_VIDEO

#define OPT_VIDEO   0x0010

Definition at line 201 of file fftools_cmdutils.h.

Typedef Documentation

◆ Option

typedef struct Option Option

An option extracted from the commandline. Cannot use AVDictionary because of options like -map which can be used multiple times.

◆ OptionDef

typedef struct OptionDef OptionDef

◆ OptionGroup

typedef struct OptionGroup OptionGroup

◆ OptionGroupDef

◆ OptionGroupList

A list of option groups that all have the same group type (e.g. input files or output files)

◆ OptionParseContext

◆ SpecifierOpt

typedef struct SpecifierOpt SpecifierOpt

Function Documentation

◆ allocate_array_elem()

void * allocate_array_elem ( void *  array,
size_t  elem_size,
int nb_elems 
)

Atomically add a new element to an array of pointers, i.e. allocate a new entry, reallocate the array of pointers and make the new last member of this array point to the newly allocated buffer. Calls exit() on failure.

Parameters
arrayarray of pointers to reallocate
elem_sizesize of the new element to allocate
nb_elemspointer to the number of elements of the array array; *nb_elems will be incremented by one by this function.
Returns
pointer to the newly allocated entry

Definition at line 1046 of file fftools_cmdutils.c.

◆ check_stream_specifier()

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 946 of file fftools_cmdutils.c.

◆ exit_program()

void exit_program ( int  ret)

Wraps exit with a program-specific cleanup routine.

Definition at line 145 of file fftools_cmdutils.c.

◆ filter_codec_opts()

AVDictionary * filter_codec_opts ( AVDictionary *  opts,
enum AVCodecID  codec_id,
AVFormatContext *  s,
AVStream *  st,
const 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 954 of file fftools_cmdutils.c.

◆ get_preset_file()

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 874 of file fftools_cmdutils.c.

◆ get_rotation()

double get_rotation ( int32_t *  displaymatrix)

Definition at line 1056 of file fftools_cmdutils.c.

◆ grow_array()

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 1029 of file fftools_cmdutils.c.

◆ init_dynload()

void init_dynload ( void  )

Initialize dynamic library loading

Definition at line 123 of file fftools_cmdutils.c.

◆ locate_option()

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 469 of file fftools_cmdutils.c.

◆ log_callback_help()

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.

◆ opt_default()

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 570 of file fftools_cmdutils.c.

◆ opt_timelimit()

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

Limit the execution time.

Definition at line 1380 of file fftools_ffmpeg_opt.c.

◆ parse_loglevel()

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 528 of file fftools_cmdutils.c.

◆ parse_number_or_die()

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 157 of file fftools_cmdutils.c.

◆ parse_optgroup()

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
goption group

Definition at line 436 of file fftools_cmdutils.c.

◆ parse_option()

int parse_option ( void *  optctx,
const char *  opt,
const char *  arg,
const OptionDef options 
)

Parse one given option.

Returns
on success 1 if arg was consumed, 0 otherwise; negative number on error

Definition at line 362 of file fftools_cmdutils.c.

◆ parse_options()

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.

◆ parse_time_or_die()

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 178 of file fftools_cmdutils.c.

◆ print_error()

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 858 of file fftools_cmdutils.c.

◆ read_yesno()

int read_yesno ( void  )

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

Definition at line 863 of file fftools_cmdutils.c.

◆ register_exit()

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

Register a program-specific cleanup routine.

Definition at line 134 of file fftools_cmdutils.c.

◆ report_and_exit()

void report_and_exit ( int  ret)

Reports an error corresponding to the provided AVERROR code and calls exit_program() with the corresponding POSIX error code.

Note
ret must be an AVERROR-value of a POSIX error code (i.e. AVERROR(EFOO) and not AVERROR_FOO). library functions can return both, so call this only with AVERROR(EFOO) of your own.

Definition at line 139 of file fftools_cmdutils.c.

◆ setup_find_stream_info_opts()

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. Calls exit() on failure.

Definition at line 1012 of file fftools_cmdutils.c.

◆ show_banner()

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 262 of file fftools_opt_common.c.

◆ show_help_children()

void show_help_children ( const AVClass *  clazz,
int  flags 
)

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

Definition at line 219 of file fftools_cmdutils.c.

◆ show_help_default_ffmpeg()

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

Per-fftool specific help handler. Implemented in each fftool, called by show_help().

Definition at line 1179 of file fftools_ffmpeg_opt.c.

◆ show_help_default_ffprobe()

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

Definition at line 3797 of file fftools_ffprobe.c.

◆ show_help_options()

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 190 of file fftools_cmdutils.c.

◆ split_commandline()

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 747 of file fftools_cmdutils.c.

◆ uninit_opts()

void uninit_opts ( void  )

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

Definition at line 115 of file fftools_cmdutils.c.

◆ uninit_parse_context()

void uninit_parse_context ( OptionParseContext octx)

Free all allocated memory in an OptionParseContext.

Definition at line 722 of file fftools_cmdutils.c.

Variable Documentation

◆ codec_opts

__thread AVDictionary * codec_opts

Definition at line 96 of file fftools_cmdutils.h.

◆ find_stream_info

__thread int find_stream_info
extern

Definition at line 176 of file fftools_ffprobe.c.

◆ format_opts

__thread AVDictionary* format_opts
extern

Definition at line 110 of file fftools_cmdutils.c.

◆ hide_banner

__thread int hide_banner
extern

Definition at line 112 of file fftools_cmdutils.c.

◆ program_birth_year

__thread int program_birth_year
extern

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

Definition at line 106 of file fftools_cmdutils.c.

◆ program_name

__thread char* program_name
extern

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

Definition at line 105 of file fftools_cmdutils.c.

◆ swr_opts

__thread AVDictionary* swr_opts
extern

Definition at line 109 of file fftools_cmdutils.c.

◆ sws_dict

__thread AVDictionary* sws_dict
extern

Definition at line 108 of file fftools_cmdutils.c.