FFmpeg
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
vf_showinfo.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2011 Stefano Sabatini
3  * This file is part of FFmpeg.
4  *
5  * FFmpeg is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * FFmpeg is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with FFmpeg; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 /**
21  * @file
22  * filter for showing textual video frame information
23  */
24 
25 #include <ctype.h>
26 #include <inttypes.h>
27 
28 #include "libavutil/bswap.h"
29 #include "libavutil/adler32.h"
30 #include "libavutil/display.h"
31 #include "libavutil/dovi_meta.h"
32 #include "libavutil/imgutils.h"
33 #include "libavutil/internal.h"
37 #include "libavutil/opt.h"
38 #include "libavutil/pixdesc.h"
39 #include "libavutil/spherical.h"
40 #include "libavutil/stereo3d.h"
41 #include "libavutil/tdrdi.h"
42 #include "libavutil/timestamp.h"
43 #include "libavutil/timecode.h"
48 #include "libavutil/uuid.h"
49 
50 #include "avfilter.h"
51 #include "filters.h"
52 #include "video.h"
53 
54 typedef struct ShowInfoContext {
55  const AVClass *class;
59 
60 #define OFFSET(x) offsetof(ShowInfoContext, x)
61 #define VF AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
62 
63 static const AVOption showinfo_options[] = {
64  { "checksum", "calculate checksums", OFFSET(calculate_checksums), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1, VF },
65  { "udu_sei_as_ascii", "try to print user data unregistered SEI as ascii character when possible",
66  OFFSET(udu_sei_as_ascii), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VF },
67  { NULL }
68 };
69 
70 AVFILTER_DEFINE_CLASS(showinfo);
71 
73 {
74  const AVSphericalMapping *spherical = (const AVSphericalMapping *)sd->data;
75  double yaw, pitch, roll;
76 
78 
79  if (spherical->yaw || spherical->pitch || spherical->roll) {
80  yaw = ((double)spherical->yaw) / (1 << 16);
81  pitch = ((double)spherical->pitch) / (1 << 16);
82  roll = ((double)spherical->roll) / (1 << 16);
83  av_log(ctx, AV_LOG_INFO, "(%f/%f/%f) ", yaw, pitch, roll);
84  }
85 
87  size_t l, t, r, b;
88  av_spherical_tile_bounds(spherical, frame->width, frame->height,
89  &l, &t, &r, &b);
92  l, t, r, b);
93  } else if (spherical->projection == AV_SPHERICAL_CUBEMAP) {
94  av_log(ctx, AV_LOG_INFO, "[pad %"PRIu32"] ", spherical->padding);
95  }
96 }
97 
99 {
100  const AVStereo3D *stereo = (const AVStereo3D *)sd->data;
101 
102  av_log(ctx, AV_LOG_INFO, "type - %s", av_stereo3d_type_name(stereo->type));
103 
104  if (stereo->flags & AV_STEREO3D_FLAG_INVERT)
105  av_log(ctx, AV_LOG_INFO, " (inverted)");
106 
107  av_log(ctx, AV_LOG_INFO, ", view - %s, primary_eye - %s", av_stereo3d_view_name(stereo->view),
109  if (stereo->baseline)
110  av_log(ctx, AV_LOG_INFO, ", baseline: %"PRIu32"", stereo->baseline);
112  av_log(ctx, AV_LOG_INFO, ", horizontal_disparity_adjustment: %0.4f",
115  av_log(ctx, AV_LOG_INFO, ", horizontal_field_of_view: %0.3f", av_q2d(stereo->horizontal_field_of_view));
116 }
117 
119 {
121  const uint32_t *tc = (const uint32_t *)sd->data;
122 
123  if ((sd->size != sizeof(uint32_t) * 4) || (tc[0] > 3)) {
124  av_log(ctx, AV_LOG_ERROR, "invalid data\n");
125  return;
126  }
127 
128  for (int j = 1; j <= tc[0]; j++) {
129  char tcbuf[AV_TIMECODE_STR_SIZE];
130  av_timecode_make_smpte_tc_string2(tcbuf, l->frame_rate, tc[j], 0, 0);
131  av_log(ctx, AV_LOG_INFO, "timecode - %s%s", tcbuf, j != tc[0] ? ", " : "");
132  }
133 }
134 
135 static void dump_roi(AVFilterContext *ctx, const AVFrameSideData *sd)
136 {
137  int nb_rois;
138  const AVRegionOfInterest *roi;
139  uint32_t roi_size;
140 
141  roi = (const AVRegionOfInterest *)sd->data;
142  roi_size = roi->self_size;
143  if (!roi_size || sd->size % roi_size != 0) {
144  av_log(ctx, AV_LOG_ERROR, "Invalid AVRegionOfInterest.self_size.\n");
145  return;
146  }
147  nb_rois = sd->size / roi_size;
148 
149  for (int i = 0; i < nb_rois; i++) {
150  roi = (const AVRegionOfInterest *)(sd->data + roi_size * i);
151  av_log(ctx, AV_LOG_INFO, "index: %d, region: (%d, %d) -> (%d, %d), qp offset: %d/%d.\n",
152  i, roi->left, roi->top, roi->right, roi->bottom, roi->qoffset.num, roi->qoffset.den);
153  }
154 }
155 
157 {
158  const AV3DReferenceDisplaysInfo *tdrdi = (const AV3DReferenceDisplaysInfo *)sd->data;
159 
160 
161  av_log(ctx, AV_LOG_INFO, "number of reference displays: %u", tdrdi->num_ref_displays);
162 }
163 
165 {
166  int nb_bboxes;
168  const AVDetectionBBox *bbox;
169 
170  header = (const AVDetectionBBoxHeader *)sd->data;
171  nb_bboxes = header->nb_bboxes;
172  av_log(ctx, AV_LOG_INFO, "source: %s\n", header->source);
173 
174  for (int i = 0; i < nb_bboxes; i++) {
175  bbox = av_get_detection_bbox(header, i);
176  av_log(ctx, AV_LOG_INFO, "index: %d,\tregion: (%d, %d) -> (%d, %d), label: %s, confidence: %d/%d.\n",
177  i, bbox->x, bbox->y, bbox->x + bbox->w, bbox->y + bbox->h,
179  if (bbox->classify_count > 0) {
180  for (int j = 0; j < bbox->classify_count; j++) {
181  av_log(ctx, AV_LOG_INFO, "\t\tclassify: label: %s, confidence: %d/%d.\n",
182  bbox->classify_labels[j], bbox->classify_confidences[j].num, bbox->classify_confidences[j].den);
183  }
184  }
185  }
186 }
187 
189 {
190  const AVMasteringDisplayMetadata *mastering_display;
191 
192  if (sd->size < sizeof(*mastering_display)) {
193  av_log(ctx, AV_LOG_ERROR, "invalid data\n");
194  return;
195  }
196 
197  mastering_display = (const AVMasteringDisplayMetadata *)sd->data;
198 
199  av_log(ctx, AV_LOG_INFO, "has_primaries:%d has_luminance:%d "
200  "r(%5.4f,%5.4f) g(%5.4f,%5.4f) b(%5.4f %5.4f) wp(%5.4f, %5.4f) "
201  "min_luminance=%f, max_luminance=%f",
202  mastering_display->has_primaries, mastering_display->has_luminance,
203  av_q2d(mastering_display->display_primaries[0][0]),
204  av_q2d(mastering_display->display_primaries[0][1]),
205  av_q2d(mastering_display->display_primaries[1][0]),
206  av_q2d(mastering_display->display_primaries[1][1]),
207  av_q2d(mastering_display->display_primaries[2][0]),
208  av_q2d(mastering_display->display_primaries[2][1]),
209  av_q2d(mastering_display->white_point[0]), av_q2d(mastering_display->white_point[1]),
210  av_q2d(mastering_display->min_luminance), av_q2d(mastering_display->max_luminance));
211 }
212 
214 {
215  AVDynamicHDRPlus *hdr_plus;
216 
217  if (sd->size < sizeof(*hdr_plus)) {
218  av_log(ctx, AV_LOG_ERROR, "invalid data\n");
219  return;
220  }
221 
222  hdr_plus = (AVDynamicHDRPlus *)sd->data;
223  av_log(ctx, AV_LOG_INFO, "application version: %d, ", hdr_plus->application_version);
224  av_log(ctx, AV_LOG_INFO, "num_windows: %d, ", hdr_plus->num_windows);
225  for (int w = 1; w < hdr_plus->num_windows; w++) {
226  AVHDRPlusColorTransformParams *params = &hdr_plus->params[w];
227  av_log(ctx, AV_LOG_INFO, w > 1 ? ", window %d { " : "window %d { ", w);
228  av_log(ctx, AV_LOG_INFO, "window_upper_left_corner: (%5.4f,%5.4f),",
231  av_log(ctx, AV_LOG_INFO, "window_lower_right_corner: (%5.4f,%5.4f), ",
234  av_log(ctx, AV_LOG_INFO, "window_upper_left_corner: (%5.4f, %5.4f), ",
237  av_log(ctx, AV_LOG_INFO, "center_of_ellipse_x: (%d,%d), ",
238  params->center_of_ellipse_x,
239  params->center_of_ellipse_y);
240  av_log(ctx, AV_LOG_INFO, "rotation_angle: %d, ",
241  params->rotation_angle);
242  av_log(ctx, AV_LOG_INFO, "semimajor_axis_internal_ellipse: %d, ",
244  av_log(ctx, AV_LOG_INFO, "semimajor_axis_external_ellipse: %d, ",
246  av_log(ctx, AV_LOG_INFO, "semiminor_axis_external_ellipse: %d, ",
248  av_log(ctx, AV_LOG_INFO, "overlap_process_option: %d}",
249  params->overlap_process_option);
250  }
251  av_log(ctx, AV_LOG_INFO, "targeted_system_display_maximum_luminance: %9.4f, ",
254  av_log(ctx, AV_LOG_INFO, "targeted_system_display_actual_peak_luminance: {");
255  for (int i = 0; i < hdr_plus->num_rows_targeted_system_display_actual_peak_luminance; i++) {
256  av_log(ctx, AV_LOG_INFO, "(");
257  for (int j = 0; j < hdr_plus->num_cols_targeted_system_display_actual_peak_luminance; j++) {
258  av_log(ctx, AV_LOG_INFO, i ? ",%5.4f" : "%5.4f",
260  }
261  av_log(ctx, AV_LOG_INFO, ")");
262  }
263  av_log(ctx, AV_LOG_INFO, "}, ");
264  }
265 
266  for (int w = 0; w < hdr_plus->num_windows; w++) {
267  AVHDRPlusColorTransformParams *params = &hdr_plus->params[w];
268  av_log(ctx, AV_LOG_INFO, "window %d {maxscl: {", w);
269  for (int i = 0; i < 3; i++) {
270  av_log(ctx, AV_LOG_INFO, i ? ",%5.4f" : "%5.4f",av_q2d(params->maxscl[i]));
271  }
272  av_log(ctx, AV_LOG_INFO, "}, average_maxrgb: %5.4f, ",
273  av_q2d(params->average_maxrgb));
274  av_log(ctx, AV_LOG_INFO, "distribution_maxrgb: {");
275  for (int i = 0; i < params->num_distribution_maxrgb_percentiles; i++) {
276  av_log(ctx, AV_LOG_INFO, "(%d,%5.4f)",
279  }
280  av_log(ctx, AV_LOG_INFO, "}, fraction_bright_pixels: %5.4f",
281  av_q2d(params->fraction_bright_pixels));
282  if (params->tone_mapping_flag) {
283  av_log(ctx, AV_LOG_INFO, ", knee_point: (%5.4f,%5.4f), ", av_q2d(params->knee_point_x), av_q2d(params->knee_point_y));
284  av_log(ctx, AV_LOG_INFO, "bezier_curve_anchors: {");
285  for (int i = 0; i < params->num_bezier_curve_anchors; i++) {
286  av_log(ctx, AV_LOG_INFO, i ? ",%5.4f" : "%5.4f",
287  av_q2d(params->bezier_curve_anchors[i]));
288  }
289  av_log(ctx, AV_LOG_INFO, "}");
290  }
291  if (params->color_saturation_mapping_flag) {
292  av_log(ctx, AV_LOG_INFO, ", color_saturation_weight: %5.4f",
294  }
295  av_log(ctx, AV_LOG_INFO, "}");
296  }
297 
299  av_log(ctx, AV_LOG_INFO, ", mastering_display_actual_peak_luminance: {");
300  for (int i = 0; i < hdr_plus->num_rows_mastering_display_actual_peak_luminance; i++) {
301  av_log(ctx, AV_LOG_INFO, "(");
302  for (int j = 0; j < hdr_plus->num_cols_mastering_display_actual_peak_luminance; j++) {
303  av_log(ctx, AV_LOG_INFO, i ? ",%5.4f" : "%5.4f",
305  }
306  av_log(ctx, AV_LOG_INFO, ")");
307  }
308  av_log(ctx, AV_LOG_INFO, "}");
309  }
310 }
311 
313 {
314  AVDynamicHDRVivid *hdr_vivid;
315 
316  if (sd->size < sizeof(*hdr_vivid)) {
317  av_log(ctx, AV_LOG_ERROR, "invalid hdr vivid data\n");
318  return;
319  }
320 
321  hdr_vivid = (AVDynamicHDRVivid *)sd->data;
322  av_log(ctx, AV_LOG_INFO, "system_start_code: %d, ", hdr_vivid->system_start_code);
323  av_log(ctx, AV_LOG_INFO, "num_windows: %d, ", hdr_vivid->num_windows);
324  for (int w = 0; w < hdr_vivid->num_windows; w++) {
325  const AVHDRVividColorTransformParams *params = &hdr_vivid->params[w];
326 
327  av_log(ctx, AV_LOG_INFO, "minimum_maxrgb[%d]: %.4f, ", w, av_q2d(params->minimum_maxrgb));
328  av_log(ctx, AV_LOG_INFO, "average_maxrgb[%d]: %.4f, ", w, av_q2d(params->average_maxrgb));
329  av_log(ctx, AV_LOG_INFO, "variance_maxrgb[%d]:%.4f, ", w, av_q2d(params->variance_maxrgb));
330  av_log(ctx, AV_LOG_INFO, "maximum_maxrgb[%d]: %.4f, ", w, av_q2d(params->maximum_maxrgb));
331  }
332 
333  for (int w = 0; w < hdr_vivid->num_windows; w++) {
334  const AVHDRVividColorTransformParams *params = &hdr_vivid->params[w];
335 
336  av_log(ctx, AV_LOG_INFO, "tone_mapping_mode_flag[%d]: %d, ", w, params->tone_mapping_mode_flag);
337  av_log(ctx, AV_LOG_INFO, "tone_mapping_param_num[%d]: %d, ", w, params->tone_mapping_param_num);
338  if (params->tone_mapping_mode_flag) {
339  for (int i = 0; i < params->tone_mapping_param_num; i++) {
340  const AVHDRVividColorToneMappingParams *tm_params = &params->tm_params[i];
341 
342  av_log(ctx, AV_LOG_INFO, "targeted_system_display_maximum_luminance[%d][%d]: %.4f, ",
344  av_log(ctx, AV_LOG_INFO, "base_enable_flag[%d][%d]: %d, ",
345  w, i, tm_params->base_enable_flag);
346  if (tm_params->base_enable_flag) {
347  av_log(ctx, AV_LOG_INFO, "base_param_m_p[%d][%d]: %.4f, ", w, i, av_q2d(tm_params->base_param_m_p));
348  av_log(ctx, AV_LOG_INFO, "base_param_m_m[%d][%d]: %.4f, ", w, i, av_q2d(tm_params->base_param_m_m));
349  av_log(ctx, AV_LOG_INFO, "base_param_m_a[%d][%d]: %.4f, ", w, i, av_q2d(tm_params->base_param_m_a));
350  av_log(ctx, AV_LOG_INFO, "base_param_m_b[%d][%d]: %.4f, ", w, i, av_q2d(tm_params->base_param_m_b));
351  av_log(ctx, AV_LOG_INFO, "base_param_m_n[%d][%d]: %.4f, ", w, i, av_q2d(tm_params->base_param_m_n));
352  av_log(ctx, AV_LOG_INFO, "base_param_k1[%d][%d]: %d, ", w, i, tm_params->base_param_k1);
353  av_log(ctx, AV_LOG_INFO, "base_param_k2[%d][%d]: %d, ", w, i, tm_params->base_param_k2);
354  av_log(ctx, AV_LOG_INFO, "base_param_k3[%d][%d]: %d, ", w, i, tm_params->base_param_k3);
355  av_log(ctx, AV_LOG_INFO, "base_param_Delta_enable_mode[%d][%d]: %d, ", w, i,
356  tm_params->base_param_Delta_enable_mode);
357  av_log(ctx, AV_LOG_INFO, "base_param_Delta[%d][%d]: %.4f, ", w, i, av_q2d(tm_params->base_param_Delta));
358  }
359  av_log(ctx, AV_LOG_INFO, "3Spline_enable_flag[%d][%d]: %d, ",
360  w, i, tm_params->three_Spline_enable_flag);
361  if (tm_params->three_Spline_enable_flag) {
362  for (int j = 0; j < tm_params->three_Spline_num; j++) {
363  const AVHDRVivid3SplineParams *three_spline = &tm_params->three_spline[j];
364  av_log(ctx, AV_LOG_INFO, "3Spline_TH_mode[%d][%d]: %d, ", w, i, three_spline->th_mode);
365  if (three_spline->th_mode == 0 || three_spline->th_mode == 2)
366  av_log(ctx, AV_LOG_INFO, "3Spline_TH_enable_MB[%d][%d][%d]: %.4f, ",
367  w, i, j, av_q2d(three_spline->th_enable_mb));
368  av_log(ctx, AV_LOG_INFO, "3Spline_TH_enable[%d][%d][%d]: %.4f, ",
369  w, i, j, av_q2d(three_spline->th_enable));
370  av_log(ctx, AV_LOG_INFO, "3Spline_TH_Delta1[%d][%d][%d]: %.4f, ",
371  w, i, j, av_q2d(three_spline->th_delta1));
372  av_log(ctx, AV_LOG_INFO, "3Spline_TH_Delta2[%d][%d][%d]: %.4f, ",
373  w, i, j, av_q2d(three_spline->th_delta2));
374  av_log(ctx, AV_LOG_INFO, "3Spline_enable_Strength[%d][%d][%d]: %.4f, ",
375  w, i, j, av_q2d(three_spline->enable_strength));
376  }
377  }
378  }
379  }
380 
381  av_log(ctx, AV_LOG_INFO, "color_saturation_mapping_flag[%d]: %d",
383  if (params->color_saturation_mapping_flag) {
384  av_log(ctx, AV_LOG_INFO, ", color_saturation_num[%d]: %d",
385  w, params->color_saturation_num);
386  for (int i = 0; i < params->color_saturation_num; i++) {
387  av_log(ctx, AV_LOG_INFO, ", color_saturation_gain[%d][%d]: %.4f",
388  w, i, av_q2d(params->color_saturation_gain[i]));
389  }
390  }
391  }
392 }
393 
394 
396 {
398 
400  "MaxCLL=%d, MaxFALL=%d",
401  metadata->MaxCLL, metadata->MaxFALL);
402 }
403 
405 {
406  const AVVideoEncParams *par = (const AVVideoEncParams *)sd->data;
407  int plane, acdc;
408 
409  av_log(ctx, AV_LOG_INFO, "type %d; ", par->type);
410  if (par->qp)
411  av_log(ctx, AV_LOG_INFO, "qp=%d; ", par->qp);
412  for (plane = 0; plane < FF_ARRAY_ELEMS(par->delta_qp); plane++)
413  for (acdc = 0; acdc < FF_ARRAY_ELEMS(par->delta_qp[plane]); acdc++) {
414  int delta_qp = par->delta_qp[plane][acdc];
415  if (delta_qp)
416  av_log(ctx, AV_LOG_INFO, "delta_qp[%d][%d]=%d; ",
417  plane, acdc, delta_qp);
418  }
419  if (par->nb_blocks)
420  av_log(ctx, AV_LOG_INFO, "%u blocks; ", par->nb_blocks);
421 }
422 
424 {
425  const uint8_t *user_data = sd->data;
426  ShowInfoContext *s = ctx->priv;
427 
428  if (sd->size < AV_UUID_LEN) {
429  av_log(ctx, AV_LOG_ERROR, "invalid data(%"SIZE_SPECIFIER" < "
430  "UUID(%d-bytes))\n", sd->size, AV_UUID_LEN);
431  return;
432  }
433 
435 
436  av_log(ctx, AV_LOG_INFO, "User Data=");
437  for (size_t i = 16; i < sd->size; i++) {
438  const char *format = "%02x";
439 
440  if (s->udu_sei_as_ascii)
441  format = isprint(user_data[i]) ? "%c" : "\\x%02x";
443  }
444  av_log(ctx, AV_LOG_INFO, "\n");
445 }
446 
448 {
449  const AVFilmGrainParams *fgp = (const AVFilmGrainParams *)sd->data;
450  const char *const film_grain_type_names[] = {
451  [AV_FILM_GRAIN_PARAMS_NONE] = "none",
452  [AV_FILM_GRAIN_PARAMS_AV1] = "av1",
453  [AV_FILM_GRAIN_PARAMS_H274] = "h274",
454  };
455 
456  const char *color_range_str = av_color_range_name(fgp->color_range);
457  const char *color_primaries_str = av_color_primaries_name(fgp->color_primaries);
458  const char *color_trc_str = av_color_transfer_name(fgp->color_trc);
459  const char *colorspace_str = av_color_space_name(fgp->color_space);
460 
461  if (fgp->type >= FF_ARRAY_ELEMS(film_grain_type_names)) {
462  av_log(ctx, AV_LOG_ERROR, "invalid data\n");
463  return;
464  }
465 
466  av_log(ctx, AV_LOG_INFO, "type %s; ", film_grain_type_names[fgp->type]);
467  av_log(ctx, AV_LOG_INFO, "seed=%"PRIu64"; ", fgp->seed);
468  av_log(ctx, AV_LOG_INFO, "width=%d; ", fgp->width);
469  av_log(ctx, AV_LOG_INFO, "height=%d; ", fgp->height);
470  av_log(ctx, AV_LOG_INFO, "subsampling_x=%d; ", fgp->subsampling_x);
471  av_log(ctx, AV_LOG_INFO, "subsampling_y=%d; ", fgp->subsampling_y);
472  av_log(ctx, AV_LOG_INFO, "color_range=%s; ", color_range_str ? color_range_str : "unknown");
473  av_log(ctx, AV_LOG_INFO, "color_primaries=%s; ", color_primaries_str ? color_primaries_str : "unknown");
474  av_log(ctx, AV_LOG_INFO, "color_trc=%s; ", color_trc_str ? color_trc_str : "unknown");
475  av_log(ctx, AV_LOG_INFO, "color_space=%s; ", colorspace_str ? colorspace_str : "unknown");
476  av_log(ctx, AV_LOG_INFO, "bit_depth_luma=%d; ", fgp->bit_depth_luma);
477  av_log(ctx, AV_LOG_INFO, "bit_depth_chroma=%d; ", fgp->bit_depth_chroma);
478 
479  switch (fgp->type) {
481  break;
483  const AVFilmGrainAOMParams *aom = &fgp->codec.aom;
484  const int num_ar_coeffs_y = 2 * aom->ar_coeff_lag * (aom->ar_coeff_lag + 1);
485  const int num_ar_coeffs_uv = num_ar_coeffs_y + !!aom->num_y_points;
486  av_log(ctx, AV_LOG_INFO, "y_points={ ");
487  for (int i = 0; i < aom->num_y_points; i++)
488  av_log(ctx, AV_LOG_INFO, "(%d,%d) ", aom->y_points[i][0], aom->y_points[i][1]);
489  av_log(ctx, AV_LOG_INFO, "}; chroma_scaling_from_luma=%d; ", aom->chroma_scaling_from_luma);
490  for (int uv = 0; uv < 2; uv++) {
491  av_log(ctx, AV_LOG_INFO, "uv_points[%d]={ ", uv);
492  for (int i = 0; i < aom->num_uv_points[uv]; i++)
493  av_log(ctx, AV_LOG_INFO, "(%d,%d) ", aom->uv_points[uv][i][0], aom->uv_points[uv][i][1]);
494  av_log(ctx, AV_LOG_INFO, "}; ");
495  }
496  av_log(ctx, AV_LOG_INFO, "scaling_shift=%d; ", aom->scaling_shift);
497  av_log(ctx, AV_LOG_INFO, "ar_coeff_lag=%d; ", aom->ar_coeff_lag);
498  if (num_ar_coeffs_y) {
499  av_log(ctx, AV_LOG_INFO, "ar_coeffs_y={ ");
500  for (int i = 0; i < num_ar_coeffs_y; i++)
501  av_log(ctx, AV_LOG_INFO, "%d ", aom->ar_coeffs_y[i]);
502  av_log(ctx, AV_LOG_INFO, "}; ");
503  }
504  for (int uv = 0; num_ar_coeffs_uv && uv < 2; uv++) {
505  av_log(ctx, AV_LOG_INFO, "ar_coeffs_uv[%d]={ ", uv);
506  for (int i = 0; i < num_ar_coeffs_uv; i++)
507  av_log(ctx, AV_LOG_INFO, "%d ", aom->ar_coeffs_uv[uv][i]);
508  av_log(ctx, AV_LOG_INFO, "}; ");
509  }
510  av_log(ctx, AV_LOG_INFO, "ar_coeff_shift=%d; ", aom->ar_coeff_shift);
511  av_log(ctx, AV_LOG_INFO, "grain_scale_shift=%d; ", aom->grain_scale_shift);
512  for (int uv = 0; uv < 2; uv++) {
513  av_log(ctx, AV_LOG_INFO, "uv_mult[%d] = %d; ", uv, aom->uv_mult[uv]);
514  av_log(ctx, AV_LOG_INFO, "uv_mult_luma[%d] = %d; ", uv, aom->uv_mult_luma[uv]);
515  av_log(ctx, AV_LOG_INFO, "uv_offset[%d] = %d; ", uv, aom->uv_offset[uv]);
516  }
517  av_log(ctx, AV_LOG_INFO, "overlap_flag=%d; ", aom->overlap_flag);
518  av_log(ctx, AV_LOG_INFO, "limit_output_range=%d; ", aom->limit_output_range);
519  break;
520  }
522  const AVFilmGrainH274Params *h274 = &fgp->codec.h274;
523  av_log(ctx, AV_LOG_INFO, "model_id=%d; ", h274->model_id);
524  av_log(ctx, AV_LOG_INFO, "blending_mode_id=%d; ", h274->blending_mode_id);
525  av_log(ctx, AV_LOG_INFO, "log2_scale_factor=%d; ", h274->log2_scale_factor);
526 
527  for (int c = 0; c < 3; c++)
528  if (h274->component_model_present[c] && (h274->num_model_values[c] > 6 ||
529  h274->num_intensity_intervals[c] < 1 ||
530  h274->num_intensity_intervals[c] > 256)) {
531  av_log(ctx, AV_LOG_ERROR, "invalid data\n");
532  return;
533  }
534 
535  for (int c = 0; c < 3; c++) {
536  if (!h274->component_model_present[c])
537  continue;
538 
539  av_log(ctx, AV_LOG_INFO, "num_intensity_intervals[%d]=%u; ", c, h274->num_intensity_intervals[c]);
540  av_log(ctx, AV_LOG_INFO, "num_model_values[%d]=%u; ", c, h274->num_model_values[c]);
541  for (int i = 0; i < h274->num_intensity_intervals[c]; i++) {
542  av_log(ctx, AV_LOG_INFO, "intensity_interval_lower_bound[%d][%d]=%u; ",
543  c, i, h274->intensity_interval_lower_bound[c][i]);
544  av_log(ctx, AV_LOG_INFO, "intensity_interval_upper_bound[%d][%d]=%u; ",
545  c, i, h274->intensity_interval_upper_bound[c][i]);
546  for (int j = 0; j < h274->num_model_values[c]; j++)
547  av_log(ctx, AV_LOG_INFO, "comp_model_value[%d][%d][%d]=%d; ",
548  c, i, j, h274->comp_model_value[c][i][j]);
549  }
550  }
551  break;
552  }
553  }
554 }
555 
557 {
558  const AVDOVIMetadata *dovi = (AVDOVIMetadata *) sd->data;
559  const AVDOVIRpuDataHeader *hdr = av_dovi_get_header(dovi);
560  const AVDOVIDataMapping *mapping = av_dovi_get_mapping(dovi);
562 
563  av_log(ctx, AV_LOG_INFO, " rpu_type=%"PRIu8"; ", hdr->rpu_type);
564  av_log(ctx, AV_LOG_INFO, "rpu_format=%"PRIu16"; ", hdr->rpu_format);
565  av_log(ctx, AV_LOG_INFO, "vdr_rpu_profile=%"PRIu8"; ", hdr->vdr_rpu_profile);
566  av_log(ctx, AV_LOG_INFO, "vdr_rpu_level=%"PRIu8"; ", hdr->vdr_rpu_level);
567  av_log(ctx, AV_LOG_INFO, "chroma_resampling_explicit_filter_flag=%"PRIu8"; ", hdr->chroma_resampling_explicit_filter_flag);
568  av_log(ctx, AV_LOG_INFO, "coef_data_type=%"PRIu8"; ", hdr->coef_data_type);
569  av_log(ctx, AV_LOG_INFO, "coef_log2_denom=%"PRIu8"; ", hdr->coef_log2_denom);
570  av_log(ctx, AV_LOG_INFO, "vdr_rpu_normalized_idc=%"PRIu8"; ", hdr->vdr_rpu_normalized_idc);
571  av_log(ctx, AV_LOG_INFO, "bl_video_full_range_flag=%"PRIu8"; ", hdr->bl_video_full_range_flag);
572  av_log(ctx, AV_LOG_INFO, "bl_bit_depth=%"PRIu8"; ", hdr->bl_bit_depth);
573  av_log(ctx, AV_LOG_INFO, "el_bit_depth=%"PRIu8"; ", hdr->el_bit_depth);
574  av_log(ctx, AV_LOG_INFO, "vdr_bit_depth=%"PRIu8"; ", hdr->vdr_bit_depth);
575  av_log(ctx, AV_LOG_INFO, "spatial_resampling_filter_flag=%"PRIu8"; ", hdr->spatial_resampling_filter_flag);
576  av_log(ctx, AV_LOG_INFO, "el_spatial_resampling_filter_flag=%"PRIu8"; ", hdr->el_spatial_resampling_filter_flag);
577  av_log(ctx, AV_LOG_INFO, "disable_residual_flag=%"PRIu8"\n", hdr->disable_residual_flag);
578 
579  av_log(ctx, AV_LOG_INFO, " data mapping: ");
580  av_log(ctx, AV_LOG_INFO, "vdr_rpu_id=%"PRIu8"; ", mapping->vdr_rpu_id);
581  av_log(ctx, AV_LOG_INFO, "mapping_color_space=%"PRIu8"; ", mapping->mapping_color_space);
582  av_log(ctx, AV_LOG_INFO, "mapping_chroma_format_idc=%"PRIu8"; ", mapping->mapping_chroma_format_idc);
583  av_log(ctx, AV_LOG_INFO, "nlq_method_idc=%d; ", (int) mapping->nlq_method_idc);
584  av_log(ctx, AV_LOG_INFO, "num_x_partitions=%"PRIu32"; ", mapping->num_x_partitions);
585  av_log(ctx, AV_LOG_INFO, "num_y_partitions=%"PRIu32"\n", mapping->num_y_partitions);
586 
587  for (int c = 0; c < 3; c++) {
588  const AVDOVIReshapingCurve *curve = &mapping->curves[c];
589  const AVDOVINLQParams *nlq = &mapping->nlq[c];
590  av_log(ctx, AV_LOG_INFO, " channel %d: ", c);
591  av_log(ctx, AV_LOG_INFO, "pivots={ ");
592  for (int i = 0; i < curve->num_pivots; i++)
593  av_log(ctx, AV_LOG_INFO, "%"PRIu16" ", curve->pivots[i]);
594  av_log(ctx, AV_LOG_INFO, "}; mapping_idc={ ");
595  for (int i = 0; i < curve->num_pivots - 1; i++)
596  av_log(ctx, AV_LOG_INFO, "%d ", (int) curve->mapping_idc[i]);
597  av_log(ctx, AV_LOG_INFO, "}; poly_order={ ");
598  for (int i = 0; i < curve->num_pivots - 1; i++)
599  av_log(ctx, AV_LOG_INFO, "%"PRIu8" ", curve->poly_order[i]);
600  av_log(ctx, AV_LOG_INFO, "}; poly_coef={ ");
601  for (int i = 0; i < curve->num_pivots - 1; i++) {
602  av_log(ctx, AV_LOG_INFO, "{%"PRIi64", %"PRIi64", %"PRIi64"} ",
603  curve->poly_coef[i][0],
604  curve->poly_coef[i][1],
605  curve->poly_coef[i][2]);
606  }
607 
608  av_log(ctx, AV_LOG_INFO, "}; mmr_order={ ");
609  for (int i = 0; i < curve->num_pivots - 1; i++)
610  av_log(ctx, AV_LOG_INFO, "%"PRIu8" ", curve->mmr_order[i]);
611  av_log(ctx, AV_LOG_INFO, "}; mmr_constant={ ");
612  for (int i = 0; i < curve->num_pivots - 1; i++)
613  av_log(ctx, AV_LOG_INFO, "%"PRIi64" ", curve->mmr_constant[i]);
614  av_log(ctx, AV_LOG_INFO, "}; mmr_coef={ ");
615  for (int i = 0; i < curve->num_pivots - 1; i++) {
616  av_log(ctx, AV_LOG_INFO, "{");
617  for (int j = 0; j < curve->mmr_order[i]; j++) {
618  for (int k = 0; k < 7; k++)
619  av_log(ctx, AV_LOG_INFO, "%"PRIi64" ", curve->mmr_coef[i][j][k]);
620  }
621  av_log(ctx, AV_LOG_INFO, "} ");
622  }
623 
624  av_log(ctx, AV_LOG_INFO, "}; nlq_offset=%"PRIu16"; ", nlq->nlq_offset);
625  av_log(ctx, AV_LOG_INFO, "vdr_in_max=%"PRIu64"; ", nlq->vdr_in_max);
626  switch (mapping->nlq_method_idc) {
628  av_log(ctx, AV_LOG_INFO, "linear_deadzone_slope=%"PRIu64"; ", nlq->linear_deadzone_slope);
629  av_log(ctx, AV_LOG_INFO, "linear_deadzone_threshold=%"PRIu64"\n", nlq->linear_deadzone_threshold);
630  break;
631  }
632  }
633 
634  av_log(ctx, AV_LOG_INFO, " color metadata: ");
635  av_log(ctx, AV_LOG_INFO, "dm_metadata_id=%"PRIu8"; ", color->dm_metadata_id);
636  av_log(ctx, AV_LOG_INFO, "scene_refresh_flag=%"PRIu8"; ", color->scene_refresh_flag);
637  av_log(ctx, AV_LOG_INFO, "ycc_to_rgb_matrix={ ");
638  for (int i = 0; i < 9; i++)
639  av_log(ctx, AV_LOG_INFO, "%f ", av_q2d(color->ycc_to_rgb_matrix[i]));
640  av_log(ctx, AV_LOG_INFO, "}; ycc_to_rgb_offset={ ");
641  for (int i = 0; i < 3; i++)
642  av_log(ctx, AV_LOG_INFO, "%f ", av_q2d(color->ycc_to_rgb_offset[i]));
643  av_log(ctx, AV_LOG_INFO, "}; rgb_to_lms_matrix={ ");
644  for (int i = 0; i < 9; i++)
645  av_log(ctx, AV_LOG_INFO, "%f ", av_q2d(color->rgb_to_lms_matrix[i]));
646  av_log(ctx, AV_LOG_INFO, "}; signal_eotf=%"PRIu16"; ", color->signal_eotf);
647  av_log(ctx, AV_LOG_INFO, "signal_eotf_param0=%"PRIu16"; ", color->signal_eotf_param0);
648  av_log(ctx, AV_LOG_INFO, "signal_eotf_param1=%"PRIu16"; ", color->signal_eotf_param1);
649  av_log(ctx, AV_LOG_INFO, "signal_eotf_param2=%"PRIu32"; ", color->signal_eotf_param2);
650  av_log(ctx, AV_LOG_INFO, "signal_bit_depth=%"PRIu8"; ", color->signal_bit_depth);
651  av_log(ctx, AV_LOG_INFO, "signal_color_space=%"PRIu8"; ", color->signal_color_space);
652  av_log(ctx, AV_LOG_INFO, "signal_chroma_format=%"PRIu8"; ", color->signal_chroma_format);
653  av_log(ctx, AV_LOG_INFO, "signal_full_range_flag=%"PRIu8"; ", color->signal_full_range_flag);
654  av_log(ctx, AV_LOG_INFO, "source_min_pq=%"PRIu16"; ", color->source_min_pq);
655  av_log(ctx, AV_LOG_INFO, "source_max_pq=%"PRIu16"; ", color->source_max_pq);
656  av_log(ctx, AV_LOG_INFO, "source_diagonal=%"PRIu16"; ", color->source_diagonal);
657 }
658 
660 {
661  const AVAmbientViewingEnvironment *ambient_viewing_environment =
662  (const AVAmbientViewingEnvironment *)sd->data;
663 
664  av_log(ctx, AV_LOG_INFO, "ambient_illuminance=%f, ambient_light_x=%f, ambient_light_y=%f",
665  av_q2d(ambient_viewing_environment->ambient_illuminance),
666  av_q2d(ambient_viewing_environment->ambient_light_x),
667  av_q2d(ambient_viewing_environment->ambient_light_y));
668 }
669 
671 {
672  const char *color_range_str = av_color_range_name(frame->color_range);
673  const char *colorspace_str = av_color_space_name(frame->colorspace);
674  const char *color_primaries_str = av_color_primaries_name(frame->color_primaries);
675  const char *color_trc_str = av_color_transfer_name(frame->color_trc);
676 
677  if (!color_range_str || frame->color_range == AVCOL_RANGE_UNSPECIFIED) {
678  av_log(ctx, AV_LOG_INFO, "color_range:unknown");
679  } else {
680  av_log(ctx, AV_LOG_INFO, "color_range:%s", color_range_str);
681  }
682 
683  if (!colorspace_str || frame->colorspace == AVCOL_SPC_UNSPECIFIED) {
684  av_log(ctx, AV_LOG_INFO, " color_space:unknown");
685  } else {
686  av_log(ctx, AV_LOG_INFO, " color_space:%s", colorspace_str);
687  }
688 
689  if (!color_primaries_str || frame->color_primaries == AVCOL_PRI_UNSPECIFIED) {
690  av_log(ctx, AV_LOG_INFO, " color_primaries:unknown");
691  } else {
692  av_log(ctx, AV_LOG_INFO, " color_primaries:%s", color_primaries_str);
693  }
694 
695  if (!color_trc_str || frame->color_trc == AVCOL_TRC_UNSPECIFIED) {
696  av_log(ctx, AV_LOG_INFO, " color_trc:unknown");
697  } else {
698  av_log(ctx, AV_LOG_INFO, " color_trc:%s", color_trc_str);
699  }
700  av_log(ctx, AV_LOG_INFO, "\n");
701 }
702 
703 static void update_sample_stats_8(const uint8_t *src, int len, int64_t *sum, int64_t *sum2)
704 {
705  int i;
706 
707  for (i = 0; i < len; i++) {
708  *sum += src[i];
709  *sum2 += src[i] * src[i];
710  }
711 }
712 
713 static void update_sample_stats_16(int be, const uint8_t *src, int len, int64_t *sum, int64_t *sum2)
714 {
715  const uint16_t *src1 = (const uint16_t *)src;
716  int i;
717 
718  for (i = 0; i < len / 2; i++) {
719  if ((HAVE_BIGENDIAN && !be) || (!HAVE_BIGENDIAN && be)) {
720  *sum += av_bswap16(src1[i]);
721  *sum2 += (uint32_t)av_bswap16(src1[i]) * (uint32_t)av_bswap16(src1[i]);
722  } else {
723  *sum += src1[i];
724  *sum2 += (uint32_t)src1[i] * (uint32_t)src1[i];
725  }
726  }
727 }
728 
729 static void update_sample_stats(int depth, int be, const uint8_t *src, int len, int64_t *sum, int64_t *sum2)
730 {
731  if (depth <= 8)
732  update_sample_stats_8(src, len, sum, sum2);
733  else
734  update_sample_stats_16(be, src, len, sum, sum2);
735 }
736 
738 {
740  AVFilterContext *ctx = inlink->dst;
741  ShowInfoContext *s = ctx->priv;
743  uint32_t plane_checksum[4] = {0}, checksum = 0;
744  int64_t sum[4] = {0}, sum2[4] = {0};
745  int32_t pixelcount[4] = {0};
746  int bitdepth = desc->comp[0].depth;
747  int be = desc->flags & AV_PIX_FMT_FLAG_BE;
748  int i, plane, vsub = desc->log2_chroma_h;
749 
750  for (plane = 0; plane < 4 && s->calculate_checksums && frame->data[plane] && frame->linesize[plane]; plane++) {
751  uint8_t *data = frame->data[plane];
752  int h = plane == 1 || plane == 2 ? AV_CEIL_RSHIFT(inlink->h, vsub) : inlink->h;
753  int linesize = av_image_get_linesize(frame->format, frame->width, plane);
754  int width = linesize >> (bitdepth > 8);
755 
756  if (linesize < 0)
757  return linesize;
758 
759  for (i = 0; i < h; i++) {
760  plane_checksum[plane] = av_adler32_update(plane_checksum[plane], data, linesize);
761  checksum = av_adler32_update(checksum, data, linesize);
762 
763  update_sample_stats(bitdepth, be, data, linesize, sum+plane, sum2+plane);
764  pixelcount[plane] += width;
765  data += frame->linesize[plane];
766  }
767  }
768 
770  "n:%4"PRId64" pts:%7s pts_time:%-7s duration:%7"PRId64
771  " duration_time:%-7s "
772  "fmt:%s cl:%s sar:%d/%d s:%dx%d i:%c iskey:%d type:%c ",
773  inl->frame_count_out,
774  av_ts2str(frame->pts), av_ts2timestr(frame->pts, &inlink->time_base),
775  frame->duration, av_ts2timestr(frame->duration, &inlink->time_base),
776  desc->name, av_chroma_location_name(frame->chroma_location),
777  frame->sample_aspect_ratio.num, frame->sample_aspect_ratio.den,
778  frame->width, frame->height,
779  !(frame->flags & AV_FRAME_FLAG_INTERLACED) ? 'P' : /* Progressive */
780  (frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST) ? 'T' : 'B', /* Top / Bottom */
781  !!(frame->flags & AV_FRAME_FLAG_KEY),
782  av_get_picture_type_char(frame->pict_type));
783 
784  if (s->calculate_checksums) {
786  "checksum:%08"PRIX32" plane_checksum:[%08"PRIX32,
787  checksum, plane_checksum[0]);
788 
789  for (plane = 1; plane < 4 && frame->data[plane] && frame->linesize[plane]; plane++)
790  av_log(ctx, AV_LOG_INFO, " %08"PRIX32, plane_checksum[plane]);
791  av_log(ctx, AV_LOG_INFO, "] mean:[");
792  for (plane = 0; plane < 4 && frame->data[plane] && frame->linesize[plane]; plane++)
793  av_log(ctx, AV_LOG_INFO, "%s%"PRId64,
794  plane ? " ":"",
795  (sum[plane] + pixelcount[plane]/2) / pixelcount[plane]);
796  av_log(ctx, AV_LOG_INFO, "] stdev:[");
797  for (plane = 0; plane < 4 && frame->data[plane] && frame->linesize[plane]; plane++)
798  av_log(ctx, AV_LOG_INFO, "%s%3.1f",
799  plane ? " ":"",
800  sqrt((sum2[plane] - sum[plane]*(double)sum[plane]/pixelcount[plane])/pixelcount[plane]));
801  av_log(ctx, AV_LOG_INFO, "]");
802  }
803  av_log(ctx, AV_LOG_INFO, "\n");
804 
805  for (i = 0; i < frame->nb_side_data; i++) {
806  AVFrameSideData *sd = frame->side_data[i];
807  const char *name = av_frame_side_data_name(sd->type);
808 
809  av_log(ctx, AV_LOG_INFO, " side data - ");
810  if (name)
811  av_log(ctx, AV_LOG_INFO, "%s: ", name);
812  switch (sd->type) {
814  dump_spherical(ctx, frame, sd);
815  break;
817  dump_stereo3d(ctx, sd);
818  break;
821  break;
822  }
824  av_log(ctx, AV_LOG_INFO, "rotation of %.2f degrees",
826  break;
827  case AV_FRAME_DATA_AFD:
828  av_log(ctx, AV_LOG_INFO, "value of %"PRIu8, sd->data[0]);
829  break;
831  dump_roi(ctx, sd);
832  break;
835  break;
838  break;
841  break;
844  break;
847  break;
849  char tcbuf[AV_TIMECODE_STR_SIZE];
850  av_timecode_make_mpeg_tc_string(tcbuf, *(int64_t *)(sd->data));
851  av_log(ctx, AV_LOG_INFO, "%s", tcbuf);
852  break;
853  }
856  break;
859  break;
862  break;
864  dump_dovi_metadata(ctx, sd);
865  break;
868  break;
870  av_log(ctx, AV_LOG_INFO, "view id: %d\n", *(int*)sd->data);
871  break;
873  dump_tdrdi(ctx, sd);
874  break;
875  default:
876  if (name)
878  "(%"SIZE_SPECIFIER" bytes)", sd->size);
879  else
880  av_log(ctx, AV_LOG_WARNING, "unknown side data type %d "
881  "(%"SIZE_SPECIFIER" bytes)", sd->type, sd->size);
882  break;
883  }
884 
885  av_log(ctx, AV_LOG_INFO, "\n");
886  }
887 
889 
890  return ff_filter_frame(inlink->dst->outputs[0], frame);
891 }
892 
894 {
896 
897  av_log(ctx, AV_LOG_INFO, "config %s time_base: %d/%d, frame_rate: %d/%d\n",
898  is_out ? "out" : "in",
900  l->frame_rate.num, l->frame_rate.den);
901 
902  return 0;
903 }
904 
906 {
907  AVFilterContext *ctx = link->dst;
908  return config_props(ctx, link, 0);
909 }
910 
912 {
913  AVFilterContext *ctx = link->src;
914  return config_props(ctx, link, 1);
915 }
916 
918  {
919  .name = "default",
920  .type = AVMEDIA_TYPE_VIDEO,
921  .filter_frame = filter_frame,
922  .config_props = config_props_in,
923  },
924 };
925 
927  {
928  .name = "default",
929  .type = AVMEDIA_TYPE_VIDEO,
930  .config_props = config_props_out,
931  },
932 };
933 
935  .p.name = "showinfo",
936  .p.description = NULL_IF_CONFIG_SMALL("Show textual information for each video frame."),
937  .p.priv_class = &showinfo_class,
938  .p.flags = AVFILTER_FLAG_METADATA_ONLY,
941  .priv_size = sizeof(ShowInfoContext),
942 };
AVVideoEncParams::qp
int32_t qp
Base quantisation parameter for the frame.
Definition: video_enc_params.h:103
AVHDRVividColorTransformParams::maximum_maxrgb
AVRational maximum_maxrgb
Indicates the maximum brightness of the displayed content.
Definition: hdr_dynamic_vivid_metadata.h:206
AVMasteringDisplayMetadata::has_primaries
int has_primaries
Flag indicating whether the display primaries (and white point) are set.
Definition: mastering_display_metadata.h:62
dump_detection_bbox
static void dump_detection_bbox(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:164
AVHDRPlusColorTransformParams::average_maxrgb
AVRational average_maxrgb
The average of linearized maxRGB values in the processing window in the scene.
Definition: hdr_dynamic_metadata.h:164
be
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 be(in the first position) for now. Options ------- Then comes the options array. This is what will define the user accessible options. For example
AVDynamicHDRPlus::params
AVHDRPlusColorTransformParams params[3]
The color transform parameters for every processing window.
Definition: hdr_dynamic_metadata.h:264
AV_LOG_WARNING
#define AV_LOG_WARNING
Something somehow does not look correct.
Definition: log.h:216
AV_TIMECODE_STR_SIZE
#define AV_TIMECODE_STR_SIZE
Definition: timecode.h:33
AVDOVIDataMapping::nlq_method_idc
enum AVDOVINLQMethod nlq_method_idc
Definition: dovi_meta.h:159
AVMasteringDisplayMetadata::max_luminance
AVRational max_luminance
Max luminance of mastering display (cd/m^2).
Definition: mastering_display_metadata.h:57
name
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
Definition: writing_filters.txt:88
AVHDRVividColorToneMappingParams::base_param_k2
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...
Definition: hdr_dynamic_vivid_metadata.h:137
ff_vf_showinfo
const FFFilter ff_vf_showinfo
Definition: vf_showinfo.c:934
dump_spherical
static void dump_spherical(AVFilterContext *ctx, AVFrame *frame, const AVFrameSideData *sd)
Definition: vf_showinfo.c:72
r
const char * r
Definition: vf_curves.c:127
opt.h
AVSphericalMapping::projection
enum AVSphericalProjection projection
Projection type.
Definition: spherical.h:98
AVHDRVividColorToneMappingParams::base_param_Delta
AVRational base_param_Delta
base_param_Delta in the base parameter, in multiples of 1.0/127.
Definition: hdr_dynamic_vivid_metadata.h:157
AVHDRVividColorToneMappingParams::base_enable_flag
int base_enable_flag
This flag indicates that transfer the base paramter(for value of 1)
Definition: hdr_dynamic_vivid_metadata.h:88
color
Definition: vf_paletteuse.c:513
update_sample_stats
static void update_sample_stats(int depth, int be, const uint8_t *src, int len, int64_t *sum, int64_t *sum2)
Definition: vf_showinfo.c:729
AVHDRPlusColorTransformParams::rotation_angle
uint8_t rotation_angle
The clockwise rotation angle in degree of arc with respect to the positive direction of the x-axis of...
Definition: hdr_dynamic_metadata.h:118
AVHDRPlusPercentile::percentile
AVRational percentile
The linearized maxRGB value at a specific percentile in the processing window in the scene.
Definition: hdr_dynamic_metadata.h:52
AVAmbientViewingEnvironment
Ambient viewing environment metadata as defined by H.274.
Definition: ambient_viewing_environment.h:36
dump_tdrdi
static void dump_tdrdi(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:156
ff_filter_frame
int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
Send a frame of data to the next filter.
Definition: avfilter.c:1062
AV_UUID_ARG
#define AV_UUID_ARG(x)
Definition: uuid.h:51
av_pix_fmt_desc_get
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
Definition: pixdesc.c:3441
AVMasteringDisplayMetadata::display_primaries
AVRational display_primaries[3][2]
CIE 1931 xy chromaticity coords of color primaries (r, g, b order).
Definition: mastering_display_metadata.h:42
src1
const pixel * src1
Definition: h264pred_template.c:420
AVMasteringDisplayMetadata::has_luminance
int has_luminance
Flag indicating whether the luminance (min_ and max_) have been set.
Definition: mastering_display_metadata.h:67
AVHDRVividColorToneMappingParams::three_Spline_num
int three_Spline_num
The number of three Spline.
Definition: hdr_dynamic_vivid_metadata.h:169
AV_FRAME_DATA_DOVI_METADATA
@ AV_FRAME_DATA_DOVI_METADATA
Parsed Dolby Vision metadata, suitable for passing to a software implementation.
Definition: frame.h:208
config_props_out
static int config_props_out(AVFilterLink *link)
Definition: vf_showinfo.c:911
int64_t
long long int64_t
Definition: coverity.c:34
metadata
Stream codec metadata
Definition: ogg-flac-chained-meta.txt:2
inlink
The exact code depends on how similar the blocks are and how related they are to the and needs to apply these operations to the correct inlink or outlink if there are several Macros are available to factor that when no extra processing is inlink
Definition: filter_design.txt:212
AVFilmGrainAOMParams::uv_points
uint8_t uv_points[2][10][2]
Definition: film_grain_params.h:63
AV_FRAME_DATA_FILM_GRAIN_PARAMS
@ AV_FRAME_DATA_FILM_GRAIN_PARAMS
Film grain parameters for a frame, described by AVFilmGrainParams.
Definition: frame.h:188
AVHDRPlusColorTransformParams::semimajor_axis_external_ellipse
uint16_t semimajor_axis_external_ellipse
The semi-major axis value of the external ellipse of the elliptical pixel selector in amount of pixel...
Definition: hdr_dynamic_metadata.h:134
AVFilmGrainH274Params::blending_mode_id
int blending_mode_id
Specifies the blending mode used to blend the simulated film grain with the decoded images.
Definition: film_grain_params.h:145
AV_FRAME_DATA_S12M_TIMECODE
@ AV_FRAME_DATA_S12M_TIMECODE
Timecode which conforms to SMPTE ST 12-1.
Definition: frame.h:152
AVHDRVividColorTransformParams::tone_mapping_param_num
int tone_mapping_param_num
The number of tone mapping param.
Definition: hdr_dynamic_vivid_metadata.h:218
AVHDRPlusColorTransformParams
Color transform parameters at a processing window in a dynamic metadata for SMPTE 2094-40.
Definition: hdr_dynamic_metadata.h:59
FILTER_INPUTS
#define FILTER_INPUTS(array)
Definition: filters.h:263
AVFrame
This structure describes decoded (raw) audio or video data.
Definition: frame.h:421
avfilter_vf_showinfo_inputs
static const AVFilterPad avfilter_vf_showinfo_inputs[]
Definition: vf_showinfo.c:917
pixdesc.h
w
uint8_t w
Definition: llviddspenc.c:38
AVHDRVividColorTransformParams::variance_maxrgb
AVRational variance_maxrgb
Indicates the variance brightness of the displayed content.
Definition: hdr_dynamic_vivid_metadata.h:199
AVDOVIReshapingCurve::mmr_coef
int64_t mmr_coef[AV_DOVI_MAX_PIECES][3][7]
Definition: dovi_meta.h:127
AVDynamicHDRPlus::num_cols_targeted_system_display_actual_peak_luminance
uint8_t num_cols_targeted_system_display_actual_peak_luminance
The number of columns in the targeted_system_display_actual_peak_luminance array.
Definition: hdr_dynamic_metadata.h:290
av_spherical_tile_bounds
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.
Definition: spherical.c:40
AVAmbientViewingEnvironment::ambient_light_x
AVRational ambient_light_x
Normalized x chromaticity coordinate of the environmental ambient light in the nominal viewing enviro...
Definition: ambient_viewing_environment.h:47
AVHDRVivid3SplineParams::enable_strength
AVRational enable_strength
3Spline_enable_Strength of three Spline.
Definition: hdr_dynamic_vivid_metadata.h:70
bitdepth
#define bitdepth
Definition: aom_film_grain_template.c:67
AVOption
AVOption.
Definition: opt.h:429
b
#define b
Definition: input.c:42
AVCOL_TRC_UNSPECIFIED
@ AVCOL_TRC_UNSPECIFIED
Definition: pixfmt.h:664
spherical.h
data
const char data[16]
Definition: mxf.c:149
AVDOVIReshapingCurve::mapping_idc
enum AVDOVIMappingMethod mapping_idc[AV_DOVI_MAX_PIECES]
Definition: dovi_meta.h:120
AVHDRPlusColorTransformParams::tone_mapping_flag
uint8_t tone_mapping_flag
This flag indicates that the metadata for the tone mapping function in the processing window is prese...
Definition: hdr_dynamic_metadata.h:189
AV_FRAME_DATA_DISPLAYMATRIX
@ AV_FRAME_DATA_DISPLAYMATRIX
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
Definition: frame.h:85
AV_SPHERICAL_EQUIRECTANGULAR_TILE
@ AV_SPHERICAL_EQUIRECTANGULAR_TILE
Video represents a portion of a sphere mapped on a flat surface using equirectangular projection.
Definition: spherical.h:68
AVStereo3D::baseline
uint32_t baseline
The distance between the centres of the lenses of the camera system, in micrometers.
Definition: stereo3d.h:228
AVHDRVivid3SplineParams::th_mode
int th_mode
The mode of three Spline.
Definition: hdr_dynamic_vivid_metadata.h:35
AVHDRPlusColorTransformParams::distribution_maxrgb
AVHDRPlusPercentile distribution_maxrgb[15]
The linearized maxRGB values at given percentiles in the processing window in the scene.
Definition: hdr_dynamic_metadata.h:176
AVFilter::name
const char * name
Filter name.
Definition: avfilter.h:215
AVDOVIDataMapping::mapping_color_space
uint8_t mapping_color_space
Definition: dovi_meta.h:154
AVDOVIRpuDataHeader
Dolby Vision RPU data header.
Definition: dovi_meta.h:87
AVHDRPlusColorTransformParams::knee_point_x
AVRational knee_point_x
The x coordinate of the separation point between the linear part and the curved part of the tone mapp...
Definition: hdr_dynamic_metadata.h:196
AVHDRVividColorTransformParams::color_saturation_num
int color_saturation_num
The number of color saturation param.
Definition: hdr_dynamic_vivid_metadata.h:235
dump_color_property
static void dump_color_property(AVFilterContext *ctx, AVFrame *frame)
Definition: vf_showinfo.c:670
AVDetectionBBox::y
int y
Definition: detection_bbox.h:32
dump_s12m_timecode
static void dump_s12m_timecode(AVFilterContext *ctx, AVFilterLink *inlink, const AVFrameSideData *sd)
Definition: vf_showinfo.c:118
video.h
av_chroma_location_name
const char * av_chroma_location_name(enum AVChromaLocation location)
Definition: pixdesc.c:3838
OFFSET
#define OFFSET(x)
Definition: vf_showinfo.c:60
hdr_dynamic_vivid_metadata.h
AV_FRAME_FLAG_TOP_FIELD_FIRST
#define AV_FRAME_FLAG_TOP_FIELD_FIRST
A flag to mark frames where the top field is displayed first if the content is interlaced.
Definition: frame.h:649
AVContentLightMetadata
Content light level needed by to transmit HDR over HDMI (CTA-861.3).
Definition: mastering_display_metadata.h:107
AVStereo3D::horizontal_field_of_view
AVRational horizontal_field_of_view
Horizontal field of view, in degrees.
Definition: stereo3d.h:239
AV3DReferenceDisplaysInfo
This structure describes information about the reference display width(s) and reference viewing dista...
Definition: tdrdi.h:53
AVHDRPlusColorTransformParams::color_saturation_mapping_flag
uint8_t color_saturation_mapping_flag
This flag shall be equal to 0 in bitstreams conforming to this version of this Specification.
Definition: hdr_dynamic_metadata.h:222
AVHDRVividColorToneMappingParams::three_Spline_enable_flag
int three_Spline_enable_flag
indicates 3Spline_enable_flag in the base parameter, This flag indicates that transfer three Spline o...
Definition: hdr_dynamic_vivid_metadata.h:163
av_color_space_name
const char * av_color_space_name(enum AVColorSpace space)
Definition: pixdesc.c:3817
AVDetectionBBox::detect_label
char detect_label[AV_DETECTION_BBOX_LABEL_NAME_MAX_SIZE]
Detect result with confidence.
Definition: detection_bbox.h:41
AVHDRPlusColorTransformParams::center_of_ellipse_x
uint16_t center_of_ellipse_x
The x coordinate of the center position of the concentric internal and external ellipses of the ellip...
Definition: hdr_dynamic_metadata.h:102
AVVideoEncParams::delta_qp
int32_t delta_qp[4][2]
Quantisation parameter offset from the base (per-frame) qp for a given plane (first index) and AC/DC ...
Definition: video_enc_params.h:109
AVHDRVividColorTransformParams::tm_params
AVHDRVividColorToneMappingParams tm_params[2]
The color tone mapping parameters.
Definition: hdr_dynamic_vivid_metadata.h:223
AVFilmGrainAOMParams::grain_scale_shift
int grain_scale_shift
Signals the down shift applied to the generated gaussian numbers during synthesis.
Definition: film_grain_params.h:99
AVHDRVivid3SplineParams::th_delta1
AVRational th_delta1
3Spline_TH_Delta1 of three Spline.
Definition: hdr_dynamic_vivid_metadata.h:56
timecode.h
AVDynamicHDRVivid::num_windows
uint8_t num_windows
The number of processing windows.
Definition: hdr_dynamic_vivid_metadata.h:266
AVFilmGrainAOMParams::limit_output_range
int limit_output_range
Signals to clip to limited color levels after film grain application.
Definition: film_grain_params.h:122
AVAmbientViewingEnvironment::ambient_illuminance
AVRational ambient_illuminance
Environmental illuminance of the ambient viewing environment in lux.
Definition: ambient_viewing_environment.h:40
AVFilmGrainAOMParams::num_y_points
int num_y_points
Number of points, and the scale and value for each point of the piecewise linear scaling function for...
Definition: film_grain_params.h:49
AVRational::num
int num
Numerator.
Definition: rational.h:59
AVVideoEncParams
Video encoding parameters for a given frame.
Definition: video_enc_params.h:73
AVFILTER_DEFINE_CLASS
AVFILTER_DEFINE_CLASS(showinfo)
AVHDRPlusColorTransformParams::knee_point_y
AVRational knee_point_y
The y coordinate of the separation point between the linear part and the curved part of the tone mapp...
Definition: hdr_dynamic_metadata.h:203
AVFilterPad
A filter pad used for either input or output.
Definition: filters.h:39
AVFilmGrainAOMParams
This structure describes how to handle film grain synthesis for AOM codecs.
Definition: film_grain_params.h:44
AVHDRPlusColorTransformParams::num_bezier_curve_anchors
uint8_t num_bezier_curve_anchors
The number of the intermediate anchor parameters of the tone mapping function in the processing windo...
Definition: hdr_dynamic_metadata.h:209
av_stereo3d_view_name
const char * av_stereo3d_view_name(unsigned int view)
Provide a human-readable name of a given stereo3d view.
Definition: stereo3d.c:113
AVFilmGrainH274Params::intensity_interval_upper_bound
uint8_t intensity_interval_upper_bound[3][256]
Specifies the upper bound of each intensity interval for which the set of model values applies for th...
Definition: film_grain_params.h:179
av_get_detection_bbox
static av_always_inline AVDetectionBBox * av_get_detection_bbox(const AVDetectionBBoxHeader *header, unsigned int idx)
Definition: detection_bbox.h:84
AV_LOG_ERROR
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:210
film_grain_params.h
AVFrameSideData::size
size_t size
Definition: frame.h:279
FF_ARRAY_ELEMS
#define FF_ARRAY_ELEMS(a)
Definition: sinewin_tablegen.c:29
config_props_in
static int config_props_in(AVFilterLink *link)
Definition: vf_showinfo.c:905
AVRegionOfInterest
Structure describing a single Region Of Interest.
Definition: frame.h:347
AV_FRAME_FLAG_KEY
#define AV_FRAME_FLAG_KEY
A flag to mark frames that are keyframes.
Definition: frame.h:636
FFFilter
Definition: filters.h:266
filter_frame
static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
Definition: vf_showinfo.c:737
AVDOVIMetadata
Combined struct representing a combination of header, mapping and color metadata, for attaching to fr...
Definition: dovi_meta.h:337
stereo3d.h
AVMasteringDisplayMetadata::white_point
AVRational white_point[2]
CIE 1931 xy chromaticity coords of white point.
Definition: mastering_display_metadata.h:47
s
#define s(width, name)
Definition: cbs_vp9.c:198
AVDOVIReshapingCurve::mmr_order
uint8_t mmr_order[AV_DOVI_MAX_PIECES]
Definition: dovi_meta.h:125
AVHDRPlusColorTransformParams::semiminor_axis_external_ellipse
uint16_t semiminor_axis_external_ellipse
The semi-minor axis value of the external ellipse of the elliptical pixel selector in amount of pixel...
Definition: hdr_dynamic_metadata.h:141
AV_CEIL_RSHIFT
#define AV_CEIL_RSHIFT(a, b)
Definition: common.h:60
AVRegionOfInterest::bottom
int bottom
Definition: frame.h:363
AVHDRPlusColorTransformParams::window_upper_left_corner_y
AVRational window_upper_left_corner_y
The relative y coordinate of the top left pixel of the processing window.
Definition: hdr_dynamic_metadata.h:76
AVDetectionBBox::classify_confidences
AVRational classify_confidences[AV_NUM_DETECTION_BBOX_CLASSIFY]
Definition: detection_bbox.h:53
AVHDRPlusColorTransformParams::window_lower_right_corner_x
AVRational window_lower_right_corner_x
The relative x coordinate of the bottom right pixel of the processing window.
Definition: hdr_dynamic_metadata.h:85
av_q2d
static double av_q2d(AVRational a)
Convert an AVRational to a double.
Definition: rational.h:104
AVDynamicHDRPlus::targeted_system_display_maximum_luminance
AVRational targeted_system_display_maximum_luminance
The nominal maximum display luminance of the targeted system display, in units of 0....
Definition: hdr_dynamic_metadata.h:271
filters.h
VF
#define VF
Definition: vf_showinfo.c:61
AVDynamicHDRPlus::mastering_display_actual_peak_luminance_flag
uint8_t mastering_display_actual_peak_luminance_flag
This flag shall be equal to 0 in bitstreams conforming to this version of this Specification.
Definition: hdr_dynamic_metadata.h:303
ctx
AVFormatContext * ctx
Definition: movenc.c:49
AVVideoEncParams::type
enum AVVideoEncParamsType type
Type of the parameters (the codec they are used with).
Definition: video_enc_params.h:95
dump_dovi_metadata
static void dump_dovi_metadata(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:556
AV_FRAME_DATA_3D_REFERENCE_DISPLAYS
@ AV_FRAME_DATA_3D_REFERENCE_DISPLAYS
This side data contains information about the reference display width(s) and reference viewing distan...
Definition: frame.h:256
AVFilmGrainH274Params::comp_model_value
int16_t comp_model_value[3][256][6]
Specifies the model values for the component for each intensity interval.
Definition: film_grain_params.h:190
FILTER_OUTPUTS
#define FILTER_OUTPUTS(array)
Definition: filters.h:264
AVCOL_PRI_UNSPECIFIED
@ AVCOL_PRI_UNSPECIFIED
Definition: pixfmt.h:639
AV_FILM_GRAIN_PARAMS_NONE
@ AV_FILM_GRAIN_PARAMS_NONE
Definition: film_grain_params.h:25
av_dovi_get_header
static av_always_inline AVDOVIRpuDataHeader * av_dovi_get_header(const AVDOVIMetadata *data)
Definition: dovi_meta.h:355
dump_mastering_display
static void dump_mastering_display(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:188
AVDOVIReshapingCurve::poly_order
uint8_t poly_order[AV_DOVI_MAX_PIECES]
Definition: dovi_meta.h:122
AV_FRAME_DATA_DYNAMIC_HDR_VIVID
@ AV_FRAME_DATA_DYNAMIC_HDR_VIVID
HDR Vivid dynamic metadata associated with a video frame.
Definition: frame.h:215
link
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 link
Definition: filter_design.txt:23
AVStereo3D::flags
int flags
Additional information about the frame packing.
Definition: stereo3d.h:212
AVHDRPlusPercentile::percentage
uint8_t percentage
The percentage value corresponding to a specific percentile linearized RGB value in the processing wi...
Definition: hdr_dynamic_metadata.h:45
if
if(ret)
Definition: filter_design.txt:179
AVFilmGrainH274Params::model_id
int model_id
Specifies the film grain simulation mode.
Definition: film_grain_params.h:137
AVDOVINLQParams::linear_deadzone_threshold
uint64_t linear_deadzone_threshold
Definition: dovi_meta.h:144
av_color_range_name
const char * av_color_range_name(enum AVColorRange range)
Definition: pixdesc.c:3757
AVFilmGrainAOMParams::uv_mult_luma
int uv_mult_luma[2]
Definition: film_grain_params.h:106
config_props
static int config_props(AVFilterContext *ctx, AVFilterLink *link, int is_out)
Definition: vf_showinfo.c:893
AVDynamicHDRPlus::application_version
uint8_t application_version
Application version in the application defining document in ST-2094 suite.
Definition: hdr_dynamic_metadata.h:253
AV_FRAME_DATA_SPHERICAL
@ AV_FRAME_DATA_SPHERICAL
The data represents the AVSphericalMapping structure defined in libavutil/spherical....
Definition: frame.h:131
AVClass
Describe the class of an AVClass context structure.
Definition: log.h:76
NULL
#define NULL
Definition: coverity.c:32
format
New swscale design to change SwsGraph is what coordinates multiple passes These can include cascaded scaling error diffusion and so on Or we could have separate passes for the vertical and horizontal scaling In between each SwsPass lies a fully allocated image buffer Graph passes may have different levels of e g we can have a single threaded error diffusion pass following a multi threaded scaling pass SwsGraph is internally recreated whenever the image format
Definition: swscale-v2.txt:14
AVHDRVividColorTransformParams::color_saturation_gain
AVRational color_saturation_gain[8]
Indicates the color correction strength parameter.
Definition: hdr_dynamic_vivid_metadata.h:242
dump_roi
static void dump_roi(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:135
AVDetectionBBox::classify_labels
char classify_labels[AV_NUM_DETECTION_BBOX_CLASSIFY][AV_DETECTION_BBOX_LABEL_NAME_MAX_SIZE]
Definition: detection_bbox.h:52
AVDetectionBBoxHeader
Definition: detection_bbox.h:56
AVRegionOfInterest::self_size
uint32_t self_size
Must be set to the size of this data structure (that is, sizeof(AVRegionOfInterest)).
Definition: frame.h:352
AVStereo3D::horizontal_disparity_adjustment
AVRational horizontal_disparity_adjustment
Relative shift of the left and right images, which changes the zero parallax plane.
Definition: stereo3d.h:234
AVDynamicHDRVivid
This struct represents dynamic metadata for color volume transform - CUVA 005.1:2021 standard.
Definition: hdr_dynamic_vivid_metadata.h:256
dump_ambient_viewing_environment
static void dump_ambient_viewing_environment(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:659
AVHDRVividColorTransformParams::color_saturation_mapping_flag
int color_saturation_mapping_flag
This flag indicates that the metadata for the color saturation mapping in the processing window is pr...
Definition: hdr_dynamic_vivid_metadata.h:229
AV_FRAME_DATA_MASTERING_DISPLAY_METADATA
@ AV_FRAME_DATA_MASTERING_DISPLAY_METADATA
Mastering display metadata associated with a video frame.
Definition: frame.h:120
av_color_primaries_name
const char * av_color_primaries_name(enum AVColorPrimaries primaries)
Definition: pixdesc.c:3775
adler32.h
ShowInfoContext::calculate_checksums
int calculate_checksums
Definition: vf_showinfo.c:56
AVHDRPlusColorTransformParams::fraction_bright_pixels
AVRational fraction_bright_pixels
The fraction of selected pixels in the image that contains the brightest pixel in the scene.
Definition: hdr_dynamic_metadata.h:183
double
double
Definition: af_crystalizer.c:132
dump_video_enc_params
static void dump_video_enc_params(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:404
dump_sei_unregistered_metadata
static void dump_sei_unregistered_metadata(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:423
AVDOVIReshapingCurve::mmr_constant
int64_t mmr_constant[AV_DOVI_MAX_PIECES]
Definition: dovi_meta.h:126
AVHDRPlusColorTransformParams::color_saturation_weight
AVRational color_saturation_weight
The color saturation gain in the processing window in the scene.
Definition: hdr_dynamic_metadata.h:229
AVHDRVividColorTransformParams::tone_mapping_mode_flag
int tone_mapping_mode_flag
This flag indicates that the metadata for the tone mapping function in the processing window is prese...
Definition: hdr_dynamic_vivid_metadata.h:212
AV_FRAME_DATA_AFD
@ AV_FRAME_DATA_AFD
Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 using AVAc...
Definition: frame.h:90
AVCOL_RANGE_UNSPECIFIED
@ AVCOL_RANGE_UNSPECIFIED
Definition: pixfmt.h:733
c
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
Definition: undefined.txt:32
AV_FRAME_DATA_SEI_UNREGISTERED
@ AV_FRAME_DATA_SEI_UNREGISTERED
User data unregistered metadata associated with a video frame.
Definition: frame.h:178
ff_filter_link
static FilterLink * ff_filter_link(AVFilterLink *link)
Definition: filters.h:198
av_adler32_update
AVAdler av_adler32_update(AVAdler adler, const uint8_t *buf, size_t len)
Calculate the Adler32 checksum of a buffer.
Definition: adler32.c:44
AVStereo3D::primary_eye
enum AVStereo3DPrimaryEye primary_eye
Which eye is the primary eye when rendering in 2D.
Definition: stereo3d.h:222
AVFilmGrainAOMParams::num_uv_points
int num_uv_points[2]
If chroma_scaling_from_luma is set to 0, signals the chroma scaling function parameters.
Definition: film_grain_params.h:62
AV_UUID_LEN
#define AV_UUID_LEN
Definition: uuid.h:57
av_spherical_projection_name
const char * av_spherical_projection_name(enum AVSphericalProjection projection)
Provide a human-readable name of a given AVSphericalProjection.
Definition: spherical.c:67
AV_SPHERICAL_CUBEMAP
@ AV_SPHERICAL_CUBEMAP
Video frame is split into 6 faces of a cube, and arranged on a 3x2 layout.
Definition: spherical.h:61
av_ts2timestr
#define av_ts2timestr(ts, tb)
Convenience macro, the return value should be used only directly in function arguments but never stan...
Definition: timestamp.h:83
AVDynamicHDRPlus::num_rows_mastering_display_actual_peak_luminance
uint8_t num_rows_mastering_display_actual_peak_luminance
The number of rows in the mastering_display_actual_peak_luminance array.
Definition: hdr_dynamic_metadata.h:309
dump_dynamic_hdr_plus
static void dump_dynamic_hdr_plus(AVFilterContext *ctx, AVFrameSideData *sd)
Definition: vf_showinfo.c:213
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:94
AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT
@ AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT
Ambient viewing environment metadata, as defined by H.274.
Definition: frame.h:220
AVDetectionBBox::w
int w
Definition: detection_bbox.h:33
AVFilmGrainH274Params::component_model_present
int component_model_present[3]
Indicates if the modelling of film grain for a given component is present.
Definition: film_grain_params.h:155
AV_DOVI_NLQ_LINEAR_DZ
@ AV_DOVI_NLQ_LINEAR_DZ
Definition: dovi_meta.h:132
AVDynamicHDRPlus::num_windows
uint8_t num_windows
The number of processing windows.
Definition: hdr_dynamic_metadata.h:259
av_stereo3d_primary_eye_name
const char * av_stereo3d_primary_eye_name(unsigned int eye)
Provide a human-readable name of a given stereo3d primary eye.
Definition: stereo3d.c:133
uuid.h
showinfo_options
static const AVOption showinfo_options[]
Definition: vf_showinfo.c:63
AVHDRVividColorTransformParams::average_maxrgb
AVRational average_maxrgb
Indicates the average brightness of the displayed content.
Definition: hdr_dynamic_vivid_metadata.h:192
AVDynamicHDRPlus::mastering_display_actual_peak_luminance
AVRational mastering_display_actual_peak_luminance[25][25]
The normalized actual peak luminance of the mastering display used for mastering the image essence.
Definition: hdr_dynamic_metadata.h:322
AVFrame::time_base
AVRational time_base
Time base for the timestamps in this frame.
Definition: frame.h:538
AVFrameSideData::data
uint8_t * data
Definition: frame.h:278
AVFilmGrainParams
This structure describes how to handle film grain synthesis in video for specific codecs.
Definition: film_grain_params.h:201
user_data
static int FUNC() user_data(CodedBitstreamContext *ctx, RWContext *rw, MPEG2RawUserData *current)
Definition: cbs_mpeg2_syntax_template.c:59
AVVideoEncParams::nb_blocks
unsigned int nb_blocks
Number of blocks in the array.
Definition: video_enc_params.h:81
AVHDRPlusColorTransformParams::window_lower_right_corner_y
AVRational window_lower_right_corner_y
The relative y coordinate of the bottom right pixel of the processing window.
Definition: hdr_dynamic_metadata.h:94
header
static const uint8_t header[24]
Definition: sdr2.c:68
AVHDRVividColorToneMappingParams::base_param_k1
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...
Definition: hdr_dynamic_vivid_metadata.h:130
AVDetectionBBox::classify_count
uint32_t classify_count
Definition: detection_bbox.h:51
AVSphericalMapping::padding
uint32_t padding
Number of pixels to pad from the edge of each cube face.
Definition: spherical.h:194
AVDOVIReshapingCurve::poly_coef
int64_t poly_coef[AV_DOVI_MAX_PIECES][3]
Definition: dovi_meta.h:123
AVRegionOfInterest::right
int right
Definition: frame.h:365
dump_sei_film_grain_params_metadata
static void dump_sei_film_grain_params_metadata(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:447
AV_STEREO3D_FLAG_INVERT
#define AV_STEREO3D_FLAG_INVERT
Inverted views, Right/Bottom represents the left view.
Definition: stereo3d.h:194
AVFilmGrainAOMParams::ar_coeffs_y
int8_t ar_coeffs_y[24]
Luma auto-regression coefficients.
Definition: film_grain_params.h:80
update_sample_stats_16
static void update_sample_stats_16(int be, const uint8_t *src, int len, int64_t *sum, int64_t *sum2)
Definition: vf_showinfo.c:713
AV_LOG_INFO
#define AV_LOG_INFO
Standard information.
Definition: log.h:221
AV_FRAME_DATA_VIEW_ID
@ AV_FRAME_DATA_VIEW_ID
This side data must be associated with a video frame.
Definition: frame.h:245
AVDynamicHDRPlus::num_rows_targeted_system_display_actual_peak_luminance
uint8_t num_rows_targeted_system_display_actual_peak_luminance
The number of rows in the targeted system_display_actual_peak_luminance array.
Definition: hdr_dynamic_metadata.h:283
AVHDRPlusColorTransformParams::window_upper_left_corner_x
AVRational window_upper_left_corner_x
The relative x coordinate of the top left pixel of the processing window.
Definition: hdr_dynamic_metadata.h:67
AV_PRI_UUID
#define AV_PRI_UUID
Definition: uuid.h:39
av_image_get_linesize
int av_image_get_linesize(enum AVPixelFormat pix_fmt, int width, int plane)
Compute the size of an image line with format pix_fmt and width width for the plane plane.
Definition: imgutils.c:76
av_get_picture_type_char
char av_get_picture_type_char(enum AVPictureType pict_type)
Return a single letter to describe the given picture type pict_type.
Definition: utils.c:40
AVRegionOfInterest::left
int left
Definition: frame.h:364
AV_FRAME_DATA_CONTENT_LIGHT_LEVEL
@ AV_FRAME_DATA_CONTENT_LIGHT_LEVEL
Content light level (based on CTA-861.3).
Definition: frame.h:137
AVHDRPlusColorTransformParams::semimajor_axis_internal_ellipse
uint16_t semimajor_axis_internal_ellipse
The semi-major axis value of the internal ellipse of the elliptical pixel selector in amount of pixel...
Definition: hdr_dynamic_metadata.h:125
AVSphericalMapping::roll
int32_t roll
Rotation around the forward vector [-180, 180].
Definition: spherical.h:140
dump_content_light_metadata
static void dump_content_light_metadata(AVFilterContext *ctx, AVFrameSideData *sd)
Definition: vf_showinfo.c:395
i
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:256
av_timecode_make_smpte_tc_string2
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.
Definition: timecode.c:131
AVFilmGrainH274Params
This structure describes how to handle film grain synthesis for codecs using the ITU-T H....
Definition: film_grain_params.h:132
AVRegionOfInterest::top
int top
Distance in pixels from the top edge of the frame to the top and bottom edges and from the left edge ...
Definition: frame.h:362
internal.h
AVHDRVividColorToneMappingParams::targeted_system_display_maximum_luminance
AVRational targeted_system_display_maximum_luminance
The nominal maximum display luminance of the targeted system display, in multiples of 1....
Definition: hdr_dynamic_vivid_metadata.h:83
AVFilmGrainH274Params::num_intensity_intervals
uint16_t num_intensity_intervals[3]
Specifies the number of intensity intervals for which a specific set of model values has been estimat...
Definition: film_grain_params.h:161
display.h
AVDOVIDataMapping::num_y_partitions
uint32_t num_y_partitions
Definition: dovi_meta.h:161
AV_FRAME_DATA_STEREO3D
@ AV_FRAME_DATA_STEREO3D
Stereoscopic 3d metadata.
Definition: frame.h:64
AV_PIX_FMT_FLAG_BE
#define AV_PIX_FMT_FLAG_BE
Pixel format is big-endian.
Definition: pixdesc.h:116
AVHDRPlusColorTransformParams::overlap_process_option
enum AVHDRPlusOverlapProcessOption overlap_process_option
Overlap process option indicates one of the two methods of combining rendered pixels in the processin...
Definition: hdr_dynamic_metadata.h:149
AVHDRVividColorTransformParams
Color transform parameters at a processing window in a dynamic metadata for CUVA 005....
Definition: hdr_dynamic_vivid_metadata.h:179
AVFilmGrainAOMParams::scaling_shift
int scaling_shift
Specifies the shift applied to the chroma components.
Definition: film_grain_params.h:69
AVMasteringDisplayMetadata
Mastering display metadata capable of representing the color volume of the display used to master the...
Definition: mastering_display_metadata.h:38
len
int len
Definition: vorbis_enc_data.h:426
AVFilterPad::name
const char * name
Pad name.
Definition: filters.h:45
AVCOL_SPC_UNSPECIFIED
@ AVCOL_SPC_UNSPECIFIED
Definition: pixfmt.h:693
AVDOVINLQParams
Coefficients of the non-linear inverse quantization.
Definition: dovi_meta.h:139
AVHDRVividColorToneMappingParams::base_param_Delta_enable_mode
int base_param_Delta_enable_mode
This flag indicates that delta mode of base paramter(for value of 1)
Definition: hdr_dynamic_vivid_metadata.h:150
ambient_viewing_environment.h
avfilter_vf_showinfo_outputs
static const AVFilterPad avfilter_vf_showinfo_outputs[]
Definition: vf_showinfo.c:926
AV_FRAME_FLAG_INTERLACED
#define AV_FRAME_FLAG_INTERLACED
A flag to mark frames whose content is interlaced.
Definition: frame.h:644
AVFilmGrainH274Params::intensity_interval_lower_bound
uint8_t intensity_interval_lower_bound[3][256]
Specifies the lower ounds of each intensity interval for whichthe set of model values applies for the...
Definition: film_grain_params.h:173
AVDynamicHDRPlus
This struct represents dynamic metadata for color volume transform - application 4 of SMPTE 2094-40:2...
Definition: hdr_dynamic_metadata.h:243
AVDOVIDataMapping::curves
AVDOVIReshapingCurve curves[3]
Definition: dovi_meta.h:156
AVDOVINLQParams::linear_deadzone_slope
uint64_t linear_deadzone_slope
Definition: dovi_meta.h:143
AVDOVIReshapingCurve
Definition: dovi_meta.h:117
bswap.h
AV_FRAME_DATA_GOP_TIMECODE
@ AV_FRAME_DATA_GOP_TIMECODE
The GOP timecode in 25 bit timecode format.
Definition: frame.h:125
frame
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
Definition: filter_design.txt:265
AVSphericalMapping::pitch
int32_t pitch
Rotation around the right vector [-90, 90].
Definition: spherical.h:139
AVDOVINLQParams::vdr_in_max
uint64_t vdr_in_max
Definition: dovi_meta.h:141
ShowInfoContext::udu_sei_as_ascii
int udu_sei_as_ascii
Definition: vf_showinfo.c:57
AVDetectionBBox::h
int h
Definition: detection_bbox.h:34
AVStereo3D::type
enum AVStereo3DType type
How views are packed within the video.
Definition: stereo3d.h:207
dump_stereo3d
static void dump_stereo3d(AVFilterContext *ctx, const AVFrameSideData *sd)
Definition: vf_showinfo.c:98
AVHDRVivid3SplineParams
HDR Vivid three spline params.
Definition: hdr_dynamic_vivid_metadata.h:30
dovi_meta.h
AVHDRVividColorTransformParams::minimum_maxrgb
AVRational minimum_maxrgb
Indicates the minimum brightness of the displayed content.
Definition: hdr_dynamic_vivid_metadata.h:185
AVDetectionBBox::detect_confidence
AVRational detect_confidence
Definition: detection_bbox.h:42
SIZE_SPECIFIER
#define SIZE_SPECIFIER
Definition: internal.h:129
AVDOVIReshapingCurve::num_pivots
uint8_t num_pivots
Definition: dovi_meta.h:118
av_dovi_get_color
static av_always_inline AVDOVIColorMetadata * av_dovi_get_color(const AVDOVIMetadata *data)
Definition: dovi_meta.h:367
AVHDRVividColorToneMappingParams::base_param_m_n
AVRational base_param_m_n
base_param_m_n in the base parameter, in multiples of 1.0/10.
Definition: hdr_dynamic_vivid_metadata.h:123
AV_FRAME_DATA_DYNAMIC_HDR_PLUS
@ AV_FRAME_DATA_DYNAMIC_HDR_PLUS
HDR dynamic metadata associated with a video frame.
Definition: frame.h:159
AVHDRVividColorToneMappingParams::base_param_m_a
AVRational base_param_m_a
base_param_m_a in the base parameter, in multiples of 1.0/1023.
Definition: hdr_dynamic_vivid_metadata.h:109
av_timecode_make_mpeg_tc_string
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).
Definition: timecode.c:147
AVFilmGrainAOMParams::ar_coeff_lag
int ar_coeff_lag
Specifies the auto-regression lag.
Definition: film_grain_params.h:74
AVDOVIDataMapping::mapping_chroma_format_idc
uint8_t mapping_chroma_format_idc
Definition: dovi_meta.h:155
AV_FILM_GRAIN_PARAMS_H274
@ AV_FILM_GRAIN_PARAMS_H274
The union is valid when interpreted as AVFilmGrainH274Params (codec.h274)
Definition: film_grain_params.h:35
AVDynamicHDRPlus::targeted_system_display_actual_peak_luminance_flag
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.
Definition: hdr_dynamic_metadata.h:277
AVFilmGrainAOMParams::y_points
uint8_t y_points[14][2]
Definition: film_grain_params.h:50
AVFilmGrainAOMParams::uv_offset
int uv_offset[2]
Offset used for component scaling function.
Definition: film_grain_params.h:112
update_sample_stats_8
static void update_sample_stats_8(const uint8_t *src, int len, int64_t *sum, int64_t *sum2)
Definition: vf_showinfo.c:703
AV_FRAME_DATA_VIDEO_ENC_PARAMS
@ AV_FRAME_DATA_VIDEO_ENC_PARAMS
Encoding parameters for a video frame, as described by AVVideoEncParams.
Definition: frame.h:170
AVRational::den
int den
Denominator.
Definition: rational.h:60
avfilter.h
AVHDRVivid3SplineParams::th_enable
AVRational th_enable
3Spline_TH_enable of three Spline.
Definition: hdr_dynamic_vivid_metadata.h:49
ShowInfoContext
Definition: vf_showinfo.c:54
AVHDRPlusColorTransformParams::num_distribution_maxrgb_percentiles
uint8_t num_distribution_maxrgb_percentiles
The number of linearized maxRGB values at given percentiles in the processing window in the scene.
Definition: hdr_dynamic_metadata.h:170
AVHDRPlusColorTransformParams::maxscl
AVRational maxscl[3]
The maximum of the color components of linearized RGB values in the processing window in the scene.
Definition: hdr_dynamic_metadata.h:157
AVFILTER_FLAG_METADATA_ONLY
#define AVFILTER_FLAG_METADATA_ONLY
The filter is a "metadata" filter - it does not modify the frame data in any way.
Definition: avfilter.h:178
AVDetectionBBox::x
int x
Distance in pixels from the left/top edge of the frame, together with width and height,...
Definition: detection_bbox.h:31
AVFrameSideData::type
enum AVFrameSideDataType type
Definition: frame.h:277
AVDOVIColorMetadata
Dolby Vision RPU colorspace metadata parameters.
Definition: dovi_meta.h:171
AVFilmGrainH274Params::log2_scale_factor
int log2_scale_factor
Specifies a scale factor used in the film grain characterization equations.
Definition: film_grain_params.h:150
AVFilmGrainAOMParams::uv_mult
int uv_mult[2]
Specifies the luma/chroma multipliers for the index to the component scaling function.
Definition: film_grain_params.h:105
hdr_dynamic_metadata.h
AVMasteringDisplayMetadata::min_luminance
AVRational min_luminance
Min luminance of mastering display (cd/m^2).
Definition: mastering_display_metadata.h:52
AVHDRVividColorToneMappingParams
Color tone mapping parameters at a processing window in a dynamic metadata for CUVA 005....
Definition: hdr_dynamic_vivid_metadata.h:77
AVFilmGrainH274Params::num_model_values
uint8_t num_model_values[3]
Specifies the number of model values present for each intensity interval in which the film grain has ...
Definition: film_grain_params.h:167
AVFilterContext
An instance of a filter.
Definition: avfilter.h:269
AVFilmGrainAOMParams::overlap_flag
int overlap_flag
Signals whether to overlap film grain blocks.
Definition: film_grain_params.h:117
AV3DReferenceDisplaysInfo::num_ref_displays
uint8_t num_ref_displays
The number of reference displays that are signalled in this struct.
Definition: tdrdi.h:78
desc
const char * desc
Definition: libsvtav1.c:79
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:200
FFFilter::p
AVFilter p
The public AVFilter.
Definition: filters.h:270
AVHDRPlusColorTransformParams::center_of_ellipse_y
uint16_t center_of_ellipse_y
The y coordinate of the center position of the concentric internal and external ellipses of the ellip...
Definition: hdr_dynamic_metadata.h:110
mastering_display_metadata.h
av_dovi_get_mapping
static av_always_inline AVDOVIDataMapping * av_dovi_get_mapping(const AVDOVIMetadata *data)
Definition: dovi_meta.h:361
AVFrameSideData
Structure to hold side data for an AVFrame.
Definition: frame.h:276
AVDynamicHDRVivid::params
AVHDRVividColorTransformParams params[3]
The color transform parameters for every processing window.
Definition: hdr_dynamic_vivid_metadata.h:271
AVPixFmtDescriptor
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
Definition: pixdesc.h:69
dump_dynamic_hdr_vivid
static void dump_dynamic_hdr_vivid(AVFilterContext *ctx, AVFrameSideData *sd)
Definition: vf_showinfo.c:312
AVStereo3D::view
enum AVStereo3DView view
Determines which views are packed.
Definition: stereo3d.h:217
AVDOVIReshapingCurve::pivots
uint16_t pivots[AV_DOVI_MAX_PIECES+1]
Definition: dovi_meta.h:119
AV_OPT_TYPE_BOOL
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
Definition: opt.h:327
AVDynamicHDRPlus::targeted_system_display_actual_peak_luminance
AVRational targeted_system_display_actual_peak_luminance[25][25]
The normalized actual peak luminance of the targeted system display.
Definition: hdr_dynamic_metadata.h:297
av_frame_side_data_name
const char * av_frame_side_data_name(enum AVFrameSideDataType type)
Definition: side_data.c:69
int32_t
int32_t
Definition: audioconvert.c:56
AV_FRAME_DATA_REGIONS_OF_INTEREST
@ AV_FRAME_DATA_REGIONS_OF_INTEREST
Regions Of Interest, the data is an array of AVRegionOfInterest type, the number of array element is ...
Definition: frame.h:165
imgutils.h
AVDOVINLQParams::nlq_offset
uint16_t nlq_offset
Definition: dovi_meta.h:140
timestamp.h
AVDOVIDataMapping::vdr_rpu_id
uint8_t vdr_rpu_id
Definition: dovi_meta.h:153
AVDynamicHDRVivid::system_start_code
uint8_t system_start_code
The system start code.
Definition: hdr_dynamic_vivid_metadata.h:260
av_log
#define av_log(a,...)
Definition: tableprint_vlc.h:27
AVDetectionBBox
Definition: detection_bbox.h:26
av_ts2str
#define av_ts2str(ts)
Convenience macro, the return value should be used only directly in function arguments but never stan...
Definition: timestamp.h:54
AVHDRVividColorToneMappingParams::base_param_k3
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...
Definition: hdr_dynamic_vivid_metadata.h:145
av_stereo3d_type_name
const char * av_stereo3d_type_name(unsigned int type)
Provide a human-readable name of a given stereo3d type.
Definition: stereo3d.c:93
h
h
Definition: vp9dsp_template.c:2070
AVHDRVivid3SplineParams::th_delta2
AVRational th_delta2
3Spline_TH_Delta2 of three Spline.
Definition: hdr_dynamic_vivid_metadata.h:63
AVStereo3D
Stereo 3D type: this structure describes how two videos are packed within a single video surface,...
Definition: stereo3d.h:203
AVHDRVivid3SplineParams::th_enable_mb
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....
Definition: hdr_dynamic_vivid_metadata.h:42
width
#define width
Definition: dsp.h:89
AVAmbientViewingEnvironment::ambient_light_y
AVRational ambient_light_y
Normalized y chromaticity coordinate of the environmental ambient light in the nominal viewing enviro...
Definition: ambient_viewing_environment.h:54
AVFilmGrainAOMParams::chroma_scaling_from_luma
int chroma_scaling_from_luma
Signals whether to derive the chroma scaling function from the luma.
Definition: film_grain_params.h:56
av_bswap16
#define av_bswap16
Definition: bswap.h:28
AV_FILM_GRAIN_PARAMS_AV1
@ AV_FILM_GRAIN_PARAMS_AV1
The union is valid when interpreted as AVFilmGrainAOMParams (codec.aom)
Definition: film_grain_params.h:30
AVHDRVividColorToneMappingParams::three_spline
AVHDRVivid3SplineParams three_spline[2]
Definition: hdr_dynamic_vivid_metadata.h:171
AVHDRVividColorToneMappingParams::base_param_m_p
AVRational base_param_m_p
base_param_m_p in the base parameter, in multiples of 1.0/16383.
Definition: hdr_dynamic_vivid_metadata.h:95
AVRegionOfInterest::qoffset
AVRational qoffset
Quantisation offset.
Definition: frame.h:389
AVDOVIDataMapping::nlq
AVDOVINLQParams nlq[3]
Definition: dovi_meta.h:162
AVDOVIDataMapping
Dolby Vision RPU data mapping parameters.
Definition: dovi_meta.h:152
AVSphericalMapping
This structure describes how to handle spherical videos, outlining information about projection,...
Definition: spherical.h:94
av_color_transfer_name
const char * av_color_transfer_name(enum AVColorTransferCharacteristic transfer)
Definition: pixdesc.c:3796
detection_bbox.h
AVSphericalMapping::yaw
int32_t yaw
Rotation around the up vector [-180, 180].
Definition: spherical.h:138
AVHDRVividColorToneMappingParams::base_param_m_b
AVRational base_param_m_b
base_param_m_b in the base parameter, in multiples of 1/1023.
Definition: hdr_dynamic_vivid_metadata.h:116
src
#define src
Definition: vp8dsp.c:248
AV_FRAME_DATA_DETECTION_BBOXES
@ AV_FRAME_DATA_DETECTION_BBOXES
Bounding boxes for object detection and classification, as described by AVDetectionBBoxHeader.
Definition: frame.h:194
AVHDRVividColorToneMappingParams::base_param_m_m
AVRational base_param_m_m
base_param_m_m in the base parameter, in multiples of 1.0/10.
Definition: hdr_dynamic_vivid_metadata.h:102
AVHDRPlusColorTransformParams::bezier_curve_anchors
AVRational bezier_curve_anchors[15]
The intermediate anchor parameters of the tone mapping function in the processing window in the scene...
Definition: hdr_dynamic_metadata.h:216
tdrdi.h
video_enc_params.h
AVDynamicHDRPlus::num_cols_mastering_display_actual_peak_luminance
uint8_t num_cols_mastering_display_actual_peak_luminance
The number of columns in the mastering_display_actual_peak_luminance array.
Definition: hdr_dynamic_metadata.h:315
AVDOVIDataMapping::num_x_partitions
uint32_t num_x_partitions
Definition: dovi_meta.h:160
AVFilmGrainAOMParams::ar_coeff_shift
int ar_coeff_shift
Specifies the range of the auto-regressive coefficients.
Definition: film_grain_params.h:93
av_display_rotation_get
double av_display_rotation_get(const int32_t matrix[9])
Extract the rotation component of the transformation matrix.
Definition: display.c:35
AVFilmGrainAOMParams::ar_coeffs_uv
int8_t ar_coeffs_uv[2][25]
Chroma auto-regression coefficients.
Definition: film_grain_params.h:86