FFmpeg
Macros | Enumerations | Functions | Variables
cmdutils.c File Reference
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include <errno.h>
#include <math.h>
#include "config.h"
#include "compat/va_copy.h"
#include "libavformat/avformat.h"
#include "libavfilter/avfilter.h"
#include "libavdevice/avdevice.h"
#include "libswscale/swscale.h"
#include "libswresample/swresample.h"
#include "libpostproc/postprocess.h"
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/display.h"
#include "libavutil/mathematics.h"
#include "libavutil/imgutils.h"
#include "libavutil/libm.h"
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "libavutil/eval.h"
#include "libavutil/dict.h"
#include "libavutil/opt.h"
#include "libavutil/cpu.h"
#include "libavutil/ffversion.h"
#include "libavutil/version.h"
#include "libavcodec/bsf.h"
#include "cmdutils.h"

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)
 
#define INDENT   1
 
#define SHOW_VERSION   2
 
#define SHOW_CONFIG   4
 
#define SHOW_COPYRIGHT   8
 
#define PRINT_LIB_INFO(libname, LIBNAME, flags, level)
 
#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name)
 
#define sws_isSupportedInput(x)   0
 
#define sws_isSupportedOutput(x)   0
 

Enumerations

enum  show_muxdemuxers { SHOW_DEFAULT, SHOW_DEMUXERS, SHOW_MUXERS }
 

Functions

static int init_report (const char *env)
 
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...
 
static void log_callback_report (void *ptr, int level, const char *fmt, va_list vl)
 
void init_dynload (void)
 Initialize dynamic library loading. More...
 
void register_exit (void(*cb)(int ret))
 Register a program-specific cleanup routine. More...
 
void exit_program (int ret)
 Wraps exit with a program-specific cleanup routine. 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...
 
static const OptionDeffind_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)
 Parse one given option. More...
 
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)
 Parse an options group and write results into optctx. 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...
 
static void dump_argument (const char *a)
 
static void check_options (const OptionDef *po)
 
void parse_loglevel (int argc, char **argv, const OptionDef *options)
 Find the '-loglevel' option in the command line args and apply it. More...
 
static const AVOptionopt_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)
 Fallback for options that are not explicitly handled, these will be parsed through AVOptions. More...
 
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)
 Free all allocated memory in an OptionParseContext. 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...
 
int opt_cpuflags (void *optctx, const char *opt, const char *arg)
 Override the cpuflags. More...
 
int opt_cpucount (void *optctx, const char *opt, const char *arg)
 Override the cpucount. More...
 
int opt_loglevel (void *optctx, const char *opt, const char *arg)
 Set the libav* libraries log level. More...
 
static void expand_filename_template (AVBPrint *bp, const char *template, struct tm *tm)
 
int opt_report (void *optctx, const char *opt, const char *arg)
 
int opt_max_alloc (void *optctx, const char *opt, const char *arg)
 
int opt_timelimit (void *optctx, const char *opt, const char *arg)
 Limit the execution time. 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...
 
static void print_all_libs_info (int flags, int level)
 
static void print_program_info (int flags, int level)
 
static void print_buildconf (int flags, int level)
 
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...
 
static int is_device (const AVClass *avclass)
 
static int show_formats_devices (void *optctx, const char *opt, const char *arg, int device_only, int muxdemuxers)
 
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...
 
static void print_codec (const AVCodec *c)
 
static char get_media_type_char (enum AVMediaType type)
 
static const AVCodecnext_codec_for_id (enum AVCodecID id, void **iter, int encoder)
 
static int compare_codec_desc (const void *a, const void *b)
 
static unsigned get_codecs_sorted (const AVCodecDescriptor ***rcodecs)
 
static void print_codecs_for_id (enum AVCodecID id, int encoder)
 
int show_codecs (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the codecs supported by the program. More...
 
static void print_codecs (int encoder)
 
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_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_filters (void *optctx, const char *opt, const char *arg)
 Print a listing containing all the filters 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 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...
 
static void show_help_codec (const char *name, int encoder)
 
static void show_help_demuxer (const char *name)
 
static void show_help_protocol (const char *name)
 
static void show_help_muxer (const char *name)
 
static void show_help_bsf (const char *name)
 
int show_help (void *optctx, const char *opt, const char *arg)
 Generic -h handler common to all fftools. 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...
 
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, const 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 * grow_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 (int32_t *displaymatrix)
 

Variables

AVDictionarysws_dict
 
AVDictionaryswr_opts
 
AVDictionaryformat_opts
 
AVDictionarycodec_opts
 
static FILE * report_file
 
static int report_file_level = AV_LOG_DEBUG
 
int hide_banner = 0
 
static void(* program_exit )(int ret)
 
static int warned_cfg = 0
 

Macro Definition Documentation

◆ FLAGS

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

Definition at line 535 of file cmdutils.c.

◆ GET_ARG

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

◆ INDENT

#define INDENT   1

Definition at line 1099 of file cmdutils.c.

◆ SHOW_VERSION

#define SHOW_VERSION   2

Definition at line 1100 of file cmdutils.c.

◆ SHOW_CONFIG

#define SHOW_CONFIG   4

Definition at line 1101 of file cmdutils.c.

◆ SHOW_COPYRIGHT

#define SHOW_COPYRIGHT   8

Definition at line 1102 of file cmdutils.c.

◆ PRINT_LIB_INFO

#define PRINT_LIB_INFO (   libname,
  LIBNAME,
  flags,
  level 
)
Value:
if (CONFIG_##LIBNAME) { \
const char *indent = flags & INDENT? " " : ""; \
if (flags & SHOW_VERSION) { \
unsigned int version = libname##_version(); \
av_log(NULL, level, \
"%slib%-11s %2d.%3d.%3d / %2d.%3d.%3d\n", \
indent, #libname, \
LIB##LIBNAME##_VERSION_MAJOR, \
LIB##LIBNAME##_VERSION_MINOR, \
LIB##LIBNAME##_VERSION_MICRO, \
} \
if (flags & SHOW_CONFIG) { \
const char *cfg = libname##_configuration(); \
if (strcmp(FFMPEG_CONFIGURATION, cfg)) { \
if (!warned_cfg) { \
av_log(NULL, level, \
"%sWARNING: library configuration mismatch\n", \
indent); \
warned_cfg = 1; \
} \
av_log(NULL, level, "%s%-11s configuration: %s\n", \
indent, #libname, cfg); \
} \
} \
} \

Definition at line 1104 of file cmdutils.c.

◆ PRINT_CODEC_SUPPORTED

#define PRINT_CODEC_SUPPORTED (   codec,
  field,
  type,
  list_name,
  term,
  get_name 
)
Value:
if (codec->field) { \
const type *p = codec->field; \
printf(" Supported " list_name ":"); \
while (*p != term) { \
get_name(*p); \
printf(" %s", name); \
p++; \
} \
printf("\n"); \
} \

Definition at line 1377 of file cmdutils.c.

◆ sws_isSupportedInput

#define sws_isSupportedInput (   x)    0

◆ sws_isSupportedOutput

#define sws_isSupportedOutput (   x)    0

Enumeration Type Documentation

◆ show_muxdemuxers

Enumerator
SHOW_DEFAULT 
SHOW_DEMUXERS 
SHOW_MUXERS 

Definition at line 77 of file cmdutils.c.

Function Documentation

◆ init_report()

static int init_report ( const char *  env)
static

Definition at line 977 of file cmdutils.c.

Referenced by opt_report(), and parse_loglevel().

◆ uninit_opts()

void uninit_opts ( void  )

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

Definition at line 83 of file cmdutils.c.

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

◆ 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.

Definition at line 91 of file cmdutils.c.

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

◆ log_callback_report()

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

Definition at line 96 of file cmdutils.c.

Referenced by init_report().

◆ init_dynload()

void init_dynload ( void  )

Initialize dynamic library loading.

Definition at line 112 of file cmdutils.c.

Referenced by main().

◆ register_exit()

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

Register a program-specific cleanup routine.

Definition at line 123 of file cmdutils.c.

Referenced by main().

◆ exit_program()

void exit_program ( int  ret)

◆ 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 136 of file cmdutils.c.

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

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

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

◆ 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 169 of file cmdutils.c.

Referenced by show_help_default().

◆ show_help_children()

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 198 of file cmdutils.c.

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

◆ find_option()

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

Definition at line 211 of file cmdutils.c.

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

◆ prepare_app_arguments()

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

Definition at line 280 of file cmdutils.c.

Referenced by parse_options(), and split_commandline().

◆ write_option()

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

Definition at line 286 of file cmdutils.c.

Referenced by parse_optgroup(), and parse_option().

◆ parse_option()

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

◆ parse_options()

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

Definition at line 374 of file cmdutils.c.

Referenced by main().

◆ 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

Definition at line 405 of file 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 438 of file cmdutils.c.

Referenced by parse_loglevel(), and show_banner().

◆ dump_argument()

static void dump_argument ( const char *  a)
static

Definition at line 464 of file cmdutils.c.

Referenced by parse_loglevel().

◆ check_options()

static void check_options ( const OptionDef po)
static

Definition at line 488 of file cmdutils.c.

Referenced by parse_loglevel().

◆ 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 497 of file cmdutils.c.

Referenced by main().

◆ 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 526 of file cmdutils.c.

Referenced by opt_default().

◆ 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 536 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().

◆ match_group_separator()

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

Definition at line 623 of file cmdutils.c.

Referenced by split_commandline().

◆ finish_group()

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

Definition at line 643 of file cmdutils.c.

Referenced by split_commandline().

◆ add_opt()

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

Definition at line 671 of file cmdutils.c.

Referenced by split_commandline().

◆ init_parse_context()

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

Definition at line 683 of file cmdutils.c.

Referenced by split_commandline().

◆ uninit_parse_context()

void uninit_parse_context ( OptionParseContext octx)

Free all allocated memory in an OptionParseContext.

Definition at line 703 of file 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 728 of file cmdutils.c.

◆ opt_cpuflags()

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

Override the cpuflags.

Definition at line 834 of file cmdutils.c.

◆ opt_cpucount()

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

Override the cpucount.

Definition at line 846 of file cmdutils.c.

◆ opt_loglevel()

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

Set the libav* libraries log level.

Definition at line 872 of file cmdutils.c.

Referenced by parse_loglevel().

◆ expand_filename_template()

static void expand_filename_template ( AVBPrint *  bp,
const char *  template,
struct tm *  tm 
)
static

Definition at line 949 of file cmdutils.c.

Referenced by init_report().

◆ opt_report()

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

Definition at line 1055 of file cmdutils.c.

◆ opt_max_alloc()

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

Definition at line 1060 of file cmdutils.c.

◆ opt_timelimit()

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

Limit the execution time.

Definition at line 1074 of file 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 1087 of file cmdutils.c.

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

◆ print_all_libs_info()

static void print_all_libs_info ( int  flags,
int  level 
)
static

Definition at line 1133 of file cmdutils.c.

Referenced by show_banner(), and show_version().

◆ print_program_info()

static void print_program_info ( int  flags,
int  level 
)
static

Definition at line 1145 of file cmdutils.c.

Referenced by show_banner(), and show_version().

◆ print_buildconf()

static void print_buildconf ( int  flags,
int  level 
)
static

Definition at line 1159 of file cmdutils.c.

Referenced by show_buildconf().

◆ 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 1185 of file cmdutils.c.

Referenced by main().

◆ show_version()

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 1196 of file cmdutils.c.

◆ show_buildconf()

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 1205 of file cmdutils.c.

◆ show_license()

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 1213 of file cmdutils.c.

◆ is_device()

static int is_device ( const AVClass avclass)
static

Definition at line 1287 of file cmdutils.c.

Referenced by show_formats_devices().

◆ show_formats_devices()

static int show_formats_devices ( void *  optctx,
const char *  opt,
const char *  arg,
int  device_only,
int  muxdemuxers 
)
static

Definition at line 1294 of file cmdutils.c.

Referenced by show_demuxers(), show_devices(), show_formats(), and show_muxers().

◆ show_formats()

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 1357 of file cmdutils.c.

◆ show_muxers()

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 1362 of file cmdutils.c.

◆ show_demuxers()

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 1367 of file cmdutils.c.

◆ show_devices()

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 1372 of file cmdutils.c.

◆ print_codec()

static void print_codec ( const AVCodec c)
static

Definition at line 1390 of file cmdutils.c.

Referenced by show_help_codec().

◆ get_media_type_char()

static char get_media_type_char ( enum AVMediaType  type)
static

Definition at line 1483 of file cmdutils.c.

Referenced by print_codecs(), show_codecs(), and show_filters().

◆ next_codec_for_id()

static const AVCodec* next_codec_for_id ( enum AVCodecID  id,
void **  iter,
int  encoder 
)
static

Definition at line 1495 of file cmdutils.c.

Referenced by print_codecs(), print_codecs_for_id(), show_codecs(), and show_help_codec().

◆ compare_codec_desc()

static int compare_codec_desc ( const void *  a,
const void *  b 
)
static

Definition at line 1507 of file cmdutils.c.

Referenced by get_codecs_sorted().

◆ get_codecs_sorted()

static unsigned get_codecs_sorted ( const AVCodecDescriptor ***  rcodecs)
static

Definition at line 1516 of file cmdutils.c.

Referenced by print_codecs(), and show_codecs().

◆ print_codecs_for_id()

static void print_codecs_for_id ( enum AVCodecID  id,
int  encoder 
)
static

Definition at line 1537 of file cmdutils.c.

Referenced by show_codecs().

◆ show_codecs()

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 1550 of file cmdutils.c.

◆ print_codecs()

static void print_codecs ( int  encoder)
static

Definition at line 1606 of file cmdutils.c.

Referenced by show_decoders(), and show_encoders().

◆ show_decoders()

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 1645 of file cmdutils.c.

◆ show_encoders()

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 1651 of file cmdutils.c.

◆ show_bsfs()

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 1657 of file cmdutils.c.

◆ show_protocols()

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 1669 of file cmdutils.c.

◆ show_filters()

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 1684 of file cmdutils.c.

◆ show_colors()

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 1733 of file cmdutils.c.

◆ show_pix_fmts()

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 1747 of file cmdutils.c.

◆ show_layouts()

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 1780 of file cmdutils.c.

◆ show_sample_fmts()

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 1809 of file cmdutils.c.

◆ show_help_codec()

static void show_help_codec ( const char *  name,
int  encoder 
)
static

Definition at line 1818 of file cmdutils.c.

Referenced by show_help().

◆ show_help_demuxer()

static void show_help_demuxer ( const char *  name)
static

Definition at line 1854 of file cmdutils.c.

Referenced by show_help().

◆ show_help_protocol()

static void show_help_protocol ( const char *  name)
static

Definition at line 1872 of file cmdutils.c.

Referenced by show_help().

◆ show_help_muxer()

static void show_help_muxer ( const char *  name)
static

Definition at line 1890 of file cmdutils.c.

Referenced by show_help().

◆ show_help_bsf()

static void show_help_bsf ( const char *  name)
static

Definition at line 1979 of file cmdutils.c.

Referenced by show_help().

◆ show_help()

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

Generic -h handler common to all fftools.

Definition at line 1998 of file 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 2036 of file cmdutils.c.

Referenced by assert_file_overwrite().

◆ 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 2047 of file cmdutils.c.

Referenced by opt_preset().

◆ 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 2097 of file cmdutils.c.

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

◆ 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 2105 of file cmdutils.c.

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

◆ 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, NULL if it cannot be created

Definition at line 2163 of file cmdutils.c.

Referenced by open_input_file(), and read_thread().

◆ 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 2183 of file cmdutils.c.

Referenced by opt_streamid(), and write_option().

◆ get_rotation()

double get_rotation ( int32_t displaymatrix)

Definition at line 2202 of file cmdutils.c.

Referenced by configure_input_video_filter().

Variable Documentation

◆ sws_dict

AVDictionary* sws_dict

Definition at line 69 of file cmdutils.c.

Referenced by finish_group(), opt_default(), and uninit_opts().

◆ swr_opts

AVDictionary* swr_opts

Definition at line 70 of file cmdutils.c.

Referenced by finish_group(), opt_default(), and uninit_opts().

◆ format_opts

AVDictionary* format_opts

◆ codec_opts

AVDictionary * codec_opts

◆ report_file

FILE* report_file
static

Definition at line 73 of file cmdutils.c.

Referenced by dump_argument(), init_report(), log_callback_report(), and parse_loglevel().

◆ report_file_level

int report_file_level = AV_LOG_DEBUG
static

Definition at line 74 of file cmdutils.c.

Referenced by init_report(), and log_callback_report().

◆ hide_banner

int hide_banner = 0

Definition at line 75 of file cmdutils.c.

Referenced by parse_loglevel(), and show_banner().

◆ program_exit

void(* program_exit) (int ret)
static

Definition at line 121 of file cmdutils.c.

Referenced by exit_program(), and register_exit().

◆ warned_cfg

int warned_cfg = 0
static

Definition at line 1097 of file cmdutils.c.

name
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
Definition: writing_filters.txt:88
level
uint8_t level
Definition: svq3.c:204
AVERROR
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
SHOW_CONFIG
#define SHOW_CONFIG
Definition: cmdutils.c:1101
AV_VERSION_MINOR
#define AV_VERSION_MINOR(a)
Definition: version.h:65
type
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
Definition: writing_filters.txt:86
SHOW_VERSION
#define SHOW_VERSION
Definition: cmdutils.c:1100
AV_LOG_ERROR
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:180
arg
const char * arg
Definition: jacosubdec.c:67
NULL
#define NULL
Definition: coverity.c:32
warned_cfg
static int warned_cfg
Definition: cmdutils.c:1097
INDENT
#define INDENT
Definition: cmdutils.c:1099
AV_VERSION_MICRO
#define AV_VERSION_MICRO(a)
Definition: version.h:66
printf
printf("static const uint8_t my_array[100] = {\n")
version
version
Definition: libkvazaar.c:307
flags
#define flags(name, subs,...)
Definition: cbs_av1.c:561
AV_VERSION_MAJOR
#define AV_VERSION_MAJOR(a)
Extract version components from the full AV_VERSION_INT int as returned by functions like avformat_ve...
Definition: version.h:64