36#include "libavutil/ffversion.h"
83 "This version of %s has nonfree parts compiled in.\n"
84 "Therefore it is not legally redistributable.\n",
88 "%s is free software; you can redistribute it and/or modify\n"
89 "it under the terms of the GNU General Public License as published by\n"
90 "the Free Software Foundation; either version 3 of the License, or\n"
91 "(at your option) any later version.\n"
93 "%s is distributed in the hope that it will be useful,\n"
94 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
95 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
96 "GNU General Public License for more details.\n"
98 "You should have received a copy of the GNU General Public License\n"
99 "along with %s. If not, see <http://www.gnu.org/licenses/>.\n",
103 "%s is free software; you can redistribute it and/or modify\n"
104 "it under the terms of the GNU General Public License as published by\n"
105 "the Free Software Foundation; either version 2 of the License, or\n"
106 "(at your option) any later version.\n"
108 "%s is distributed in the hope that it will be useful,\n"
109 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
110 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
111 "GNU General Public License for more details.\n"
113 "You should have received a copy of the GNU General Public License\n"
114 "along with %s; if not, write to the Free Software\n"
115 "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n",
119 "%s is free software; you can redistribute it and/or modify\n"
120 "it under the terms of the GNU Lesser General Public License as published by\n"
121 "the Free Software Foundation; either version 3 of the License, or\n"
122 "(at your option) any later version.\n"
124 "%s is distributed in the hope that it will be useful,\n"
125 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
126 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
127 "GNU Lesser General Public License for more details.\n"
129 "You should have received a copy of the GNU Lesser General Public License\n"
130 "along with %s. If not, see <http://www.gnu.org/licenses/>.\n",
134 "%s is free software; you can redistribute it and/or\n"
135 "modify it under the terms of the GNU Lesser General Public\n"
136 "License as published by the Free Software Foundation; either\n"
137 "version 2.1 of the License, or (at your option) any later version.\n"
139 "%s is distributed in the hope that it will be useful,\n"
140 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
141 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
142 "Lesser General Public License for more details.\n"
144 "You should have received a copy of the GNU Lesser General Public\n"
145 "License along with %s; if not, write to the Free Software\n"
146 "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n",
156#define SHOW_VERSION 2
158#define SHOW_COPYRIGHT 8
160#define PRINT_LIB_INFO(libname, LIBNAME, flags, level) \
161 if (CONFIG_##LIBNAME) { \
162 const char *indent = flags & INDENT? " " : ""; \
163 if (flags & SHOW_VERSION) { \
164 unsigned int version = libname##_version(); \
165 av_log(NULL, level, \
166 "%slib%-11s %2d.%3d.%3d / %2d.%3d.%3d\n", \
168 LIB##LIBNAME##_VERSION_MAJOR, \
169 LIB##LIBNAME##_VERSION_MINOR, \
170 LIB##LIBNAME##_VERSION_MICRO, \
171 AV_VERSION_MAJOR(version), AV_VERSION_MINOR(version),\
172 AV_VERSION_MICRO(version)); \
174 if (flags & SHOW_CONFIG) { \
175 const char *cfg = libname##_configuration(); \
176 if (strcmp(FFMPEG_CONFIGURATION, cfg)) { \
178 av_log(NULL, level, \
179 "%sWARNING: library configuration mismatch\n", \
183 av_log(NULL, level, "%s%-11s configuration: %s\n", \
184 indent, #libname, cfg); \
211 av_log(
NULL,
level,
"%sconfiguration: %s\n", indent, FFMPEG_CONFIGURATION);
217 char str[] = { FFMPEG_CONFIGURATION };
218 char *conflist, *remove_tilde, *splitconf;
222 while ((conflist = strstr(str,
" --")) !=
NULL) {
228 while ((remove_tilde = strstr(str,
"pkg-config~")) !=
NULL) {
229 remove_tilde[
sizeof(
"pkg-config~") - 2] =
' ';
232 splitconf = strtok(str,
"~");
234 while (splitconf !=
NULL) {
236 splitconf = strtok(
NULL,
"~");
268#define PRINT_CODEC_SUPPORTED(codec, config, type, name, elem, fmt, ...) \
271 const type *elem = NULL; \
272 avcodec_get_supported_config(NULL, codec, config, 0, \
273 (const void **) &elem, &num); \
275 printf(" Supported " name ":"); \
276 for (int i = 0; i < num; i++) { \
277 printf(" " fmt, __VA_ARGS__); \
290 return "unknown/invalid";
299 printf(
"%s %s [%s]:\n", encoder ?
"Encoder" :
"Decoder",
c->name,
300 c->long_name ?
c->long_name :
"");
302 printf(
" General capabilities: ");
330 printf(
"reorderedopaque ");
335 if (!
c->capabilities)
341 printf(
" Threading capabilities: ");
350 default:
printf(
"none");
break;
356 printf(
" Supported hardware devices: ");
357 for (
int i = 0;;
i++) {
370 fps,
"%d/%d", fps->
num, fps->den);
380 "channel layouts",
layout,
"%s",
429 "but no %s for it are available. FFmpeg might need to be "
430 "recompiled with additional external libraries.\n",
431 name, encoder ?
"encoders" :
"decoders");
493 printf(
" Default video codec: %s.\n",
desc->name);
497 printf(
" Default audio codec: %s.\n",
desc->name);
501 printf(
" Default subtitle codec: %s.\n",
desc->name);
509static void show_help_filter(
const char *
name)
523 printf(
"Filter %s\n",
f->name);
525 printf(
" %s\n",
f->description);
528 printf(
" slice threading supported\n");
532 for (
i = 0;
i < count;
i++) {
537 printf(
" dynamic (depending on the options)\n");
539 printf(
" none (source filter)\n");
543 for (
i = 0;
i < count;
i++) {
548 printf(
" dynamic (depending on the options)\n");
550 printf(
" none (sink filter)\n");
556 printf(
"This filter has support for timeline through the 'enable' option.\n");
559 "can not to satisfy request\n");
579 printf(
" Supported codecs:");
598 par = strchr(topic,
'=');
604 }
else if (!strcmp(topic,
"decoder")) {
606 }
else if (!strcmp(topic,
"encoder")) {
608 }
else if (!strcmp(topic,
"demuxer")) {
610 }
else if (!strcmp(topic,
"muxer")) {
612 }
else if (!strcmp(topic,
"protocol")) {
615 }
else if (!strcmp(topic,
"filter")) {
616 show_help_filter(par);
618 }
else if (!strcmp(topic,
"bsf")) {
633 printf(
" (%s:", encoder ?
"encoders" :
"decoders");
646 return (*da)->type != (*db)->type ?
FFDIFFSIGN((*da)->type, (*db)->type) :
647 strcmp((*da)->name, (*db)->name);
654 unsigned nb_codecs = 0,
i = 0;
691 " D..... = Decoding supported\n"
692 " .E.... = Encoding supported\n"
693 " ..V... = Video codec\n"
694 " ..A... = Audio codec\n"
695 " ..S... = Subtitle codec\n"
696 " ..D... = Data codec\n"
697 " ..T... = Attachment codec\n"
698 " ...I.. = Intra frame-only codec\n"
699 " ....L. = Lossy compression\n"
700 " .....S = Lossless compression\n"
702 for (
i = 0;
i < nb_codecs;
i++) {
707 if (strstr(
desc->name,
"_deprecated"))
723 if (strcmp(codec->
name,
desc->name)) {
730 if (strcmp(codec->
name,
desc->name)) {
753 " S..... = Subtitle\n"
754 " .F.... = Frame-level multithreading\n"
755 " ..S... = Slice-level multithreading\n"
756 " ...X.. = Codec is experimental\n"
757 " ....B. = Supports draw_horiz_band\n"
758 " .....D = Supports direct rendering method 1\n"
760 encoder ?
"Encoders" :
"Decoders");
761 for (
i = 0;
i < nb_codecs;
i++) {
776 if (strcmp(codec->
name,
desc->name))
801 printf(
"Bitstream filters:\n");
812 char descr[64], *descr_cur;
818 " T.. = Timeline support\n"
819 " .S. = Slice threading\n"
820 " A = Audio input/output\n"
821 " V = Video input/output\n"
822 " N = Dynamic number and/or type of input/output\n"
823 " | = Source or sink filter\n"
827 for (
i = 0;
i < 2;
i++) {
830 *(descr_cur++) =
'-';
831 *(descr_cur++) =
'>';
835 for (j = 0; j < nb_pads; j++) {
836 if (descr_cur >= descr +
sizeof(descr) - 4)
845 printf(
" %c%c %-17s %-10s %s\n",
851 printf(
"No filters available: libavfilter disabled\n");
865 void *ifmt_opaque =
NULL;
867 void *ofmt_opaque =
NULL;
869 const char *last_name;
871 const char *is_device_placeholder = device_only ?
"" :
".";
874 " D.%s = Demuxing supported\n"
875 " .E%s = Muxing supported\n"
878 device_only ?
"Devices" :
"Formats",
879 is_device_placeholder, is_device_placeholder,
880 device_only ?
"":
" ..d = Is a device\n");
888 const char *long_name =
NULL;
894 if (!is_dev && device_only)
897 strcmp(ofmt->
name, last_name) > 0) {
909 if (!is_dev && device_only)
912 strcmp(ifmt->
name, last_name) > 0) {
928 printf(
" %c%c%s %-15s %s\n",
931 device_only ?
"" : (device ?
"d" :
" "),
933 long_name ? long_name :
" ");
963 printf(
"Supported file protocols:\n"
979 printf(
"%-32s #RRGGBB\n",
"name");
992 "I.... = Supported Input format for conversion\n"
993 ".O... = Supported Output format for conversion\n"
994 "..H.. = Hardware accelerated format\n"
995 "...P. = Paletted format\n"
996 "....B = Bitstream format\n"
997 "FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL BIT_DEPTHS\n"
1001# define sws_isSupportedInput(x) 0
1002# define sws_isSupportedOutput(x) 0
1007 printf(
"%c%c%c%c%c %-16s %d %3d %d",
1029 char buf[128], buf2[128];
1032 printf(
"Individual channels:\n"
1033 "NAME DESCRIPTION\n");
1034 for (
i = 0;
i < 63;
i++) {
1036 if (strstr(buf,
"USR"))
1039 printf(
"%-14s %s\n", buf, buf2);
1041 printf(
"\nStandard channel layouts:\n"
1042 "NAME DECOMPOSITION\n");
1046 for (
i = 0;
i < 63;
i++) {
1050 printf(
"%s%s", idx ?
"+" :
"", buf2);
1069 for (
int i = 0;
i < 32;
i++) {
1098 static const AVClass class = {
1104 const AVClass *pclass = &
class;
1120 while ((
c = *(
template++))) {
1122 if (!(
c = *(
template++)))
1130 tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
1131 tm->tm_hour, tm->tm_min, tm->tm_sec);
1147 static int print_prefix = 1;
1161 char *filename_template =
NULL;
1164 int prog_loglevel, envlevel = 0;
1172 tm = localtime(&now);
1174 while (env && *env) {
1178 "Failed to parse FFREPORT environment variable: %s\n",
1185 if (!strcmp(
key,
"file")) {
1187 filename_template =
val;
1189 }
else if (!strcmp(
key,
"level")) {
1224 filename.str, strerror(errno));
1229 "%s started on %04d-%02d-%02d at %02d:%02d:%02d\n"
1230 "Report written to \"%s\"\n"
1233 tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
1234 tm->tm_hour, tm->tm_min, tm->tm_sec,
1254 max = strtol(
arg, &tail, 10);
1265 const struct {
const char *
name;
int level; } log_levels[] = {
1285 if (*token ==
'+' || *token ==
'-') {
1324 }
else if (*
arg ==
'+') {
1331 if (!strcmp(log_levels[
i].
name,
arg)) {
1332 level = log_levels[
i].level;
1340 "Possible levels are numbers or:\n",
arg);
1370 printf(
"%s", media_type ? media_type :
"unknown");
1387 printf(
"Auto-detected sources for %s:\n", fmt->
name);
1393 print_device_list(device_list);
1408 printf(
"Auto-detected sinks for %s:\n", fmt->
name);
1414 print_device_list(device_list);
1425 char *opts_str =
NULL;
1430 if ((opts_str = strchr(*dev,
','))) {
1431 *(opts_str++) =
'\0';
1438 printf(
"\nDevice name is not provided.\n"
1439 "You can pass devicename[,opt1=val1[,opt2=val2...]] as an argument.\n\n");
1443int show_sources(
void *optctx,
const char *opt,
const char *
arg)
1453 if ((ret = show_sinks_sources_parse_arg(
arg, &dev, &
opts)) < 0)
1459 if (!strcmp(fmt->
name,
"lavfi"))
1463 print_device_sources(fmt,
opts);
1471 print_device_sources(fmt,
opts);
1481int show_sinks(
void *optctx,
const char *opt,
const char *
arg)
1491 if ((ret = show_sinks_sources_parse_arg(
arg, &dev, &
opts)) < 0)
1499 print_device_sinks(fmt,
opts);
1507 print_device_sinks(fmt,
opts);
static double val(void *priv, double ch)
static AVDictionary * opts
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_assert0(cond)
assert() equivalent, that is always enabled.
Libavcodec external API header.
Main libavdevice API header.
Main libavfilter public API header.
const AVClass * avio_protocol_get_class(const char *name)
Get AVClass by names of available protocols.
const char * avio_enum_protocols(void **opaque, int output)
Iterate through names of available protocols.
void av_bprintf(AVBPrint *buf, const char *fmt,...)
void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max)
#define AV_BPRINT_SIZE_AUTOMATIC
#define flags(name, subs,...)
#define i(width, name, range_min, range_max)
Public libavutil channel layout APIs header.
void show_help_children(const AVClass *class, int flags)
Show help for all options with given flags in class and all its children.
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.
void log_callback_help(void *ptr, int level, const char *fmt, va_list vl)
Trivial log callback.
const char program_name[]
program name, defined by the program for show_version().
void show_help_default(const char *opt, const char *arg)
Per-fftool specific help handler.
const int program_birth_year
program birth year, defined by the program for show_banner()
static const struct codec_string codecs[]
__device__ int printf(const char *,...)
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
static enum AVPixelFormat pix_fmt
static void encode(AVCodecContext *ctx, AVFrame *frame, AVPacket *pkt, FILE *output)
static FILE * fopen_utf8(const char *path, const char *mode)
#define AV_OPT_FLAG_FILTERING_PARAM
A generic parameter which can be set by the user for filtering.
#define AV_OPT_FLAG_BSF_PARAM
A generic parameter which can be set by the user for bit stream filtering.
#define AV_OPT_FLAG_AUDIO_PARAM
#define AV_OPT_FLAG_DECODING_PARAM
A generic parameter which can be set by the user for demuxing or decoding.
#define AV_OPT_FLAG_VIDEO_PARAM
#define AV_OPT_FLAG_ENCODING_PARAM
A generic parameter which can be set by the user for muxing or encoding.
@ AV_OPT_TYPE_INT
Underlying C type is int.
const AVBitStreamFilter * av_bsf_iterate(void **opaque)
Iterate over all registered bitstream filters.
const AVBitStreamFilter * av_bsf_get_by_name(const char *name)
#define AV_CODEC_CAP_DRAW_HORIZ_BAND
Decoder can use draw_horiz_band callback.
#define AV_CODEC_PROP_LOSSY
Codec supports lossy compression.
const AVCodecDescriptor * avcodec_descriptor_get(enum AVCodecID id)
#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
This encoder can reorder user opaque values from input AVFrames and return them with corresponding ou...
#define AV_CODEC_CAP_ENCODER_FLUSH
This encoder can be flushed using avcodec_flush_buffers().
int av_codec_is_encoder(const AVCodec *codec)
#define AV_CODEC_CAP_OTHER_THREADS
Codec supports multithreading through a method other than slice- or frame-level multithreading.
#define AV_CODEC_CAP_AVOID_PROBING
Decoder is not a preferred choice for probing.
#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE
Audio encoder supports receiving a different number of samples in each call.
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
#define AV_CODEC_PROP_LOSSLESS
Codec supports lossless compression.
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
int av_codec_is_decoder(const AVCodec *codec)
#define AV_CODEC_PROP_INTRA_ONLY
Codec uses only intra compression.
#define AV_CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
const AVCodec * avcodec_find_decoder(enum AVCodecID id)
Find a registered decoder with a matching codec ID.
const AVCodec * avcodec_find_decoder_by_name(const char *name)
Find a registered decoder with the specified name.
const AVCodec * avcodec_find_encoder(enum AVCodecID id)
Find a registered encoder with a matching codec ID.
AVCodecID
Identify the syntax and semantics of the bitstream.
const AVCodecHWConfig * avcodec_get_hw_config(const AVCodec *codec, int index)
Retrieve supported hardware configurations for a codec.
const AVCodec * avcodec_find_encoder_by_name(const char *name)
Find a registered encoder with the specified name.
const AVCodecDescriptor * avcodec_descriptor_next(const AVCodecDescriptor *prev)
Iterate over all codec descriptors known to libavcodec.
#define AV_CODEC_CAP_CHANNEL_CONF
Codec should fill in channel configuration and samplerate instead of container.
#define AV_CODEC_CAP_PARAM_CHANGE
Codec supports changed parameters at any point.
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
const AVCodecDescriptor * avcodec_descriptor_get_by_name(const char *name)
#define AV_CODEC_CAP_SMALL_LAST_FRAME
Codec can be fed a final frame with a smaller size.
#define AV_CODEC_CAP_ENCODER_RECON_FRAME
The encoder is able to output reconstructed frame data, i.e.
#define AV_CODEC_CAP_FRAME_THREADS
Codec supports frame-level multithreading.
const AVCodec * av_codec_iterate(void **opaque)
Iterate over all registered codecs.
#define AV_CODEC_CAP_HYBRID
Codec is potentially backed by a hardware implementation, but not necessarily.
#define AV_CODEC_CAP_EXPERIMENTAL
Codec is experimental and is thus avoided in favor of non experimental encoders.
@ AV_CODEC_CONFIG_PIX_FORMAT
AVPixelFormat, terminated by AV_PIX_FMT_NONE.
@ AV_CODEC_CONFIG_SAMPLE_FORMAT
AVSampleFormat, terminated by AV_SAMPLE_FMT_NONE.
@ AV_CODEC_CONFIG_FRAME_RATE
AVRational, terminated by {0, 0}.
@ AV_CODEC_CONFIG_SAMPLE_RATE
int, terminated by 0
@ AV_CODEC_CONFIG_CHANNEL_LAYOUT
AVChannelLayout, terminated by {0}.
av_cold const AVOutputFormat * av_output_video_device_next(const AVOutputFormat *d)
Video output devices iterator.
av_cold const AVOutputFormat * av_output_audio_device_next(const AVOutputFormat *d)
Audio output devices iterator.
void avdevice_free_list_devices(AVDeviceInfoList **device_list)
Convenient function to free result of avdevice_list_devices().
av_cold const AVInputFormat * av_input_video_device_next(const AVInputFormat *d)
Video input devices iterator.
int avdevice_list_output_sinks(const AVOutputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
int avdevice_list_input_sources(const AVInputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
List devices.
av_cold const AVInputFormat * av_input_audio_device_next(const AVInputFormat *d)
Audio input devices iterator.
const AVOutputFormat * av_muxer_iterate(void **opaque)
Iterate over all registered muxers.
const AVInputFormat * av_demuxer_iterate(void **opaque)
Iterate over all registered demuxers.
const AVInputFormat * av_find_input_format(const char *short_name)
Find AVInputFormat based on the short name of the input format.
const AVOutputFormat * av_guess_format(const char *short_name, const char *filename, const char *mime_type)
Return the output format in the list of registered output formats which best matches the provided par...
const AVFilter * avfilter_get_by_name(const char *name)
Get a filter definition matching the given name.
#define AVFILTER_FLAG_DYNAMIC_OUTPUTS
The number of the filter outputs is not determined just by AVFilter.outputs.
enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx)
Get the type of an AVFilterPad.
unsigned avfilter_filter_pad_count(const AVFilter *filter, int is_output)
Get the number of elements in an AVFilter's inputs or outputs array.
const char * avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx)
Get the name of an AVFilterPad.
const AVFilter * av_filter_iterate(void **opaque)
Iterate over all registered filters.
#define AVFILTER_FLAG_SUPPORT_TIMELINE
Handy mask to test whether the filter supports or no the timeline feature (internally or generically)...
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
#define AVFILTER_FLAG_DYNAMIC_INPUTS
The number of the filter inputs is not determined just by AVFilter.inputs.
int av_channel_layout_index_from_channel(const AVChannelLayout *channel_layout, enum AVChannel channel)
Get the index of a given channel in a channel layout.
int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout, AVBPrint *bp)
bprint variant of av_channel_layout_describe().
int av_channel_name(char *buf, size_t buf_size, enum AVChannel channel_id)
Get a human readable string in an abbreviated form describing a given channel.
int av_channel_description(char *buf, size_t buf_size, enum AVChannel channel_id)
Get a human readable string describing a given channel.
int av_channel_layout_describe(const AVChannelLayout *channel_layout, char *buf, size_t buf_size)
Get a human-readable string describing the channel layout properties.
const AVChannelLayout * av_channel_layout_standard(void **opaque)
Iterate over all standard channel layouts.
static int av_bprint_is_complete(const AVBPrint *buf)
Test if the print buffer is complete (not truncated).
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer.
void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
Append char c n times to a print buffer.
void av_bprint_clear(AVBPrint *buf)
Reset the string to "" but keep internal allocated data.
void av_dict_free(AVDictionary **pm)
Free all the memory allocated for an AVDictionary struct and all keys and values.
int av_dict_parse_string(AVDictionary **pm, const char *str, const char *key_val_sep, const char *pairs_sep, int flags)
Parse the key/value pairs list and add the parsed entries to a dictionary.
#define av_err2str(errnum)
Convenience macro, the return value should be used only directly in function arguments but never stan...
#define AV_LOG_TRACE
Extremely verbose debugging, useful for libav* development.
#define AV_LOG_PANIC
Something went really wrong and we will crash now.
#define AV_LOG_QUIET
Print no output.
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
#define AV_LOG_WARNING
Something somehow does not look correct.
#define AV_LOG_FATAL
Something went wrong and recovery is not possible.
#define AV_LOG_VERBOSE
Detailed information.
#define AV_LOG_INFO
Standard information.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define AV_LOG_PRINT_DATETIME
Include system date and time in log output.
void av_log_set_callback(void(*callback)(void *, int, const char *, va_list))
Set the logging callback.
#define AV_LOG_PRINT_TIME
Include system time in log output.
const char * av_default_item_name(void *ptr)
Return the context name.
void av_log_set_level(int level)
Set the log level.
void av_log_default_callback(void *ptr, int level, const char *fmt, va_list vl)
Default logging callback.
#define AV_LOG_SKIP_REPEATED
Skip repeated messages, this requires the user app to use av_log() instead of (f)printf as the 2 woul...
int av_log_get_flags(void)
#define AV_LOG_PRINT_LEVEL
Include the log severity in messages originating from codecs.
int av_log_get_level(void)
Get the current log level.
void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl, char *line, int line_size, int *print_prefix)
Format a line of log the same way as the default callback.
void av_log_set_flags(int arg)
void av_max_alloc(size_t max)
Set the maximum size that may be allocated in one block.
const char * av_get_media_type_string(enum AVMediaType media_type)
Return a string describing the media_type enum, NULL if media_type is unknown.
static void * av_x_if_null(const void *p, const void *x)
Return x default pointer in case p is NULL.
@ AVMEDIA_TYPE_ATTACHMENT
Opaque data information usually sparse.
@ AVMEDIA_TYPE_DATA
Opaque data information usually continuous.
char * av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt)
Generate a string corresponding to the sample format with sample_fmt, or a header if sample_fmt is ne...
const char * av_get_sample_fmt_name(enum AVSampleFormat sample_fmt)
Return the name of sample_fmt, or NULL if sample_fmt is not recognized.
AVSampleFormat
Audio sample formats.
@ AV_SAMPLE_FMT_NB
Number of sample formats. DO NOT USE if linking dynamically.
int av_match_name(const char *name, const char *names)
Match instances of a name in a comma-separated list of names.
int av_strstart(const char *str, const char *pfx, const char **ptr)
Return non-zero if pfx is a prefix of str.
#define LIBAVUTIL_VERSION_INT
int av_opt_eval_int(void *obj, const AVOption *o, const char *val, int *int_out)
int av_opt_get_key_value(const char **ropts, const char *key_val_sep, const char *pairs_sep, unsigned flags, char **rkey, char **rval)
Extract a key-value pair from the beginning of a string.
const char * av_hwdevice_get_type_name(enum AVHWDeviceType type)
Get the string name of an AVHWDeviceType.
Libavcodec version macros.
Libavdevice version macros.
Libavfilter version macros.
void av_force_cpu_flags(int arg)
Disables cpu detection and forces the specified flags.
int av_parse_cpu_caps(unsigned *flags, const char *s)
Parse CPU caps from a string and update the given AV_CPU_* flags based on that.
void av_cpu_force_count(int count)
Overrides cpu count detection and forces the specified count.
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Libavutil version macros.
Libswresample version macros.
#define AV_IS_OUTPUT_DEVICE(category)
#define AV_IS_INPUT_DEVICE(category)
#define FFDIFFSIGN(x, y)
Comparator.
void * av_calloc(size_t nmemb, size_t size)
Memory handling functions.
static int get_codecs_sorted(const AVCodecDescriptor ***rcodecs)
int show_decoders(void *optctx, const char *opt, const char *arg)
Print a listing containing all the decoders supported by the program.
int opt_loglevel(void *optctx, const char *opt, const char *arg)
Set the libav* libraries log level.
int opt_cpuflags(void *optctx, const char *opt, const char *arg)
Override the cpuflags.
int show_help(void *optctx, const char *opt, const char *arg)
Generic -h handler common to all fftools.
static void log_callback_report(void *ptr, int level, const char *fmt, va_list vl)
static void show_help_bsf(const char *name)
static void show_help_codec(const char *name, int encoder)
int show_filters(void *optctx, const char *opt, const char *arg)
Print a listing containing all the filters supported by the program.
static void show_help_demuxer(const char *name)
int show_sample_fmts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the sample formats supported by the program.
static int report_file_level
int show_muxers(void *optctx, const char *opt, const char *arg)
Print a listing containing all the muxers supported by the program (including devices).
static int compare_codec_desc(const void *a, const void *b)
int show_bsfs(void *optctx, const char *opt, const char *arg)
Print a listing containing all the bit stream filters supported by the program.
static FILE * report_file
static void print_all_libs_info(int flags, int level)
static void print_buildconf(int flags, int level)
#define PRINT_LIB_INFO(libname, LIBNAME, flags, level)
int show_dispositions(void *optctx, const char *opt, const char *arg)
Print a listing containing all supported stream dispositions.
int show_layouts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the standard channel layouts supported by the program.
int show_encoders(void *optctx, const char *opt, const char *arg)
Print a listing containing all the encoders supported by the program.
int show_version(void *optctx, const char *opt, const char *arg)
Print the version of the program to stdout.
static void expand_filename_template(AVBPrint *bp, const char *template, struct tm *tm)
static void show_help_protocol(const char *name)
static int print_codecs(int encoder)
static const char * get_channel_layout_desc(const AVChannelLayout *layout, AVBPrint *bp)
static char get_media_type_char(enum AVMediaType type)
int opt_cpucount(void *optctx, const char *opt, const char *arg)
Override the cpucount.
void show_banner(int argc, char **argv, const OptionDef *options)
Print the program banner to stderr.
static void show_help_muxer(const char *name)
int show_license(void *optctx, const char *opt, const char *arg)
Print the license of the program to stdout.
int show_codecs(void *optctx, const char *opt, const char *arg)
Print a listing containing all the codecs supported by the program.
int show_buildconf(void *optctx, const char *opt, const char *arg)
Print the build configuration of the program to stdout.
static int show_formats_devices(void *optctx, const char *opt, const char *arg, int device_only, int muxdemuxers)
int show_devices(void *optctx, const char *opt, const char *arg)
Print a listing containing all the devices supported by the program.
static void print_program_info(int flags, int level)
int init_report(const char *env, FILE **file)
static void print_codec(const AVCodec *c)
int show_formats(void *optctx, const char *opt, const char *arg)
Print a listing containing all the formats supported by the program (including devices).
static const AVCodec * next_codec_for_id(enum AVCodecID id, void **iter, int encoder)
#define sws_isSupportedOutput(x)
static int is_device(const AVClass *avclass)
int show_protocols(void *optctx, const char *opt, const char *arg)
Print a listing containing all the protocols supported by the program.
int opt_max_alloc(void *optctx, const char *opt, const char *arg)
#define PRINT_CODEC_SUPPORTED(codec, config, type, name, elem, fmt,...)
int opt_report(void *optctx, const char *opt, const char *arg)
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.
int show_pix_fmts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the pixel formats supported by the program.
int show_demuxers(void *optctx, const char *opt, const char *arg)
Print a listing containing all the demuxer supported by the program (including devices).
#define sws_isSupportedInput(x)
static void print_codecs_for_id(enum AVCodecID id, int encoder)
const char * av_get_known_color_name(int color_idx, const uint8_t **rgbp)
Get the name of a color from the internal table of hard-coded named colors.
enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc)
const AVPixFmtDescriptor * av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev)
Iterate over all pixel format descriptors known to libavutil.
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
Return the number of bits per pixel used by the pixel format described by pixdesc.
const char * av_get_pix_fmt_name(enum AVPixelFormat pix_fmt)
Return the short name for a pixel format, NULL in case pix_fmt is unknown.
#define AV_PIX_FMT_FLAG_BITSTREAM
All values of a component are bit-wise packed end to end.
#define AV_PIX_FMT_FLAG_HWACCEL
Pixel format is an HW accelerated format.
#define AV_PIX_FMT_FLAG_PAL
Pixel format has a palette in data[1], values are indexes in this palette.
AVPixelFormat
Pixel format.
#define FF_ARRAY_ELEMS(a)
const AVClass * priv_class
A class for the private data, used to declare bitstream filter private AVOptions.
enum AVCodecID * codec_ids
A list of codec ids supported by the filter, terminated by AV_CODEC_ID_NONE.
An AVChannelLayout holds information about the channel layout of audio data.
Describe the class of an AVClass context structure.
AVClassCategory category
Category used for visualization (like color).
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
This struct describes the properties of a single codec described by an AVCodecID.
const char * name
Name of the codec described by this descriptor.
const char * long_name
Descriptive name for the codec, meant to be more human readable than name.
const char * name
Name of the codec implementation.
int capabilities
Codec capabilities.
int depth
Number of bits in the component.
int nb_devices
number of autodetected devices
int default_device
index of default device or -1 if no default
AVDeviceInfo ** devices
list of autodetected devices
Structure describes basic parameters of the device.
char * device_description
human friendly name
enum AVMediaType * media_types
array indicating what media types(s), if any, a device can provide.
int nb_media_types
length of media_types array, 0 if device cannot provide any media types
char * device_name
device name, format depends on device
A filter pad used for either input or output.
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
AVComponentDescriptor comp[4]
Parameters that describe how pixels are packed.
uint64_t flags
Combination of AV_PIX_FMT_FLAG_... flags.
uint8_t nb_components
The number of components each pixel has, (1-4)
Rational number (pair of numerator and denominator).
libswresample public header
void(* filter)(uint8_t *src, ptrdiff_t stride, int qscale)
#define va_copy(dst, src)