Loading...
Searching...
No Matches
fftools_cmdutils.c File Reference

Go to the source code of this file.

## Macros

#define | FLAGS (o->type == AV_OPT_TYPE_FLAGS && (arg[0]=='-' || arg[0]=='+')) ? AV_DICT_APPEND : 0
#define | GET_ARG(arg)

## Functions

void | uninit_opts (void)
void | init_dynload (void)
void | register_exit (void(*cb)(int ret))
void | report_and_exit (int ret)
void | exit_program (int ret)
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 *class, int flags)
static const OptionDef * | find_option (const OptionDef *po, const char *name)
static void | prepare_app_arguments (int *argc_ptr, char ***argv_ptr)
static int | write_option (void *optctx, const OptionDef *po, const char *opt, const char *arg)
int | parse_option (void *optctx, const char *opt, const char *arg, const OptionDef *options)
void | parse_options (void *optctx, int argc, char **argv, const OptionDef *options, void(*parse_arg_function)(void *, const char *))
int | parse_optgroup (void *optctx, OptionGroup *g)
int | locate_option (int argc, char **argv, const OptionDef *options, const char *optname)
static void | dump_argument (FILE *report_file, const char *a)
static void | check_options (const OptionDef *po)
void | parse_loglevel (int argc, char **argv, const OptionDef *options)
static const AVOption * | opt_find (void *obj, const char *name, const char *unit, int opt_flags, int search_flags)
int | opt_default (void *optctx, const char *opt, const char *arg)
static int | match_group_separator (const OptionGroupDef *groups, int nb_groups, const char *opt)
static void | finish_group (OptionParseContext *octx, int group_idx, const char *arg)
static void | add_opt (OptionParseContext *octx, const OptionDef *opt, const char *key, const char *val)
static void | init_parse_context (OptionParseContext *octx, const OptionGroupDef *groups, int nb_groups)
void | uninit_parse_context (OptionParseContext *octx)
int | split_commandline (OptionParseContext *octx, int argc, char *argv[], const OptionDef *options, const OptionGroupDef *groups, int nb_groups)
void | print_error (const char *filename, int err)
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)
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 * | grow_array (void *array, int elem_size, int *size, int new_size)
void * | allocate_array_elem (void *ptr, 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 = 0
__thread int | longjmp_value = 0
static __thread void(* | program_exit )(int ret)

## Macro Definition Documentation

## FLAGS

#define FLAGS (o->type == AV_OPT_TYPE_FLAGS && (arg[0]=='-' || arg[0]=='+')) ? AV_DICT_APPEND : 0

Definition at line 569 of file fftools_cmdutils.c.

## GET_ARG

#define GET_ARG | ( |  | arg | ) |

Value:
do { \
if (optindex < argc) { \
arg = argv[optindex++]; \
} else { \
av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'.\n", opt);\
return AVERROR(EINVAL); \
} \
} while (0)

## Function Documentation

## add_opt()

static void add_opt | ( | OptionParseContext * | octx,
|  | const OptionDef * | opt,
|  | const char * | key,
|  | const char * | val
| ) |  |

static

Definition at line 690 of file fftools_cmdutils.c.

## 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

  array | array of pointers to reallocate
  elem_size | size of the new element to allocate
  nb_elems | pointer 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_options()

static void check_options | ( | const OptionDef * | po | ) |

static

Definition at line 519 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

  s | Corresponding format context.
  st | Stream from s to be checked.
  spec | A 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.

## dump_argument()

static void dump_argument | ( | FILE * | report_file,
|  | const char * | a
| ) |  |

static

Definition at line 495 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

  opts | dictionary to place options in
  codec_id | ID of the codec that should be filtered for
  s | Corresponding format context.
  st | A stream from s for which the options should be filtered.
  codec | The 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.

## find_option()

static const OptionDef * find_option | ( | const OptionDef * | po,
|  | const char * | name
| ) |  |

static

Definition at line 232 of file fftools_cmdutils.c.

## finish_group()

static void finish_group | ( | OptionParseContext * | octx,
|  | int | group_idx,
|  | const char * | arg
| ) |  |

static

Definition at line 662 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

  filename | buffer where the name of the found filename is written
  filename_size | size in bytes of the filename buffer
  preset_name | name of the preset to search
  is_path | tell if preset_name is a filename path
  codec_name | name 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

  array | array to reallocate
  elem_size | size in bytes of each element
  size | new element count will be written here
  new_size | number 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.

## init_parse_context()

static void init_parse_context | ( | OptionParseContext * | octx,
|  | const OptionGroupDef * | groups,
|  | int | nb_groups
| ) |  |

static

Definition at line 702 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.

## match_group_separator()

static int match_group_separator | ( | const OptionGroupDef * | groups,
|  | int | nb_groups,
|  | const char * | opt
| ) |  |

static

Definition at line 642 of file fftools_cmdutils.c.

## 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_find()

static const AVOption * opt_find | ( | void * | obj,
|  | const char * | name,
|  | const char * | unit,
|  | int | opt_flags,
|  | int | search_flags
| ) |  |

static

Definition at line 560 of file fftools_cmdutils.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

  context | the context of the value to be set (e.g. the corresponding command line option name)
  numstr | the string to be parsed
  type | the type (OPT_INT64 or OPT_FLOAT) as which the string should be parsed
  min | the minimum valid accepted value
  max | the 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

  optctx | an app-specific options context. NULL for global options group
  g | option 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 *, const char *) | parse_arg_function
| ) |  |

Definition at line 401 of file fftools_cmdutils.c.

## 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

  context | the context of the value to be set (e.g. the corresponding command line option name)
  timestr | the string to be parsed
  is_duration | a 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.

## prepare_app_arguments()

static void prepare_app_arguments | ( | int * | argc_ptr,
|  | char *** | argv_ptr
| ) |  |

inlinestatic

Definition at line 301 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_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_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

  options | a list of options
  msg | title of this group. Only printed if at least one option matches.
  req_flags | print only options which have all those flags set.
  rej_flags | don't print options which have any of those flags set.
  alt_flags | print 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.

## write_option()

static int write_option | ( | void * | optctx,
|  | const OptionDef * | po,
|  | const char * | opt,
|  | const char * | arg
| ) |  |

static

Definition at line 307 of file fftools_cmdutils.c.

## Variable Documentation

## codec_opts

__thread AVDictionary * codec_opts

Definition at line 110 of file fftools_cmdutils.c.

## format_opts

__thread AVDictionary* format_opts

Definition at line 110 of file fftools_cmdutils.c.

## hide_banner

__thread int hide_banner = 0

Definition at line 112 of file fftools_cmdutils.c.

## longjmp_value

__thread int longjmp_value = 0

Definition at line 113 of file fftools_cmdutils.c.

## program_birth_year

__thread int program_birth_year

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

Definition at line 106 of file fftools_cmdutils.c.

## program_exit

__thread void(* program_exit) (int ret) | ( | int | ret | ) |

static

Definition at line 132 of file fftools_cmdutils.c.

## program_name

__thread char* program_name

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

Definition at line 105 of file fftools_cmdutils.c.

## swr_opts

__thread AVDictionary* swr_opts

Definition at line 109 of file fftools_cmdutils.c.

## sws_dict

__thread AVDictionary* sws_dict

Definition at line 108 of file fftools_cmdutils.c.