FFmpeg
|
#include <stdint.h>
#include "config.h"
#include "libavcodec/avcodec.h"
#include "libavfilter/avfilter.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
Go to the source code of this file.
Data Structures | |
struct | SpecifierOpt |
struct | SpecifierOptList |
struct | OptionDef |
struct | Option |
An option extracted from the commandline. More... | |
struct | OptionGroupDef |
struct | OptionGroup |
struct | OptionGroupList |
A list of option groups that all have the same group type (e.g. More... | |
struct | OptionParseContext |
Macros | |
#define | OPT_FUNC_ARG (1 << 0) |
#define | OPT_EXIT (1 << 1) |
#define | OPT_EXPERT (1 << 2) |
#define | OPT_VIDEO (1 << 3) |
#define | OPT_AUDIO (1 << 4) |
#define | OPT_SUBTITLE (1 << 5) |
#define | OPT_DATA (1 << 6) |
#define | OPT_PERFILE (1 << 7) |
#define | OPT_FLAG_OFFSET (1 << 8) |
#define | OPT_OFFSET (OPT_FLAG_OFFSET | OPT_PERFILE) |
#define | OPT_FLAG_SPEC (1 << 9) |
#define | OPT_SPEC (OPT_FLAG_SPEC | OPT_OFFSET) |
#define | OPT_FLAG_PERSTREAM (1 << 10) |
#define | OPT_PERSTREAM (OPT_FLAG_PERSTREAM | OPT_SPEC) |
#define | OPT_INPUT (1 << 11) |
#define | OPT_OUTPUT (1 << 12) |
#define | OPT_HAS_ALT (1 << 13) |
#define | OPT_HAS_CANON (1 << 14) |
#define | OPT_DECODER (1 << 15) |
#define | GROW_ARRAY(array, nb_elems) grow_array((void**)&array, sizeof(*array), &nb_elems, nb_elems + 1) |
#define | GET_PIX_FMT_NAME(pix_fmt) const char *name = av_get_pix_fmt_name(pix_fmt); |
#define | GET_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) |
Enumerations | |
enum | OptionType { OPT_TYPE_FUNC, OPT_TYPE_BOOL, OPT_TYPE_STRING, OPT_TYPE_INT, OPT_TYPE_INT64, OPT_TYPE_FLOAT, OPT_TYPE_DOUBLE, OPT_TYPE_TIME } |
Functions | |
void | init_dynload (void) |
Initialize dynamic library loading. More... | |
void | uninit_opts (void) |
Uninitialize the cmdutils option system, in particular free the *_opts contexts and their contents. More... | |
void | log_callback_help (void *ptr, int level, const char *fmt, va_list vl) |
Trivial log callback. More... | |
int | opt_default (void *optctx, const char *opt, const char *arg) |
Fallback for options that are not explicitly handled, these will be parsed through AVOptions. More... | |
int | opt_timelimit (void *optctx, const char *opt, const char *arg) |
Limit the execution time. 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... | |
void | show_help_children (const AVClass *class, int flags) |
Show help for all options with given flags in class and all its children. More... | |
void | show_help_default (const char *opt, const char *arg) |
Per-fftool specific help handler. More... | |
int | parse_options (void *optctx, int argc, char **argv, const OptionDef *options, int(*parse_arg_function)(void *optctx, const char *)) |
Parse the command line arguments. More... | |
int | parse_option (void *optctx, const char *opt, const char *arg, const OptionDef *options) |
Parse one given option. More... | |
int | parse_optgroup (void *optctx, OptionGroup *g, const OptionDef *defs) |
Parse an options group and write results into optctx. More... | |
int | split_commandline (OptionParseContext *octx, int argc, char *argv[], const OptionDef *options, const OptionGroupDef *groups, int nb_groups) |
Split the commandline into an intermediate form convenient for further processing. More... | |
void | uninit_parse_context (OptionParseContext *octx) |
Free all allocated memory in an OptionParseContext. More... | |
void | parse_loglevel (int argc, char **argv, const OptionDef *options) |
Find the '-loglevel' option in the command line args and apply it. More... | |
int | locate_option (int argc, char **argv, const OptionDef *options, const char *optname) |
Return index of option opt in argv or 0 if not found. More... | |
int | check_stream_specifier (AVFormatContext *s, AVStream *st, const char *spec) |
Check if the given stream matches a stream specifier. More... | |
int | filter_codec_opts (const AVDictionary *opts, enum AVCodecID codec_id, AVFormatContext *s, AVStream *st, const AVCodec *codec, AVDictionary **dst) |
Filter out options for given codec. More... | |
int | setup_find_stream_info_opts (AVFormatContext *s, AVDictionary *codec_opts, AVDictionary ***dst) |
Setup AVCodecContext options for avformat_find_stream_info(). More... | |
static void | print_error (const char *filename, int err) |
Print an error message to stderr, indicating filename and a human readable description of the error code err. More... | |
void | show_banner (int argc, char **argv, const OptionDef *options) |
Print the program banner to stderr. More... | |
int | 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 | 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 *array, 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 | |
const char | program_name [] |
program name, defined by the program for show_version(). More... | |
const int | program_birth_year |
program birth year, defined by the program for show_banner() More... | |
AVDictionary * | sws_dict |
AVDictionary * | swr_opts |
AVDictionary * | format_opts |
AVDictionary * | codec_opts |
int | hide_banner |
#define OPT_FUNC_ARG (1 << 0) |
Definition at line 136 of file cmdutils.h.
#define OPT_EXIT (1 << 1) |
Definition at line 138 of file cmdutils.h.
#define OPT_EXPERT (1 << 2) |
Definition at line 142 of file cmdutils.h.
#define OPT_VIDEO (1 << 3) |
Definition at line 143 of file cmdutils.h.
#define OPT_AUDIO (1 << 4) |
Definition at line 144 of file cmdutils.h.
#define OPT_SUBTITLE (1 << 5) |
Definition at line 145 of file cmdutils.h.
#define OPT_DATA (1 << 6) |
Definition at line 146 of file cmdutils.h.
#define OPT_PERFILE (1 << 7) |
Definition at line 150 of file cmdutils.h.
#define OPT_FLAG_OFFSET (1 << 8) |
Definition at line 154 of file cmdutils.h.
#define OPT_OFFSET (OPT_FLAG_OFFSET | OPT_PERFILE) |
Definition at line 155 of file cmdutils.h.
#define OPT_FLAG_SPEC (1 << 9) |
Definition at line 159 of file cmdutils.h.
#define OPT_SPEC (OPT_FLAG_SPEC | OPT_OFFSET) |
Definition at line 160 of file cmdutils.h.
#define OPT_FLAG_PERSTREAM (1 << 10) |
Definition at line 163 of file cmdutils.h.
#define OPT_PERSTREAM (OPT_FLAG_PERSTREAM | OPT_SPEC) |
Definition at line 164 of file cmdutils.h.
#define OPT_INPUT (1 << 11) |
Definition at line 168 of file cmdutils.h.
#define OPT_OUTPUT (1 << 12) |
Definition at line 169 of file cmdutils.h.
#define OPT_HAS_ALT (1 << 13) |
Definition at line 173 of file cmdutils.h.
#define OPT_HAS_CANON (1 << 14) |
Definition at line 176 of file cmdutils.h.
#define OPT_DECODER (1 << 15) |
Definition at line 179 of file cmdutils.h.
#define GROW_ARRAY | ( | array, | |
nb_elems | |||
) | grow_array((void**)&array, sizeof(*array), &nb_elems, nb_elems + 1) |
Definition at line 465 of file cmdutils.h.
#define GET_PIX_FMT_NAME | ( | pix_fmt | ) | const char *name = av_get_pix_fmt_name(pix_fmt); |
Definition at line 468 of file cmdutils.h.
#define GET_CODEC_NAME | ( | id | ) | const char *name = avcodec_descriptor_get(id)->name; |
Definition at line 471 of file cmdutils.h.
#define GET_SAMPLE_FMT_NAME | ( | sample_fmt | ) | const char *name = av_get_sample_fmt_name(sample_fmt) |
Definition at line 474 of file cmdutils.h.
#define GET_SAMPLE_RATE_NAME | ( | rate | ) |
Definition at line 477 of file cmdutils.h.
enum OptionType |
Enumerator | |
---|---|
OPT_TYPE_FUNC | |
OPT_TYPE_BOOL | |
OPT_TYPE_STRING | |
OPT_TYPE_INT | |
OPT_TYPE_INT64 | |
OPT_TYPE_FLOAT | |
OPT_TYPE_DOUBLE | |
OPT_TYPE_TIME |
Definition at line 80 of file cmdutils.h.
void init_dynload | ( | void | ) |
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().
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().
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().
int opt_timelimit | ( | void * | optctx, |
const char * | opt, | ||
const char * | arg | ||
) |
Limit the execution time.
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.
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().
void show_help_options | ( | const OptionDef * | options, |
const char * | msg, | ||
int | req_flags, | ||
int | rej_flags | ||
) |
Print help for all options matching specified flags.
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 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().
void show_help_default | ( | const char * | opt, |
const char * | arg | ||
) |
Per-fftool specific help handler.
Implemented in each fftool, called by show_help().
Definition at line 1055 of file ffmpeg_opt.c.
Referenced by show_help().
int parse_options | ( | void * | optctx, |
int | argc, | ||
char ** | argv, | ||
const OptionDef * | options, | ||
int(*)(void *optctx, const char *) | parse_arg_function | ||
) |
Parse the command line arguments.
optctx | an opaque options context |
argc | number of command line arguments |
argv | values of command line arguments |
options | Array with the definitions required to interpret every option of the form: -option_name [argument] |
parse_arg_function | Name 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 one given option.
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().
int parse_optgroup | ( | void * | optctx, |
OptionGroup * | g, | ||
const OptionDef * | defs | ||
) |
Parse an options group and write results into optctx.
optctx | an app-specific options context. NULL for global options group |
Definition at line 444 of file cmdutils.c.
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 776 of file cmdutils.c.
void uninit_parse_context | ( | OptionParseContext * | octx | ) |
Free all allocated memory in an OptionParseContext.
Definition at line 751 of file cmdutils.c.
Find the '-loglevel' option in the command line args and apply it.
Definition at line 543 of file cmdutils.c.
Referenced by main().
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().
int check_stream_specifier | ( | AVFormatContext * | s, |
AVStream * | st, | ||
const char * | spec | ||
) |
Check if the given stream matches a stream specifier.
s | Corresponding format context. |
st | Stream from s to be checked. |
spec | A stream specifier of the [v|a|s|d]:[<stream index>] form. |
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().
int filter_codec_opts | ( | const AVDictionary * | opts, |
enum AVCodecID | codec_id, | ||
AVFormatContext * | s, | ||
AVStream * | st, | ||
const AVCodec * | codec, | ||
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.
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 |
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().
int setup_find_stream_info_opts | ( | AVFormatContext * | s, |
AVDictionary * | codec_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().
|
inlinestatic |
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.
Definition at line 401 of file cmdutils.h.
Referenced by open_input_file(), and read_thread().
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 237 of file opt_common.c.
Referenced by main().
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().
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.
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().
Realloc array to hold new_size elements of elem_size.
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 |
Definition at line 1086 of file cmdutils.c.
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.
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. |
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().
Definition at line 1114 of file cmdutils.c.
Referenced by configure_input_video_filter(), and configure_video_filters().
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().
const char program_name[] |
program name, defined by the program for show_version().
Definition at line 106 of file ffmpeg.c.
Referenced by expand_filename_template(), init_report(), main(), print_program_info(), show_help_default(), show_license(), show_usage(), and usage().
const int program_birth_year |
program birth year, defined by the program for show_banner()
Definition at line 107 of file ffmpeg.c.
Referenced by ffprobe_show_program_version(), and print_program_info().
AVDictionary* sws_dict |
Definition at line 59 of file cmdutils.c.
Referenced by configure_video_filters(), finish_group(), opt_default(), and uninit_opts().
AVDictionary* swr_opts |
Definition at line 60 of file cmdutils.c.
Referenced by configure_audio_filters(), finish_group(), opt_default(), and uninit_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().
AVDictionary * codec_opts |
Definition at line 49 of file cmdutils.h.
int hide_banner |
Definition at line 63 of file cmdutils.c.
Referenced by parse_loglevel(), and show_banner().