#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <math.h>
#include "config.h"
#include "libavformat/avformat.h"
#include "libavfilter/avfilter.h"
#include "libavdevice/avdevice.h"
#include "libswscale/swscale.h"
#include "libpostproc/postprocess.h"
#include "libavutil/avstring.h"
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "libavutil/eval.h"
#include "libavutil/dict.h"
#include "libavutil/opt.h"
#include "cmdutils.h"
#include "version.h"
Go to the source code of this file.
Defines | |
#define | FLAGS (o->type == FF_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0 |
#define | SET_PREFIXED_OPTS(ch, flag, output) |
#define | INDENT 1 |
#define | SHOW_VERSION 2 |
#define | SHOW_CONFIG 4 |
#define | PRINT_LIB_INFO(outstream, libname, LIBNAME, flags) |
#define | sws_isSupportedInput(x) 0 |
#define | sws_isSupportedOutput(x) 0 |
Functions | |
void | init_opts (void) |
Initialize the cmdutils option system, in particular allocate the *_opts contexts. | |
void | uninit_opts (void) |
Uninitialize the cmdutils option system, in particular free the *_opts contexts and their contents. | |
void | log_callback_help (void *ptr, int level, const char *fmt, va_list vl) |
Trivial log callback. | |
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. | |
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. | |
void | show_help_options (const OptionDef *options, const char *msg, int mask, int value) |
static const OptionDef * | find_option (const OptionDef *po, const char *name) |
static void | prepare_app_arguments (int *argc_ptr, char ***argv_ptr) |
void | parse_options (int argc, char **argv, const OptionDef *options, int(*parse_arg_function)(const char *opt, const char *arg)) |
Parse the command line arguments. | |
static int | opt_default2 (const char *opt, const char *arg) |
int | opt_default (const char *opt, const char *arg) |
Fallback for options that are not explicitly handled, these will be parsed through AVOptions. | |
int | opt_loglevel (const char *opt, const char *arg) |
Set the libav* libraries log level. | |
int | opt_timelimit (const char *opt, const char *arg) |
Limit the execution time. | |
static void * | alloc_priv_context (int size, const AVClass *class) |
void | set_context_opts (void *ctx, void *opts_ctx, int flags, AVCodec *codec) |
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. | |
static void | print_all_libs_info (FILE *outstream, int flags) |
void | show_banner (void) |
Print the program banner to stderr. | |
int | opt_version (const char *opt, const char *arg) |
Print the version of the program to stdout. | |
int | opt_license (const char *opt, const char *arg) |
Print the license of the program to stdout. | |
int | opt_formats (const char *opt, const char *arg) |
Print a listing containing all the formats supported by the program. | |
int | opt_codecs (const char *opt, const char *arg) |
Print a listing containing all the codecs supported by the program. | |
int | opt_bsfs (const char *opt, const char *arg) |
Print a listing containing all the bit stream filters supported by the program. | |
int | opt_protocols (const char *opt, const char *arg) |
Print a listing containing all the protocols supported by the program. | |
int | opt_filters (const char *opt, const char *arg) |
Print a listing containing all the filters supported by the program. | |
int | opt_pix_fmts (const char *opt, const char *arg) |
Print a listing containing all the pixel formats supported by the program. | |
int | read_yesno (void) |
Return a positive value if a line read from standard input starts with [yY], otherwise return 0. | |
int | read_file (const char *filename, char **bufptr, size_t *size) |
Read the file with name filename, and put its content in a newly allocated 0-terminated buffer. | |
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. | |
Variables | |
const char ** | opt_names |
const char ** | opt_values |
static int | opt_name_count |
AVCodecContext * | avcodec_opts [AVMEDIA_TYPE_NB] |
AVFormatContext * | avformat_opts |
struct SwsContext * | sws_opts |
AVDictionary * | format_opts |
AVDictionary * | video_opts |
AVDictionary * | audio_opts |
AVDictionary * | sub_opts |
static const int | this_year = 2011 |
static int | warned_cfg = 0 |
#define FLAGS (o->type == FF_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0 |
#define INDENT 1 |
#define PRINT_LIB_INFO | ( | outstream, | |||
libname, | |||||
LIBNAME, | |||||
flags | ) |
Value:
if (CONFIG_##LIBNAME) { \ const char *indent = flags & INDENT? " " : ""; \ if (flags & SHOW_VERSION) { \ unsigned int version = libname##_version(); \ fprintf(outstream, "%slib%-9s %2d.%3d.%2d / %2d.%3d.%2d\n", \ indent, #libname, \ LIB##LIBNAME##_VERSION_MAJOR, \ LIB##LIBNAME##_VERSION_MINOR, \ LIB##LIBNAME##_VERSION_MICRO, \ version >> 16, version >> 8 & 0xff, version & 0xff); \ } \ if (flags & SHOW_CONFIG) { \ const char *cfg = libname##_configuration(); \ if (strcmp(FFMPEG_CONFIGURATION, cfg)) { \ if (!warned_cfg) { \ fprintf(outstream, \ "%sWARNING: library configuration mismatch\n", \ indent); \ warned_cfg = 1; \ } \ fprintf(stderr, "%s%-11s configuration: %s\n", \ indent, #libname, cfg); \ } \ } \ } \
Definition at line 528 of file cmdutils.c.
Referenced by print_all_libs_info().
#define SET_PREFIXED_OPTS | ( | ch, | |||
flag, | |||||
output | ) |
Value:
if (opt[0] == ch && avcodec_opts[0] && (o = av_opt_find(avcodec_opts[0], opt+1, NULL, flag, 0)))\ av_dict_set(&output, opt+1, arg, FLAGS);
Definition at line 300 of file cmdutils.c.
Referenced by opt_default2().
#define SHOW_CONFIG 4 |
#define SHOW_VERSION 2 |
#define sws_isSupportedInput | ( | x | ) | 0 |
Referenced by opt_pix_fmts(), query_formats(), selfTest(), and sws_isSupportedInput().
#define sws_isSupportedOutput | ( | x | ) | 0 |
Referenced by opt_pix_fmts(), query_formats(), selfTest(), and sws_isSupportedOutput().
static void* alloc_priv_context | ( | int | size, | |
const AVClass * | class | |||
) | [static] |
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.ffpreset 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 891 of file cmdutils.c.
Referenced by ffserver_opt_preset(), and opt_preset().
void init_opts | ( | void | ) |
Initialize the cmdutils option system, in particular allocate the *_opts contexts.
Definition at line 62 of file cmdutils.c.
Referenced by main(), opt_input_file(), and opt_output_file().
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 97 of file cmdutils.c.
Referenced by opt_help().
int opt_bsfs | ( | 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 780 of file cmdutils.c.
int opt_codecs | ( | 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 703 of file cmdutils.c.
int opt_default | ( | const char * | opt, | |
const char * | arg | |||
) |
Fallback for options that are not explicitly handled, these will be parsed through AVOptions.
Definition at line 336 of file cmdutils.c.
Referenced by opt_bitrate(), opt_passlogfile(), opt_preset(), opt_target(), and opt_top_field_first().
static int opt_default2 | ( | const char * | opt, | |
const char * | arg | |||
) | [static] |
int opt_filters | ( | 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 810 of file cmdutils.c.
int opt_formats | ( | const char * | opt, | |
const char * | arg | |||
) |
Print a listing containing all the formats supported by the program.
This option processing function does not utilize the arguments.
Definition at line 653 of file cmdutils.c.
int opt_license | ( | 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 583 of file cmdutils.c.
int opt_loglevel | ( | const char * | opt, | |
const char * | arg | |||
) |
int opt_pix_fmts | ( | 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 822 of file cmdutils.c.
Referenced by opt_frame_pix_fmt().
int opt_protocols | ( | 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 791 of file cmdutils.c.
int opt_timelimit | ( | const char * | opt, | |
const char * | arg | |||
) |
int opt_version | ( | 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 577 of file cmdutils.c.
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.
context | the context of the value to be set (e.g. the corresponding commandline 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 102 of file cmdutils.c.
Referenced by opt_audio_channels(), opt_audio_rate(), opt_height(), opt_me_threshold(), opt_pass(), opt_qscale(), opt_show_mode(), opt_streamid(), opt_thread_count(), opt_timelimit(), opt_top_field_first(), opt_verbose(), opt_video_channel(), opt_width(), and parse_options().
void parse_options | ( | int | argc, | |
char ** | argv, | |||
const OptionDef * | options, | |||
int(*)(const char *opt, const char *arg) | parse_arg_function | |||
) |
Parse the 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. |
Definition at line 225 of file cmdutils.c.
Referenced by main().
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.
context | the context of the value to be set (e.g. the corresponding commandline 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 |
Definition at line 121 of file cmdutils.c.
Referenced by opt_duration(), opt_input_ts_offset(), opt_recording_time(), opt_recording_timestamp(), opt_seek(), opt_start_time(), and parse_forced_key_frames().
static void prepare_app_arguments | ( | int * | argc_ptr, | |
char *** | argv_ptr | |||
) | [inline, static] |
static void print_all_libs_info | ( | FILE * | outstream, | |
int | flags | |||
) | [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.
If strerror_r() is not available the use of this function in a multithreaded application may be unsafe.
Definition at line 512 of file cmdutils.c.
Referenced by open_input_file(), opt_input_file(), opt_output_file(), read_ffserver_streams(), read_thread(), and write_frame().
int read_file | ( | const char * | filename, | |
char ** | bufptr, | |||
size_t * | size | |||
) |
Read the file with name filename, and put its content in a newly allocated 0-terminated buffer.
bufptr | location where pointer to buffer is returned | |
size | location where size of buffer is returned |
Definition at line 867 of file cmdutils.c.
Referenced by transcode().
int read_yesno | ( | void | ) |
Return a positive value if a line read from standard input starts with [yY], otherwise return 0.
Definition at line 856 of file cmdutils.c.
Referenced by opt_output_file().
void set_context_opts | ( | void * | ctx, | |
void * | opts_ctx, | |||
int | flags, | |||
AVCodec * | codec | |||
) |
Definition at line 469 of file cmdutils.c.
Referenced by new_audio_stream(), new_subtitle_stream(), new_video_stream(), opt_input_file(), opt_output_file(), and stream_component_open().
void show_banner | ( | void | ) |
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 566 of file cmdutils.c.
Referenced by main().
void show_help_options | ( | const OptionDef * | options, | |
const char * | msg, | |||
int | mask, | |||
int | value | |||
) |
void uninit_opts | ( | void | ) |
Uninitialize the cmdutils option system, in particular free the *_opts contexts and their contents.
Definition at line 73 of file cmdutils.c.
Referenced by do_exit(), ffmpeg_exit(), opt_input_file(), and opt_output_file().
Definition at line 58 of file cmdutils.c.
AVCodecContext* avcodec_opts[AVMEDIA_TYPE_NB] |
Definition at line 55 of file cmdutils.c.
Referenced by new_audio_stream(), new_data_stream(), new_subtitle_stream(), new_video_stream(), opt_bitrate(), opt_help(), opt_input_file(), and stream_component_open().
Definition at line 56 of file cmdutils.c.
Referenced by main(), opt_help(), opt_input_file(), and opt_output_file().
int opt_name_count [static] |
Definition at line 54 of file cmdutils.c.
Referenced by opt_default(), set_context_opts(), and uninit_opts().
const char** opt_names |
Definition at line 52 of file cmdutils.c.
Referenced by opt_default(), set_context_opts(), and uninit_opts().
const char** opt_values |
Definition at line 53 of file cmdutils.c.
Referenced by opt_default(), set_context_opts(), and uninit_opts().
Definition at line 58 of file cmdutils.c.
struct SwsContext* sws_opts |
Definition at line 57 of file cmdutils.c.
Referenced by new_output_stream(), opt_help(), and queue_picture().
const int this_year = 2011 [static] |
Definition at line 58 of file cmdutils.c.
int warned_cfg = 0 [static] |
Definition at line 522 of file cmdutils.c.