Go to the documentation of this file.
27 #include "libavutil/ffversion.h"
72 # ifdef pthread_mutex_lock
73 # undef pthread_mutex_lock
75 # define pthread_mutex_lock(a) do{}while(0)
76 # ifdef pthread_mutex_unlock
77 # undef pthread_mutex_unlock
79 # define pthread_mutex_unlock(a) do{}while(0)
138 #define SHOW_OPTIONAL_FIELDS_AUTO -1
139 #define SHOW_OPTIONAL_FIELDS_NEVER 0
140 #define SHOW_OPTIONAL_FIELDS_ALWAYS 1
162 #define SECTION_MAX_NB_CHILDREN 10
220 #define SECTION_FLAG_IS_WRAPPER 1
221 #define SECTION_FLAG_IS_ARRAY 2
222 #define SECTION_FLAG_HAS_VARIABLE_FIELDS 4
224 #define SECTION_FLAG_HAS_TYPE 8
231 const char *(* get_type)(
void *
data);
309 static const struct {
315 { 1.0, 1.0,
"",
"" },
316 { 1.024e3, 1e3,
"Ki",
"K" },
317 { 1.048576e6, 1e6,
"Mi",
"M" },
318 { 1.073741824e9, 1e9,
"Gi",
"G" },
319 { 1.099511627776e12, 1e12,
"Ti",
"T" },
320 { 1.125899906842624e15, 1e15,
"Pi",
"P" },
353 static int print_prefix = 1;
354 void *new_log_buffer;
365 if (new_log_buffer) {
378 for (
i=strlen(msg) - 1;
i>=0 && msg[
i] ==
'\n';
i--) {
384 if (parent && *parent) {
387 (*parent)->get_category ? (*parent)->get_category(parent) :(*parent)->category;
398 union {
double d;
long long int i; }
val;
412 vald = vali = uv.
val.
i;
419 mins = (
int)secs / 60;
420 secs = secs - mins * 60;
423 snprintf(buf, buf_size,
"%d:%02d:%09.6f", hours, mins, secs);
425 const char *prefix_string =
"";
436 index = (
long long int) (log10(vald)) / 3;
445 snprintf(buf, buf_size,
"%f", vald);
447 snprintf(buf, buf_size,
"%lld", vali);
459 #define WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS 1
460 #define WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER 2
485 #define SECTION_MAX_NB_LEVELS 10
527 #define OFFSET(x) offsetof(WriterContext, x)
530 {
"string_validation",
"set string validation mode",
532 {
"sv",
"set string validation mode",
537 {
"string_validation_replacement",
"set string validation replacement string",
OFFSET(string_validation_replacement),
AV_OPT_TYPE_STRING, {.str=
""}},
538 {
"svr",
"set string validation replacement string",
OFFSET(string_validation_replacement),
AV_OPT_TYPE_STRING, {.str=
"\xEF\xBF\xBD"}},
545 if (!prev &&
ctx->writer &&
ctx->writer->priv_class &&
ctx->priv)
566 if ((*wctx)->writer->uninit)
567 (*wctx)->writer->uninit(*wctx);
570 if ((*wctx)->writer->priv_class)
582 static void bprint_bytes(AVBPrint *bp,
const uint8_t *ubuf,
size_t ubuf_size)
586 for (
i = 0;
i < ubuf_size;
i++)
644 (*wctx)->writer = writer;
647 (*wctx)->nb_sections = nb_sections;
652 void *priv_ctx = (*wctx)->priv;
663 av_log(*wctx,
AV_LOG_ERROR,
"Failed to parse option string '%s' provided to writer context\n", args);
670 av_log(*wctx,
AV_LOG_ERROR,
"Failed to set option '%s' with value '%s' provided to writer context\n",
682 const uint8_t *p = (*wctx)->string_validation_replacement;
683 const uint8_t *endp = p + strlen(p);
685 const uint8_t *p0 = p;
693 "Invalid UTF8 sequence %s found in string validation replace '%s'\n",
694 bp.str, (*wctx)->string_validation_replacement);
718 if ((*wctx)->writer->init)
719 ret = (*wctx)->writer->init(*wctx);
734 int parent_section_id;
737 parent_section_id = wctx->
level ?
758 int parent_section_id = wctx->
level ?
773 const char *
key,
long long int val)
785 const uint8_t *p, *endp;
787 int invalid_chars_nb = 0,
ret = 0;
792 for (p = (uint8_t *)
src; *p;) {
795 const uint8_t *p0 = p;
802 "Invalid UTF-8 sequence %s found in string '%s'\n", bp.str,
src);
812 "Invalid UTF-8 sequence found in string '%s'\n",
src);
829 "%d invalid UTF-8 sequence(s) found in string '%s', replaced with '%s'\n",
838 #define PRINT_STRING_OPT 1
839 #define PRINT_STRING_VALIDATE 2
857 if (
ret < 0)
goto end;
859 if (
ret < 0)
goto end;
864 "Invalid key=value string combination %s=%s in section %s\n",
889 int64_t ts,
const AVRational *time_base,
int is_duration)
893 if ((!is_duration && ts ==
AV_NOPTS_VALUE) || (is_duration && ts == 0)) {
896 double d = ts *
av_q2d(*time_base);
907 if ((!is_duration && ts ==
AV_NOPTS_VALUE) || (is_duration && ts == 0)) {
925 for (
i = 0;
i < l;
i++) {
931 for (
i = 0;
i < l;
i++)
952 p = buf + strlen(buf);
959 int columns,
int bytes,
int offset_add)
969 for (
i = 0;
i < l;
i++) {
983 #define writer_w8(wctx_, b_) (wctx_)->writer_w8(wctx_, b_)
984 #define writer_put_str(wctx_, str_) (wctx_)->writer_put_str(wctx_, str_)
985 #define writer_printf(wctx_, fmt_, ...) (wctx_)->writer_printf(wctx_, fmt_, __VA_ARGS__)
987 #define MAX_REGISTERED_WRITERS_NB 64
993 static int next_registered_writer_idx = 0;
1016 #define DEFINE_WRITER_CLASS(name) \
1017 static const char *name##_get_name(void *ctx) \
1021 static const AVClass name##_class = { \
1022 .class_name = #name, \
1023 .item_name = name##_get_name, \
1024 .option = name##_options \
1037 #define OFFSET(x) offsetof(DefaultContext, x)
1040 {
"noprint_wrappers",
"do not print headers and footers",
OFFSET(noprint_wrappers),
AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 },
1041 {
"nw",
"do not print headers and footers",
OFFSET(noprint_wrappers),
AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 },
1053 for (
i = 0;
src[
i] &&
i < dst_size-1;
i++)
1068 if (parent_section &&
1123 .priv_class = &default_class,
1131 static const char *
c_escape_str(AVBPrint *dst,
const char *
src,
const char sep,
void *log_ctx)
1135 for (p =
src; *p; p++) {
1137 case '\b':
av_bprintf(dst,
"%s",
"\\b");
break;
1138 case '\f':
av_bprintf(dst,
"%s",
"\\f");
break;
1139 case '\n':
av_bprintf(dst,
"%s",
"\\n");
break;
1140 case '\r':
av_bprintf(dst,
"%s",
"\\r");
break;
1141 case '\\':
av_bprintf(dst,
"%s",
"\\\\");
break;
1156 char meta_chars[] = { sep,
'"',
'\n',
'\r',
'\0' };
1157 int needs_quoting = !!
src[strcspn(
src, meta_chars)];
1184 const char * (*escape_str)(AVBPrint *dst,
const char *
src,
const char sep,
void *log_ctx);
1191 #define OFFSET(x) offsetof(CompactContext, x)
1212 av_log(wctx,
AV_LOG_ERROR,
"Item separator '%s' specified, but must contain a single character\n",
1239 if (parent_section &&
1262 (*p >=
'0' && *p <=
'9') ||
1263 (*p >=
'a' && *p <=
'z') ||
1264 (*p >=
'A' && *p <=
'Z') ?
av_tolower(*p) :
'_';
1297 if (!compact->
nokey)
1309 if (!compact->
nokey)
1323 .priv_class = &compact_class,
1329 #define OFFSET(x) offsetof(CompactContext, x)
1354 .priv_class = &csv_class,
1367 #define OFFSET(x) offsetof(FlatContext, x)
1372 {
"hierarchical",
"specify if the section specification should be hierarchical",
OFFSET(hierarchical),
AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 },
1373 {
"h",
"specify if the section specification should be hierarchical",
OFFSET(hierarchical),
AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 },
1383 if (strlen(
flat->sep_str) != 1) {
1384 av_log(wctx,
AV_LOG_ERROR,
"Item separator '%s' specified, but must contain a single character\n",
1397 for (p =
src; *p; p++) {
1398 if (!((*p >=
'0' && *p <=
'9') ||
1399 (*p >=
'a' && *p <=
'z') ||
1400 (*p >=
'A' && *p <=
'Z')))
1412 for (p =
src; *p; p++) {
1414 case '\n':
av_bprintf(dst,
"%s",
"\\n");
break;
1415 case '\r':
av_bprintf(dst,
"%s",
"\\r");
break;
1416 case '\\':
av_bprintf(dst,
"%s",
"\\\\");
break;
1417 case '"':
av_bprintf(dst,
"%s",
"\\\"");
break;
1418 case '`':
av_bprintf(dst,
"%s",
"\\`");
break;
1419 case '$':
av_bprintf(dst,
"%s",
"\\$");
break;
1436 if (!parent_section)
1440 if (
flat->hierarchical ||
1478 .priv_class = &flat_class,
1489 #define OFFSET(x) offsetof(INIContext, x)
1492 {
"hierarchical",
"specify if the section specification should be hierarchical",
OFFSET(hierarchical),
AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 },
1493 {
"h",
"specify if the section specification should be hierarchical",
OFFSET(hierarchical),
AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 },
1504 while (
c =
src[
i++]) {
1506 case '\b':
av_bprintf(dst,
"%s",
"\\b");
break;
1507 case '\f':
av_bprintf(dst,
"%s",
"\\f");
break;
1508 case '\n':
av_bprintf(dst,
"%s",
"\\n");
break;
1509 case '\r':
av_bprintf(dst,
"%s",
"\\r");
break;
1510 case '\t':
av_bprintf(dst,
"%s",
"\\t");
break;
1516 if ((
unsigned char)
c < 32)
1535 if (!parent_section) {
1582 .priv_class = &ini_class,
1595 #define OFFSET(x) offsetof(JSONContext, x)
1617 static const char json_escape[] = {
'"',
'\\',
'\b',
'\f',
'\n',
'\r',
'\t', 0};
1618 static const char json_subst[] = {
'"',
'\\',
'b',
'f',
'n',
'r',
't', 0};
1621 for (p =
src; *p; p++) {
1622 char *
s = strchr(json_escape, *p);
1626 }
else if ((
unsigned char)*p < 32) {
1635 #define JSON_INDENT() writer_printf(wctx, "%*c", json->indent_level * 4, ' ')
1681 if (wctx->
level == 0) {
1699 const char *
key,
const char *
value)
1749 .priv_class = &json_class,
1763 #define OFFSET(x) offsetof(XMLContext, x)
1766 {
"fully_qualified",
"specify if the output should be fully qualified",
OFFSET(fully_qualified),
AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 },
1767 {
"q",
"specify if the output should be fully qualified",
OFFSET(fully_qualified),
AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 },
1768 {
"xsd_strict",
"ensure that the output is XSD compliant",
OFFSET(xsd_strict),
AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 },
1781 #define CHECK_COMPLIANCE(opt, opt_name) \
1783 av_log(wctx, AV_LOG_ERROR, \
1784 "XSD-compliant output selected but option '%s' was selected, XML output may be non-compliant.\n" \
1785 "You need to disable such option with '-no%s'\n", opt_name, opt_name); \
1786 return AVERROR(EINVAL); \
1796 #define XML_INDENT() writer_printf(wctx, "%*c", xml->indent_level * 4, ' ')
1805 if (wctx->
level == 0) {
1806 const char *qual =
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
1807 "xmlns:ffprobe=\"http://www.ffmpeg.org/schema/ffprobe\" "
1808 "xsi:schemaLocation=\"http://www.ffmpeg.org/schema/ffprobe ffprobe.xsd\"";
1810 writer_put_str(wctx,
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
1849 if (wctx->
level == 0) {
1919 .priv_class = &xml_class,
1939 #define print_fmt(k, f, ...) do { \
1940 av_bprint_clear(&pbuf); \
1941 av_bprintf(&pbuf, f, __VA_ARGS__); \
1942 writer_print_string(w, k, pbuf.str, 0); \
1945 #define print_list_fmt(k, f, n, m, ...) do { \
1946 av_bprint_clear(&pbuf); \
1947 for (int idx = 0; idx < n; idx++) { \
1948 for (int idx2 = 0; idx2 < m; idx2++) { \
1949 if (idx > 0 || idx2 > 0) \
1950 av_bprint_chars(&pbuf, ' ', 1); \
1951 av_bprintf(&pbuf, f, __VA_ARGS__); \
1954 writer_print_string(w, k, pbuf.str, 0); \
1957 #define print_int(k, v) writer_print_integer(w, k, v)
1958 #define print_q(k, v, s) writer_print_rational(w, k, v, s)
1959 #define print_str(k, v) writer_print_string(w, k, v, 0)
1960 #define print_str_opt(k, v) writer_print_string(w, k, v, PRINT_STRING_OPT)
1961 #define print_str_validate(k, v) writer_print_string(w, k, v, PRINT_STRING_VALIDATE)
1962 #define print_time(k, v, tb) writer_print_time(w, k, v, tb, 0)
1963 #define print_ts(k, v) writer_print_ts(w, k, v, 0)
1964 #define print_duration_time(k, v, tb) writer_print_time(w, k, v, tb, 1)
1965 #define print_duration_ts(k, v) writer_print_ts(w, k, v, 1)
1966 #define print_val(k, v, u) do { \
1967 struct unit_value uv; \
1970 writer_print_string(w, k, value_string(val_str, sizeof(val_str), uv), 0); \
1973 #define print_section_header(s) writer_print_section_header(w, NULL, s)
1974 #define print_section_header_data(s, d) writer_print_section_header(w, d, s)
1975 #define print_section_footer(s) writer_print_section_footer(w, s)
1977 #define REALLOCZ_ARRAY_STREAM(ptr, cur_n, new_n) \
1979 ret = av_reallocp_array(&(ptr), (new_n), sizeof(*(ptr))); \
1982 memset( (ptr) + (cur_n), 0, ((new_n) - (cur_n)) * sizeof(*(ptr)) ); \
2021 print_int(
"chroma_resampling_explicit_filter_flag",
2030 print_int(
"spatial_resampling_filter_flag",
2032 print_int(
"el_spatial_resampling_filter_flag",
2045 print_str(
"nlq_method_idc_name",
"none");
2048 print_str(
"nlq_method_idc_name",
"linear_dz");
2051 print_str(
"nlq_method_idc_name",
"unknown");
2060 for (
int c = 0;
c < 3;
c++) {
2073 print_str(
"mapping_idc_name",
"polynomial");
2088 print_str(
"mapping_idc_name",
"unknown");
2124 color->ycc_to_rgb_matrix[idx].num,
2125 color->ycc_to_rgb_matrix[idx].den);
2128 color->ycc_to_rgb_offset[idx].num,
2129 color->ycc_to_rgb_offset[idx].den);
2132 color->rgb_to_lms_matrix[idx].num,
2133 color->rgb_to_lms_matrix[idx].den);
2141 print_int(
"signal_full_range_flag",
color->signal_full_range_flag);
2158 print_q(
"window_upper_left_corner_x",
2160 print_q(
"window_upper_left_corner_y",
2162 print_q(
"window_lower_right_corner_x",
2164 print_q(
"window_lower_right_corner_y",
2166 print_q(
"window_upper_left_corner_x",
2168 print_q(
"window_upper_left_corner_y",
2176 print_int(
"semimajor_axis_internal_ellipse",
2178 print_int(
"semimajor_axis_external_ellipse",
2180 print_int(
"semiminor_axis_external_ellipse",
2185 print_q(
"targeted_system_display_maximum_luminance",
2188 print_int(
"num_rows_targeted_system_display_actual_peak_luminance",
2190 print_int(
"num_cols_targeted_system_display_actual_peak_luminance",
2194 print_q(
"targeted_system_display_actual_peak_luminance",
2201 for (
int i = 0;
i < 3;
i++) {
2206 print_int(
"num_distribution_maxrgb_percentiles",
2209 print_int(
"distribution_maxrgb_percentage",
2211 print_q(
"distribution_maxrgb_percentile",
2214 print_q(
"fraction_bright_pixels",
2218 print_int(
"num_rows_mastering_display_actual_peak_luminance",
2220 print_int(
"num_cols_mastering_display_actual_peak_luminance",
2224 print_q(
"mastering_display_actual_peak_luminance",
2238 print_q(
"bezier_curve_anchors",
2243 print_q(
"color_saturation_weight",
2274 print_q(
"targeted_system_display_maximum_luminance",
2287 print_int(
"base_param_Delta_enable_mode",
2341 if (
isnan(rotation))
2577 const uint8_t *side_metadata;
2640 if (
isnan(rotation))
2651 uint32_t *
tc = (uint32_t*)sd->data;
2654 for (
int j = 1; j <= m ; j++) {
2729 #if LIBAVUTIL_VERSION_MAJOR < 59
2757 print_q(
"sample_aspect_ratio", sar,
':');
2762 #if LIBAVUTIL_VERSION_MAJOR < 59
2814 int ret = 0, got_frame = 0;
2865 return got_frame || *packet_new;
2870 av_log(log_ctx, log_level,
"id:%d", interval->
id);
2876 av_log(log_ctx, log_level,
" start:N/A");
2882 av_log(log_ctx, log_level,
"#%"PRId64, interval->
end);
2886 av_log(log_ctx, log_level,
" end:N/A");
2889 av_log(log_ctx, log_level,
"\n");
2898 int ret = 0,
i = 0, frame_count = 0;
2899 int64_t start = -INT64_MAX, end = interval->
end;
2910 "Could not seek to relative position since current "
2911 "timestamp is not defined\n");
2915 target = *cur_ts + interval->
start;
2917 target = interval->
start;
2959 end = start + interval->
end;
2964 if (frame_count >= interval->
end)
2966 }
else if (has_end && *cur_ts !=
AV_NOPTS_VALUE && *cur_ts >= end) {
3073 char profile_num[12];
3101 print_q(
"sample_aspect_ratio", sar,
':');
3106 print_q(
"display_aspect_ratio", dar,
':');
3123 print_str(
"field_order",
"progressive");
3211 #define PRINT_DISPOSITION(flagname, name) do { \
3212 print_int(name, !!(stream->disposition & AV_DISPOSITION_##flagname)); \
3292 for (
i = 0;
i <
program->nb_stream_indexes;
i++) {
3389 const char *print_filename)
3394 int scan_all_pmts_set = 0;
3402 scan_all_pmts_set = 1;
3409 if (print_filename) {
3414 if (scan_all_pmts_set)
3429 for (
i = 0;
i < orig_nb_streams;
i++)
3456 "Failed to probe codec for input stream %d\n",
3464 "Unsupported codec with id %d for input stream %d\n",
3528 const char *print_filename)
3541 #define CHECK_END if (ret < 0) goto end
3622 print_fmt(
"copyright",
"Copyright (c) %d-%d the FFmpeg developers",
3625 print_str(
"configuration", FFMPEG_CONFIGURATION);
3631 #define SHOW_LIB_VERSION(libname, LIBNAME) \
3633 if (CONFIG_##LIBNAME) { \
3634 unsigned int version = libname##_version(); \
3635 writer_print_section_header(w, NULL, SECTION_ID_LIBRARY_VERSION); \
3636 print_str("name", "lib" #libname); \
3637 print_int("major", LIB##LIBNAME##_VERSION_MAJOR); \
3638 print_int("minor", LIB##LIBNAME##_VERSION_MINOR); \
3639 print_int("micro", LIB##LIBNAME##_VERSION_MICRO); \
3640 print_int("version", version); \
3641 print_str("ident", LIB##LIBNAME##_IDENT); \
3642 writer_print_section_footer(w); \
3660 #define PRINT_PIX_FMT_FLAG(flagname, name) \
3662 print_int(name, !!(pixdesc->flags & AV_PIX_FMT_FLAG_##flagname)); \
3762 "'%s' matches section with unique name '%s'\n", section_name,
3773 const char *p =
arg;
3781 if (!section_name) {
3783 "Missing section name for option '%s'\n", opt);
3789 while (*p && *p !=
':') {
3794 "Adding '%s' to the entries to show in section '%s'\n",
3795 entry, section_name);
3825 "Argument '%s' provided as input filename, but '%s' was already specified.\n",
3829 if (!strcmp(
arg,
"-"))
3846 "Argument '%s' provided as output filename, but '%s' was already specified.\n",
3850 if (!strcmp(
arg,
"-"))
3883 char *next, *p, *spec =
av_strdup(interval_spec);
3894 next = strchr(spec,
'%');
3936 lli = strtoll(p, &tail, 10);
3937 if (*tail || lli < 0) {
3939 "Invalid or negative value '%s' for duration number of frames\n", p);
3942 interval->
end = lli;
3964 char *p, *spec =
av_strdup(intervals_spec);
3969 for (n = 0, p = spec; *p; p++)
3983 for (
i = 0; p;
i++) {
3987 next = strchr(p,
',');
4044 "W... = Section is a wrapper (contains other sections, no local entries)\n"
4045 ".A.. = Section contains an array of elements of the same type\n"
4046 "..V. = Section may contain a variable number of fields with variable keys\n"
4047 "...T = Section contain a unique type\n"
4048 "FLAGS NAME/UNIQUE_NAME\n"
4061 #define DEFINE_OPT_SHOW_SECTION(section, target_section_id) \
4062 static int opt_show_##section(void *optctx, const char *opt, const char *arg) \
4064 mark_section_show_entries(SECTION_ID_##target_section_id, 1, NULL); \
4085 "use binary prefixes for byte units" },
4087 "use sexagesimal format HOURS:MM:SS.MICROSECONDS for time units" },
4089 "prettify the format of displayed values, make it more human readable" },
4091 "set the output printing format (available formats are: default, compact, csv, flat, ini, json, xml)",
"format" },
4095 {
"sections",
OPT_EXIT, {.func_arg =
opt_sections},
"print sections structure and section information, and exit" },
4098 {
"show_error", 0, { .func_arg = &opt_show_error },
"show probing error" },
4099 {
"show_format", 0, { .func_arg = &opt_show_format },
"show format/container info" },
4100 {
"show_frames", 0, { .func_arg = &opt_show_frames },
"show frames info" },
4102 "show a set of specified entries",
"entry_list" },
4106 {
"show_packets", 0, { .func_arg = &opt_show_packets },
"show packets info" },
4107 {
"show_programs", 0, { .func_arg = &opt_show_programs },
"show programs info" },
4108 {
"show_streams", 0, { .func_arg = &opt_show_streams },
"show streams info" },
4109 {
"show_chapters", 0, { .func_arg = &opt_show_chapters },
"show chapters info" },
4112 {
"show_program_version", 0, { .func_arg = &opt_show_program_version },
"show ffprobe version" },
4113 {
"show_library_versions", 0, { .func_arg = &opt_show_library_versions },
"show library versions" },
4114 {
"show_versions", 0, { .func_arg = &
opt_show_versions },
"show program and library versions" },
4115 {
"show_pixel_formats", 0, { .func_arg = &opt_show_pixel_formats },
"show pixel format descriptions" },
4125 "read and decode the streams to fill missing information with heuristics" },
4140 #define SET_DO_SHOW(id, varname) do { \
4141 if (check_section_show_entries(SECTION_ID_##id)) \
4142 do_show_##varname = 1; \
4150 char *w_name =
NULL, *w_args =
NULL;
4151 int ret, input_ret,
i;
4188 SET_DO_SHOW(PIXEL_FORMAT_FLAGS, pixel_format_flags);
4189 SET_DO_SHOW(PIXEL_FORMAT_COMPONENTS, pixel_format_components);
4193 SET_DO_SHOW(STREAM_DISPOSITION, stream_disposition);
4194 SET_DO_SHOW(PROGRAM_STREAM_DISPOSITION, stream_disposition);
4206 "-bitexact and -show_program_version or -show_library_versions "
4207 "options are incompatible\n");
4223 "No name specified for the output format\n");
4234 "Unknown hash algorithm '%s'\nKnown algorithms:",
static void error(const char *err)
static const char * flat_escape_key_str(AVBPrint *dst, const char *src, const char sep)
int main(int argc, char **argv)
@ SECTION_ID_STREAM_SIDE_DATA_LIST
static int opt_format(void *optctx, const char *opt, const char *arg)
enum AVColorTransferCharacteristic color_trc
static void clear_log(int need_lock)
static void mark_section_show_entries(SectionID section_id, int show_all_entries, AVDictionary *entries)
@ AV_PKT_DATA_DISPLAYMATRIX
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
void av_packet_unref(AVPacket *pkt)
Wipe the packet.
static const Writer * writer_get_by_name(const char *name)
int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, unsigned int flags)
Read and decode a single UTF-8 code point (character) from the buffer in *buf, and update *buf to poi...
AVHDRPlusColorTransformParams params[3]
The color transform parameters for every processing window.
static const AVOption flat_options[]
AVBPrint section_pbuf[SECTION_MAX_NB_LEVELS]
generic print buffer dedicated to each section, used by various writers
#define AV_LOG_WARNING
Something somehow does not look correct.
enum AVColorRange color_range
MPEG vs JPEG YUV range.
#define AV_BPRINT_SIZE_UNLIMITED
#define AV_TIMECODE_STR_SIZE
enum AVDOVINLQMethod nlq_method_idc
static int use_byte_value_binary_prefix
int level
current level, starting from 0
uint8_t * extradata
Extra binary data needed for initializing the decoder, codec-dependent.
#define MAX_REGISTERED_WRITERS_NB
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
int base_param_k2
indicates k2_0 in the base parameter, base_param_k2 <= 1: k2_0 = base_param_k2 base_param_k2 > 1: res...
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C program
static AVCodecContext * dec_ctx
#define SECTION_MAX_NB_LEVELS
@ SECTION_ID_STREAM_SIDE_DATA
static int do_show_frame_tags
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
static int opt_show_optional_fields(void *optctx, const char *opt, const char *arg)
static int read_intervals_nb
static int opt_output_file_o(void *optctx, const char *opt, const char *arg)
enum AVMediaType codec_type
General type of the encoded data.
enum AVSphericalProjection projection
Projection type.
static void xml_print_value(WriterContext *wctx, const char *key, const void *value, const int is_int)
void av_opt_set_defaults(void *s)
Set the values of all AVOption fields to their default values.
AVColorTransferCharacteristic
Color Transfer Characteristic.
AVRational base_param_Delta
base_param_Delta in the base parameter, in multiples of 1.0/127.
static int show_streams(WriterContext *w, InputFile *ifile)
int avio_close(AVIOContext *s)
Close the resource accessed by the AVIOContext s and free it.
static void writer_put_str_printf(WriterContext *wctx, const char *str)
int base_enable_flag
This flag indicates that transfer the base paramter(for value of 1)
void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max)
#define AV_HASH_MAX_SIZE
Maximum value that av_hash_get_size() will currently return.
#define print_val(k, v, u)
static void compact_print_section_footer(WriterContext *wctx)
@ SECTION_ID_PACKET_SIDE_DATA_LIST
unsigned int nb_chapters
Number of chapters in AVChapter array.
This struct describes the properties of an encoded stream.
AVRational percentile
The linearized maxRGB value at a specific percentile in the processing window in the scene.
const AVClass * priv_class
AVClass for the private context.
Ambient viewing environment metadata as defined by H.274.
static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, InputStream *ist, int in_program)
enum AVColorSpace color_space
int64_t duration
Duration of the frame, in the same units as pts.
int(* init)(WriterContext *wctx)
static char * value_string(char *buf, int buf_size, struct unit_value uv)
#define AVERROR_EOF
End of file.
uint8_t * data
The data buffer.
static int read_packets(WriterContext *w, InputFile *ifile)
enum AVDiscard discard
Selects which packets can be discarded at will and do not need to be demuxed.
static av_always_inline int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
@ AV_PKT_DATA_MASTERING_DISPLAY_METADATA
Mastering display metadata (based on SMPTE-2086:2014).
const char * long_name
A more descriptive name for this codec.
static void show_packet(WriterContext *w, InputFile *ifile, AVPacket *pkt, int packet_idx)
#define AV_PKT_FLAG_DISCARD
Flag is used to discard packets which are required to maintain valid decoder state but are not requir...
int three_Spline_num
The number of three Spline.
@ AV_FRAME_DATA_DOVI_METADATA
Parsed Dolby Vision metadata, suitable for passing to a software implementation.
#define AV_TIME_BASE_Q
Internal time base represented as fractional value.
void(* print_section_footer)(WriterContext *wctx)
const char * name
Name of the codec described by this descriptor.
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce output
static int * selected_streams
@ SECTION_ID_PROGRAM_TAGS
int av_strcasecmp(const char *a, const char *b)
Locale-independent case-insensitive compare.
const AVClass * avformat_get_class(void)
Get the AVClass for AVFormatContext.
enum AVColorPrimaries color_primaries
@ AV_FRAME_DATA_S12M_TIMECODE
Timecode which conforms to SMPTE ST 12-1.
const AVClass * priv_class
private class of the writer, if any
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g.
unsigned MaxCLL
Max content light level (cd/m^2).
const struct section * section[SECTION_MAX_NB_LEVELS]
section per each level
static const char * json_escape_str(AVBPrint *dst, const char *src, void *log_ctx)
enum AVColorSpace colorspace
YUV colorspace type.
static int opt_input_file_i(void *optctx, const char *opt, const char *arg)
unsigned int nb_section_packet_frame
nb_section_packet or nb_section_frame according if is_packets_and_frames
This structure describes decoded (raw) audio or video data.
AVStream ** streams
A list of all streams in the file.
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
#define writer_put_str(wctx_, str_)
This structure stores auxiliary information for decoding, presenting, or otherwise processing the cod...
static int validate_string(WriterContext *wctx, char **dstp, const char *src)
int64_t mmr_coef[AV_DOVI_MAX_PIECES][3][7]
@ SECTION_ID_FRAME_SIDE_DATA_COMPONENT
@ SECTION_ID_PIXEL_FORMAT_COMPONENTS
uint8_t num_cols_targeted_system_display_actual_peak_luminance
The number of columns in the targeted_system_display_actual_peak_luminance array.
int depth
Number of bits in the component.
void av_spherical_tile_bounds(const AVSphericalMapping *map, size_t width, size_t height, size_t *left, size_t *top, size_t *right, size_t *bottom)
Convert the bounding fields from an AVSphericalVideo from 0.32 fixed point to pixels.
AVRational ambient_light_x
Normalized x chromaticity coordinate of the environmental ambient light in the nominal viewing enviro...
AVRational enable_strength
3Spline_enable_Strength of three Spline.
const char * element_name
name of the contained element, if provided
@ SECTION_ID_PIXEL_FORMAT_FLAGS
AVRational avg_frame_rate
Average framerate.
const AVPixFmtDescriptor * av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev)
Iterate over all pixel format descriptors known to libavutil.
static void print_dovi_metadata(WriterContext *w, const AVDOVIMetadata *dovi)
AVDictionary * format_opts
static void writer_print_integer(WriterContext *wctx, const char *key, long long int val)
#define PRINT_DISPOSITION(flagname, name)
#define SECTION_MAX_NB_CHILDREN
#define AV_DICT_IGNORE_SUFFIX
Return first entry in a dictionary whose first part corresponds to the search key,...
static int do_show_stream_tags
static char * ini_escape_str(AVBPrint *dst, const char *src)
enum AVDOVIMappingMethod mapping_idc[AV_DOVI_MAX_PIECES]
#define print_section_header(s)
@ SECTION_ID_PIXEL_FORMAT
static void writer_printf_printf(WriterContext *wctx, const char *fmt,...)
#define AV_LOG_VERBOSE
Detailed information.
@ SECTION_ID_PROGRAM_STREAM
#define AV_NOWARN_DEPRECATED(code)
Disable warnings about deprecated features This is useful for sections of code kept for backward comp...
void show_help_children(const AVClass *class, int flags)
Show help for all options with given flags in class and all its children.
@ AV_FRAME_DATA_DISPLAYMATRIX
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
Return the number of bits per pixel used by the pixel format described by pixdesc.
int64_t duration
Duration of this packet in AVStream->time_base units, 0 if unknown.
uint32_t codec_tag
Additional information about the codec (corresponds to the AVI FOURCC).
@ AV_SPHERICAL_EQUIRECTANGULAR_TILE
Video represents a portion of a sphere mapped on a flat surface using equirectangular projection.
static int check_section_show_entries(int section_id)
static void print_section(SectionID id, int level)
int th_mode
The mode of three Spline.
int id
unique id identifying a section
static const AVOption writer_options[]
int flags
Frame flags, a combination of AV_FRAME_FLAGS.
enum AVChannelOrder order
Channel order used in this layout.
AVColorPrimaries
Chromaticity coordinates of the source primaries.
const char * avcodec_profile_name(enum AVCodecID codec_id, int profile)
Return a name for the specified profile, if available.
int av_read_frame(AVFormatContext *s, AVPacket *pkt)
Return the next frame of a stream.
static void writer_register_all(void)
uint8_t mapping_color_space
static const char * output_filename
int nb_channels
Number of channels in this layout.
static int show_tags(WriterContext *w, AVDictionary *tags, int section_id)
int64_t avio_size(AVIOContext *s)
Get the filesize.
size_t av_strlcatf(char *dst, size_t size, const char *fmt,...)
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
static int do_show_format_tags
void av_packet_free(AVPacket **pkt)
Free the packet, if the packet is reference counted, it will be unreferenced first.
const char * av_chroma_location_name(enum AVChromaLocation location)
const char * unique_name
unique section name, in case the name is ambiguous
void(* print_string)(WriterContext *wctx, const char *, const char *)
static int do_show_frames
static void json_print_int(WriterContext *wctx, const char *key, long long int value)
@ AV_FIELD_BT
Bottom coded first, top displayed first.
static av_cold int compact_init(WriterContext *wctx)
#define AV_FRAME_FLAG_TOP_FIELD_FIRST
A flag to mark frames where the top field is displayed first if the content is interlaced.
static void xml_print_section_footer(WriterContext *wctx)
AVBufferRef * opaque_ref
Frame owner's private data.
Content light level needed by to transmit HDR over HDMI (CTA-861.3).
@ AV_PKT_DATA_DOVI_CONF
DOVI configuration ref: dolby-vision-bitstreams-within-the-iso-base-media-file-format-v2....
static int do_show_library_versions
static av_always_inline int process_frame(WriterContext *w, InputFile *ifile, AVFrame *frame, const AVPacket *pkt, int *packet_new)
enum AVColorPrimaries color_primaries
static void writer_print_data(WriterContext *wctx, const char *name, const uint8_t *data, int size)
void avformat_close_input(AVFormatContext **s)
Close an opened input AVFormatContext.
enum AVChromaLocation chroma_location
static int match_section(const char *section_name, int show_all_entries, AVDictionary *entries)
#define SECTION_FLAG_HAS_TYPE
For these sections the element_name field is mandatory.
static const char unit_hertz_str[]
#define AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES
exclude control codes not accepted by XML
@ AV_FIELD_TT
Top coded_first, top displayed first.
static int writer_close(WriterContext **wctx)
#define SHOW_OPTIONAL_FIELDS_NEVER
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...
int three_Spline_enable_flag
indicates 3Spline_enable_flag in the base parameter, This flag indicates that transfer three Spline o...
static void writer_print_data_hash(WriterContext *wctx, const char *name, const uint8_t *data, int size)
static int show_optional_fields
static void json_print_section_footer(WriterContext *wctx)
const char * av_color_space_name(enum AVColorSpace space)
static int opt_pretty(void *optctx, const char *opt, const char *arg)
const struct AVCodec * codec
AVBufferRef * opaque_ref
AVBufferRef for free use by the API user.
static const AVOption json_options[]
static const AVOption default_options[]
static const char * writer_get_name(void *p)
const char * av_hash_get_name(const AVHashContext *ctx)
static void print_chroma_location(WriterContext *w, enum AVChromaLocation chroma_location)
AVRational th_delta1
3Spline_TH_Delta1 of three Spline.
void(* uninit)(WriterContext *wctx)
if it could not because there are no more frames
#define SECTION_FLAG_HAS_VARIABLE_FIELDS
the section may contain a variable number of fields with variable keys.
static const Writer json_writer
int refs
number of reference frames
#define AVERROR_OPTION_NOT_FOUND
Option not found.
uint8_t num_windows
The number of processing windows.
#define AV_BPRINT_SIZE_AUTOMATIC
static void default_print_int(WriterContext *wctx, const char *key, long long int value)
static double val(void *priv, double ch)
AVChannelLayout ch_layout
Channel layout of the audio data.
static av_cold int json_init(WriterContext *wctx)
void show_help_default(const char *opt, const char *arg)
Per-fftool specific help handler.
static const char * c_escape_str(AVBPrint *dst, const char *src, const char sep, void *log_ctx)
Apply C-language-like string escaping.
@ SECTION_ID_FRAME_SIDE_DATA_PIECE
#define us(width, name, range_min, range_max, subs,...)
int av_opt_set(void *obj, const char *name, const char *val, int search_flags)
static int show_log(WriterContext *w, int section_ids, int section_id, int log_level)
int64_t duration
Decoding: duration of the stream, in stream time base.
AVRational ambient_illuminance
Environmental illuminance of the ambient viewing environment in lux.
static const char * input_filename
#define print_duration_ts(k, v)
int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)
Reduce a fraction.
int avformat_network_init(void)
Do global initialization of network libraries.
@ AV_FIELD_TB
Top coded first, bottom displayed first.
static int do_read_packets
static int opt_read_intervals(void *optctx, const char *opt, const char *arg)
void avsubtitle_free(AVSubtitle *sub)
Free all allocated data in the given subtitle struct.
@ AV_PKT_DATA_WEBVTT_SETTINGS
The optional settings (rendering instructions) that immediately follow the timestamp specifier of a W...
static void close_input_file(InputFile *ifile)
AVFrame * av_frame_alloc(void)
Allocate an AVFrame and set its fields to default values.
static int parse_read_intervals(const char *intervals_spec)
int64_t bit_rate
Total stream bitrate in bit/s, 0 if not available.
int av_get_bits_per_sample(enum AVCodecID codec_id)
Return codec bits per sample.
enum AVColorTransferCharacteristic color_trc
int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, int *got_sub_ptr, const AVPacket *avpkt)
Decode a subtitle message.
static void json_print_item_str(WriterContext *wctx, const char *key, const char *value)
static const Writer default_writer
static void writer_print_time(WriterContext *wctx, const char *key, int64_t ts, const AVRational *time_base, int is_duration)
static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, AVFormatContext *fmt_ctx)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
AVDictionary * metadata
Metadata that applies to the whole file.
#define FF_ARRAY_ELEMS(a)
#define AV_PKT_FLAG_CORRUPT
The packet content is corrupted.
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,...
#define AV_PROFILE_UNKNOWN
static uint64_t * nb_streams_frames
#define AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES
Within AV_ESCAPE_MODE_XML, additionally escape double quotes for double quoted attributes.
#define AV_FRAME_FLAG_KEY
A flag to mark frames that are keyframes.
int avformat_open_input(AVFormatContext **ps, const char *url, const AVInputFormat *fmt, AVDictionary **options)
Open an input stream and read the header.
static const struct @7 si_prefixes[]
AVDictionaryEntry * av_dict_get(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
Get a dictionary entry with matching key.
int av_channel_layout_describe(const AVChannelLayout *channel_layout, char *buf, size_t buf_size)
Get a human-readable string describing the channel layout properties.
void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl, char *line, int line_size, int *print_prefix)
Format a line of log the same way as the default callback.
void(* print_rational)(WriterContext *wctx, AVRational *q, char *sep)
AVCodecContext * avcodec_alloc_context3(const AVCodec *codec)
Allocate an AVCodecContext and set its fields to default values.
const char * av_packet_side_data_name(enum AVPacketSideDataType type)
static int do_count_frames
int64_t end
chapter start/end time in time_base units
static void * writer_child_next(void *obj, void *prev)
#define print_section_footer(s)
int64_t end
start, end in second/AV_TIME_BASE units
This struct describes the properties of a single codec described by an AVCodecID.
static void log_read_interval(const ReadInterval *interval, void *log_ctx, int log_level)
uint8_t mmr_order[AV_DOVI_MAX_PIECES]
static const char unit_bit_per_second_str[]
static int show_program(WriterContext *w, InputFile *ifile, AVProgram *program)
void * av_realloc_array(void *ptr, size_t nmemb, size_t size)
static const AVOption xml_options[]
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample format(the sample packing is implied by the sample format) and sample rate. The lists are not just lists
const struct AVInputFormat * iformat
The input container format.
@ AV_CHANNEL_ORDER_UNSPEC
Only the channel count is specified, without any further information about the channel order.
static double av_q2d(AVRational a)
Convert an AVRational to a double.
int av_hash_alloc(AVHashContext **ctx, const char *name)
Allocate a hash context for the algorithm specified by name.
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(* init)(AVBSFContext *ctx)
AVRational targeted_system_display_maximum_luminance
The nominal maximum display luminance of the targeted system display, in units of 0....
#define print_fmt(k, f,...)
int attribute_align_arg avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame)
Return decoded output data from a decoder or encoder (when the AV_CODEC_FLAG_RECON_FRAME flag is used...
#define av_assert0(cond)
assert() equivalent, that is always enabled.
static void xml_print_str(WriterContext *wctx, const char *key, const char *value)
#define AVIO_FLAG_WRITE
write-only
int setup_find_stream_info_opts(AVFormatContext *s, AVDictionary *codec_opts, AVDictionary ***dst)
Setup AVCodecContext options for avformat_find_stream_info().
static int probe_file(WriterContext *wctx, const char *filename, const char *print_filename)
uint8_t mastering_display_actual_peak_luminance_flag
This flag shall be equal to 0 in bitstreams conforming to this version of this Specification.
int bits_per_raw_sample
Bits per sample/pixel of internal libavcodec pixel/sample format.
void(* writer_w8)(WriterContext *wctx, int b)
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream *stream, AVFrame *frame)
Guess the sample aspect ratio of a frame, based on both the stream and the frame aspect ratio.
static void flat_print_str(WriterContext *wctx, const char *key, const char *value)
@ AV_PKT_DATA_STEREO3D
This side data should be associated with a video stream and contains Stereoscopic 3D information in f...
static void ffprobe_show_program_version(WriterContext *w)
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq)
Rescale a 64-bit integer by 2 rational numbers.
int64_t pts
Same as packet pts, in AV_TIME_BASE.
static enum AVPixelFormat pixel_formats[]
static int do_show_chapter_tags
uint8_t log2_chroma_w
Amount to shift the luma width right to find the chroma width.
static int do_show_pixel_format_components
static void xml_print_section_header(WriterContext *wctx, void *data)
int nested_section[SECTION_MAX_NB_LEVELS]
int64_t rc_max_rate
maximum bitrate
static const Writer flat_writer
const char * av_get_sample_fmt_name(enum AVSampleFormat sample_fmt)
Return the name of sample_fmt, or NULL if sample_fmt is not recognized.
int filter_codec_opts(const AVDictionary *opts, enum AVCodecID codec_id, AVFormatContext *s, AVStream *st, const AVCodec *codec, AVDictionary **dst)
Filter out options for given codec.
int nb_coded_side_data
Amount of entries in coded_side_data.
static const char * flat_escape_value_str(AVBPrint *dst, const char *src)
static int do_show_chapters
This structure describes the bitrate properties of an encoded bitstream.
int probe_score
format probing score.
static int show_chapters(WriterContext *w, InputFile *ifile)
uint8_t poly_order[AV_DOVI_MAX_PIECES]
@ AV_FRAME_DATA_DYNAMIC_HDR_VIVID
HDR Vivid dynamic metadata associated with a video frame.
static int find_stream_info
#define FF_CODEC_PROPERTY_FILM_GRAIN
int flags
Additional information about the frame packing.
static int do_show_pixel_format_flags
uint8_t percentage
The percentage value corresponding to a specific percentile linearized RGB value in the processing wi...
#define SECTION_FLAG_IS_WRAPPER
the section only contains other sections, but has no data at its own level
void avio_flush(AVIOContext *s)
Force flushing of buffered data.
static int open_input_file(InputFile *ifile, const char *filename, const char *print_filename)
uint64_t linear_deadzone_threshold
const char * av_color_range_name(enum AVColorRange range)
@ AVDISCARD_ALL
discard all
void init_dynload(void)
Initialize dynamic library loading.
static ReadInterval * read_intervals
AVCodecParameters * codecpar
Codec parameters associated with this stream.
int avcodec_parameters_to_context(AVCodecContext *codec, const struct AVCodecParameters *par)
Fill the codec context based on the values from the supplied codec parameters.
#define LIBAVUTIL_VERSION_INT
AVIOContext * avio
the I/O context used to write
uint8_t application_version
Application version in the application defining document in ST-2094 suite.
Describe the class of an AVClass context structure.
const AVClass * avcodec_get_class(void)
Get the AVClass for AVCodecContext.
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented.
static void compact_print_str(WriterContext *wctx, const char *key, const char *value)
const char * av_hash_names(int i)
Get the names of available hash algorithms.
static void print_ambient_viewing_environment(WriterContext *w, const AVAmbientViewingEnvironment *env)
#define SET_DO_SHOW(id, varname)
static void print_color_range(WriterContext *w, enum AVColorRange color_range)
const char program_name[]
program name, defined by the program for show_version().
static const Writer compact_writer
uint8_t dv_bl_signal_compatibility_id
#define AV_DICT_MULTIKEY
Allow to store several equal keys in the dictionary.
uint8_t nb_components
The number of components each pixel has, (1-4)
void av_hash_init(AVHashContext *ctx)
Initialize or reset a hash context.
static void compact_print_int(WriterContext *wctx, const char *key, long long int value)
static void ERROR(const char *str)
static int do_read_frames
void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_chars, enum AVEscapeMode mode, int flags)
Escape the content in src and append it to dstbuf.
@ SECTION_ID_LIBRARY_VERSION
void avcodec_free_context(AVCodecContext **avctx)
Free the codec context and everything associated with it and write NULL to the provided pointer.
static struct AVHashContext * hash
Rational number (pair of numerator and denominator).
#define writer_printf(wctx_, fmt_,...)
#define SHOW_OPTIONAL_FIELDS_ALWAYS
enum AVPacketSideDataType type
attribute_deprecated int coded_picture_number
picture number in bitstream order
AVIOContext * pb
I/O context.
void av_log_set_flags(int arg)
@ AV_FRAME_DATA_ICC_PROFILE
The data contains an ICC profile as an opaque octet buffer following the format described by ISO 1507...
This struct represents dynamic metadata for color volume transform - CUVA 005.1:2021 standard.
char * name
name of this writer instance
@ AV_FRAME_DATA_MASTERING_DISPLAY_METADATA
Mastering display metadata associated with a video frame.
const char * av_color_primaries_name(enum AVColorPrimaries primaries)
void av_opt_free(void *obj)
Free all allocated objects in obj.
int av_parse_time(int64_t *timeval, const char *timestr, int duration)
Parse timestr and return in *time a corresponding number of microseconds.
static void print_pkt_side_data(WriterContext *w, AVCodecParameters *par, const AVPacketSideData *sd, SectionID id_data)
#define AV_DICT_DONT_OVERWRITE
Don't overwrite existing entries.
int64_t pkt_dts
DTS copied from the AVPacket that triggered returning this frame.
int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options)
Initialize the AVCodecContext to use the given AVCodec.
static av_cold int xml_init(WriterContext *wctx)
const struct section * sections
array containing all sections
void avio_w8(AVIOContext *s, int b)
void av_hash_update(AVHashContext *ctx, const uint8_t *src, size_t len)
Update a hash context with additional data.
static const Writer csv_writer
static void print_color_trc(WriterContext *w, enum AVColorTransferCharacteristic color_trc)
void(* print_integer)(WriterContext *wctx, const char *, long long int)
AVChannelLayout ch_layout
Audio only.
int64_t mmr_constant[AV_DOVI_MAX_PIECES]
static int do_show_programs
@ AV_FRAME_DATA_AFD
Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 using AVAc...
uint64_t flags
Combination of AV_PIX_FMT_FLAG_...
static int read_interval_packets(WriterContext *w, InputFile *ifile, const ReadInterval *interval, int64_t *cur_ts)
static const OptionDef real_options[]
@ AV_PKT_DATA_CONTENT_LIGHT_LEVEL
Content light level (based on CTA-861.3).
@ AVCOL_RANGE_UNSPECIFIED
#define WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER
#define WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
static const char unit_byte_str[]
const int program_birth_year
program birth year, defined by the program for show_banner()
int sample_rate
Audio only.
#define pthread_mutex_unlock(a)
void av_hash_freep(AVHashContext **ctx)
Free hash context and set hash context pointer to NULL.
static int show_format(WriterContext *w, InputFile *ifile)
int64_t nb_frames
number of frames in this stream if known or 0
const AVCodec * avcodec_find_decoder(enum AVCodecID id)
Find a registered decoder with a matching codec ID.
#define print_duration_time(k, v, tb)
@ AV_PKT_DATA_SPHERICAL
This side data should be associated with a video stream and corresponds to the AVSphericalMapping str...
int64_t best_effort_timestamp
frame timestamp estimated using various heuristics, in stream time base
int extradata_size
Size of the extradata content in bytes.
static int show_value_unit
unsigned int nb_streams
Number of elements in AVFormatContext.streams.
static const AVColorPrimariesDesc color_primaries[AVCOL_PRI_NB]
static const char * print_input_filename
AVDictionary * codec_opts
static const char * csv_escape_str(AVBPrint *dst, const char *src, const char sep, void *log_ctx)
Quote fields containing special characters, check RFC4180.
int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
Read packets of a media file to get stream information.
static int writer_open(WriterContext **wctx, const Writer *writer, const char *args, const struct section *sections, int nb_sections, const char *output)
static AVFormatContext * fmt_ctx
@ WRITER_STRING_VALIDATION_IGNORE
#define writer_w8(wctx_, b_)
const char * av_spherical_projection_name(enum AVSphericalProjection projection)
Provide a human-readable name of a given AVSphericalProjection.
enum AVPictureType pict_type
Picture type of the frame.
@ AV_SPHERICAL_CUBEMAP
Video frame is split into 6 faces of a cube, and arranged on a 3x2 layout.
#define av_ts2timestr(ts, tb)
Convenience macro, the return value should be used only directly in function arguments but never stan...
unsigned int string_validation_utf8_flags
void av_log_set_callback(void(*callback)(void *, int, const char *, va_list))
Set the logging callback.
uint8_t num_rows_mastering_display_actual_peak_luminance
The number of rows in the mastering_display_actual_peak_luminance array.
static int do_show_packet_tags
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.
@ SECTION_ID_STREAM_DISPOSITION
AVFormatContext * avformat_alloc_context(void)
Allocate an AVFormatContext.
@ AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT
Ambient viewing environment metadata, as defined by H.274.
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer.
#define PRINT_PIX_FMT_FLAG(flagname, name)
static void writer_w8_avio(WriterContext *wctx, int b)
#define AV_PIX_FMT_FLAG_RGB
The pixel format contains RGB-like data (as opposed to YUV/grayscale).
AVClassCategory category
Category used for visualization (like color) This is only set if the category is equal for all object...
@ AV_PKT_DATA_DYNAMIC_HDR10_PLUS
HDR10+ dynamic metadata associated with a video frame.
attribute_deprecated int display_picture_number
picture number in display order
uint8_t num_windows
The number of processing windows.
#define av_err2str(errnum)
Convenience macro, the return value should be used only directly in function arguments but never stan...
static void ini_print_section_header(WriterContext *wctx, void *data)
char * url
input or output URL.
#define SECTION_FLAG_IS_ARRAY
the section contains an array of elements of the same type
AVRational pkt_timebase
Timebase in which pkt_dts/pts and AVPacket.dts/pts are expressed.
#define REALLOCZ_ARRAY_STREAM(ptr, cur_n, new_n)
void uninit_opts(void)
Uninitialize the cmdutils option system, in particular free the *_opts contexts and their contents.
AVClassCategory(* get_category)(void *ctx)
Callback to return the category.
@ SECTION_ID_CHAPTER_TAGS
@ AV_ESCAPE_MODE_XML
Use XML non-markup character data escaping.
static int show_private_data
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.
#define AV_NOPTS_VALUE
Undefined timestamp value.
const char *(* get_type)(void *data)
function returning a type if defined, must be defined when SECTION_FLAG_HAS_TYPE is defined
AVRational mastering_display_actual_peak_luminance[25][25]
The normalized actual peak luminance of the mastering display used for mastering the image essence.
static void xml_print_int(WriterContext *wctx, const char *key, long long int value)
static int opt_show_versions(void *optctx, const char *opt, const char *arg)
static int opt_input_file(void *optctx, const char *arg)
int profile
Codec-specific bitstream restrictions that the stream conforms to.
@ AVCHROMA_LOC_UNSPECIFIED
static void ffprobe_show_library_versions(WriterContext *w)
printf("static const uint8_t my_array[100] = {\n")
int format
format of the frame, -1 if unknown or unset Values correspond to enum AVPixelFormat for video frames,...
@ SECTION_ID_PACKETS_AND_FRAMES
static int use_value_prefix
int nested_section[SECTION_MAX_NB_LEVELS]
int64_t min_bitrate
Minimum bitrate of the stream, in bits per second.
uint32_t end_display_time
static void flat_print_int(WriterContext *wctx, const char *key, long long int value)
static void show_error(WriterContext *w, int err)
int flags
a combination or WRITER_FLAG_*
int av_packet_unpack_dictionary(const uint8_t *data, size_t size, AVDictionary **dict)
Unpack a dictionary from side_data.
void show_banner(int argc, char **argv, const OptionDef *options)
Print the program banner to stderr.
static void ini_print_str(WriterContext *wctx, const char *key, const char *value)
static void writer_put_str_avio(WriterContext *wctx, const char *str)
#define AV_OPT_SEARCH_CHILDREN
Search in possible children of the given object first.
static void print_frame_side_data(WriterContext *w, const AVFrame *frame, const AVStream *stream)
int base_param_k1
indicates k1_0 in the base parameter, base_param_k1 <= 1: k1_0 = base_param_k1 base_param_k1 > 1: res...
int64_t dts
Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed.
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
uint32_t padding
Number of pixels to pad from the edge of each cube face.
unsigned int nb_section_frame
number of the frame section in case we are in "packets_and_frames" section
const SectionID children_ids[SECTION_MAX_NB_CHILDREN+1]
list of children section IDS, terminated by -1
int64_t poly_coef[AV_DOVI_MAX_PIECES][3]
@ SECTION_ID_FRAME_SIDE_DATA_LIST
static void writer_print_section_header(WriterContext *wctx, void *data, int section_id)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
int flags
A combination of AV_PKT_FLAG values.
AVPacket * av_packet_alloc(void)
Allocate an AVPacket and set its fields to default values.
void av_dict_free(AVDictionary **pm)
Free all the memory allocated for an AVDictionary struct and all keys and values.
static int do_show_format
int64_t avg_bitrate
Average bitrate of the stream, in bits per second.
#define va_copy(dst, src)
static int writer_print_string(WriterContext *wctx, const char *key, const char *val, int flags)
#define AV_STEREO3D_FLAG_INVERT
Inverted views, Right/Bottom represents the left view.
AVDictionary * entries_to_show
static int do_show_stream_disposition
#define AV_LOG_INFO
Standard information.
uint8_t num_rows_targeted_system_display_actual_peak_luminance
The number of rows in the targeted system_display_actual_peak_luminance array.
int priv_size
private size for the writer context
AVChromaLocation
Location of chroma samples.
static const Writer * registered_writers[MAX_REGISTERED_WRITERS_NB+1]
void(* writer_printf)(WriterContext *wctx, const char *fmt,...)
static int do_count_packets
static const AVInputFormat * iformat
#define SHOW_OPTIONAL_FIELDS_AUTO
static av_always_inline int pthread_mutex_destroy(pthread_mutex_t *mutex)
@ AV_PKT_DATA_STRINGS_METADATA
A list of zero terminated key/value strings.
static struct section sections[]
char av_get_picture_type_char(enum AVPictureType pict_type)
Return a single letter to describe the given picture type pict_type.
uint64_t vbv_delay
The delay between the time the packet this structure is associated with is received and the time when...
void(* writer_put_str)(WriterContext *wctx, const char *str)
@ SECTION_ID_PROGRAM_STREAM_TAGS
int avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt)
Supply raw packet data as input to a decoder.
@ AV_PKT_DATA_CPB_PROPERTIES
This side data corresponds to the AVCPBProperties struct.
int nb_samples
number of audio samples (per channel) described by this frame
@ AV_FRAME_DATA_CONTENT_LIGHT_LEVEL
Content light level (based on CTA-861.3).
int32_t roll
Rotation around the forward vector [-180, 180].
#define i(width, name, range_min, range_max)
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
char * av_timecode_make_smpte_tc_string2(char *buf, AVRational rate, uint32_t tcsmpte, int prevent_df, int skip_field)
Get the timecode string from the SMPTE timecode format.
and forward the test the status of outputs and forward it to the corresponding return FFERROR_NOT_READY If the filters stores internally one or a few frame for some it can consider them to be part of the FIFO and delay acknowledging a status change accordingly Example code
unsigned properties
Properties of the stream that gets decoded.
int64_t id
unique ID to identify the chapter
static void print_color_space(WriterContext *w, enum AVColorSpace color_space)
static void ffprobe_show_pixel_formats(WriterContext *w)
@ WRITER_STRING_VALIDATION_NB
uint8_t * av_packet_get_side_data(const AVPacket *pkt, enum AVPacketSideDataType type, size_t *size)
Get side information from packet.
static void show_usage(void)
unsigned int nb_item[SECTION_MAX_NB_LEVELS]
number of the item printed in the given section, starting from 0
static const AVOption csv_options[]
AVRational targeted_system_display_maximum_luminance
The nominal maximum display luminance of the targeted system display, in multiples of 1....
static void show_subtitle(WriterContext *w, AVSubtitle *sub, AVStream *stream, AVFormatContext *fmt_ctx)
static void print_private_data(WriterContext *w, void *priv_data)
#define av_malloc_array(a, b)
static const char * get_packet_side_data_type(void *data)
AVColorSpace
YUV colorspace type.
@ AV_FIELD_BB
Bottom coded first, bottom displayed first.
int64_t max_bitrate
Maximum bitrate of the stream, in bits per second.
uint32_t num_y_partitions
static void writer_print_ts(WriterContext *wctx, const char *key, int64_t ts, int is_duration)
int parse_options(void *optctx, int argc, char **argv, const OptionDef *options, int(*parse_arg_function)(void *, const char *))
static int opt_show_entries(void *optctx, const char *opt, const char *arg)
static void default_print_section_header(WriterContext *wctx, void *data)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default value
static av_const int av_toupper(int c)
Locale-independent conversion of ASCII characters to uppercase.
#define AV_OPT_FLAG_DECODING_PARAM
a generic parameter which can be set by the user for demuxing or decoding
@ SECTION_ID_FRAME_SIDE_DATA
@ SECTION_ID_FRAME_SIDE_DATA_COMPONENT_LIST
static int opt_sections(void *optctx, const char *opt, const char *arg)
const char *(* escape_str)(AVBPrint *dst, const char *src, const char sep, void *log_ctx)
void * priv
private data for use by the filter
attribute_deprecated int64_t pkt_duration
duration of the corresponding packet, expressed in AVStream->time_base units, 0 if unknown.
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
@ AV_PKT_DATA_MPEGTS_STREAM_ID
MPEGTS stream ID as uint8_t, this is required to pass the stream ID information from the demuxer to t...
New fields can be added to the end with minor version bumps.
enum AVColorRange color_range
Video only.
AVFrameSideData ** side_data
static char * upcase_string(char *dst, size_t dst_size, const char *src)
Coefficients of the non-linear inverse quantization.
int base_param_Delta_enable_mode
This flag indicates that delta mode of base paramter(for value of 1)
AVPacketSideData * coded_side_data
Additional data associated with the entire stream.
@ SECTION_ID_PACKET_SIDE_DATA
const AVOption * av_opt_next(const void *obj, const AVOption *last)
Iterate over all AVOptions belonging to obj.
static int use_value_sexagesimal_format
@ SECTION_ID_LIBRARY_VERSIONS
#define AV_FRAME_FLAG_INTERLACED
A flag to mark frames whose content is interlaced.
void * av_calloc(size_t nmemb, size_t size)
@ SECTION_ID_FRAME_SIDE_DATA_TIMECODE
enum AVFieldOrder field_order
Video only.
@ SECTION_ID_PROGRAM_VERSION
This struct represents dynamic metadata for color volume transform - application 4 of SMPTE 2094-40:2...
static const char * none_escape_str(AVBPrint *dst, const char *src, const char sep, void *log_ctx)
AVDOVIReshapingCurve curves[3]
static const Writer ini_writer
void parse_loglevel(int argc, char **argv, const OptionDef *options)
Find the '-loglevel' option in the command line args and apply it.
uint64_t linear_deadzone_slope
static void json_print_str(WriterContext *wctx, const char *key, const char *value)
static void ini_print_int(WriterContext *wctx, const char *key, long long int value)
char * string_validation_replacement
AVBufferRef * av_buffer_allocz(size_t size)
Same as av_buffer_alloc(), except the returned buffer will be initialized to zero.
int id
Format-specific stream ID.
@ AV_FRAME_DATA_GOP_TIMECODE
The GOP timecode in 25 bit timecode format.
static LogBuffer * log_buffer
void avcodec_flush_buffers(AVCodecContext *avctx)
Reset the internal codec state / flush internal buffers.
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
int64_t buffer_size
The size of the buffer to which the ratecontrol is applied, in bits.
int32_t pitch
Rotation around the right vector [-90, 90].
void log_callback_help(void *ptr, int level, const char *fmt, va_list vl)
Trivial log callback.
enum AVStereo3DType type
How views are packed within the video.
static int parse_read_interval(const char *interval_spec, ReadInterval *interval)
Parse interval specification, according to the format: INTERVAL ::= [START|+START_OFFSET][%[END|+END_...
HDR Vivid three spline params.
void av_bprintf(AVBPrint *buf, const char *fmt,...)
AVPacketSideData * side_data
Additional packet data that can be provided by the container.
static av_cold int flat_init(WriterContext *wctx)
#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 CMDUTILS_COMMON_OPTIONS
#define AV_DICT_MATCH_CASE
Only get an entry with exact-case key match.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_RL32
int avio_vprintf(AVIOContext *s, const char *fmt, va_list ap)
Writes a formatted string to the context taking a va_list.
static int log_buffer_size
enum AVChromaLocation chroma_location
@ AV_PKT_DATA_WEBVTT_IDENTIFIER
The optional first identifier line of a WebVTT cue.
int avformat_network_deinit(void)
Undo the initialization done by avformat_network_init.
static void json_print_section_header(WriterContext *wctx, void *data)
const Writer * writer
the Writer of which this is an instance
AVRational base_param_m_n
base_param_m_n in the base parameter, in multiples of 1.0/10.
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.
@ AV_FRAME_DATA_DYNAMIC_HDR_PLUS
HDR dynamic metadata associated with a video frame.
AVRational base_param_m_a
base_param_m_a in the base parameter, in multiples of 1.0/1023.
main external API structure.
int index
stream index in AVFormatContext
char * av_timecode_make_mpeg_tc_string(char *buf, uint32_t tc25bit)
Get the timecode string from the 25-bit timecode format (MPEG GOP format).
uint8_t mapping_chroma_format_idc
#define AV_OPT_FLAG_EXPORT
The option is intended for exporting values to the caller.
static uint64_t * nb_streams_packets
uint8_t targeted_system_display_actual_peak_luminance_flag
This flag shall be equal to 0 in bit streams conforming to this version of this Specification.
static int do_show_program_version
void(* print_section_header)(WriterContext *wctx, void *data)
#define DEFINE_OPT_SHOW_SECTION(section, target_section_id)
#define PRINT_STRING_VALIDATE
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...
AVDictionary * metadata
metadata.
AVRational th_enable
3Spline_TH_enable of three Spline.
void av_bprint_clear(AVBPrint *buf)
Reset the string to "" but keep internal allocated data.
@ SECTION_ID_PIXEL_FORMATS
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 print_str_validate(k, v)
enum AVFrameSideDataType type
static int swscale(SwsContext *c, const uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[], int dstSliceY, int dstSliceH)
static char * output_format
@ AV_PKT_DATA_AFD
Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 using AVAc...
static void compact_print_section_header(WriterContext *wctx, void *data)
AVComponentDescriptor comp[4]
Parameters that describe how pixels are packed.
static const AVOption ini_options[]
AVRational r_frame_rate
Real base framerate of the stream.
static void print_dynamic_hdr10_plus(WriterContext *w, const AVDynamicHDRPlus *metadata)
@ AV_PKT_DATA_SKIP_SAMPLES
Recommmends skipping the specified number of samples.
#define CHECK_COMPLIANCE(opt, opt_name)
static const OptionDef * options
static int do_show_pixel_formats
@ AV_CODEC_ID_PROBE
codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
const AVInputFormat * av_find_input_format(const char *short_name)
Find AVInputFormat based on the short name of the input format.
#define FF_CODEC_PROPERTY_CLOSED_CAPTIONS
int avio_open(AVIOContext **s, const char *url, int flags)
Create and initialize a AVIOContext for accessing the resource indicated by url.
int64_t duration
Duration of the stream, in AV_TIME_BASE fractional seconds.
Color tone mapping parameters at a processing window in a dynamic metadata for CUVA 005....
#define DEFINE_WRITER_CLASS(name)
static int opt_print_filename(void *optctx, const char *opt, const char *arg)
int coded_width
Bitstream width / height, may be different from width/height e.g.
@ AV_PKT_DATA_AUDIO_SERVICE_TYPE
This side data should be associated with an audio stream and corresponds to enum AVAudioServiceType.
char * av_strdup(const char *s)
Duplicate a string.
static int do_show_program_tags
@ WRITER_STRING_VALIDATION_REPLACE
void av_log_default_callback(void *ptr, int level, const char *fmt, va_list vl)
Default logging callback.
static void writer_printf_avio(WriterContext *wctx, const char *fmt,...)
void av_hash_final_hex(struct AVHashContext *ctx, uint8_t *dst, int size)
Finalize a hash context and store the hexadecimal representation of the actual hash value as a string...
int video_delay
Video only.
const char * item_start_end
Structure to hold side data for an AVFrame.
AVHDRVividColorTransformParams params[3]
The color transform parameters for every processing window.
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
@ SECTION_ID_FRAME_SIDE_DATA_TIMECODE_LIST
@ WRITER_STRING_VALIDATION_FAIL
static const AVOption compact_options[]
int has_nested_elems[SECTION_MAX_NB_LEVELS]
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
This structure stores compressed data.
unsigned MaxFALL
Max average light level per frame (cd/m^2).
uint16_t pivots[AV_DOVI_MAX_PIECES+1]
int nb_sections
number of sections
int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags)
Set the given entry in *pm, overwriting an existing entry.
int av_dict_copy(AVDictionary **dst, const AVDictionary *src, int flags)
Copy entries from one AVDictionary struct into another.
int64_t pos
byte position in stream, -1 if unknown
AVRational targeted_system_display_actual_peak_luminance[25][25]
The normalized actual peak luminance of the targeted system display.
static void print_dynamic_hdr_vivid(WriterContext *w, const AVDynamicHDRVivid *metadata)
const char * av_frame_side_data_name(enum AVFrameSideDataType type)
#define SHOW_LIB_VERSION(libname, LIBNAME)
static void writer_print_rational(WriterContext *wctx, const char *key, AVRational q, char sep)
#define flags(name, subs,...)
static void flat_print_section_header(WriterContext *wctx, void *data)
int64_t bit_rate
The average bitrate of the encoded data (in bits per second).
int av_opt_get(void *obj, const char *name, int search_flags, uint8_t **out_val)
uint8_t system_start_code
The system start code.
int64_t start_time
Position of the first frame of the component, in AV_TIME_BASE fractional seconds.
static void writer_print_section_footer(WriterContext *wctx)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
@ SECTION_ID_FRAME_SIDE_DATA_PIECE_LIST
int base_param_k3
indicates k3_0 in the base parameter, base_param_k3 == 1: k3_0 = base_param_k3 base_param_k3 == 2: k3...
@ SECTION_ID_PROGRAM_STREAMS
const char * av_stereo3d_type_name(unsigned int type)
Provide a human-readable name of a given stereo3d type.
static const char * get_frame_side_data_type(void *data)
int parent_log_context_offset
Offset in the structure where a pointer to the parent context for logging is stored.
#define AVERROR_EXIT
Immediate exit was requested; the called function should not be restarted.
void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
Append char c n times to a print buffer.
AVClassCategory parent_category
@ SECTION_ID_PROGRAM_STREAM_DISPOSITION
const AVCodecDescriptor * avcodec_descriptor_get(enum AVCodecID id)
AVRational th_delta2
3Spline_TH_Delta2 of three Spline.
Stereo 3D type: this structure describes how two videos are packed within a single video surface,...
int64_t start_time
Decoding: pts of the first frame of the stream in presentation order, in stream time base.
static char * show_data_hash
AVRational th_enable_mb
three_Spline_TH_enable_MB is in the range of 0.0 to 1.0, inclusive and in multiples of 1....
const char *(* item_name)(void *ctx)
A pointer to a function which returns the name of a context instance ctx associated with the class.
static void print_primaries(WriterContext *w, enum AVColorPrimaries color_primaries)
AVRational ambient_light_y
Normalized y chromaticity coordinate of the environmental ambient light in the nominal viewing enviro...
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.
static int do_show_streams
AVColorRange
Visual content value range.
AVRational time_base
time base in which the start/end timestamps are specified
AVHDRVivid3SplineParams three_spline[2]
void av_bprint_append_data(AVBPrint *buf, const char *data, unsigned size)
Append data to a print buffer.
AVRational base_param_m_p
base_param_m_p in the base parameter, in multiples of 1.0/16383.
static char * stream_specifier
static void writer_print_integers(WriterContext *wctx, const char *name, uint8_t *data, int size, const char *format, int columns, int bytes, int offset_add)
static void log_callback(void *ptr, int level, const char *fmt, va_list vl)
int initial_padding
Audio only.
void * priv_data
Format private data.
Dolby Vision RPU data mapping parameters.
#define print_time(k, v, tb)
static void default_print_str(WriterContext *wctx, const char *key, const char *value)
This structure describes how to handle spherical videos, outlining information about projection,...
const char * av_color_transfer_name(enum AVColorTransferCharacteristic transfer)
#define print_str_opt(k, v)
static av_const int av_tolower(int c)
Locale-independent conversion of ASCII characters to lowercase.
unsigned int nb_section_packet
number of the packet section in case we are in "packets_and_frames" section
const AVDictionaryEntry * av_dict_iterate(const AVDictionary *m, const AVDictionaryEntry *prev)
Iterate over a dictionary.
int parse_number(const char *context, const char *numstr, int type, double min, double max, double *dst)
Parse a string and return its corresponding value as a double.
uint32_t start_display_time
int terminate_line[SECTION_MAX_NB_LEVELS]
static void default_print_section_footer(WriterContext *wctx)
uint8_t log2_chroma_h
Amount to shift the luma height right to find the chroma height.
@ SECTION_ID_PIXEL_FORMAT_COMPONENT
int repeat_pict
Number of fields in this frame which should be repeated, i.e.
int32_t yaw
Rotation around the up vector [-180, 180].
AVRational base_param_m_b
base_param_m_b in the base parameter, in multiples of 1/1023.
#define AV_DICT_DONT_STRDUP_KEY
Take ownership of a key that's been allocated with av_malloc() or another memory allocation function.
AVRational base_param_m_m
base_param_m_m in the base parameter, in multiples of 1.0/10.
static const char unit_second_str[]
static void * av_x_if_null(const void *p, const void *x)
Return x default pointer in case p is NULL.
uint8_t num_cols_mastering_display_actual_peak_luminance
The number of columns in the mastering_display_actual_peak_luminance array.
uint32_t num_x_partitions
double av_display_rotation_get(const int32_t matrix[9])
Extract the rotation component of the transformation matrix.
static const AVClass writer_class
const char * av_get_pix_fmt_name(enum AVPixelFormat pix_fmt)
Return the short name for a pixel format, NULL in case pix_fmt is unknown.
static int do_show_packets
static int show_programs(WriterContext *w, InputFile *ifile)
#define av_fourcc2str(fourcc)
#define pthread_mutex_lock(a)
#define print_list_fmt(k, f, n, m,...)
static void writer_w8_printf(WriterContext *wctx, int b)
static void bprint_bytes(AVBPrint *bp, const uint8_t *ubuf, size_t ubuf_size)
void avdevice_register_all(void)
Initialize libavdevice and register all the input and output devices.
static int writer_register(const Writer *writer)