44 #define DEFAULT_PASS_LOGFILENAME_PREFIX "ffmpeg2pass"
46 #define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)\
49 for (i = 0; i < o->nb_ ## name; i++) {\
50 char *spec = o->name[i].specifier;\
51 if ((ret = check_stream_specifier(fmtctx, st, spec)) > 0)\
52 outvar = o->name[i].u.type;\
58 #define MATCH_PER_TYPE_OPT(name, type, outvar, fmtctx, mediatype)\
61 for (i = 0; i < o->nb_ ## name; i++) {\
62 char *spec = o->name[i].specifier;\
63 if (!strcmp(spec, mediatype))\
64 outvar = o->name[i].u.type;\
78 #if CONFIG_VIDEOTOOLBOX
145 int i, *
count = (
int*)(so + 1);
146 for (i = 0; i < *
count; i++) {
168 memset(o, 0,
sizeof(*o));
184 printf(
"Hardware acceleration methods:\n");
186 printf(
"%s\n", hwaccels[i].
name);
199 char *p = strchr(e->
key,
':');
223 const AVClass *pclass = &
class;
231 "If you are looking for an option to preserve the quality (which is not "
232 "what -%s was for), use -qscale 0 or an equivalent quality factor option.\n",
273 static int opt_map(
void *optctx,
const char *opt,
const char *
arg)
277 int i, negative = 0, file_idx;
278 int sync_file_idx = -1, sync_stream_idx = 0;
292 if (sync = strchr(map,
',')) {
294 sync_file_idx = strtol(sync + 1, &sync, 0);
309 "match any streams.\n", arg);
317 const char *
c = map + 1;
326 if (allow_unused = strchr(map,
'?'))
328 file_idx = strtol(map, &p, 0);
340 *p ==
':' ? p + 1 : p) > 0)
346 *p ==
':' ? p + 1 : p) <= 0)
354 if (sync_file_idx >= 0) {
369 "To ignore this, add a trailing '?' to the map.\n", arg);
406 n = sscanf(arg,
"%d.%d.%d:%d.%d",
410 if (n != 3 && n != 5) {
412 "[file.stream.channel|-1][:syncfile:syncstream]\n");
453 static int opt_vaapi_device(
void *optctx,
const char *opt,
const char *
arg)
478 if (*(++arg) && *arg !=
':') {
482 *stream_spec = *arg ==
':' ? arg + 1 :
"";
487 *index = strtol(++arg,
NULL, 0);
502 char type_in, type_out;
503 const char *istream_spec =
NULL, *ostream_spec =
NULL;
504 int idx_in = 0, idx_out = 0;
510 if (type_out ==
'g' || !*outspec)
512 if (type_out ==
's' || !*outspec)
514 if (type_out ==
'c' || !*outspec)
519 if (type_in ==
'g' || type_out ==
'g')
521 if (type_in ==
's' || type_out ==
's')
523 if (type_in ==
'c' || type_out ==
'c')
530 #define METADATA_CHECK_INDEX(index, nb_elems, desc)\
531 if ((index) < 0 || (index) >= (nb_elems)) {\
532 av_log(NULL, AV_LOG_FATAL, "Invalid %s index %d while processing metadata maps.\n",\
537 #define SET_DICT(type, meta, context, index)\
540 meta = &context->metadata;\
543 METADATA_CHECK_INDEX(index, context->nb_chapters, "chapter")\
544 meta = &context->chapters[index]->metadata;\
547 METADATA_CHECK_INDEX(index, context->nb_programs, "program")\
548 meta = &context->programs[index]->metadata;\
552 default: av_assert0(0);\
555 SET_DICT(type_in, meta_in, ic, idx_in);
556 SET_DICT(type_out, meta_out, oc, idx_out);
559 if (type_in ==
's') {
573 if (type_out ==
's') {
592 struct tm time = *gmtime((time_t*)&recording_timestamp);
593 if (!strftime(buf,
sizeof(buf),
"creation_time=%Y-%m-%dT%H:%M:%S%z", &time))
598 "tag instead.\n", opt);
605 const char *codec_string = encoder ?
"encoder" :
"decoder";
617 codec_string, codec->
name, desc->
name);
624 if (codec->
type != type) {
633 char *codec_name =
NULL;
654 char *framerate =
NULL, *hwaccel =
NULL, *hwaccel_device =
NULL;
655 char *hwaccel_output_format =
NULL;
656 char *codec_tag =
NULL;
658 char *discard_str =
NULL;
684 uint32_t
tag = strtol(codec_tag, &next, 0);
753 if (!strcmp(hwaccel,
"none"))
755 else if (!strcmp(hwaccel,
"auto"))
759 for (i = 0; hwaccels[i].
name; i++) {
760 if (!strcmp(hwaccels[i].
name, hwaccel)) {
770 for (i = 0; hwaccels[i].
name; i++)
779 if (hwaccel_device) {
786 hwaccel_output_format, ic, st);
787 if (hwaccel_output_format) {
791 "format: %s", hwaccel_output_format);
813 char *canvas_size =
NULL;
843 fprintf(stderr,
"Error, both -y and -n supplied. Exiting.\n");
849 if (proto_name && !strcmp(proto_name,
"file") &&
avio_check(filename, 0) == 0) {
851 fprintf(stderr,
"File '%s' already exists. Overwrite ? [y/N] ", filename);
854 signal(SIGINT, SIG_DFL);
915 char * data_codec_name =
NULL;
916 int scan_all_pmts_set = 0;
925 if (!strcmp(filename,
"-"))
929 strcmp(filename,
"/dev/stdin");
944 if (file_iformat && file_iformat->
priv_class &&
953 if (file_iformat && file_iformat->
priv_class &&
980 if (video_codec_name)
982 if (audio_codec_name)
984 if (subtitle_codec_name)
994 scan_all_pmts_set = 1;
1004 if (scan_all_pmts_set)
1041 int64_t seek_timestamp = timestamp;
1044 int dts_heuristic = 0;
1050 if (dts_heuristic) {
1106 if (!option || foption)
1112 "input file #%d (%s) is not a decoding option.\n", e->
key,
1119 "input file #%d (%s) has not been used for any stream. The most "
1120 "likely reason is either wrong type (e.g. a video option with "
1121 "no video streams) or that it is a private option of some decoder "
1122 "which was not actually used for any stream.\n", e->
key,
1138 for (i = 0; i < orig_nb_streams; i++)
1158 while ((c =
avio_r8(s)) && c !=
'\n')
1169 char filename[1000];
1170 const char *base[3] = { getenv(
"AVCONV_DATADIR"),
1179 snprintf(filename,
sizeof(filename),
"%s%s/%s-%s.avpreset", base[i],
1180 i != 1 ?
"" :
"/.avconv", codec_name, preset_name);
1184 snprintf(filename,
sizeof(filename),
"%s%s/%s.avpreset", base[i],
1185 i != 1 ?
"" :
"/.avconv", preset_name);
1195 char *codec_name =
NULL;
1205 "output stream #%d:%d. Default encoder for format %s (codec %s) is "
1206 "probably disabled. Please choose an encoder manually.\n",
1211 }
else if (!strcmp(codec_name,
"copy"))
1232 const char *bsfs =
NULL;
1233 char *next, *codec_tag =
NULL;
1285 if (!buf[0] || buf[0] ==
'#') {
1289 if (!(arg = strchr(buf,
'='))) {
1301 "Preset %s specified for stream %d:%d, but could not be opened.\n",
1323 while (bsfs && *bsfs) {
1325 char *bsf, *bsf_options_str, *bsf_name;
1330 bsf_name =
av_strtok(bsf,
"=", &bsf_options_str);
1356 const char * shorthand[2] = {
NULL};
1359 shorthand[0] = opt->
name;
1382 uint32_t
tag = strtol(codec_tag, &next, 0);
1414 if (source_index >= 0) {
1431 const char *p = str;
1463 while ((ret =
avio_read(pb, buf,
sizeof(buf))) > 0)
1499 "%s '%s' was defined for %s output stream %d:%d but codec copy was selected.\n"
1500 "Filtering and streamcopy cannot be used together.\n",
1501 ost->
filters ?
"Filtergraph" :
"Filtergraph script",
1513 char *frame_rate =
NULL, *frame_aspect_ratio =
NULL;
1528 if (frame_aspect_ratio) {
1531 q.
num <= 0 || q.
den <= 0) {
1542 const char *p =
NULL;
1544 char *frame_pix_fmt =
NULL;
1545 char *intra_matrix =
NULL, *inter_matrix =
NULL;
1546 char *chroma_intra_matrix =
NULL;
1558 if (frame_pix_fmt && *frame_pix_fmt ==
'+') {
1560 if (!*++frame_pix_fmt)
1561 frame_pix_fmt =
NULL;
1580 if (chroma_intra_matrix) {
1599 for (i = 0; p; i++) {
1601 int e = sscanf(p,
"%d,%d,%d", &start, &end, &q);
1650 char logfilename[1024];
1653 snprintf(logfilename,
sizeof(logfilename),
"%s-%d.log",
1657 if (!strcmp(ost->
enc->name,
"libx264")) {
1661 char *logbuffer =
read_file(logfilename);
1674 "Cannot write log file '%s' for pass-1 encoding: %s\n",
1675 logfilename, strerror(errno));
1723 char *sample_fmt =
NULL;
1849 p = strchr(idx_str,
':');
1852 "Invalid value '%s' for option '%s', required syntax is 'index:value'\n",
1884 if (in_ch->
end < ts_off)
1886 if (rt != INT64_MAX && in_ch->
start > rt + ts_off)
1893 out_ch->id = in_ch->
id;
1895 out_ch->start =
FFMAX(0, in_ch->
start - ts_off);
1896 out_ch->end =
FFMIN(rt, in_ch->
end - ts_off);
1920 const char *enc_config;
1961 switch (ofilter->
type) {
1977 "which is fed from a complex filtergraph. Filtering and streamcopy "
1983 const char *opt = ost->
filters ?
"-vf/-af/-filter" :
"-filter_script";
1985 "%s '%s' was specified through the %s option "
1986 "for output stream %d:%d, which is fed from a complex filtergraph.\n"
1987 "%s and -filter_complex cannot be used together for the same stream.\n",
1988 ost->
filters ?
"Filtergraph" :
"Filtergraph script",
2060 if (!strcmp(filename,
"-"))
2085 switch (ofilter->
type) {
2095 if (!strcmp(file_oformat->
name,
"ffm") &&
2139 int area = 0, idx = -1;
2161 int best_score = 0, idx = -1;
2167 score > best_score) {
2186 int input_props = 0, output_props = 0;
2189 if (input_descriptor)
2191 if (output_descriptor)
2193 if (subtitle_codec_name ||
2194 input_props & output_props ||
2196 input_descriptor && output_descriptor &&
2197 (!input_descriptor->
props ||
2198 !output_descriptor->
props)) {
2238 "in any defined filter graph, or was already used elsewhere.\n", map->
linklabel);
2269 "Cannot map stream #%d:%d - unsupported type.\n",
2273 "If you want unsupported types ignored instead "
2274 "of failing, please use the -ignore_unknown option\n"
2275 "If you want them copied, please use -copy_unknown\n");
2321 #if FF_API_LAVF_AVCTX
2357 if (!option || foption)
2363 "output file #%d (%s) is not an encoding option.\n", e->
key,
2370 if (!strcmp(e->
key,
"gop_timecode"))
2374 "output file #%d (%s) has not been used for any stream. The most "
2375 "likely reason is either wrong type (e.g. a video option with "
2376 "no video streams) or that it is a private option of some encoder "
2377 "which was not actually used for any stream.\n", e->
key,
2395 "Error initializing a simple filtergraph between streams "
2414 "No input streams but output needs an input stream\n");
2443 av_log(
NULL,
AV_LOG_FATAL,
"Invalid input file index %d while processing metadata maps\n", in_file_index);
2447 in_file_index >= 0 ?
2486 if (!output_streams[i]->stream_copy) {
2501 const char *to_dealloc = p2;
2516 if (!strcmp(key,
"program_num"))
2517 progid = strtol(p2,
NULL, 0);
2527 const char *to_dealloc = p2;
2536 "No '=' character in program string %s.\n",
2544 if (!strcmp(key,
"title")) {
2546 }
else if (!strcmp(key,
"program_num")) {
2547 }
else if (!strcmp(key,
"st")) {
2548 int st_num = strtol(p2,
NULL, 0);
2563 const char *stream_spec;
2564 int index = 0, j, ret = 0;
2617 static int opt_target(
void *optctx,
const char *opt,
const char *arg)
2621 static const char *
const frame_rates[] = {
"25",
"30000/1001",
"24000/1001" };
2623 if (!strncmp(arg,
"pal-", 4)) {
2626 }
else if (!strncmp(arg,
"ntsc-", 5)) {
2629 }
else if (!strncmp(arg,
"film-", 5)) {
2645 }
else if ((fr == 29970) || (fr == 23976)) {
2665 if (!strcmp(arg,
"vcd")) {
2692 }
else if (!strcmp(arg,
"svcd")) {
2714 }
else if (!strcmp(arg,
"dvd")) {
2736 }
else if (!strncmp(arg,
"dv", 2)) {
2741 parse_option(o,
"pix_fmt", !strncmp(arg,
"dv50", 4) ?
"yuv422p" :
2742 norm ==
PAL ?
"yuv420p" :
"yuv411p",
options);
2766 static int opt_vstats(
void *optctx,
const char *opt,
const char *arg)
2769 time_t today2 = time(
NULL);
2770 struct tm *today = localtime(&today2);
2777 snprintf(filename,
sizeof(filename),
"vstats_%02d%02d%02d.log", today->tm_hour, today->tm_min,
2820 static int opt_preset(
void *optctx,
const char *opt,
const char *arg)
2824 char filename[1000],
line[1000], tmp_line[1000];
2825 const char *codec_name =
NULL;
2831 if (!(f =
get_preset_file(filename,
sizeof(filename), arg, *opt ==
'f', codec_name))) {
2832 if(!strncmp(arg,
"libx264-lossless", strlen(
"libx264-lossless"))){
2839 while (fgets(line,
sizeof(line), f)) {
2840 char *key = tmp_line, *
value, *endptr;
2842 if (strcspn(line,
"#\n\r") == 0)
2844 av_strlcpy(tmp_line, line,
sizeof(tmp_line));
2858 filename, line, key, value);
2868 static int opt_old2new(
void *optctx,
const char *opt,
const char *arg)
2877 static int opt_bitrate(
void *optctx,
const char *opt,
const char *arg)
2881 if(!strcmp(opt,
"ab")){
2884 }
else if(!strcmp(opt,
"b")){
2893 static int opt_qscale(
void *optctx,
const char *opt,
const char *arg)
2898 if(!strcmp(opt,
"qscale")){
2908 static int opt_profile(
void *optctx,
const char *opt,
const char *arg)
2911 if(!strcmp(opt,
"profile")){
2932 static int opt_vsync(
void *optctx,
const char *opt,
const char *arg)
2958 char layout_str[32];
2961 int ret, channels, ac_str_size;
2969 snprintf(layout_str,
sizeof(layout_str),
"%"PRIu64, layout);
2976 snprintf(layout_str,
sizeof(layout_str),
"%d", channels);
2977 stream_str = strchr(opt,
':');
2978 ac_str_size = 3 + (stream_str ? strlen(stream_str) : 0);
3033 int show_advanced = 0, show_avoptions = 0;
3036 if (!strcmp(opt,
"long"))
3038 else if (!strcmp(opt,
"full"))
3039 show_advanced = show_avoptions = 1;
3046 printf(
"Getting help:\n"
3047 " -h -- print basic options\n"
3048 " -h long -- print more options\n"
3049 " -h full -- print all options (including all format and codec specific options, very long)\n"
3050 " -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter\n"
3051 " See man %s for detailed description of the options.\n"
3058 "instead of just one file:",
3086 if (show_avoptions) {
3130 "%s.\n", inout, g->
arg);
3154 memset(&octx, 0,
sizeof(octx));
3216 if (!strcmp(arg,
"-"))
3228 #define OFFSET(x) offsetof(OptionsContext, x)
3234 "force format",
"fmt" },
3236 "overwrite output files" },
3238 "never overwrite output files" },
3240 "Ignore unknown stream types" },
3242 "Copy unknown stream types" },
3245 "codec name",
"codec" },
3248 "codec name",
"codec" },
3251 "preset name",
"preset" },
3254 "set input stream mapping",
3255 "[-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]]" },
3257 "map an audio channel from one stream to another",
"file.stream.channel[:syncfile.syncstream]" },
3260 "set metadata information of outfile from infile",
3261 "outfile[,metadata]:infile[,metadata]" },
3264 "set chapters mapping",
"input_file_index" },
3267 "record or transcode \"duration\" seconds of audio/video",
3270 "record or transcode stop time",
"time_stop" },
3272 "set the limit file size in bytes",
"limit_size" },
3275 "set the start time offset",
"time_off" },
3278 "set the start time offset relative to EOF",
"time_off" },
3281 "enable/disable seeking by timestamp with -ss" },
3284 "enable/disable accurate seeking with -ss" },
3287 "set the input ts offset",
"time_off" },
3290 "set the input ts scale",
"scale" },
3292 "set the recording timestamp ('now' to set the current time)",
"time" },
3294 "add metadata",
"string=string" },
3296 "add program with specified streams",
"title=string:st=number..." },
3299 "set the number of data frames to output",
"number" },
3301 "add timings for benchmarking" },
3303 "add timings for each task" },
3305 "write program-readable progress information",
"url" },
3307 "enable or disable interaction on standard input" },
3309 "set max runtime in seconds",
"limit" },
3311 "dump each input packet" },
3313 "when dumping packets, also dump the payload" },
3316 "read input at native frame rate",
"" },
3318 "specify target file type (\"vcd\", \"svcd\", \"dvd\", \"dv\" or \"dv50\" "
3319 "with optional prefixes \"pal-\", \"ntsc-\" or \"film-\")",
"type" },
3321 "video sync method",
"" },
3323 "frame drop threshold",
"" },
3325 "audio sync method",
"" },
3327 "audio drift threshold",
"threshold" },
3329 "copy timestamps" },
3331 "shift input timestamps to start at 0 when using copyts" },
3333 "copy input stream time base when stream copying",
"mode" },
3336 "finish encoding within shortest input" },
3341 "timestamp discontinuity delta threshold",
"threshold" },
3343 "timestamp error delta threshold",
"threshold" },
3345 "exit on error",
"error" },
3347 "abort on the specified condition flags",
"flags" },
3350 "copy initial non-keyframes" },
3352 "copy or discard frames before start time" },
3354 "set the number of frames to output",
"number" },
3357 "force codec tag/fourcc",
"fourcc/tag" },
3360 "use fixed quality scale (VBR)",
"q" },
3363 "use fixed quality scale (VBR)",
"q" },
3365 "set profile",
"profile" },
3367 "set stream filtergraph",
"filter_graph" },
3369 "read stream filtergraph description from a file",
"filename" },
3371 "reinit filtergraph on input parameter changes",
"" },
3373 "create a complex filtergraph",
"graph_description" },
3375 "create a complex filtergraph",
"graph_description" },
3377 "read complex filtergraph description from a file",
"filename" },
3379 "print progress report during encoding", },
3382 "add an attachment to the output file",
"filename" },
3385 "extract an attachment into a file",
"filename" },
3387 OPT_OFFSET, { .off =
OFFSET(
loop) },
"set number of times input stream shall be looped",
"loop count" },
3389 "print timestamp debugging info" },
3391 "maximum error rate",
"ratio of errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success." },
3397 "disposition",
"" },
3399 { .off =
OFFSET(thread_queue_size) },
3400 "set the maximum number of queued packets from the demuxer" },
3404 "set the number of video frames to output",
"number" },
3407 "set frame rate (Hz value, fraction or abbreviation)",
"rate" },
3410 "set frame size (WxH or abbreviation)",
"size" },
3413 "set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)",
"aspect" },
3416 "set pixel format",
"format" },
3418 "set the number of bits per raw sample",
"number" },
3420 "deprecated use -g 1" },
3425 "rate control override for specific intervals",
"override" },
3428 "force video codec ('copy' to copy stream)",
"codec" },
3434 "set initial TimeCode value.",
"hh:mm:ss[:;.]ff" },
3436 "select the pass number (1 to 3)",
"n" },
3439 "select two pass log file name prefix",
"prefix" },
3441 "this option is deprecated, use the yadif filter instead" },
3443 "calculate PSNR of compressed frames" },
3445 "dump video coding statistics to file" },
3447 "dump video coding statistics to file",
"file" },
3449 "set video filters",
"filter_graph" },
3452 "specify intra matrix coeffs",
"matrix" },
3455 "specify inter matrix coeffs",
"matrix" },
3458 "specify intra matrix coeffs",
"matrix" },
3461 "top=1/bottom=0/auto=-1 field first",
"" },
3464 "force video tag/fourcc",
"fourcc/tag" },
3466 "show QP histogram" },
3469 "force the selected framerate, disable the best supported framerate selection" },
3472 "set the value of an outfile streamid",
"streamIndex:value" },
3475 "force key frames at specified timestamps",
"timestamps" },
3477 "audio bitrate (please use -b:a)",
"bitrate" },
3479 "video bitrate (please use -b:v)",
"bitrate" },
3482 "use HW accelerated decoding",
"hwaccel name" },
3485 "select a device for HW acceleration",
"devicename" },
3488 "select output format used with HW accelerated decoding",
"format" },
3489 #if CONFIG_VDA || CONFIG_VIDEOTOOLBOX
3493 "show available HW acceleration methods" },
3496 "automatically insert correct rotate filters" },
3498 "attempt to decode anyway if HW accelerated decoder's supported profiles do not exactly match the stream" },
3502 "set the number of audio frames to output",
"number" },
3504 "set audio quality (codec-specific)",
"quality", },
3507 "set audio sampling rate (in Hz)",
"rate" },
3510 "set number of audio channels",
"channels" },
3515 "force audio codec ('copy' to copy stream)",
"codec" },
3518 "force audio tag/fourcc",
"fourcc/tag" },
3520 "change audio volume (256=normal)" ,
"volume" },
3523 "set sample format",
"format" },
3526 "set channel layout",
"layout" },
3528 "set audio filters",
"filter_graph" },
3530 "set the maximum number of channels to try to guess the channel layout" },
3534 "disable subtitle" },
3536 "force subtitle codec ('copy' to copy stream)",
"codec" },
3538 ,
"force subtitle tag/fourcc",
"fourcc/tag" },
3540 "fix subtitles duration" },
3542 "set canvas size (WxH or abbreviation)",
"size" },
3546 "deprecated, use -channel",
"channel" },
3548 "deprecated, use -standard",
"standard" },
3553 "set the maximum demux-decode delay",
"seconds" },
3555 "set the initial demux-decode delay",
"seconds" },
3557 "override the options from ffserver",
"" },
3559 "specify a file in which to print sdp information",
"file" },
3562 "A comma-separated list of bitstream filters",
"bitstream_filters" },
3564 "deprecated",
"audio bitstream_filters" },
3566 "deprecated",
"video bitstream_filters" },
3569 "set the audio options to the indicated preset",
"preset" },
3571 "set the video options to the indicated preset",
"preset" },
3573 "set the subtitle options to the indicated preset",
"preset" },
3575 "set options from indicated preset file",
"filename" },
3578 "maximum number of packets that can be buffered while waiting for all streams to initialize",
"packets" },
3582 "force data codec ('copy' to copy stream)",
"codec" },
3588 "set VAAPI hardware device (DRM path or X11 display name)",
"device" },
unsigned int nb_chapters
Number of chapters in AVChapter array.
#define AVERROR_ENCODER_NOT_FOUND
Encoder not found.
int avio_open(AVIOContext **s, const char *url, int flags)
Create and initialize a AVIOContext for accessing the resource indicated by url.
int parse_optgroup(void *optctx, OptionGroup *g)
Parse an options group and write results into optctx.
int av_parse_ratio(AVRational *q, const char *str, int max, int log_offset, void *log_ctx)
Parse str and store the parsed ratio in q.
int guess_input_channel_layout(InputStream *ist)
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. ...
int64_t recording_time
desired length of the resulting file in microseconds == AV_TIME_BASE units
int64_t avio_size(AVIOContext *s)
Get the filesize.
enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodecContext *avctx, AVCodec *codec, enum AVPixelFormat target)
#define av_realloc_f(p, o, n)
int av_parse_video_rate(AVRational *rate, const char *arg)
Parse str and store the detected values in *rate.
AVCodec * avcodec_find_encoder(enum AVCodecID id)
Find a registered encoder with a matching codec ID.
static int opt_data_frames(void *optctx, const char *opt, const char *arg)
AVIOInterruptCB interrupt_callback
Custom interrupt callbacks for the I/O layer.
int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer)
Return the written size and a pointer to the buffer.
int av_parse_video_size(int *width_ptr, int *height_ptr, const char *str)
Parse str and put in width_ptr and height_ptr the detected values.
static void init_output_filter(OutputFilter *ofilter, OptionsContext *o, AVFormatContext *oc)
char * filters
filtergraph associated to the -filter option
static AVInputFormat * file_iformat
int coded_width
Bitstream width / height, may be different from width/height e.g.
#define AV_LOG_WARNING
Something somehow does not look correct.
#define LIBAVUTIL_VERSION_INT
Main libavfilter public API header.
uint8_t * bsf_extradata_updated
static void assert_file_overwrite(const char *filename)
#define AV_DICT_DONT_OVERWRITE
Don't overwrite existing entries.
hardware decoding through Videotoolbox
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.
void choose_sample_fmt(AVStream *st, AVCodec *codec)
void avfilter_inout_free(AVFilterInOut **inout)
Free the supplied list of AVFilterInOut and set *inout to NULL.
int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec)
Check if the given stream matches a stream specifier.
FILE * av_fopen_utf8(const char *path, const char *mode)
Open a file using a UTF-8 filename.
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown)
#define AV_OPT_FLAG_AUDIO_PARAM
int index
stream index in AVFormatContext
int max_muxing_queue_size
#define AVIO_FLAG_READ
read-only
static int opt_audio_filters(void *optctx, const char *opt, const char *arg)
static OutputStream * new_unknown_stream(OptionsContext *o, AVFormatContext *oc, int source_index)
const AVBitStreamFilter * av_bsf_get_by_name(const char *name)
#define AVIO_FLAG_WRITE
write-only
static int read_ffserver_streams(OptionsContext *o, AVFormatContext *s, const char *filename)
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown) That is the width of a pixel divided by the height of the pixel...
#define AV_CODEC_PROP_TEXT_SUB
Subtitle codec is text based.
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx.
Convenience header that includes libavutil's core.
static int opt_filter_complex(void *optctx, const char *opt, const char *arg)
int av_dict_copy(AVDictionary **dst, const AVDictionary *src, int flags)
Copy entries from one AVDictionary struct into another.
int cuvid_init(AVCodecContext *s)
char * stats_in
pass2 encoding statistics input buffer Concatenated stuff from stats_out of pass1 should be placed he...
static int copy_chapters(InputFile *ifile, OutputFile *ofile, int copy_metadata)
static int file_overwrite
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
static OutputStream * new_output_stream(OptionsContext *o, AVFormatContext *oc, enum AVMediaType type, int source_index)
const AVClass * sws_get_class(void)
Get the AVClass for swsContext.
int bits_per_raw_sample
Bits per sample/pixel of internal libavcodec pixel/sample format.
static const char * audio_codec_name
static int choose_encoder(OptionsContext *o, AVFormatContext *s, OutputStream *ost)
void * priv_data
Opaque filter-specific private data.
enum AVCodecID subtitle_codec_id
Forced subtitle codec_id.
int avio_open_dyn_buf(AVIOContext **s)
Open a write only memory stream.
AVDictionary * filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, AVFormatContext *s, AVStream *st, AVCodec *codec)
Filter out options for given codec.
This struct describes the properties of an encoded stream.
int64_t start_time
start time in microseconds == AV_TIME_BASE units
static int opt_preset(void *optctx, const char *opt, const char *arg)
SpecifierOpt * frame_pix_fmts
static int opt_data_codec(void *optctx, const char *opt, const char *arg)
int av_get_channel_layout_nb_channels(uint64_t channel_layout)
Return the number of channels in the channel layout.
#define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)
void uninit_parse_context(OptionParseContext *octx)
Free all allocated memory in an OptionParseContext.
static int opt_audio_qscale(void *optctx, const char *opt, const char *arg)
const AVClass * avcodec_get_class(void)
Get the AVClass for AVCodecContext.
int avio_check(const char *url, int flags)
Return AVIO_FLAG_* access flags corresponding to the access permissions of the resource in url...
int av_bsf_alloc(const AVBitStreamFilter *filter, AVBSFContext **ctx)
Allocate a context for a given bitstream filter.
int av_opt_set_from_string(void *ctx, const char *opts, const char *const *shorthand, const char *key_val_sep, const char *pairs_sep)
Parse the key-value pairs list in opts.
uint64_t av_get_channel_layout(const char *name)
Return a channel layout id that matches name, or 0 if no match is found.
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
void av_codec_set_chroma_intra_matrix(AVCodecContext *avctx, uint16_t *val)
static const uint8_t frame_sizes[]
int vdpau_init(AVCodecContext *s)
static int ignore_unknown_streams
static int64_t start_time
int copy_initial_nonkeyframes
enum AVSampleFormat sample_fmt
audio sample format
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...
AVCodecParameters * avcodec_parameters_alloc(void)
Allocate a new AVCodecParameters and set its fields to default values (unknown/invalid/0).
static int open_input_file(OptionsContext *o, const char *filename)
static const OptionGroupDef groups[]
static int opt_sdp_file(void *optctx, const char *opt, const char *arg)
static av_cold int end(AVCodecContext *avctx)
uint16_t * chroma_intra_matrix
custom intra quantization matrix Code outside libavcodec should access this field using av_codec_g/se...
int id
unique ID to identify the chapter
static int opt_vsync(void *optctx, const char *opt, const char *arg)
int id
Format-specific stream ID.
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file.
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, uint8_t clip)
AVStream ** streams
A list of all streams in the file.
static int opt_vstats(void *optctx, const char *opt, const char *arg)
int avcodec_parameters_to_context(AVCodecContext *codec, const AVCodecParameters *par)
Fill the codec context based on the values from the supplied codec parameters.
AVFormatContext * avformat_alloc_context(void)
Allocate an AVFormatContext.
void av_codec_set_lowres(AVCodecContext *avctx, int val)
#define AVERROR_PROTOCOL_NOT_FOUND
Protocol not found.
AVDictionaryEntry * av_dict_get(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
Get a dictionary entry with matching key.
int flags
Flags modifying the (de)muxer behaviour.
AVProgram * av_new_program(AVFormatContext *s, int id)
AVDictionary * resample_opts
#define AV_LOG_VERBOSE
Detailed information.
const AVClass * avformat_get_class(void)
Get the AVClass for AVFormatContext.
int init_complex_filtergraph(FilterGraph *fg)
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.
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
const OptionDef options[]
void * av_realloc_array(void *ptr, size_t nmemb, size_t size)
enum AVCodecID video_codec_id
Forced video codec_id.
#define AV_OPT_FLAG_ENCODING_PARAM
a generic parameter which can be set by the user for muxing or encoding
int avio_read(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
static int opt_video_codec(void *optctx, const char *opt, const char *arg)
static int opt_qscale(void *optctx, const char *opt, const char *arg)
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().
AVCodec * avcodec_find_encoder_by_name(const char *name)
Find a registered encoder with the specified name.
AVDictionary * format_opts
static OutputStream * new_subtitle_stream(OptionsContext *o, AVFormatContext *oc, int source_index)
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq)
Rescale a 64-bit integer by 2 rational numbers.
void av_dump_format(AVFormatContext *ic, int index, const char *url, int is_output)
Print detailed information about the input or output format, such as duration, bitrate, streams, container, programs, metadata, side data, codec and time base.
AVCodecID
Identify the syntax and semantics of the bitstream.
static int opt_profile(void *optctx, const char *opt, const char *arg)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define AV_DICT_MATCH_CASE
Only get an entry with exact-case key match.
AVDictionary * metadata
Metadata that applies to the whole file.
static int configure_complex_filters(void)
FilterGraph ** filtergraphs
const AVIOInterruptCB int_cb
static int open_files(OptionGroupList *l, const char *inout, int(*open_file)(OptionsContext *, const char *))
static int opt_subtitle_codec(void *optctx, const char *opt, const char *arg)
#define AV_OPT_FLAG_FILTERING_PARAM
a generic parameter which can be set by the user for filtering
static int opt_video_channel(void *optctx, const char *opt, const char *arg)
int av_opt_eval_flags(void *obj, const AVOption *o, const char *val, int *flags_out)
static int opt_recording_timestamp(void *optctx, const char *opt, const char *arg)
int vaapi_device_init(const char *device)
int avio_close(AVIOContext *s)
Close the resource accessed by the AVIOContext s and free it.
int video_delay
Video only.
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
AudioChannelMap * audio_channel_maps
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.
int flags
AV_CODEC_FLAG_*.
static int opt_bitrate(void *optctx, const char *opt, const char *arg)
int parse_option(void *optctx, const char *opt, const char *arg, const OptionDef *options)
Parse one given option.
static void parse_meta_type(char *arg, char *type, int *index, const char **stream_spec)
Parse a metadata specifier passed as 'arg' parameter.
simple assert() macros that are a bit more flexible than ISO C assert().
const AVOption * av_opt_next(const void *obj, const AVOption *last)
Iterate over all AVOptions belonging to obj.
const char * name
Name of the codec implementation.
static int opt_old2new(void *optctx, const char *opt, const char *arg)
void remove_avoptions(AVDictionary **a, AVDictionary *b)
static int opt_sameq(void *optctx, const char *opt, const char *arg)
HW acceleration through VDA, data[3] contains a CVPixelBufferRef.
static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFormatContext *ic, OptionsContext *o)
AVRational avg_frame_rate
Average framerate.
New fields can be added to the end with minor version bumps.
static void uninit_options(OptionsContext *o)
static void * av_mallocz_array(size_t nmemb, size_t size)
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.
char * av_get_token(const char **buf, const char *term)
Unescape the given string until a non escaped terminating char, and return the token corresponding to...
int av_codec_get_lowres(const AVCodecContext *avctx)
const AVCodecDescriptor * avcodec_descriptor_get(enum AVCodecID id)
uint64_t channel_layout
Audio channel layout.
int extradata_size
Size of the extradata content in bytes.
int avio_r8(AVIOContext *s)
int av_reallocp_array(void *ptr, size_t nmemb, size_t size)
int avformat_query_codec(const AVOutputFormat *ofmt, enum AVCodecID codec_id, int std_compliance)
Test if the given container can store a codec.
int ffmpeg_parse_options(int argc, char **argv)
int props
Codec properties, a combination of AV_CODEC_PROP_* flags.
AVRational frame_aspect_ratio
static AVDictionary * strip_specifiers(AVDictionary *dict)
static int opt_abort_on(void *optctx, const char *opt, const char *arg)
char * av_asprintf(const char *fmt,...)
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 const char * subtitle_codec_name
static int subtitle_disable
int nb_audio_channel_maps
int vaapi_decode_init(AVCodecContext *avctx)
unsigned int nb_streams
Number of elements in AVFormatContext.streams.
AVInputFormat * av_find_input_format(const char *short_name)
Find AVInputFormat based on the short name of the input format.
static int opt_video_filters(void *optctx, const char *opt, const char *arg)
int rc_override_count
ratecontrol override, see RcOverride
int void avio_flush(AVIOContext *s)
Force flushing of buffered data.
audio channel layout utility functions
char filename[1024]
input or output filename
#define AV_CODEC_FLAG_QSCALE
Use fixed qscale.
#define AV_TIME_BASE
Internal time base represented as integer.
void av_program_add_stream_index(AVFormatContext *ac, int progid, unsigned int idx)
enum AVCodecID audio_codec_id
Forced audio codec_id.
SpecifierOpt * audio_channels
int av_strcasecmp(const char *a, const char *b)
Locale-independent case-insensitive compare.
static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
int av_get_exact_bits_per_sample(enum AVCodecID codec_id)
Return codec bits per sample.
attribute_deprecated int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
Copy the settings of the source AVCodecContext into the destination AVCodecContext.
AVCodecContext * avcodec_alloc_context3(const AVCodec *codec)
Allocate an AVCodecContext and set its fields to default values.
#define AV_OPT_SEARCH_CHILDREN
Search in possible children of the given object first.
static int opt_progress(void *optctx, const char *opt, const char *arg)
int metadata_chapters_manual
enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, const char *filename, const char *mime_type, enum AVMediaType type)
Guess the codec ID based upon muxer and filename.
struct OutputStream * ost
int width
picture width / height.
static int open_output_file(OptionsContext *o, const char *filename)
GLsizei GLboolean const GLfloat * value
SpecifierOpt * audio_sample_rate
int dxva2_init(AVCodecContext *s)
#define av_err2str(errnum)
Convenience macro, the return value should be used only directly in function arguments but never stan...
#define AV_CODEC_FLAG_PSNR
error[?] variables will be set during encoding.
#define AV_CODEC_FLAG_PASS1
Use internal 2pass ratecontrol in first pass mode.
SpecifierOpt * dump_attachment
A list of option groups that all have the same group type (e.g.
static AVCodec * find_codec_or_die(const char *name, enum AVMediaType type, int encoder)
int qsv_init(AVCodecContext *s)
float frame_drop_threshold
SpecifierOpt * metadata_map
static int open_file(AVFormatContext *avf, unsigned fileno)
#define AV_DICT_APPEND
If the entry already exists, append to it.
char * specifier
stream/chapter/program/...
int audio_channels_mapped
Usually treated as AVMEDIA_TYPE_DATA.
Opaque data information usually sparse.
static void init_options(OptionsContext *o)
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.
int av_opt_set_dict2(void *obj, AVDictionary **options, int search_flags)
Set all the options from a given dictionary on an object.
SpecifierOpt * frame_sizes
HW acceleration through CUDA.
const AVCodecDescriptor * avcodec_descriptor_get_by_name(const char *name)
#define FF_ARRAY_ELEMS(a)
const char * avcodec_get_name(enum AVCodecID id)
Get the name of a codec.
void exit_program(int ret)
Wraps exit with a program-specific cleanup routine.
const AVClass * avfilter_get_class(void)
A linked-list of the inputs/outputs of the filter chain.
int64_t end
chapter start/end time in time_base units
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.
SpecifierOpt * frame_rates
#define AV_LOG_INFO
Standard information.
struct InputStream * sync_ist
char * av_strdup(const char *s)
Duplicate a string.
Libavcodec external API header.
enum AVMediaType codec_type
#define AV_TIME_BASE_Q
Internal time base represented as fractional value.
int sample_rate
samples per second
AVIOContext * pb
I/O context.
AVFifoBuffer * muxing_queue
#define SET_DICT(type, meta, context, index)
static int override_ffserver
void avio_w8(AVIOContext *s, int b)
#define AV_OPT_FLAG_VIDEO_PARAM
main external API structure.
AVCodec * avcodec_find_decoder(enum AVCodecID id)
Find a registered decoder with a matching codec ID.
int av_filename_number_test(const char *filename)
Check whether filename actually is a numbered sequence generator.
int metadata_streams_manual
const char * attachment_filename
unsigned int codec_tag
fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
a very simple circular buffer FIFO implementation
#define AV_CODEC_PROP_BITMAP_SUB
Subtitle codec is bitmap based Decoded AVSubtitle data can be read from the AVSubtitleRect->pict fiel...
void assert_avoptions(AVDictionary *m)
float audio_drift_threshold
void show_help_default(const char *opt, const char *arg)
Per-fftool specific help handler.
int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags)
Set the given entry in *pm, overwriting an existing entry.
uint16_t * intra_matrix
custom intra quantization matrix
static int opt_map_channel(void *optctx, const char *opt, const char *arg)
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 VSYNC_PASSTHROUGH
static const char * format
Describe the class of an AVClass context structure.
int configure_filtergraph(FilterGraph *fg)
OutputStream ** output_streams
static int opt_filter_complex_script(void *optctx, const char *opt, const char *arg)
static char * get_ost_filters(OptionsContext *o, AVFormatContext *oc, OutputStream *ost)
int hwaccel_lax_profile_check
Rational number (pair of numerator and denominator).
int metadata_global_manual
HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface.
#define ABORT_ON_FLAG_EMPTY_OUTPUT
int avcodec_parameters_from_context(AVCodecParameters *par, const AVCodecContext *codec)
Fill the parameters struct based on the values from the supplied codec context.
#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.
HW acceleration through QSV, data[3] contains a pointer to the mfxFrameSurface1 structure.
int filtergraph_is_simple(FilterGraph *fg)
enum AVSampleFormat av_get_sample_fmt(const char *name)
Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE on error.
static OutputStream * new_audio_stream(OptionsContext *o, AVFormatContext *oc, int source_index)
int avio_open2(AVIOContext **s, const char *url, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options)
Create and initialize a AVIOContext for accessing the resource indicated by url.
const VDPAUPixFmtMap * map
const char * name
Name of the codec described by this descriptor.
int av_opt_eval_int(void *obj, const AVOption *o, const char *val, int *int_out)
char * filters_script
filtergraph script associated to the -filter_script option
HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer. ...
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...
uint16_t * inter_matrix
custom inter quantization matrix
static int opt_channel_layout(void *optctx, const char *opt, const char *arg)
int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
Seek to timestamp ts.
static int opt_audio_codec(void *optctx, const char *opt, const char *arg)
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.
static int opt_vstats_file(void *optctx, const char *opt, const char *arg)
char * name
unique name for this input/output in the list
const char * avio_find_protocol_name(const char *url)
Return the name of the protocol that will handle the passed URL.
static int init_complex_filters(void)
static AVCodec * choose_decoder(OptionsContext *o, AVFormatContext *s, AVStream *st)
int global_quality
Global quality for codecs which cannot change it per frame.
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.
AVCodec * avcodec_find_decoder_by_name(const char *name)
Find a registered decoder with the specified name.
static OutputStream * new_video_stream(OptionsContext *o, AVFormatContext *oc, int source_index)
static int opt_attach(void *optctx, const char *opt, const char *arg)
static void parse_matrix_coeffs(uint16_t *dest, const char *str)
int64_t start_time
Position of the first frame of the component, in AV_TIME_BASE fractional seconds. ...
AVBufferRef * hw_device_ctx
#define AV_CODEC_FLAG_GLOBAL_HEADER
Place global headers in extradata instead of every keyframe.
int av_strerror(int errnum, char *errbuf, size_t errbuf_size)
Put a description of the AVERROR code errnum in errbuf.
static int opt_video_frames(void *optctx, const char *opt, const char *arg)
char * av_strtok(char *s, const char *delim, char **saveptr)
Split the string into several tokens which can be accessed by successive calls to av_strtok()...
int gop_size
the number of pictures in a group of pictures, or 0 for intra_only
int av_strstart(const char *str, const char *pfx, const char **ptr)
Return non-zero if pfx is a prefix of str.
A reference to a data buffer.
float dts_error_threshold
#define CODEC_FLAG_EMU_EDGE
static uint8_t * get_line(AVIOContext *s)
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...
static int get_preset_file_2(const char *preset_name, const char *codec_name, AVIOContext **s)
static uint8_t * read_file(const char *filename)
static int opt_target(void *optctx, const char *opt, const char *arg)
AVDictionary * codec_opts
AVIOContext * progress_avio
AVDictionary * format_opts
static int opt_video_standard(void *optctx, const char *opt, const char *arg)
AVCodecParameters * ref_par
int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
Read packets of a media file to get stream information.
int av_dict_set_int(AVDictionary **pm, const char *key, int64_t value, int flags)
Convenience wrapper for av_dict_set that converts the value to a string and stores it...
int disposition
AV_DISPOSITION_* bit field.
const char ** attachments
#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...
AVRational time_base
time base in which the start/end timestamps are specified
int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec)
struct AVInputFormat * iformat
The input container format.
void avformat_close_input(AVFormatContext **s)
Close an opened input AVFormatContext.
#define AV_CODEC_FLAG_PASS2
Use internal 2pass ratecontrol in second pass mode.
int frame_bits_per_raw_sample
#define GROW_ARRAY(array, nb_elems)
enum AVCodecID data_codec_id
Forced Data codec_id.
int eof_reached
true if eof reached
AVFifoBuffer * av_fifo_alloc(unsigned int size)
Initialize an AVFifoBuffer.
static int opt_timecode(void *optctx, const char *opt, const char *arg)
static void dump_attachment(AVStream *st, const char *filename)
int channels
number of audio channels
static const struct PPFilter filters[]
int codec_info_nb_frames
Number of frames that have been demuxed during av_find_stream_info()
SpecifierOpt * max_frames
#define FF_QP2LAMBDA
factor to convert from H.263 QP to lambda
int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options)
Open an input stream and read the header.
static int show_hwaccels(void *optctx, const char *opt, const char *arg)
static int opt_streamid(void *optctx, const char *opt, const char *arg)
void show_help_children(const AVClass *class, int flags)
Show help for all options with given flags in class and all its children.
static void check_streamcopy_filters(OptionsContext *o, AVFormatContext *oc, const OutputStream *ost, enum AVMediaType type)
uint8_t * extradata
Extra binary data needed for initializing the decoder, codec-dependent.
AVDictionary * encoder_opts
static enum AVSampleFormat sample_fmts[]
AVDictionary * codec_opts
int64_t duration
Duration of the stream, in AV_TIME_BASE fractional seconds.
int read_yesno(void)
Return a positive value if a line read from standard input starts with [yY], otherwise return 0...
static const char * video_codec_name
float dts_delta_threshold
char * videotoolbox_pixfmt
#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 int input_stream_potentially_available
#define MATCH_PER_TYPE_OPT(name, type, outvar, fmtctx, mediatype)
OutputFile ** output_files
#define DEFAULT_PASS_LOGFILENAME_PREFIX
#define AV_LOG_FATAL
Something went wrong and recovery is not possible.
AVCodecParameters * codecpar
static int opt_default_new(OptionsContext *o, const char *opt, const char *arg)
static int no_file_overwrite
uint32_t codec_tag
Additional information about the codec (corresponds to the AVI FOURCC).
int init_simple_filtergraph(InputStream *ist, OutputStream *ost)
enum AVPixelFormat av_get_pix_fmt(const char *name)
Return the pixel format corresponding to name.
static int opt_map(void *optctx, const char *opt, const char *arg)
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
static int opt_audio_frames(void *optctx, const char *opt, const char *arg)
#define MKTAG(a, b, c, d)
enum AVDiscard discard
Selects which packets can be discarded at will and do not need to be demuxed.
static OutputStream * new_attachment_stream(OptionsContext *o, AVFormatContext *oc, int source_index)
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_RL32
This structure stores compressed data.
int avio_closep(AVIOContext **s)
Close the resource accessed by the AVIOContext *s, free it and set the pointer pointing to it to NULL...
int av_opt_set(void *obj, const char *name, const char *val, int search_flags)
const char program_name[]
program name, defined by the program for show_version().
#define AV_NOPTS_VALUE
Undefined timestamp value.
InputStream ** input_streams
int videotoolbox_init(AVCodecContext *s)
static int copy_unknown_streams
static OutputStream * new_data_stream(OptionsContext *o, AVFormatContext *oc, int source_index)