Libav 0.7.1
|
#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, void(*parse_arg_function)(const char *)) |
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. | |
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. | |
void | show_version (void) |
Print the version of the program to stdout. | |
void | show_license (void) |
Print the license of the program to stdout. | |
void | show_formats (void) |
Print a listing containing all the formats supported by the program. | |
void | show_codecs (void) |
Print a listing containing all the codecs supported by the program. | |
void | show_bsfs (void) |
Print a listing containing all the bit stream filters supported by the program. | |
void | show_protocols (void) |
Print a listing containing all the protocols supported by the program. | |
void | show_filters (void) |
Print a listing containing all the filters supported by the program. | |
void | show_pix_fmts (void) |
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. | |
void | init_pts_correction (PtsCorrectionContext *ctx) |
Reset the state of the PtsCorrectionContext. | |
int64_t | guess_correct_pts (PtsCorrectionContext *ctx, int64_t reordered_pts, int64_t dts) |
Attempt to guess proper monotonic timestamps for decoded video frames which might have incorrect times. | |
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 |
Definition at line 301 of file cmdutils.c.
Referenced by opt_default2().
#define INDENT 1 |
Definition at line 490 of file cmdutils.c.
Referenced by show_banner().
#define PRINT_LIB_INFO | ( | outstream, | |
libname, | |||
LIBNAME, | |||
flags | |||
) |
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(LIBAV_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 494 of file cmdutils.c.
Referenced by print_all_libs_info().
#define SET_PREFIXED_OPTS | ( | ch, | |
flag, | |||
output | |||
) |
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 302 of file cmdutils.c.
Referenced by opt_default2().
#define SHOW_CONFIG 4 |
Definition at line 492 of file cmdutils.c.
Referenced by show_banner().
#define SHOW_VERSION 2 |
Definition at line 491 of file cmdutils.c.
Referenced by show_banner(), and show_version().
#define sws_isSupportedInput | ( | x | ) | 0 |
Referenced by query_formats(), selfTest(), show_pix_fmts(), and sws_isSupportedInput().
#define sws_isSupportedOutput | ( | x | ) | 0 |
Referenced by query_formats(), selfTest(), show_pix_fmts(), and sws_isSupportedOutput().
Definition at line 159 of file cmdutils.c.
Referenced by parse_options().
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, 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 872 of file cmdutils.c.
Referenced by ffserver_opt_preset(), and opt_preset().
int64_t guess_correct_pts | ( | PtsCorrectionContext * | ctx, |
int64_t | pts, | ||
int64_t | dts | ||
) |
Attempt to guess proper monotonic timestamps for decoded video frames which might have incorrect times.
Input timestamps may wrap around, in which case the output will as well.
pts | the pts field of the decoded AVPacket, as passed through AVCodecContext.reordered_opaque |
dts | the dts field of the decoded AVPacket |
Definition at line 851 of file cmdutils.c.
Referenced by get_video_frame(), and output_packet().
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 init_pts_correction | ( | PtsCorrectionContext * | ctx | ) |
Reset the state of the PtsCorrectionContext.
Definition at line 845 of file cmdutils.c.
Referenced by get_video_frame(), and transcode().
void log_callback_help | ( | void * | ptr, |
int | level, | ||
const char * | fmt, | ||
va_list | vl | ||
) |
Trivial log callback.
Only suitable for show_help and similar since it lacks prefix handling.
Definition at line 101 of file cmdutils.c.
Referenced by show_help().
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 338 of file cmdutils.c.
Referenced by opt_bitrate(), opt_preset(), opt_target(), opt_video_channel(), and opt_video_standard().
static int opt_default2 | ( | const char * | opt, |
const char * | arg | ||
) | [static] |
Definition at line 305 of file cmdutils.c.
Referenced by opt_default().
int opt_loglevel | ( | const char * | opt, |
const char * | arg | ||
) |
Set the libav* libraries log level.
Definition at line 398 of file cmdutils.c.
int opt_timelimit | ( | const char * | opt, |
const char * | arg | ||
) |
Limit the execution time.
Definition at line 433 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 106 of file cmdutils.c.
Referenced by opt_audio_channels(), opt_audio_rate(), opt_debug(), opt_height(), opt_me_threshold(), opt_pass(), opt_qscale(), opt_streamid(), opt_thread_count(), opt_timelimit(), opt_top_field_first(), opt_verbose(), opt_vismv(), opt_width(), and parse_options().
void parse_options | ( | int | argc, |
char ** | argv, | ||
const OptionDef * | options, | ||
void(*)(const char *) | 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 229 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 125 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] |
Definition at line 223 of file cmdutils.c.
Referenced by parse_options().
static void print_all_libs_info | ( | FILE * | outstream, |
int | flags | ||
) | [static] |
Definition at line 521 of file cmdutils.c.
Referenced by show_banner(), and show_version().
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 478 of file cmdutils.c.
Referenced by decode_thread(), open_input_file(), opt_input_file(), opt_output_file(), read_ffserver_streams(), 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 821 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 810 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 446 of file cmdutils.c.
Referenced by decode_thread(), new_audio_stream(), new_subtitle_stream(), new_video_stream(), opt_input_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 532 of file cmdutils.c.
Referenced by main().
void show_bsfs | ( | void | ) |
Print a listing containing all the bit stream filters supported by the program.
Definition at line 742 of file cmdutils.c.
void show_codecs | ( | void | ) |
Print a listing containing all the codecs supported by the program.
Definition at line 666 of file cmdutils.c.
void show_filters | ( | void | ) |
Print a listing containing all the filters supported by the program.
Definition at line 766 of file cmdutils.c.
void show_formats | ( | void | ) |
Print a listing containing all the formats supported by the program.
Definition at line 617 of file cmdutils.c.
void show_help_options | ( | const OptionDef * | options, |
const char * | msg, | ||
int | mask, | ||
int | value | ||
) |
Definition at line 136 of file cmdutils.c.
Referenced by show_help().
void show_license | ( | void | ) |
Print the license of the program to stdout.
The license depends on the license of the libraries compiled into the program.
Definition at line 548 of file cmdutils.c.
void show_pix_fmts | ( | void | ) |
Print a listing containing all the pixel formats supported by the program.
Definition at line 777 of file cmdutils.c.
Referenced by opt_frame_pix_fmt().
void show_protocols | ( | void | ) |
Print a listing containing all the protocols supported by the program.
Definition at line 752 of file cmdutils.c.
void show_version | ( | void | ) |
Print the version of the program to stdout.
The version message depends on the current versions of the repository and of the libav* libraries.
Definition at line 543 of file cmdutils.c.
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 decode_thread(), new_audio_stream(), new_data_stream(), new_subtitle_stream(), new_video_stream(), opt_bitrate(), opt_input_file(), show_help(), and stream_component_open().
Definition at line 56 of file cmdutils.c.
Referenced by main(), and show_help().
Definition at line 58 of file cmdutils.c.
Referenced by decode_thread(), open_input_file(), 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(), queue_picture(), and show_help().
const int this_year = 2011 [static] |
Definition at line 60 of file cmdutils.c.
Referenced by show_banner().
Definition at line 58 of file cmdutils.c.
int warned_cfg = 0 [static] |
Definition at line 488 of file cmdutils.c.