Go to the documentation of this file.
55 #include "libavutil/ffversion.h"
59 #if HAVE_SYS_RESOURCE_H
61 #include <sys/resource.h>
93 vfprintf(stdout, fmt, vl);
100 static int print_prefix = 1;
114 #if HAVE_SETDLLDIRECTORY && defined(_WIN32)
143 error =
"Expected number for %s but found: %s\n";
144 else if (d < min || d >
max)
145 error =
"The value for %s was %s which is not within %f - %f\n";
147 error =
"Expected int64 for %s but found %s\n";
149 error =
"Expected int for %s but found %s\n";
163 is_duration ?
"duration" :
"date",
context, timestr);
170 int rej_flags,
int alt_flags)
179 if (((po->
flags & req_flags) != req_flags) ||
180 (alt_flags && !(po->
flags & alt_flags)) ||
181 (po->
flags & rej_flags))
225 #if HAVE_COMMANDLINETOARGVW && defined(_WIN32)
226 #include <shellapi.h>
228 static char** win32_argv_utf8 =
NULL;
229 static int win32_argc = 0;
242 int i, buffsize = 0,
offset = 0;
244 if (win32_argv_utf8) {
245 *argc_ptr = win32_argc;
246 *argv_ptr = win32_argv_utf8;
251 argv_w = CommandLineToArgvW(GetCommandLineW(), &win32_argc);
252 if (win32_argc <= 0 || !argv_w)
256 for (
i = 0;
i < win32_argc;
i++)
257 buffsize += WideCharToMultiByte(CP_UTF8, 0, argv_w[
i], -1,
260 win32_argv_utf8 =
av_mallocz(
sizeof(
char *) * (win32_argc + 1) + buffsize);
261 argstr_flat = (
char *)win32_argv_utf8 +
sizeof(
char *) * (win32_argc + 1);
262 if (!win32_argv_utf8) {
267 for (
i = 0;
i < win32_argc;
i++) {
268 win32_argv_utf8[
i] = &argstr_flat[
offset];
269 offset += WideCharToMultiByte(CP_UTF8, 0, argv_w[
i], -1,
273 win32_argv_utf8[
i] =
NULL;
276 *argc_ptr = win32_argc;
277 *argv_ptr = win32_argv_utf8;
297 char *p = strchr(opt,
':');
300 dstcount = (
int *)(so + 1);
301 *so =
grow_array(*so,
sizeof(**so), dstcount, *dstcount + 1);
305 (*so)[*dstcount - 1].specifier =
str;
306 dst = &(*so)[*dstcount - 1].u;
330 "Failed to set value '%s' for option '%s': %s\n",
348 if (!po->
name && opt[0] ==
'n' && opt[1] ==
'o') {
375 void (*parse_arg_function)(
void *,
const char*))
378 int optindex, handleoptions = 1,
ret;
385 while (optindex < argc) {
386 opt = argv[optindex++];
388 if (handleoptions && opt[0] ==
'-' && opt[1] !=
'\0') {
389 if (opt[1] ==
'-' && opt[2] ==
'\0') {
399 if (parse_arg_function)
400 parse_arg_function(optctx, opt);
410 g->group_def->name,
g->arg);
412 for (
i = 0;
i <
g->nb_opts;
i++) {
415 if (
g->group_def->flags &&
416 !(
g->group_def->flags & o->
opt->
flags)) {
418 "%s %s -- you are trying to apply an input option to an "
419 "output file or vice versa. Move this option before the "
420 "file it belongs to.\n", o->
key, o->
opt->
help,
421 g->group_def->name,
g->arg);
444 for (
i = 1;
i < argc;
i++) {
445 const char *cur_opt = argv[
i];
447 if (*cur_opt++ !=
'-')
451 if (!po->
name && cur_opt[0] ==
'n' && cur_opt[1] ==
'o')
454 if ((!po->
name && !strcmp(cur_opt, optname)) ||
455 (po->
name && !strcmp(optname, po->
name)))
466 const unsigned char *p;
469 if (!((*p >=
'+' && *p <=
':') || (*p >=
'@' && *p <=
'Z') ||
470 *p ==
'_' || (*p >=
'a' && *p <=
'z')))
477 for (p =
a; *p; p++) {
478 if (*p ==
'\\' || *p ==
'"' || *p ==
'$' || *p ==
'`')
480 else if (*p < ' ' || *p >
'~')
506 if (idx && argv[idx + 1])
509 if ((env = getenv(
"FFREPORT")) || idx) {
514 for (
i = 0;
i < argc;
i++) {
527 int opt_flags,
int search_flags)
535 #define FLAGS (o->type == AV_OPT_TYPE_FLAGS && (arg[0]=='-' || arg[0]=='+')) ? AV_DICT_APPEND : 0
540 char opt_stripped[128];
546 #if CONFIG_SWRESAMPLE
550 if (!strcmp(opt,
"debug") || !strcmp(opt,
"fdebug"))
553 if (!(p = strchr(opt,
':')))
554 p = opt + strlen(opt);
555 av_strlcpy(opt_stripped, opt,
FFMIN(
sizeof(opt_stripped), p - opt + 1));
559 ((opt[0] ==
'v' || opt[0] ==
'a' || opt[0] ==
's') &&
577 if (!strcmp(opt,
"srcw") || !strcmp(opt,
"srch") ||
578 !strcmp(opt,
"dstw") || !strcmp(opt,
"dsth") ||
579 !strcmp(opt,
"src_format") || !strcmp(opt,
"dst_format")) {
580 av_log(
NULL,
AV_LOG_ERROR,
"Directly using swscale dimensions/format options is not supported, please use the -s or -pix_fmt options\n");
593 if (!consumed && !strcmp(opt,
"sws_flags")) {
598 #if CONFIG_SWRESAMPLE
628 for (
i = 0;
i < nb_groups;
i++) {
630 if (p->
sep && !strcmp(p->
sep, opt))
672 const char *
key,
const char *
val)
678 g->opts[
g->nb_opts - 1].opt = opt;
679 g->opts[
g->nb_opts - 1].key =
key;
680 g->opts[
g->nb_opts - 1].val =
val;
689 memset(octx, 0,
sizeof(*octx));
741 while (optindex < argc) {
742 const char *opt = argv[optindex++], *
arg;
748 if (opt[0] ==
'-' && opt[1] ==
'-' && !opt[2]) {
753 if (opt[0] !=
'-' || !opt[1] || dashdash+1 == optindex) {
760 #define GET_ARG(arg) \
762 arg = argv[optindex++]; \
764 av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'.\n", opt);\
765 return AVERROR(EINVAL); \
783 arg = argv[optindex++];
797 if (argv[optindex]) {
801 "argument '%s'.\n", opt, argv[optindex]);
806 "with argument '%s'.\n", opt, argv[optindex]);
812 if (opt[0] ==
'n' && opt[1] ==
'o' &&
817 "argument 0.\n", po->
name, po->
help);
827 "command: may be ignored.\n");
861 const AVClass *pclass = &
class;
874 const struct {
const char *
name;
int level; } log_levels[] = {
894 if (*token ==
'+' || *token ==
'-') {
921 }
else if (*
arg ==
'+') {
928 if (!strcmp(log_levels[
i].
name,
arg)) {
929 level = log_levels[
i].level;
937 "Possible levels are numbers or:\n",
arg);
954 while ((
c = *(
template++))) {
956 if (!(
c = *(
template++)))
964 tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
965 tm->tm_hour, tm->tm_min, tm->tm_sec);
979 char *filename_template =
NULL;
982 int prog_loglevel, envlevel = 0;
990 tm = localtime(&now);
992 while (env && *env) {
996 "Failed to parse FFREPORT environment variable: %s\n",
1003 if (!strcmp(
key,
"file")) {
1005 filename_template =
val;
1007 }
else if (!strcmp(
key,
"level")) {
1039 filename.str, strerror(errno));
1044 "%s started on %04d-%02d-%02d at %02d:%02d:%02d\n"
1045 "Report written to \"%s\"\n"
1048 tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
1049 tm->tm_hour, tm->tm_min, tm->tm_sec,
1065 max = strtol(
arg, &tail, 10);
1078 struct rlimit rl = { lim, lim + 1 };
1079 if (setrlimit(RLIMIT_CPU, &rl))
1080 perror(
"setrlimit");
1090 const char *errbuf_ptr = errbuf;
1100 #define SHOW_VERSION 2
1101 #define SHOW_CONFIG 4
1102 #define SHOW_COPYRIGHT 8
1104 #define PRINT_LIB_INFO(libname, LIBNAME, flags, level) \
1105 if (CONFIG_##LIBNAME) { \
1106 const char *indent = flags & INDENT? " " : ""; \
1107 if (flags & SHOW_VERSION) { \
1108 unsigned int version = libname##_version(); \
1109 av_log(NULL, level, \
1110 "%slib%-11s %2d.%3d.%3d / %2d.%3d.%3d\n", \
1112 LIB##LIBNAME##_VERSION_MAJOR, \
1113 LIB##LIBNAME##_VERSION_MINOR, \
1114 LIB##LIBNAME##_VERSION_MICRO, \
1115 AV_VERSION_MAJOR(version), AV_VERSION_MINOR(version),\
1116 AV_VERSION_MICRO(version)); \
1118 if (flags & SHOW_CONFIG) { \
1119 const char *cfg = libname##_configuration(); \
1120 if (strcmp(FFMPEG_CONFIGURATION, cfg)) { \
1121 if (!warned_cfg) { \
1122 av_log(NULL, level, \
1123 "%sWARNING: library configuration mismatch\n", \
1127 av_log(NULL, level, "%s%-11s configuration: %s\n", \
1128 indent, #libname, cfg); \
1156 av_log(
NULL,
level,
"%sconfiguration: " FFMPEG_CONFIGURATION
"\n", indent);
1162 char str[] = { FFMPEG_CONFIGURATION };
1163 char *conflist, *remove_tilde, *splitconf;
1167 while ((conflist = strstr(
str,
" --")) !=
NULL) {
1173 while ((remove_tilde = strstr(
str,
"pkg-config~")) !=
NULL) {
1174 remove_tilde[
sizeof(
"pkg-config~") - 2] =
' ';
1177 splitconf = strtok(
str,
"~");
1179 while (splitconf !=
NULL) {
1181 splitconf = strtok(
NULL,
"~");
1217 "This version of %s has nonfree parts compiled in.\n"
1218 "Therefore it is not legally redistributable.\n",
1222 "%s is free software; you can redistribute it and/or modify\n"
1223 "it under the terms of the GNU General Public License as published by\n"
1224 "the Free Software Foundation; either version 3 of the License, or\n"
1225 "(at your option) any later version.\n"
1227 "%s is distributed in the hope that it will be useful,\n"
1228 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
1229 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
1230 "GNU General Public License for more details.\n"
1232 "You should have received a copy of the GNU General Public License\n"
1233 "along with %s. If not, see <http://www.gnu.org/licenses/>.\n",
1237 "%s is free software; you can redistribute it and/or modify\n"
1238 "it under the terms of the GNU General Public License as published by\n"
1239 "the Free Software Foundation; either version 2 of the License, or\n"
1240 "(at your option) any later version.\n"
1242 "%s is distributed in the hope that it will be useful,\n"
1243 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
1244 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
1245 "GNU General Public License for more details.\n"
1247 "You should have received a copy of the GNU General Public License\n"
1248 "along with %s; if not, write to the Free Software\n"
1249 "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n",
1253 "%s is free software; you can redistribute it and/or modify\n"
1254 "it under the terms of the GNU Lesser General Public License as published by\n"
1255 "the Free Software Foundation; either version 3 of the License, or\n"
1256 "(at your option) any later version.\n"
1258 "%s is distributed in the hope that it will be useful,\n"
1259 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
1260 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
1261 "GNU Lesser General Public License for more details.\n"
1263 "You should have received a copy of the GNU Lesser General Public License\n"
1264 "along with %s. If not, see <http://www.gnu.org/licenses/>.\n",
1268 "%s is free software; you can redistribute it and/or\n"
1269 "modify it under the terms of the GNU Lesser General Public\n"
1270 "License as published by the Free Software Foundation; either\n"
1271 "version 2.1 of the License, or (at your option) any later version.\n"
1273 "%s is distributed in the hope that it will be useful,\n"
1274 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
1275 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
1276 "Lesser General Public License for more details.\n"
1278 "You should have received a copy of the GNU Lesser General Public\n"
1279 "License along with %s; if not, write to the Free Software\n"
1280 "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n",
1296 void *ifmt_opaque =
NULL;
1298 void *ofmt_opaque =
NULL;
1300 const char *last_name;
1304 " D. = Demuxing supported\n"
1305 " .E = Muxing supported\n"
1306 " --\n", device_only ?
"Devices:" :
"File formats:");
1312 const char *long_name =
NULL;
1318 if (!is_dev && device_only)
1321 strcmp(ofmt->
name, last_name) > 0) {
1332 if (!is_dev && device_only)
1335 strcmp(ifmt->
name, last_name) > 0) {
1348 printf(
" %c%c %-15s %s\n",
1352 long_name ? long_name:
" ");
1377 #define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \
1378 if (codec->field) { \
1379 const type *p = codec->field; \
1381 printf(" Supported " list_name ":"); \
1382 while (*p != term) { \
1384 printf(" %s", name); \
1394 printf(
"%s %s [%s]:\n", encoder ?
"Encoder" :
"Decoder",
c->name,
1395 c->long_name ?
c->long_name :
"");
1397 printf(
" General capabilities: ");
1426 if (!
c->capabilities)
1432 printf(
" Threading capabilities: ");
1441 default:
printf(
"none");
break;
1447 printf(
" Supported hardware devices: ");
1448 for (
int i = 0;;
i++) {
1457 if (
c->supported_framerates) {
1460 printf(
" Supported framerates:");
1476 if (
c->priv_class) {
1491 default:
return '?';
1512 return (*da)->type != (*db)->type ?
FFDIFFSIGN((*da)->type, (*db)->type) :
1513 strcmp((*da)->name, (*db)->name);
1520 unsigned nb_codecs = 0,
i = 0;
1542 printf(
" (%s: ", encoder ?
"encoders" :
"decoders");
1556 " D..... = Decoding supported\n"
1557 " .E.... = Encoding supported\n"
1558 " ..V... = Video codec\n"
1559 " ..A... = Audio codec\n"
1560 " ..S... = Subtitle codec\n"
1561 " ...I.. = Intra frame-only codec\n"
1562 " ....L. = Lossy compression\n"
1563 " .....S = Lossless compression\n"
1565 for (
i = 0;
i < nb_codecs;
i++) {
1570 if (strstr(
desc->name,
"_deprecated"))
1587 if (strcmp(codec->
name,
desc->name)) {
1594 if (strcmp(codec->
name,
desc->name)) {
1614 " S..... = Subtitle\n"
1615 " .F.... = Frame-level multithreading\n"
1616 " ..S... = Slice-level multithreading\n"
1617 " ...X.. = Codec is experimental\n"
1618 " ....B. = Supports draw_horiz_band\n"
1619 " .....D = Supports direct rendering method 1\n"
1621 encoder ?
"Encoders" :
"Decoders");
1622 for (
i = 0;
i < nb_codecs;
i++) {
1636 if (strcmp(codec->
name,
desc->name))
1660 void *opaque =
NULL;
1662 printf(
"Bitstream filters:\n");
1671 void *opaque =
NULL;
1674 printf(
"Supported file protocols:\n"
1688 char descr[64], *descr_cur;
1689 void *opaque =
NULL;
1694 " T.. = Timeline support\n"
1695 " .S. = Slice threading\n"
1696 " ..C = Command support\n"
1697 " A = Audio input/output\n"
1698 " V = Video input/output\n"
1699 " N = Dynamic number and/or type of input/output\n"
1700 " | = Source or sink filter\n");
1703 for (
i = 0;
i < 2;
i++) {
1706 *(descr_cur++) =
'-';
1707 *(descr_cur++) =
'>';
1711 for (j = 0; j < nb_pads; j++) {
1712 if (descr_cur >= descr +
sizeof(descr) - 4)
1721 printf(
" %c%c%c %-17s %-10s %s\n",
1724 filter->process_command ?
'C' :
'.',
1728 printf(
"No filters available: libavfilter disabled\n");
1739 printf(
"%-32s #RRGGBB\n",
"name");
1751 printf(
"Pixel formats:\n"
1752 "I.... = Supported Input format for conversion\n"
1753 ".O... = Supported Output format for conversion\n"
1754 "..H.. = Hardware accelerated format\n"
1755 "...P. = Paletted format\n"
1756 "....B = Bitstream format\n"
1757 "FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL BIT_DEPTHS\n"
1761 # define sws_isSupportedInput(x) 0
1762 # define sws_isSupportedOutput(x) 0
1767 printf(
"%c%c%c%c%c %-16s %d %3d %d",
1789 const char *
name, *descr;
1791 printf(
"Individual channels:\n"
1792 "NAME DESCRIPTION\n");
1793 for (
i = 0;
i < 63;
i++) {
1800 printf(
"\nStandard channel layouts:\n"
1801 "NAME DECOMPOSITION\n");
1805 for (j = 1; j; j <<= 1)
1825 for (
int i = 0;
i < 32;
i++) {
1859 "but no %s for it are available. FFmpeg might need to be "
1860 "recompiled with additional external libraries.\n",
1861 name, encoder ?
"encoders" :
"decoders");
1923 printf(
" Default video codec: %s.\n",
desc->name);
1927 printf(
" Default audio codec: %s.\n",
desc->name);
1931 printf(
" Default subtitle codec: %s.\n",
desc->name);
1939 static void show_help_filter(
const char *
name)
1953 printf(
"Filter %s\n",
f->name);
1955 printf(
" %s\n",
f->description);
1958 printf(
" slice threading supported\n");
1962 for (
i = 0;
i < count;
i++) {
1967 printf(
" dynamic (depending on the options)\n");
1969 printf(
" none (source filter)\n");
1973 for (
i = 0;
i < count;
i++) {
1978 printf(
" dynamic (depending on the options)\n");
1980 printf(
" none (sink filter)\n");
1986 printf(
"This filter has support for timeline through the 'enable' option.\n");
1989 "can not to satisfy request\n");
2021 par = strchr(topic,
'=');
2027 }
else if (!strcmp(topic,
"decoder")) {
2029 }
else if (!strcmp(topic,
"encoder")) {
2031 }
else if (!strcmp(topic,
"demuxer")) {
2033 }
else if (!strcmp(topic,
"muxer")) {
2035 }
else if (!strcmp(topic,
"protocol")) {
2038 }
else if (!strcmp(topic,
"filter")) {
2039 show_help_filter(par);
2041 }
else if (!strcmp(topic,
"bsf")) {
2056 while (
c !=
'\n' &&
c != EOF)
2063 const char *preset_name,
int is_path,
2064 const char *codec_name)
2068 const char *
base[3] = { getenv(
"FFMPEG_DATADIR"),
2073 av_strlcpy(filename, preset_name, filename_size);
2074 f = fopen(filename,
"r");
2076 #if HAVE_GETMODULEHANDLE && defined(_WIN32)
2077 char datadir[MAX_PATH], *ls;
2080 if (GetModuleFileNameA(GetModuleHandleA(
NULL), datadir,
sizeof(datadir) - 1))
2082 for (ls = datadir; ls < datadir + strlen(datadir); ls++)
2083 if (*ls ==
'\\') *ls =
'/';
2085 if (ls = strrchr(datadir,
'/'))
2088 strncat(datadir,
"/ffpresets",
sizeof(datadir) - 1 - strlen(datadir));
2093 for (
i = 0;
i < 3 && !
f;
i++) {
2096 snprintf(filename, filename_size,
"%s%s/%s.ffpreset",
base[
i],
2097 i != 1 ?
"" :
"/.ffmpeg", preset_name);
2098 f = fopen(filename,
"r");
2099 if (!
f && codec_name) {
2101 "%s%s/%s-%s.ffpreset",
2102 base[
i],
i != 1 ?
"" :
"/.ffmpeg", codec_name,
2104 f = fopen(filename,
"r");
2151 char *p = strchr(t->
key,
':');
2156 case 1: *p = 0;
break;
2167 else if (t->
key[0] == prefix &&
2189 "Could not alloc memory for stream options.\n");
2192 for (
i = 0;
i <
s->nb_streams;
i++)
2200 if (new_size >= INT_MAX / elem_size) {
2204 if (*
size < new_size) {
2210 memset(
tmp + *
size*elem_size, 0, (new_size-*
size) * elem_size);
2235 theta -= 360*
floor(theta/360 + 0.9/360);
2237 if (
fabs(theta - 90*
round(theta/90)) > 2)
2239 "If you want to help, upload a sample "
2240 "of this file to https://streams.videolan.org/upload/ "
2241 "and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org)");
2259 printf(
"%s", media_type ? media_type :
"unknown");
2275 printf(
"Auto-detected sources for %s:\n", fmt->
name);
2281 print_device_list(device_list);
2296 printf(
"Auto-detected sinks for %s:\n", fmt->
name);
2302 print_device_list(device_list);
2313 char *opts_str =
NULL;
2318 if ((opts_str = strchr(*dev,
','))) {
2319 *(opts_str++) =
'\0';
2326 printf(
"\nDevice name is not provided.\n"
2327 "You can pass devicename[,opt1=val1[,opt2=val2...]] as an argument.\n\n");
2331 int show_sources(
void *optctx,
const char *opt,
const char *
arg)
2341 if ((
ret = show_sinks_sources_parse_arg(
arg, &dev, &
opts)) < 0)
2347 if (!strcmp(fmt->
name,
"lavfi"))
2351 print_device_sources(fmt,
opts);
2359 print_device_sources(fmt,
opts);
2369 int show_sinks(
void *optctx,
const char *opt,
const char *
arg)
2379 if ((
ret = show_sinks_sources_parse_arg(
arg, &dev, &
opts)) < 0)
2387 print_device_sinks(fmt,
opts);
2395 print_device_sinks(fmt,
opts);
static void error(const char *err)
void av_force_cpu_flags(int arg)
Disables cpu detection and forces the specified flags.
static void print_codecs_for_id(enum AVCodecID id, int encoder)
const OptionGroupDef * group_def
void show_help_default(const char *opt, const char *arg)
Per-fftool specific help handler.
#define AV_LOG_WARNING
Something somehow does not look correct.
#define sws_isSupportedOutput(x)
AVPixelFormat
Pixel format.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
unsigned avfilter_filter_pad_count(const AVFilter *filter, int is_output)
Get the number of elements in an AVFilter's inputs or outputs array.
#define sws_isSupportedInput(x)
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
const AVClass * avio_protocol_get_class(const char *name)
Get AVClass by names of available protocols.
#define AV_OPT_FLAG_VIDEO_PARAM
#define GET_SAMPLE_RATE_NAME(rate)
enum AVMediaType codec_type
General type of the encoded data.
#define AV_IS_INPUT_DEVICE(category)
const char * avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx)
Get the name of an AVFilterPad.
const char * long_name
Descriptive name for the codec, meant to be more human readable than name.
static FILE * report_file
int show_formats(void *optctx, const char *opt, const char *arg)
Print a listing containing all the formats supported by the program (including devices).
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer.
#define AV_CODEC_PROP_LOSSY
Codec supports lossy compression.
int opt_report(void *optctx, const char *opt, const char *arg)
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...
void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max)
int show_layouts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the standard channel layouts supported by the program.
static double cb(void *priv, double x, double y)
void av_cpu_force_count(int count)
Overrides cpu count detection and forces the specified count.
#define AV_LOG_QUIET
Print no output.
const AVClass * priv_class
AVClass for the private context.
static void init_parse_context(OptionParseContext *octx, const OptionGroupDef *groups, int nb_groups)
static void log_callback_report(void *ptr, int level, const char *fmt, va_list vl)
static enum AVSampleFormat sample_fmts[]
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
#define AV_LOG_PANIC
Something went really wrong and we will crash now.
char * device_name
device name, format depends on device
static void show_help_codec(const char *name, int encoder)
static char get_media_type_char(enum AVMediaType type)
int opt_cpucount(void *optctx, const char *opt, const char *arg)
Override the cpucount.
static struct codec_string codecs[]
int show_version(void *optctx, const char *opt, const char *arg)
Print the version of the program to stdout.
const AVClass * avformat_get_class(void)
Get the AVClass for AVFormatContext.
const char program_name[]
program name, defined by the program for show_version().
int nb_devices
number of autodetected devices
#define GET_PIX_FMT_NAME(pix_fmt)
const AVCodec * avcodec_find_encoder(enum AVCodecID id)
Find a registered encoder with a matching codec ID.
static void print_codec(const AVCodec *c)
int capabilities
Codec capabilities.
int depth
Number of bits in the component.
const AVPixFmtDescriptor * av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev)
Iterate over all pixel format descriptors known to libavutil.
AVDictionary * format_opts
const char * avio_enum_protocols(void **opaque, int output)
Iterate through names of available protocols.
#define AV_DICT_IGNORE_SUFFIX
Return first entry in a dictionary whose first part corresponds to the search key,...
#define AV_LOG_VERBOSE
Detailed information.
#define fc(width, name, range_min, range_max)
void show_help_children(const AVClass *class, int flags)
Show help for all options with given flags in class and all its children.
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
Return the number of bits per pixel used by the pixel format described by pixdesc.
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
const AVBitStreamFilter * av_bsf_iterate(void **opaque)
Iterate over all registered bitstream filters.
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
#define AV_OPT_FLAG_FILTERING_PARAM
a generic parameter which can be set by the user for filtering
const AVInputFormat * av_input_audio_device_next(const AVInputFormat *d)
Audio input devices iterator.
const AVBitStreamFilter * av_bsf_get_by_name(const char *name)
int avdevice_list_output_sinks(const AVOutputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
void exit_program(int ret)
Wraps exit with a program-specific cleanup routine.
void av_max_alloc(size_t max)
Set the maximum size that may be allocated in one block.
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.
void print_error(const char *filename, int err)
Print an error message to stderr, indicating filename and a human readable description of the error c...
A list of option groups that all have the same group type (e.g.
int av_strerror(int errnum, char *errbuf, size_t errbuf_size)
Put a description of the AVERROR code errnum in errbuf.
int show_decoders(void *optctx, const char *opt, const char *arg)
Print a listing containing all the decoders supported by the program.
#define AV_PIX_FMT_FLAG_HWACCEL
Pixel format is an HW accelerated format.
const AVFilter * av_filter_iterate(void **opaque)
Iterate over all registered filters.
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.
#define AVERROR_OPTION_NOT_FOUND
Option not found.
#define AV_BPRINT_SIZE_AUTOMATIC
An option extracted from the commandline.
static double val(void *priv, double ch)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
const AVClass * sws_get_class(void)
Get the AVClass for swsContext.
#define us(width, name, range_min, range_max, subs,...)
int av_opt_set(void *obj, const char *name, const char *val, int search_flags)
const OptionGroupDef * group_def
#define AVFILTER_FLAG_DYNAMIC_INPUTS
The number of the filter inputs is not determined just by AVFilter.inputs.
A filter pad used for either input or output.
#define FFDIFFSIGN(x, y)
Comparator.
static void show_help_bsf(const char *name)
AVDeviceInfo ** devices
list of autodetected devices
int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec)
Check if the given stream matches a stream specifier.
trying all byte sequences megabyte in length and selecting the best looking sequence will yield cases to try But first
#define AV_LOG_TRACE
Extremely verbose debugging, useful for libav* development.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static void print_buildconf(int flags, int level)
#define AV_CODEC_CAP_EXPERIMENTAL
Codec is experimental and is thus avoided in favor of non experimental encoders.
#define FF_ARRAY_ELEMS(a)
AVDictionary * codec_opts
int avdevice_list_input_sources(const AVInputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
List devices.
static void expand_filename_template(AVBPrint *bp, const char *template, struct tm *tm)
static void check_options(const OptionDef *po)
#define media_type_string
AVDictionaryEntry * av_dict_get(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
Get a dictionary entry with matching key.
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.
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
This struct describes the properties of a single codec described by an AVCodecID.
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.
#define AV_OPT_FLAG_ENCODING_PARAM
a generic parameter which can be set by the user for muxing or encoding
void * av_realloc_array(void *ptr, size_t nmemb, size_t size)
static __device__ float floor(float a)
#define AV_CODEC_CAP_OTHER_THREADS
Codec supports multithreading through a method other than slice- or frame-level multithreading.
av_cold struct SwrContext * swr_alloc(void)
Allocate SwrContext.
#define av_assert0(cond)
assert() equivalent, that is always enabled.
static enum AVPixelFormat pix_fmts[]
const char * av_get_channel_name(uint64_t channel)
Get the name of a given channel.
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
static void dump_argument(const char *a)
static int report_file_level
static enum AVPixelFormat pix_fmt
const char * av_hwdevice_get_type_name(enum AVHWDeviceType type)
Get the string name of an AVHWDeviceType.
void parse_options(void *optctx, int argc, char **argv, const OptionDef *options, void(*parse_arg_function)(void *, const char *))
#define AV_OPT_FLAG_BSF_PARAM
a generic parameter which can be set by the user for bit stream filtering
The libswresample context.
@ AVMEDIA_TYPE_DATA
Opaque data information usually continuous.
enum AVMediaType * media_types
array indicating what media types(s), if any, a device can provide.
#define AV_OPT_FLAG_AUDIO_PARAM
static int compare_codec_desc(const void *a, const void *b)
const AVOption * av_opt_find(void *obj, const char *name, const char *unit, int opt_flags, int search_flags)
Look for an option in an object.
static void finish_group(OptionParseContext *octx, int group_idx, const char *arg)
int nb_media_types
length of media_types array, 0 if device cannot provide any media types
#define AV_IS_OUTPUT_DEVICE(category)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are in without and describe what they for example set the foo of the bar offset is the offset of the field in your context
#define AV_CODEC_CAP_FRAME_THREADS
Codec supports frame-level multithreading.
int av_log_get_level(void)
Get the current log level.
int show_buildconf(void *optctx, const char *opt, const char *arg)
Print the build configuration of the program to stdout.
#define AV_CODEC_PROP_INTRA_ONLY
Codec uses only intra compression.
const AVFilter * avfilter_get_by_name(const char *name)
Get a filter definition matching the given name.
void init_dynload(void)
Initialize dynamic library loading.
AVDictionary * format_opts
AVCodecParameters * codecpar
Codec parameters associated with this stream.
#define LIBAVUTIL_VERSION_INT
Describe the class of an AVClass context structure.
const AVClass * avcodec_get_class(void)
Get the AVClass for AVCodecContext.
static __device__ float fabs(float a)
const AVCodec * avcodec_find_decoder_by_name(const char *name)
Find a registered decoder with the specified name.
static void prepare_app_arguments(int *argc_ptr, char ***argv_ptr)
uint8_t nb_components
The number of components each pixel has, (1-4)
const AVClass * swr_get_class(void)
Get the AVClass for SwrContext.
Rational number (pair of numerator and denominator).
static const AVCodec * next_codec_for_id(enum AVCodecID id, void **iter, int encoder)
static int show_formats_devices(void *optctx, const char *opt, const char *arg, int device_only, int muxdemuxers)
#define GET_CODEC_NAME(id)
const char * av_default_item_name(void *ptr)
Return the context name.
void av_log_set_flags(int arg)
struct SwsContext * sws_alloc_context(void)
Allocate an empty SwsContext.
int show_muxers(void *optctx, const char *opt, const char *arg)
Print a listing containing all the muxers supported by the program (including devices).
const AVClass * priv_class
A class for the private data, used to declare bitstream filter private AVOptions.
#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE
Audio encoder supports receiving a different number of samples in each call.
int av_parse_time(int64_t *timeval, const char *timestr, int duration)
Parse timestr and return in *time a corresponding number of microseconds.
static int write_option(void *optctx, const OptionDef *po, const char *opt, const char *arg)
int av_get_standard_channel_layout(unsigned index, uint64_t *layout, const char **name)
Get the value and name of a standard channel layout.
uint64_t flags
Combination of AV_PIX_FMT_FLAG_...
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
#define AV_OPT_SEARCH_FAKE_OBJ
The obj passed to av_opt_find() is fake – only a double pointer to AVClass instead of a required poin...
static int av_bprint_is_complete(const AVBPrint *buf)
Test if the print buffer is complete (not truncated).
AVCodecID
Identify the syntax and semantics of the bitstream.
const AVCodec * avcodec_find_decoder(enum AVCodecID id)
Find a registered decoder with a matching codec ID.
#define AVFILTER_FLAG_DYNAMIC_OUTPUTS
The number of the filter outputs is not determined just by AVFilter.outputs.
#define AV_CODEC_CAP_CHANNEL_CONF
Codec should fill in channel configuration and samplerate instead of container.
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.
int av_codec_is_decoder(const AVCodec *codec)
AVDictionary * codec_opts
const OptionDef options[]
static void show_help_demuxer(const char *name)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
@ AV_SAMPLE_FMT_NB
Number of sample formats. DO NOT USE if linking dynamically.
int show_help(void *optctx, const char *opt, const char *arg)
Generic -h handler common to all fftools.
void av_log_set_callback(void(*callback)(void *, int, const char *, va_list))
Set the logging callback.
int avformat_match_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec)
Check if the stream st contained in s is matched by the stream specifier spec.
AVClassCategory category
Category used for visualization (like color) This is only set if the category is equal for all object...
#define av_err2str(errnum)
Convenience macro, the return value should be used only directly in function arguments but never stan...
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.
#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name)
const AVOutputFormat * av_output_video_device_next(const AVOutputFormat *d)
Video output devices iterator.
void uninit_opts(void)
Uninitialize the cmdutils option system, in particular free the *_opts contexts and their contents.
static void print_codecs(int encoder)
av_cold void swr_free(SwrContext **ss)
Free the given SwrContext and set the pointer to NULL.
#define AV_PIX_FMT_FLAG_BITSTREAM
All values of a component are bit-wise packed end to end.
Structure describes basic parameters of the device.
AVDictionary ** setup_find_stream_info_opts(AVFormatContext *s, AVDictionary *codec_opts)
Setup AVCodecContext options for avformat_find_stream_info().
#define GET_SAMPLE_FMT_NAME(sample_fmt)
const AVInputFormat * av_demuxer_iterate(void **opaque)
Iterate over all registered demuxers.
printf("static const uint8_t my_array[100] = {\n")
int show_protocols(void *optctx, const char *opt, const char *arg)
Print a listing containing all the protocols supported by the program.
int av_log_get_flags(void)
void avdevice_free_list_devices(AVDeviceInfoList **device_list)
Convenient function to free result of avdevice_list_devices().
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.
#define AV_OPT_SEARCH_CHILDREN
Search in possible children of the given object first.
int show_dispositions(void *optctx, const char *opt, const char *arg)
Print a listing containing all supported stream dispositions.
static void encode(AVCodecContext *ctx, AVFrame *frame, AVPacket *pkt, FILE *output)
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
#define AV_CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc)
void av_dict_free(AVDictionary **pm)
Free all the memory allocated for an AVDictionary struct and all keys and values.
int show_devices(void *optctx, const char *opt, const char *arg)
Print a listing containing all the devices supported by the program.
int av_strstart(const char *str, const char *pfx, const char **ptr)
Return non-zero if pfx is a prefix of str.
#define va_copy(dst, src)
char * device_description
human friendly name
int show_pix_fmts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the pixel formats supported by the program.
#define AV_LOG_INFO
Standard information.
int show_sample_fmts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the sample formats supported by the program.
const AVCodecDescriptor * avcodec_descriptor_next(const AVCodecDescriptor *prev)
Iterate over all codec descriptors known to libavcodec.
void show_banner(int argc, char **argv, const OptionDef *options)
Print the program banner to stderr.
int av_codec_is_encoder(const AVCodec *codec)
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 layout
static void(* program_exit)(int ret)
void register_exit(void(*cb)(int ret))
Register a program-specific cleanup routine.
#define GET_CH_LAYOUT_DESC(ch_layout)
#define AV_CODEC_PROP_LOSSLESS
Codec supports lossless compression.
void av_log_set_level(int level)
Set the log level.
#define i(width, name, range_min, range_max)
static void print_all_libs_info(int flags, int level)
static av_always_inline av_const double round(double x)
AVSampleFormat
Audio sample formats.
AVDictionary * filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, AVFormatContext *s, AVStream *st, const AVCodec *codec)
Filter out options for given codec.
static av_const int av_toupper(int c)
Locale-independent conversion of ASCII characters to uppercase.
@ AVMEDIA_TYPE_ATTACHMENT
Opaque data information usually sparse.
#define AV_OPT_FLAG_DECODING_PARAM
a generic parameter which can be set by the user for demuxing or decoding
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs)
const char * name
Name of the codec implementation.
int opt_timelimit(void *optctx, const char *opt, const char *arg)
Limit the execution time.
void * av_calloc(size_t nmemb, size_t size)
int opt_max_alloc(void *optctx, const char *opt, const char *arg)
const AVCodec * av_codec_iterate(void **opaque)
Iterate over all registered codecs.
int parse_optgroup(void *optctx, OptionGroup *g)
Parse an options group and write results into optctx.
void parse_loglevel(int argc, char **argv, const OptionDef *options)
Find the '-loglevel' option in the command line args and apply it.
static int array[MAX_W *MAX_W]
#define AV_LOG_FATAL
Something went wrong and recovery is not possible.
int read_yesno(void)
Return a positive value if a line read from standard input starts with [yY], otherwise return 0.
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
double av_strtod(const char *numstr, char **tail)
Parse the string in numstr and return its value as a double.
size_t av_strlcat(char *dst, const char *src, size_t size)
Append the string src to the string dst, but to a total length of no more than size - 1 bytes,...
int av_opt_eval_int(void *obj, const AVOption *o, const char *val, int *int_out)
void uninit_parse_context(OptionParseContext *octx)
Free all allocated memory in an OptionParseContext.
void log_callback_help(void *ptr, int level, const char *fmt, va_list vl)
Trivial log callback.
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.
void av_bprintf(AVBPrint *buf, const char *fmt,...)
const char * av_get_channel_description(uint64_t channel)
Get the description of a given channel.
#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...
static void add_opt(OptionParseContext *octx, const OptionDef *opt, const char *key, const char *val)
int show_codecs(void *optctx, const char *opt, const char *arg)
Print a listing containing all the codecs supported by the program.
static int init_report(const char *env)
enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx)
Get the type of an AVFilterPad.
int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem)
Add an element to a dynamic array.
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.
const AVOutputFormat * av_muxer_iterate(void **opaque)
Iterate over all registered muxers.
int parse_option(void *optctx, const char *opt, const char *arg, const OptionDef *options)
Parse one given option.
int default_device
index of default device or -1 if no default
const AVClass * av_opt_child_class_iterate(const AVClass *parent, void **iter)
Iterate over potential AVOptions-enabled children of parent.
int opt_cpuflags(void *optctx, const char *opt, const char *arg)
Override the cpuflags.
void sws_freeContext(struct SwsContext *swsContext)
Free the swscaler context swsContext.
int av_match_name(const char *name, const char *names)
Match instances of a name in a comma-separated list of names.
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.
static int swscale(SwsContext *c, const uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[], int dstSliceY, int dstSliceH)
AVComponentDescriptor comp[4]
Parameters that describe how pixels are packed.
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
const AVInputFormat * av_find_input_format(const char *short_name)
Find AVInputFormat based on the short name of the input format.
#define GROW_ARRAY(array, nb_elems)
const AVCodecHWConfig * avcodec_get_hw_config(const AVCodec *codec, int index)
Retrieve supported hardware configurations for a codec.
#define AV_CODEC_CAP_PARAM_CHANGE
Codec supports changed parameters at any point.
static void print_program_info(int flags, int level)
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
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.
char * av_strdup(const char *s)
Duplicate a string.
void av_log_default_callback(void *ptr, int level, const char *fmt, va_list vl)
Default logging callback.
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 AVOutputFormat * av_output_audio_device_next(const AVOutputFormat *d)
Audio output devices iterator.
#define AV_CODEC_CAP_SUBFRAMES
Codec can output multiple frames per AVPacket Normally demuxers return one frame at a time,...
#define AV_OPT_FLAG_SUBTITLE_PARAM
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.
static enum AVCodecID codec_ids[]
#define AV_CODEC_CAP_HYBRID
Codec is potentially backed by a hardware implementation, but not necessarily.
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.
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
int show_filters(void *optctx, const char *opt, const char *arg)
Print a listing containing all the filters 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 opt_loglevel(void *optctx, const char *opt, const char *arg)
Set the libav* libraries log level.
static void show_help_protocol(const char *name)
const char * sep
Option to be used as group separator.
static const uint16_t channel_layouts[7]
#define AVFILTER_FLAG_SUPPORT_TIMELINE
Handy mask to test whether the filter supports or no the timeline feature (internally or generically)...
int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags)
Set the given entry in *pm, overwriting an existing entry.
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 * grow_array(void *array, int elem_size, int *size, int new_size)
Realloc array to hold new_size elements of elem_size.
#define flags(name, subs,...)
static const SheerTable rgb[2]
#define AV_CODEC_CAP_DRAW_HORIZ_BAND
Decoder can use draw_horiz_band callback.
size_t av_strlcpy(char *dst, const char *src, size_t size)
Copy the string src to dst, but no more than size - 1 bytes, and null-terminate dst.
#define AV_CODEC_CAP_AVOID_PROBING
Decoder is not a preferred choice for probing.
static const OptionDef * find_option(const OptionDef *po, const char *name)
const AVCodecDescriptor * avcodec_descriptor_get(enum AVCodecID id)
const AVInputFormat * av_input_video_device_next(const AVInputFormat *d)
Video input devices iterator.
double get_rotation(int32_t *displaymatrix)
void show_help_options(const OptionDef *options, const char *msg, int req_flags, int rej_flags, int alt_flags)
Print help for all options matching specified flags.
int show_bsfs(void *optctx, const char *opt, const char *arg)
Print a listing containing all the bit stream filters supported by the program.
int show_license(void *optctx, const char *opt, const char *arg)
Print the license of the program to stdout.
#define PRINT_LIB_INFO(libname, LIBNAME, flags, level)
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.
int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags)
Show the obj options.
static void show_help_muxer(const char *name)
#define AV_PIX_FMT_FLAG_PAL
Pixel format has a palette in data[1], values are indexes in this palette.
#define AV_LOG_PRINT_LEVEL
Include the log severity in messages originating from codecs.
static int is_device(const AVClass *avclass)
void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
Append char c n times to a print buffer.
int show_demuxers(void *optctx, const char *opt, const char *arg)
Print a listing containing all the demuxer supported by the program (including devices).
static int match_group_separator(const OptionGroupDef *groups, int nb_groups, const char *opt)
int(* func_arg)(void *, const char *, const char *)
static const AVOption * opt_find(void *obj, const char *name, const char *unit, int opt_flags, int search_flags)
static void * av_x_if_null(const void *p, const void *x)
Return x default pointer in case p is NULL.
double av_display_rotation_get(const int32_t matrix[9])
Extract the rotation component of the transformation matrix.
const AVCodec * avcodec_find_encoder_by_name(const char *name)
Find a registered encoder with the specified name.
const int program_birth_year
program birth year, defined by the program for show_banner()