FFmpeg
Macros | 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 "libswscale/swscale.h"
#include "libswscale/version.h"
#include "libswresample/swresample.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/display.h"
#include "libavutil/getenv_utf8.h"
#include "libavutil/mathematics.h"
#include "libavutil/imgutils.h"
#include "libavutil/libm.h"
#include "libavutil/parseutils.h"
#include "libavutil/eval.h"
#include "libavutil/dict.h"
#include "libavutil/opt.h"
#include "cmdutils.h"
#include "fopen_utf8.h"
#include "opt_common.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)
 

Functions

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...
 
void  init_dynload (void)
  Initialize dynamic library loading. More...
 
int  parse_number (const char *context, const char *numstr, enum OptionType type, double min, double max, double *dst)
  Parse a string and return its corresponding value as a double. More...
 
void  show_help_options (const OptionDef *options, const char *msg, int req_flags, int rej_flags)
  Print help for all options matching specified flags. More...
 
  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  opt_has_arg (const OptionDef *o)
 
static int  write_option (void *optctx, const OptionDef *po, const char *opt, const char *arg, const OptionDef *defs)
 
int  parse_option (void *optctx, const char *opt, const char *arg, const OptionDef *options)
  Parse one given option. More...
 
int  parse_options (void *optctx, int argc, char **argv, const OptionDef *options, int(*parse_arg_function)(void *, const char *))
 
int  parse_optgroup (void *optctx, OptionGroup *g, const OptionDef *defs)
  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 (FILE *report_file, 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 int  finish_group (OptionParseContext *octx, int group_idx, const char *arg)
 
static int  add_opt (OptionParseContext *octx, const OptionDef *opt, const char *key, const char *val)
 
static int  init_parse_context (OptionParseContext *octx, const OptionGroupDef *groups, int nb_groups)
 
  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  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...
 
  Filter out options for given codec. More...
 
 
int  grow_array (void **array, int elem_size, int *size, int new_size)
  Realloc array to hold new_size elements of elem_size. More...
 
void *  allocate_array_elem (void *ptr, size_t elem_size, int *nb_elems)
  Atomically add a new element to an array of pointers, i.e. More...
 
double  get_rotation (const int32_t *displaymatrix)
 
char *  file_read (const char *filename)
 

Variables

 
 
 
 
 

Macro Definition Documentation

FLAGS

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

Definition at line 584 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)

Function Documentation

uninit_opts()

void uninit_opts ( void  )

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

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

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

init_dynload()

void init_dynload ( void  )

Initialize dynamic library loading.

Definition at line 78 of file cmdutils.c.

Referenced by main().

parse_number()

int parse_number ( const char *  context,
const char *  numstr,
enum OptionType  type,
double  min,
double  max,
doubledst 
)

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

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

Referenced by opt_height(), opt_show_mode(), opt_show_optional_fields(), opt_width(), parse_and_set_vsync(), and write_option().

show_help_options()

void show_help_options ( const OptionDefoptions,
const char *  msg,
int  req_flags,
int  rej_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.

Definition at line 110 of file cmdutils.c.

Referenced by show_help_default().

show_help_children()

void show_help_children ( const AVClassclass,
int  flags 
)

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

Definition at line 143 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 OptionDefpo,
const char *  name 
)
static

Definition at line 156 of file cmdutils.c.

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

prepare_app_arguments()

static void prepare_app_arguments ( intargc_ptr,
char ***  argv_ptr 
)
inlinestatic

Definition at line 228 of file cmdutils.c.

Referenced by parse_options(), and split_commandline().

opt_has_arg()

static int opt_has_arg ( const OptionDefo )
static

Definition at line 234 of file cmdutils.c.

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

write_option()

static int write_option ( void *  optctx,
const OptionDefpo,
const char *  opt,
const char *  arg,
const OptionDefdefs 
)
static

Definition at line 243 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 OptionDefoptions 
)

Parse one given option.

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

Definition at line 368 of file cmdutils.c.

Referenced by opt_audio_codec(), opt_audio_filters(), opt_audio_frames(), opt_audio_qscale(), opt_data_codec(), opt_data_frames(), opt_old2new(), opt_qscale(), opt_recording_timestamp(), opt_subtitle_codec(), opt_target(), opt_timecode(), opt_video_codec(), opt_video_filters(), opt_video_frames(), and parse_options().

parse_options()

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

Definition at line 408 of file cmdutils.c.

Referenced by main().

parse_optgroup()

int parse_optgroup ( void *  optctx,
OptionGroupg,
const OptionDefdefs 
)

Parse an options group and write results into optctx.

Parameters
optctx an app-specific options context. NULL for global options group

Definition at line 444 of file cmdutils.c.

locate_option()

int locate_option ( int  argc,
char **  argv,
const OptionDefoptions,
const char *  optname 
)

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

Definition at line 477 of file cmdutils.c.

Referenced by parse_loglevel(), and show_banner().

dump_argument()

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

Definition at line 503 of file cmdutils.c.

Referenced by parse_loglevel().

check_options()

static void check_options ( const OptionDefpo )
static

Definition at line 527 of file cmdutils.c.

Referenced by parse_loglevel().

parse_loglevel()

void parse_loglevel ( int  argc,
char **  argv,
const OptionDefoptions 
)

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

Definition at line 543 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 575 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 585 of file cmdutils.c.

Referenced by opt_default_new(), opt_target(), parse_option(), and split_commandline().

match_group_separator()

static int match_group_separator ( const OptionGroupDefgroups,
int  nb_groups,
const char *  opt 
)
static

Definition at line 657 of file cmdutils.c.

Referenced by split_commandline().

finish_group()

static int finish_group ( OptionParseContextoctx,
int  group_idx,
const char *  arg 
)
static

Definition at line 677 of file cmdutils.c.

Referenced by split_commandline().

add_opt()

static int add_opt ( OptionParseContextoctx,
const OptionDefopt,
const char *  key,
const char *  val 
)
static

Definition at line 711 of file cmdutils.c.

Referenced by split_commandline().

init_parse_context()

static int init_parse_context ( OptionParseContextoctx,
const OptionGroupDefgroups,
int  nb_groups 
)
static

Definition at line 729 of file cmdutils.c.

Referenced by split_commandline().

uninit_parse_context()

void uninit_parse_context ( OptionParseContextoctx )

Free all allocated memory in an OptionParseContext.

Definition at line 751 of file cmdutils.c.

split_commandline()

int split_commandline ( OptionParseContextoctx,
int  argc,
char *  argv[],
const OptionDefoptions,
const OptionGroupDefgroups,
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 776 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 899 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
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 910 of file cmdutils.c.

Referenced by opt_preset().

check_stream_specifier()

int check_stream_specifier ( AVFormatContexts,
AVStreamst,
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 982 of file cmdutils.c.

Referenced by copy_metadata(), fg_complex_bind_input(), filter_codec_opts(), ifile_open(), of_add_metadata(), and opt_map().

filter_codec_opts()

int filter_codec_opts ( const AVDictionaryopts,
enum AVCodecID  codec_id,
AVStreamst,
const AVCodeccodec,
AVDictionary **  dst 
)

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.
dst a pointer to the created dictionary
Returns
a non-negative number on success, a negative error code on failure

Definition at line 990 of file cmdutils.c.

Referenced by ist_add(), open_input_file(), ost_add(), setup_find_stream_info_opts(), and stream_component_open().

setup_find_stream_info_opts()

int setup_find_stream_info_opts ( AVFormatContexts,
AVDictionarycodec_opts,
AVDictionary ***  dst 
)

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.

Definition at line 1055 of file cmdutils.c.

Referenced by ifile_open(), open_input_file(), and read_thread().

grow_array()

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

Realloc array to hold new_size elements of elem_size.

Parameters
array pointer to the array to reallocate, will be updated with a new pointer on success
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
a non-negative number on success, a negative error code on failure

Definition at line 1086 of file cmdutils.c.

allocate_array_elem()

void* allocate_array_elem ( void *  array,
size_t  elem_size,
intnb_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.

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 or NULL on failure

Definition at line 1104 of file cmdutils.c.

Referenced by demux_alloc(), demux_stream_alloc(), fg_create(), ifilter_alloc(), mux_alloc(), mux_stream_alloc(), and ofilter_alloc().

get_rotation()

double get_rotation ( const int32_tdisplaymatrix )

Definition at line 1114 of file cmdutils.c.

Referenced by configure_input_video_filter(), and configure_video_filters().

file_read()

char* file_read ( const char *  filename )

Definition at line 1132 of file cmdutils.c.

Referenced by filter_opt_apply(), new_stream_video(), opt_filter_complex_script(), ost_get_filters(), and write_option().

Variable Documentation

sws_dict

AVDictionary* sws_dict

Definition at line 59 of file cmdutils.c.

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

swr_opts

AVDictionary* swr_opts

Definition at line 60 of file cmdutils.c.

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

format_opts

AVDictionary* format_opts

Definition at line 61 of file cmdutils.c.

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

codec_opts

AVDictionary * codec_opts

Definition at line 61 of file cmdutils.c.

Referenced by finish_group(), open_input_file(), opt_default(), opt_default_new(), opt_target(), read_thread(), setup_find_stream_info_opts(), split_commandline(), stream_component_open(), streamcopy_init(), and uninit_opts().

hide_banner

int hide_banner = 0

Definition at line 63 of file cmdutils.c.

Referenced by parse_loglevel(), and show_banner().

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

Generated on Thu Sep 26 2024 23:16:01 for FFmpeg by   doxygen 1.8.17

AltStyle によって変換されたページ (->オリジナル) /