55 #include "libavutil/ffversion.h"
61 #if HAVE_SYS_RESOURCE_H
63 #include <sys/resource.h>
101 vfprintf(stdout, fmt, vl);
108 static int print_prefix = 1;
145 double min,
double max)
151 error =
"Expected number for %s but found: %s\n";
152 else if (d < min || d > max)
153 error =
"The value for %s was %s which is not within %f - %f\n";
154 else if (type ==
OPT_INT64 && (int64_t)d != d)
155 error =
"Expected int64 for %s but found %s\n";
156 else if (type ==
OPT_INT && (
int)d != d)
157 error =
"Expected int for %s but found %s\n";
171 is_duration ?
"duration" :
"date", context, timestr);
178 int rej_flags,
int alt_flags)
184 for (po = options; po->
name; po++) {
187 if (((po->
flags & req_flags) != req_flags) ||
188 (alt_flags && !(po->
flags & alt_flags)) ||
189 (po->
flags & rej_flags))
201 printf(
"-%-17s %s\n", buf, po->
help);
220 const char *p = strchr(name,
':');
221 int len = p ? p - name : strlen(name);
224 if (!strncmp(name, po->
name, len) && strlen(po->
name) == len)
234 #if HAVE_COMMANDLINETOARGVW && defined(_WIN32)
235 #include <shellapi.h>
237 static char** win32_argv_utf8 =
NULL;
238 static int win32_argc = 0;
251 int i, buffsize = 0,
offset = 0;
253 if (win32_argv_utf8) {
254 *argc_ptr = win32_argc;
255 *argv_ptr = win32_argv_utf8;
260 argv_w = CommandLineToArgvW(GetCommandLineW(), &win32_argc);
261 if (win32_argc <= 0 || !argv_w)
265 for (i = 0; i < win32_argc; i++)
266 buffsize += WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1,
269 win32_argv_utf8 =
av_mallocz(
sizeof(
char *) * (win32_argc + 1) + buffsize);
270 argstr_flat = (
char *)win32_argv_utf8 +
sizeof(
char *) * (win32_argc + 1);
271 if (!win32_argv_utf8) {
276 for (i = 0; i < win32_argc; i++) {
277 win32_argv_utf8[i] = &argstr_flat[
offset];
278 offset += WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1,
282 win32_argv_utf8[i] =
NULL;
285 *argc_ptr = win32_argc;
286 *argv_ptr = win32_argv_utf8;
306 char *p = strchr(opt,
':');
309 dstcount = (
int *)(so + 1);
310 *so =
grow_array(*so,
sizeof(**so), dstcount, *dstcount + 1);
314 (*so)[*dstcount - 1].specifier = str;
315 dst = &(*so)[*dstcount - 1].u;
336 int ret = po->
u.
func_arg(optctx, opt, arg);
339 "Failed to set value '%s' for option '%s': %s\n",
357 if (!po->
name && opt[0] ==
'n' && opt[1] ==
'o') {
384 void (*parse_arg_function)(
void *,
const char*))
387 int optindex, handleoptions = 1, ret;
394 while (optindex < argc) {
395 opt = argv[optindex++];
397 if (handleoptions && opt[0] ==
'-' && opt[1] !=
'\0') {
398 if (opt[1] ==
'-' && opt[2] ==
'\0') {
404 if ((ret =
parse_option(optctx, opt, argv[optindex], options)) < 0)
408 if (parse_arg_function)
409 parse_arg_function(optctx, opt);
421 for (i = 0; i < g->
nb_opts; i++) {
427 "%s %s -- you are trying to apply an input option to an "
428 "output file or vice versa. Move this option before the "
429 "file it belongs to.\n", o->
key, o->
opt->
help,
453 for (i = 1; i < argc; i++) {
454 const char *cur_opt = argv[i];
456 if (*cur_opt++ !=
'-')
460 if (!po->
name && cur_opt[0] ==
'n' && cur_opt[1] ==
'o')
463 if ((!po->
name && !strcmp(cur_opt, optname)) ||
464 (po->
name && !strcmp(optname, po->
name)))
475 const unsigned char *p;
478 if (!((*p >=
'+' && *p <=
':') || (*p >=
'@' && *p <=
'Z') ||
479 *p ==
'_' || (*p >=
'a' && *p <=
'z')))
486 for (p = a; *p; p++) {
487 if (*p ==
'\\' || *p ==
'"' || *p ==
'$' || *p ==
'`')
489 else if (*p < ' ' || *p >
'~')
515 if (idx && argv[idx + 1])
518 if ((env = getenv(
"FFREPORT")) || idx) {
523 for (i = 0; i < argc; i++) {
536 int opt_flags,
int search_flags)
544 #define FLAGS (o->type == AV_OPT_TYPE_FLAGS && (arg[0]=='-' || arg[0]=='+')) ? AV_DICT_APPEND : 0
549 char opt_stripped[128];
552 #if CONFIG_AVRESAMPLE
558 #if CONFIG_SWRESAMPLE
562 if (!strcmp(opt,
"debug") || !strcmp(opt,
"fdebug"))
565 if (!(p = strchr(opt,
':')))
566 p = opt + strlen(opt);
567 av_strlcpy(opt_stripped, opt,
FFMIN(
sizeof(opt_stripped), p - opt + 1));
571 ((opt[0] ==
'v' || opt[0] ==
'a' || opt[0] ==
's') &&
589 if (!strcmp(opt,
"srcw") || !strcmp(opt,
"srch") ||
590 !strcmp(opt,
"dstw") || !strcmp(opt,
"dsth") ||
591 !strcmp(opt,
"src_format") || !strcmp(opt,
"dst_format")) {
592 av_log(
NULL,
AV_LOG_ERROR,
"Directly using swscale dimensions/format options is not supported, please use the -s or -pix_fmt options\n");
605 if (!consumed && !strcmp(opt,
"sws_flags")) {
610 #if CONFIG_SWRESAMPLE
624 #if CONFIG_AVRESAMPLE
647 for (i = 0; i < nb_groups; i++) {
649 if (p->
sep && !strcmp(p->
sep, opt))
682 resample_opts =
NULL;
694 const char *
key,
const char *
val)
711 memset(octx, 0,
sizeof(*octx));
766 while (optindex < argc) {
767 const char *opt = argv[optindex++], *
arg;
773 if (opt[0] ==
'-' && opt[1] ==
'-' && !opt[2]) {
778 if (opt[0] !=
'-' || !opt[1] || dashdash+1 == optindex) {
785 #define GET_ARG(arg) \
787 arg = argv[optindex++]; \
789 av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'.\n", opt);\
790 return AVERROR(EINVAL); \
799 groups[ret].
name, arg);
808 arg = argv[optindex++];
817 "argument '%s'.\n", po->
name, po->
help, arg);
822 if (argv[optindex]) {
826 "argument '%s'.\n", opt, argv[optindex]);
831 "with argument '%s'.\n", opt, argv[optindex]);
837 if (opt[0] ==
'n' && opt[1] ==
'o' &&
842 "argument 0.\n", po->
name, po->
help);
873 const struct {
const char *
name;
int level; } log_levels[] = {
893 if (*token ==
'+' || *token ==
'-') {
901 if (!strncmp(token,
"repeat", 6)) {
908 }
else if (!strncmp(token,
"level", 5)) {
922 }
else if (*arg ==
'+') {
929 if (!strcmp(log_levels[i].
name, arg)) {
930 level = log_levels[i].level;
935 level = strtol(arg, &tail, 10);
938 "Possible levels are numbers or:\n", arg);
955 while ((c = *(
template++))) {
957 if (!(c = *(
template++)))
965 tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
966 tm->tm_hour, tm->tm_min, tm->tm_sec);
980 char *filename_template =
NULL;
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")) {
1034 filename.str, strerror(errno));
1039 "%s started on %04d-%02d-%02d at %02d:%02d:%02d\n"
1040 "Report written to \"%s\"\n",
1042 tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
1043 tm->tm_hour, tm->tm_min, tm->tm_sec,
1059 max = strtol(arg, &tail, 10);
1072 struct rlimit rl = { lim, lim + 1 };
1073 if (setrlimit(RLIMIT_CPU, &rl))
1074 perror(
"setrlimit");
1084 const char *errbuf_ptr = errbuf;
1094 #define SHOW_VERSION 2
1095 #define SHOW_CONFIG 4
1096 #define SHOW_COPYRIGHT 8
1098 #define PRINT_LIB_INFO(libname, LIBNAME, flags, level) \
1099 if (CONFIG_##LIBNAME) { \
1100 const char *indent = flags & INDENT? " " : ""; \
1101 if (flags & SHOW_VERSION) { \
1102 unsigned int version = libname##_version(); \
1103 av_log(NULL, level, \
1104 "%slib%-11s %2d.%3d.%3d / %2d.%3d.%3d\n", \
1106 LIB##LIBNAME##_VERSION_MAJOR, \
1107 LIB##LIBNAME##_VERSION_MINOR, \
1108 LIB##LIBNAME##_VERSION_MICRO, \
1109 AV_VERSION_MAJOR(version), AV_VERSION_MINOR(version),\
1110 AV_VERSION_MICRO(version)); \
1112 if (flags & SHOW_CONFIG) { \
1113 const char *cfg = libname##_configuration(); \
1114 if (strcmp(FFMPEG_CONFIGURATION, cfg)) { \
1115 if (!warned_cfg) { \
1116 av_log(NULL, level, \
1117 "%sWARNING: library configuration mismatch\n", \
1121 av_log(NULL, level, "%s%-11s configuration: %s\n", \
1122 indent, #libname, cfg); \
1142 const char *indent = flags &
INDENT?
" " :
"";
1146 av_log(
NULL, level,
" Copyright (c) %d-%d the FFmpeg developers",
1149 av_log(
NULL, level,
"%sbuilt with %s\n", indent, CC_IDENT);
1151 av_log(
NULL, level,
"%sconfiguration: " FFMPEG_CONFIGURATION
"\n", indent);
1156 const char *indent = flags &
INDENT ?
" " :
"";
1157 char str[] = { FFMPEG_CONFIGURATION };
1158 char *conflist, *remove_tilde, *splitconf;
1162 while ((conflist = strstr(str,
" --")) !=
NULL) {
1163 strncpy(conflist,
"~--", 3);
1168 while ((remove_tilde = strstr(str,
"pkg-config~")) !=
NULL) {
1169 strncpy(remove_tilde,
"pkg-config ", 11);
1172 splitconf = strtok(str,
"~");
1173 av_log(
NULL, level,
"\n%sconfiguration:\n", indent);
1174 while (splitconf !=
NULL) {
1175 av_log(
NULL, level,
"%s%s%s\n", indent, indent, splitconf);
1176 splitconf = strtok(
NULL,
"~");
1212 "This version of %s has nonfree parts compiled in.\n"
1213 "Therefore it is not legally redistributable.\n",
1217 "%s is free software; you can redistribute it and/or modify\n"
1218 "it under the terms of the GNU General Public License as published by\n"
1219 "the Free Software Foundation; either version 3 of the License, or\n"
1220 "(at your option) any later version.\n"
1222 "%s is distributed in the hope that it will be useful,\n"
1223 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
1224 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
1225 "GNU General Public License for more details.\n"
1227 "You should have received a copy of the GNU General Public License\n"
1228 "along with %s. If not, see <http://www.gnu.org/licenses/>.\n",
1232 "%s is free software; you can redistribute it and/or modify\n"
1233 "it under the terms of the GNU General Public License as published by\n"
1234 "the Free Software Foundation; either version 2 of the License, or\n"
1235 "(at your option) any later version.\n"
1237 "%s is distributed in the hope that it will be useful,\n"
1238 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
1239 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
1240 "GNU General Public License for more details.\n"
1242 "You should have received a copy of the GNU General Public License\n"
1243 "along with %s; if not, write to the Free Software\n"
1244 "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n",
1248 "%s is free software; you can redistribute it and/or modify\n"
1249 "it under the terms of the GNU Lesser General Public License as published by\n"
1250 "the Free Software Foundation; either version 3 of the License, or\n"
1251 "(at your option) any later version.\n"
1253 "%s is distributed in the hope that it will be useful,\n"
1254 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
1255 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
1256 "GNU Lesser General Public License for more details.\n"
1258 "You should have received a copy of the GNU Lesser General Public License\n"
1259 "along with %s. If not, see <http://www.gnu.org/licenses/>.\n",
1263 "%s is free software; you can redistribute it and/or\n"
1264 "modify it under the terms of the GNU Lesser General Public\n"
1265 "License as published by the Free Software Foundation; either\n"
1266 "version 2.1 of the License, or (at your option) any later version.\n"
1268 "%s is distributed in the hope that it will be useful,\n"
1269 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
1270 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
1271 "Lesser General Public License for more details.\n"
1273 "You should have received a copy of the GNU Lesser General Public\n"
1274 "License along with %s; if not, write to the Free Software\n"
1275 "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n",
1291 void *ifmt_opaque =
NULL;
1293 void *ofmt_opaque =
NULL;
1295 const char *last_name;
1299 " D. = Demuxing supported\n"
1300 " .E = Muxing supported\n"
1301 " --\n", device_only ?
"Devices:" :
"File formats:");
1307 const char *long_name =
NULL;
1313 if (!is_dev && device_only)
1315 if ((!name || strcmp(ofmt->
name, name) < 0) &&
1316 strcmp(ofmt->
name, last_name) > 0) {
1327 if (!is_dev && device_only)
1329 if ((!name || strcmp(ifmt->
name, name) < 0) &&
1330 strcmp(ifmt->
name, last_name) > 0) {
1335 if (name && strcmp(ifmt->
name, name) == 0)
1343 printf(
" %s%s %-15s %s\n",
1347 long_name ? long_name:
" ");
1372 #define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \
1373 if (codec->field) { \
1374 const type *p = codec->field; \
1376 printf(" Supported " list_name ":"); \
1377 while (*p != term) { \
1379 printf(" %s", name); \
1389 printf(
"%s %s [%s]:\n", encoder ?
"Encoder" :
"Decoder", c->
name,
1392 printf(
" General capabilities: ");
1394 printf(
"horizband ");
1404 printf(
"subframes ");
1410 printf(
"paramchange ");
1412 printf(
"variable ");
1423 printf(
" Threading capabilities: ");
1432 default: printf(
"none");
break;
1440 printf(
" Supported framerates:");
1442 printf(
" %d/%d", fps->
num, fps->
den);
1471 default:
return '?';
1479 if (prev->
id ==
id &&
1491 return (*da)->type != (*db)->type ?
FFDIFFSIGN((*da)->type, (*db)->type) :
1492 strcmp((*da)->name, (*db)->name);
1499 unsigned nb_codecs = 0, i = 0;
1503 if (!(codecs =
av_calloc(nb_codecs,
sizeof(*codecs)))) {
1520 printf(
" (%s: ", encoder ?
"encoders" :
"decoders");
1523 printf(
"%s ", codec->
name);
1534 " D..... = Decoding supported\n"
1535 " .E.... = Encoding supported\n"
1536 " ..V... = Video codec\n"
1537 " ..A... = Audio codec\n"
1538 " ..S... = Subtitle codec\n"
1539 " ...I.. = Intra frame-only codec\n"
1540 " ....L. = Lossy compression\n"
1541 " .....S = Lossless compression\n"
1543 for (i = 0; i < nb_codecs; i++) {
1547 if (strstr(desc->
name,
"_deprecated"))
1564 if (strcmp(codec->
name, desc->
name)) {
1571 if (strcmp(codec->
name, desc->
name)) {
1591 " S..... = Subtitle\n"
1592 " .F.... = Frame-level multithreading\n"
1593 " ..S... = Slice-level multithreading\n"
1594 " ...X.. = Codec is experimental\n"
1595 " ....B. = Supports draw_horiz_band\n"
1596 " .....D = Supports direct rendering method 1\n"
1598 encoder ?
"Encoders" :
"Decoders");
1599 for (i = 0; i < nb_codecs; i++) {
1612 if (strcmp(codec->
name, desc->
name))
1613 printf(
" (codec %s)", desc->
name);
1636 void *opaque =
NULL;
1638 printf(
"Bitstream filters:\n");
1640 printf(
"%s\n", bsf->
name);
1647 void *opaque =
NULL;
1650 printf(
"Supported file protocols:\n"
1653 printf(
" %s\n", name);
1654 printf(
"Output:\n");
1656 printf(
" %s\n", name);
1664 char descr[64], *descr_cur;
1665 void *opaque =
NULL;
1670 " T.. = Timeline support\n"
1671 " .S. = Slice threading\n"
1672 " ..C = Command support\n"
1673 " A = Audio input/output\n"
1674 " V = Video input/output\n"
1675 " N = Dynamic number and/or type of input/output\n"
1676 " | = Source or sink filter\n");
1679 for (i = 0; i < 2; i++) {
1681 *(descr_cur++) =
'-';
1682 *(descr_cur++) =
'>';
1686 if (descr_cur >= descr +
sizeof(descr) - 4)
1695 printf(
" %c%c%c %-17s %-10s %s\n",
1702 printf(
"No filters available: libavfilter disabled\n");
1713 printf(
"%-32s #RRGGBB\n",
"name");
1716 printf(
"%-32s #%02x%02x%02x\n", name, rgb[0], rgb[1], rgb[2]);
1725 printf(
"Pixel formats:\n"
1726 "I.... = Supported Input format for conversion\n"
1727 ".O... = Supported Output format for conversion\n"
1728 "..H.. = Hardware accelerated format\n"
1729 "...P. = Paletted format\n"
1730 "....B = Bitstream format\n"
1731 "FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL\n"
1735 # define sws_isSupportedInput(x) 0
1736 # define sws_isSupportedOutput(x) 0
1741 printf(
"%c%c%c%c%c %-16s %d %2d\n",
1758 const char *
name, *descr;
1760 printf(
"Individual channels:\n"
1761 "NAME DESCRIPTION\n");
1762 for (i = 0; i < 63; i++) {
1767 printf(
"%-14s %s\n", name, descr);
1769 printf(
"\nStandard channel layouts:\n"
1770 "NAME DECOMPOSITION\n");
1773 printf(
"%-14s ", name);
1774 for (j = 1; j; j <<= 1)
1817 "but no %s for it are available. FFmpeg might need to be "
1818 "recompiled with additional external libraries.\n",
1819 name, encoder ?
"encoders" :
"decoders");
1839 printf(
" Common extensions: %s.\n", fmt->
extensions);
1858 printf(
" Common extensions: %s.\n", fmt->
extensions);
1860 printf(
" Mime type: %s.\n", fmt->
mime_type);
1863 printf(
" Default video codec: %s.\n", desc->
name);
1867 printf(
" Default audio codec: %s.\n", desc->
name);
1871 printf(
" Default subtitle codec: %s.\n", desc->
name);
1879 static void show_help_filter(
const char *
name)
1893 printf(
"Filter %s\n", f->
name);
1898 printf(
" slice threading supported\n");
1900 printf(
" Inputs:\n");
1902 for (i = 0; i <
count; i++) {
1907 printf(
" dynamic (depending on the options)\n");
1909 printf(
" none (source filter)\n");
1911 printf(
" Outputs:\n");
1913 for (i = 0; i <
count; i++) {
1918 printf(
" dynamic (depending on the options)\n");
1920 printf(
" none (sink filter)\n");
1926 printf(
"This filter has support for timeline through the 'enable' option.\n");
1929 "can not to satisfy request\n");
1943 printf(
"Bit stream filter %s\n", bsf->
name);
1958 par = strchr(topic,
'=');
1964 }
else if (!strcmp(topic,
"decoder")) {
1966 }
else if (!strcmp(topic,
"encoder")) {
1968 }
else if (!strcmp(topic,
"demuxer")) {
1970 }
else if (!strcmp(topic,
"muxer")) {
1973 }
else if (!strcmp(topic,
"filter")) {
1974 show_help_filter(par);
1976 }
else if (!strcmp(topic,
"bsf")) {
1991 while (c !=
'\n' && c != EOF)
1998 const char *preset_name,
int is_path,
1999 const char *codec_name)
2003 const char *base[3] = { getenv(
"FFMPEG_DATADIR"),
2008 av_strlcpy(filename, preset_name, filename_size);
2009 f = fopen(filename,
"r");
2012 char datadir[MAX_PATH], *ls;
2015 if (GetModuleFileNameA(GetModuleHandleA(
NULL), datadir,
sizeof(datadir) - 1))
2017 for (ls = datadir; ls < datadir + strlen(datadir); ls++)
2018 if (*ls ==
'\\') *ls =
'/';
2020 if (ls = strrchr(datadir,
'/'))
2023 strncat(datadir,
"/ffpresets",
sizeof(datadir) - 1 - strlen(datadir));
2028 for (i = 0; i < 3 && !f; i++) {
2031 snprintf(filename, filename_size,
"%s%s/%s.ffpreset", base[i],
2032 i != 1 ?
"" :
"/.ffmpeg", preset_name);
2033 f = fopen(filename,
"r");
2034 if (!f && codec_name) {
2036 "%s%s/%s-%s.ffpreset",
2037 base[i], i != 1 ?
"" :
"/.ffmpeg", codec_name,
2039 f = fopen(filename,
"r");
2085 char *p = strchr(t->
key,
':');
2090 case 1: *p = 0;
break;
2101 else if (t->
key[0] == prefix &&
2123 "Could not alloc memory for stream options.\n");
2134 if (new_size >= INT_MAX / elem_size) {
2138 if (*size < new_size) {
2144 memset(tmp + *size*elem_size, 0, (new_size-*size) * elem_size);
2159 theta -= 360*floor(theta/360 + 0.9/360);
2161 if (fabs(theta - 90*
round(theta/90)) > 2)
2163 "If you want to help, upload a sample "
2164 "of this file to ftp://upload.ffmpeg.org/incoming/ "
2165 "and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org)");
2179 printf(
"Auto-detected sources for %s:\n", fmt->
name);
2182 printf(
"Cannot list sources. Not implemented.\n");
2187 printf(
"Cannot list sources.\n");
2191 for (i = 0; i < device_list->
nb_devices; i++) {
2192 printf(
"%s %s [%s]\n", device_list->
default_device == i ?
"*" :
" ",
2209 printf(
"Auto-detected sinks for %s:\n", fmt->
name);
2212 printf(
"Cannot list sinks. Not implemented.\n");
2217 printf(
"Cannot list sinks.\n");
2221 for (i = 0; i < device_list->
nb_devices; i++) {
2222 printf(
"%s %s [%s]\n", device_list->
default_device == i ?
"*" :
" ",
2231 static int show_sinks_sources_parse_arg(
const char *
arg,
char **dev,
AVDictionary **opts)
2235 char *opts_str =
NULL;
2240 if ((opts_str = strchr(*dev,
','))) {
2241 *(opts_str++) =
'\0';
2248 printf(
"\nDevice name is not provided.\n"
2249 "You can pass devicename[,opt1=val1[,opt2=val2...]] as an argument.\n\n");
2253 int show_sources(
void *optctx,
const char *opt,
const char *arg)
2263 if ((ret = show_sinks_sources_parse_arg(arg, &dev, &opts)) < 0)
2269 if (!strcmp(fmt->
name,
"lavfi"))
2273 print_device_sources(fmt, opts);
2281 print_device_sources(fmt, opts);
2291 int show_sinks(
void *optctx,
const char *opt,
const char *arg)
2301 if ((ret = show_sinks_sources_parse_arg(arg, &dev, &opts)) < 0)
2309 print_device_sinks(fmt, opts);
2317 print_device_sinks(fmt, opts);
#define AV_PIX_FMT_FLAG_PAL
Pixel format has a palette in data[1], values are indexes in this palette.
void init_dynload(void)
Initialize dynamic library loading.
int parse_optgroup(void *optctx, OptionGroup *g)
Parse an options group and write results into optctx.
#define AV_CODEC_PROP_INTRA_ONLY
Codec uses only intra compression.
const char const char void * val
AVDictionary * resample_opts
const AVClass * priv_class
A class for the private data, used to declare bitstream filter private AVOptions. ...
AVOutputFormat * av_output_audio_device_next(AVOutputFormat *d)
Audio output devices iterator.
Number of sample formats. DO NOT USE if linking dynamically.
static enum AVPixelFormat pix_fmt
void av_bprintf(AVBPrint *buf, const char *fmt,...)
int show_decoders(void *optctx, const char *opt, const char *arg)
Print a listing containing all the decoders supported by the program.
AVCodec * avcodec_find_encoder(enum AVCodecID id)
Find a registered encoder with a matching codec ID.
const char * name
< group name
static void finish_group(OptionParseContext *octx, int group_idx, const char *arg)
void av_max_alloc(size_t max)
Set the maximum size that may be allocated in one block.
int show_license(void *optctx, const char *opt, const char *arg)
Print the license of the program to stdout.
#define AV_CODEC_PROP_LOSSY
Codec supports lossy compression.
#define AV_OPT_FLAG_SUBTITLE_PARAM
double get_rotation(AVStream *st)
char * device_description
human friendly name
int(* func_arg)(void *, const char *, const char *)
#define AV_LOG_WARNING
Something somehow does not look correct.
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...
Main libavfilter public API header.
AVCodec * av_codec_next(const AVCodec *c)
If c is NULL, returns the first registered codec, if c is non-NULL, returns the next registered codec...
int av_parse_time(int64_t *timeval, const char *timestr, int duration)
Parse timestr and return in *time a corresponding number of microseconds.
void av_log_set_level(int level)
Set the log level.
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.
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 AVClass * av_opt_child_class_next(const AVClass *parent, const AVClass *prev)
Iterate over potential AVOptions-enabled children of parent.
int opt_loglevel(void *optctx, const char *opt, const char *arg)
Set the libav* libraries log level.
int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec)
Check if the given stream matches a stream specifier.
#define AVFILTER_FLAG_DYNAMIC_INPUTS
The number of the filter inputs is not determined just by AVFilter.inputs.
enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx)
Get the type of an AVFilterPad.
char * device_name
device name, format depends on device
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
#define AV_OPT_FLAG_AUDIO_PARAM
const AVBitStreamFilter * av_bsf_get_by_name(const char *name)
void show_banner(int argc, char **argv, const OptionDef *options)
Print the program banner to stderr.
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 show_demuxers(void *optctx, const char *opt, const char *arg)
Print a listing containing all the demuxer supported by the program (including devices).
const char * sep
Option to be used as group separator.
#define GET_CH_LAYOUT_DESC(ch_layout)
static const AVOption * opt_find(void *obj, const char *name, const char *unit, int opt_flags, int search_flags)
#define AV_CODEC_CAP_EXPERIMENTAL
Codec is experimental and is thus avoided in favor of non experimental encoders.
#define AV_CODEC_CAP_CHANNEL_CONF
Codec should fill in channel configuration and samplerate instead of container.
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
int show_devices(void *optctx, const char *opt, const char *arg)
Print a listing containing all the devices supported by the program.
int show_formats(void *optctx, const char *opt, const char *arg)
Print a listing containing all the formats supported by the program (including devices).
const AVClass * sws_get_class(void)
Get the AVClass for swsContext.
#define AV_CODEC_CAP_AUTO_THREADS
Codec supports avctx->thread_count == 0 (auto).
static void check_options(const OptionDef *po)
int show_pix_fmts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the pixel formats supported by the program.
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
AVDictionary * filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, AVFormatContext *s, AVStream *st, AVCodec *codec)
Filter out options for given codec.
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer.
Macro definitions for various function/variable attributes.
static struct codec_string codecs[]
const AVBitStreamFilter * av_bsf_iterate(void **opaque)
Iterate over all registered bitstream filters.
void * av_calloc(size_t nmemb, size_t size)
Non-inlined equivalent of av_mallocz_array().
void uninit_parse_context(OptionParseContext *octx)
Free all allocated memory in an OptionParseContext.
int av_codec_is_decoder(const AVCodec *codec)
int av_get_standard_channel_layout(unsigned index, uint64_t *layout, const char **name)
Get the value and name of a standard channel layout.
const AVCodecDescriptor * avcodec_descriptor_next(const AVCodecDescriptor *prev)
Iterate over all codec descriptors known to libavcodec.
const AVClass * avcodec_get_class(void)
Get the AVClass for AVCodecContext.
int av_codec_is_encoder(const AVCodec *codec)
static int show_formats_devices(void *optctx, const char *opt, const char *arg, int device_only, int muxdemuxers)
#define AV_LOG_QUIET
Print no output.
#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_assert0(cond)
assert() equivalent, that is always enabled.
int show_codecs(void *optctx, const char *opt, const char *arg)
Print a listing containing all the codecs supported by the program.
static double cb(void *priv, double x, double y)
static void filter(int16_t *output, ptrdiff_t out_stride, int16_t *low, ptrdiff_t low_stride, int16_t *high, ptrdiff_t high_stride, int len, int clip)
static void dump_argument(const char *a)
void register_exit(void(*cb)(int ret))
Register a program-specific cleanup routine.
void log_callback_help(void *ptr, int level, const char *fmt, va_list vl)
Trivial log callback.
av_cold struct SwrContext * swr_alloc(void)
Allocate SwrContext.
Opaque data information usually continuous.
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...
void avdevice_free_list_devices(AVDeviceInfoList **device_list)
Convenient function to free result of avdevice_list_devices().
#define AV_LOG_PANIC
Something went really wrong and we will crash now.
#define va_copy(dst, src)
#define AV_LOG_TRACE
Extremely verbose debugging, useful for libav* development.
static const OptionGroupDef groups[]
static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs)
AVS_FilterInfo AVS_Value child
#define AV_CODEC_PROP_LOSSLESS
Codec supports lossless compression.
int opt_max_alloc(void *optctx, const char *opt, const char *arg)
static av_cold int end(AVCodecContext *avctx)
#define media_type_string
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
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.
static void init_parse_context(OptionParseContext *octx, const OptionGroupDef *groups, int nb_groups)
#define AV_IS_INPUT_DEVICE(category)
int show_muxers(void *optctx, const char *opt, const char *arg)
Print a listing containing all the muxers supported by the program (including devices).
int show_buildconf(void *optctx, const char *opt, const char *arg)
Print the build configuration of the program to stdout.
uint8_t * av_stream_get_side_data(const AVStream *stream, enum AVPacketSideDataType type, int *size)
Get side information from stream.
void init_opts(void)
Initialize the cmdutils option system, in particular allocate the *_opts contexts.
AVStream ** streams
A list of all streams in the file.
int flags
A combination of AVFILTER_FLAG_*.
AVOutputFormat * av_output_video_device_next(AVOutputFormat *d)
Video output devices iterator.
AVDictionaryEntry * av_dict_get(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
Get a dictionary entry with matching key.
void parse_options(void *optctx, int argc, char **argv, const OptionDef *options, void(*parse_arg_function)(void *, const char *))
static void print_all_libs_info(int flags, int level)
#define AV_LOG_VERBOSE
Detailed information.
const AVClass * avformat_get_class(void)
Get the AVClass for AVFormatContext.
void parse_loglevel(int argc, char **argv, const OptionDef *options)
Find the '-loglevel' option in the command line args and apply it.
#define AVFILTER_FLAG_DYNAMIC_OUTPUTS
The number of the filter outputs is not determined just by AVFilter.outputs.
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(* process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags)
Make the filter instance process a command.
void * av_realloc_array(void *ptr, size_t nmemb, size_t size)
static void print_codecs(int encoder)
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.
#define AV_OPT_FLAG_ENCODING_PARAM
a generic parameter which can be set by the user for muxing or encoding
struct AVOutputFormat * oformat
The output container format.
AVDictionary ** setup_find_stream_info_opts(AVFormatContext *s, AVDictionary *codec_opts)
Setup AVCodecContext options for avformat_find_stream_info().
const AVOutputFormat * av_muxer_iterate(void **opaque)
Iterate over all registered muxers.
AVCodec * avcodec_find_encoder_by_name(const char *name)
Find a registered encoder with the specified name.
AVDictionary * format_opts
int show_help(void *optctx, const char *opt, const char *arg)
Generic -h handler common to all fftools.
A filter pad used for either input or output.
static void * av_x_if_null(const void *p, const void *x)
Return x default pointer in case p is NULL.
Main libavdevice API header.
int flags
Option flags that must be set on each option that is applied to this group.
libswresample public header
AVCodecID
Identify the syntax and semantics of the bitstream.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
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.
#define AV_OPT_FLAG_FILTERING_PARAM
a generic parameter which can be set by the user for filtering
const char * avio_enum_protocols(void **opaque, int output)
Iterate through names of available protocols.
int show_sample_fmts(void *optctx, const char *opt, const char *arg)
Print a listing containing all the sample formats supported by the program.
#define sws_isSupportedOutput(x)
The libswresample context.
void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max)
int capabilities
Codec capabilities.
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
void av_dict_free(AVDictionary **pm)
Free all the memory allocated for an AVDictionary struct and all keys and values. ...
enum AVMediaType codec_type
General type of the encoded data.
static void show_help_muxer(const char *name)
int parse_option(void *optctx, const char *opt, const char *arg, const OptionDef *options)
Parse one given option.
#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...
#define AV_PIX_FMT_FLAG_HWACCEL
Pixel format is an HW accelerated format.
simple assert() macros that are a bit more flexible than ISO C assert().
#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name)
int av_log_get_level(void)
Get the current log level.
const char * name
Name of the codec implementation.
int av_match_name(const char *name, const char *names)
Match instances of a name in a comma-separated list of names.
static av_always_inline av_const double round(double x)
AVClassCategory category
Category used for visualization (like color) This is only set if the category is equal for all object...
Libavutil version macros.
const char * long_name
A more descriptive name for this codec.
AVDeviceInfo ** devices
list of autodetected devices
static const uint8_t offset[127][2]
int show_filters(void *optctx, const char *opt, const char *arg)
Print a listing containing all the filters supported by the program.
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_FRAME_THREADS
Codec supports frame-level multithreading.
void av_log_default_callback(void *ptr, int level, const char *fmt, va_list vl)
Default logging callback.
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 AV_CODEC_CAP_VARIABLE_FRAME_SIZE
Audio encoder supports receiving a different number of samples in each call.
const AVCodecDescriptor * avcodec_descriptor_get(enum AVCodecID id)
static const OptionDef * find_option(const OptionDef *po, const char *name)
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.
int opt_report(const char *opt)
int props
Codec properties, a combination of AV_CODEC_PROP_* flags.
const AVFilter * avfilter_get_by_name(const char *name)
Get a filter definition matching the given name.
const int program_birth_year
program birth year, defined by the program for show_banner()
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.
#define FFDIFFSIGN(x, y)
Comparator.
#define AV_IS_OUTPUT_DEVICE(category)
uint64_t flags
Combination of AV_PIX_FMT_FLAG_...
unsigned int nb_streams
Number of elements in AVFormatContext.streams.
int avdevice_list_input_sources(AVInputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
List devices.
enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc)
AVInputFormat * av_find_input_format(const char *short_name)
Find AVInputFormat based on the short name of the input format.
static const uint16_t fc[]
uint8_t nb_components
The number of components each pixel has, (1-4)
#define AV_CODEC_CAP_DRAW_HORIZ_BAND
Decoder can use draw_horiz_band callback.
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 void log_callback_report(void *ptr, int level, const char *fmt, va_list vl)
#define AV_CODEC_CAP_SMALL_LAST_FRAME
Codec can be fed a final frame with a smaller size.
void av_log_set_callback(void(*callback)(void *, int, const char *, va_list))
Set the logging callback.
#define AV_OPT_SEARCH_CHILDREN
Search in possible children of the given object first.
int show_bsfs(void *optctx, const char *opt, const char *arg)
Print a listing containing all the bit stream filters supported by the program.
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
static void print_codecs_for_id(enum AVCodecID id, int encoder)
static int init_report(const char *env)
#define GET_PIX_FMT_NAME(pix_fmt)
#define av_err2str(errnum)
Convenience macro, the return value should be used only directly in function arguments but never stan...
int avdevice_list_output_sinks(AVOutputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
const OptionGroupDef * group_def
A list of option groups that all have the same group type (e.g.
void sws_freeContext(struct SwsContext *swsContext)
Free the swscaler context swsContext.
void show_help_default(const char *opt, const char *arg)
Per-fftool specific help handler.
#define AV_OPT_FLAG_BSF_PARAM
a generic parameter which can be set by the user for bit stream filtering
AVDictionary * resample_opts
static int av_bprint_is_complete(const AVBPrint *buf)
Test if the print buffer is complete (not truncated).
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...
#define sws_isSupportedInput(x)
Opaque data information usually sparse.
const AVClass * swr_get_class(void)
Get the AVClass for SwrContext.
int opt_timelimit(void *optctx, const char *opt, const char *arg)
Limit the execution time.
const AVInputFormat * av_demuxer_iterate(void **opaque)
Iterate over all registered demuxers.
const AVCodecDescriptor * avcodec_descriptor_get_by_name(const char *name)
static void error(const char *err)
#define GET_SAMPLE_FMT_NAME(sample_fmt)
#define FF_ARRAY_ELEMS(a)
void exit_program(int ret)
Wraps exit with a program-specific cleanup routine.
const AVFilterPad * inputs
List of inputs, terminated by a zeroed element.
attribute_deprecated const AVClass * avresample_get_class(void)
static char get_media_type_char(enum AVMediaType type)
#define AV_CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
double av_strtod(const char *numstr, char **tail)
Parse the string in numstr and return its value as a double.
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 GET_SAMPLE_RATE_NAME(rate)
const char * long_name
Descriptive name for the codec, meant to be more human readable than name.
const AVClass * priv_class
A class for the private data, used to declare filter private AVOptions.
#define AV_LOG_INFO
Standard information.
static const AVCodec * next_codec_for_id(enum AVCodecID id, const AVCodec *prev, int encoder)
AVInputFormat * av_input_video_device_next(AVInputFormat *d)
Video input devices iterator.
char * av_strdup(const char *s)
Duplicate a string.
const AVRational * supported_framerates
array of supported framerates, or NULL if any, array is terminated by {0,0}
AVSampleFormat
Audio sample formats.
int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags)
Show the obj options.
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
#define AV_OPT_FLAG_VIDEO_PARAM
AVCodec * avcodec_find_decoder(enum AVCodecID id)
Find a registered decoder with a matching codec ID.
int av_log_get_flags(void)
av_cold void swr_free(SwrContext **ss)
Free the given SwrContext and set the pointer to NULL.
static void encode(AVCodecContext *ctx, AVFrame *frame, AVPacket *pkt, FILE *output)
int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags)
Set the given entry in *pm, overwriting an existing entry.
Replacements for frequently missing libm functions.
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.
const OptionGroupDef * group_def
static const uint16_t channel_layouts[7]
#define PRINT_LIB_INFO(libname, LIBNAME, flags, level)
Describe the class of an AVClass context structure.
AVInputFormat * av_input_audio_device_next(AVInputFormat *d)
Audio input devices iterator.
static av_const int av_toupper(int c)
Locale-independent conversion of ASCII characters to uppercase.
#define AV_CODEC_CAP_SUBFRAMES
Codec can output multiple frames per AVPacket Normally demuxers return one frame at a time...
Rational number (pair of numerator and denominator).
static void expand_filename_template(AVBPrint *bp, const char *template, struct tm *tm)
const AVFilter * av_filter_iterate(void **opaque)
Iterate over all registered filters.
#define AV_OPT_FLAG_DECODING_PARAM
a generic parameter which can be set by the user for demuxing or decoding
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.
const char * name
Filter name.
const char * name
Name of the codec described by this descriptor.
const char * avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx)
Get the name of an AVFilterPad.
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
static void print_codec(const AVCodec *c)
int default_device
index of default device or -1 if no default
#define AV_PIX_FMT_FLAG_BITSTREAM
All values of a component are bit-wise packed end to end.
struct SwsContext * sws_alloc_context(void)
Allocate an empty SwsContext.
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...
static enum AVPixelFormat pix_fmts[]
This struct describes the properties of a single codec described by an AVCodecID. ...
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.
#define AV_CODEC_CAP_TRUNCATED
AVCodec * avcodec_find_decoder_by_name(const char *name)
Find a registered decoder with the specified name.
const AVClass * priv_class
AVClass for the private context.
static int match_group_separator(const OptionGroupDef *groups, int nb_groups, const char *opt)
static int swscale(SwsContext *c, const uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[])
int av_strerror(int errnum, char *errbuf, size_t errbuf_size)
Put a description of the AVERROR code errnum in errbuf.
An option extracted from the commandline.
static FILE * report_file
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...
const OptionDef options[]
AVDictionary * codec_opts
AVDictionary * format_opts
static void show_help_bsf(const char *name)
#define AV_CODEC_CAP_PARAM_CHANGE
Codec supports changed parameters at any point.
#define AVFILTER_FLAG_SUPPORT_TIMELINE
Handy mask to test whether the filter supports or no the timeline feature (internally or generically)...
static enum AVCodecID codec_ids[]
static void(* program_exit)(int ret)
static void print_buildconf(int flags, int level)
#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...
void uninit_opts(void)
Uninitialize the cmdutils option system, in particular free the *_opts contexts and their contents...
#define GROW_ARRAY(array, nb_elems)
const char * description
A description of the filter.
const char * av_get_channel_name(uint64_t channel)
Get the name of a given channel.
#define AVERROR_OPTION_NOT_FOUND
Option not found.
static int report_file_level
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.
static void prepare_app_arguments(int *argc_ptr, char ***argv_ptr)
static int write_option(void *optctx, const OptionDef *po, const char *opt, const char *arg)
void av_log_set_flags(int arg)
void show_help_children(const AVClass *class, int flags)
Show help for all options with given flags in class and all its children.
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 avfilter_pad_count(const AVFilterPad *pads)
Get the number of elements in a NULL-terminated array of AVFilterPads (e.g.
int opt_cpuflags(void *optctx, const char *opt, const char *arg)
Override the cpuflags.
static enum AVSampleFormat sample_fmts[]
double av_display_rotation_get(const int32_t matrix[9])
Extract the rotation component of the transformation matrix.
AVDictionary * codec_opts
#define AV_LOG_PRINT_LEVEL
Include the log severity in messages originating from codecs.
int read_yesno(void)
Return a positive value if a line read from standard input starts with [yY], otherwise return 0...
const AVFilterPad * outputs
List of outputs, terminated by a zeroed element.
#define AV_DICT_IGNORE_SUFFIX
Return first entry in a dictionary whose first part corresponds to the search key, ignoring the suffix of the found key string.
static void show_help_demuxer(const char *name)
const char * av_get_channel_description(uint64_t channel)
Get the description of a given channel.
static int array[MAX_W *MAX_W]
#define AV_LOG_FATAL
Something went wrong and recovery is not possible.
AVCodecParameters * codecpar
Codec parameters associated with this stream.
int show_version(void *optctx, const char *opt, const char *arg)
Print the version of the program to stdout.
void av_force_cpu_flags(int arg)
Disables cpu detection and forces the specified flags.
#define GET_CODEC_NAME(id)
int nb_devices
number of autodetected devices
static void print_program_info(int flags, int level)
AVPixelFormat
Pixel format.
int av_opt_set(void *obj, const char *name, const char *val, int search_flags)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
const char program_name[]
program name, defined by the program for show_version().
static void show_help_codec(const char *name, int encoder)
static int compare_codec_desc(const void *a, const void *b)
int show_encoders(void *optctx, const char *opt, const char *arg)
Print a listing containing all the encoders supported by the program.
simple arithmetic expression evaluator
const AVPixFmtDescriptor * av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev)
Iterate over all pixel format descriptors known to libavutil.
void * av_mallocz_array(size_t nmemb, size_t size)
static void add_opt(OptionParseContext *octx, const OptionDef *opt, const char *key, const char *val)
void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
Append char c n times to a print buffer.