FFmpeg
dump.c
Go to the documentation of this file.
1 /*
2  * Various pretty-printing functions for use within FFmpeg
3  * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #include <stdio.h>
23 #include <stdint.h>
24 
26 #include "libavutil/display.h"
27 #include "libavutil/intreadwrite.h"
28 #include "libavutil/log.h"
30 #include "libavutil/dovi_meta.h"
31 #include "libavutil/mathematics.h"
32 #include "libavutil/opt.h"
33 #include "libavutil/avstring.h"
34 #include "libavutil/replaygain.h"
35 #include "libavutil/spherical.h"
36 #include "libavutil/stereo3d.h"
37 
38 #include "avformat.h"
39 
40 #define HEXDUMP_PRINT(...) \
41  do { \
42  if (!f) \
43  av_log(avcl, level, __VA_ARGS__); \
44  else \
45  fprintf(f, __VA_ARGS__); \
46  } while (0)
47 
48 static void hex_dump_internal(void *avcl, FILE *f, int level,
49  const uint8_t *buf, int size)
50 {
51  int len, i, j, c;
52 
53  for (i = 0; i < size; i += 16) {
54  len = size - i;
55  if (len > 16)
56  len = 16;
57  HEXDUMP_PRINT("%08x ", i);
58  for (j = 0; j < 16; j++) {
59  if (j < len)
60  HEXDUMP_PRINT(" %02x", buf[i + j]);
61  else
62  HEXDUMP_PRINT(" ");
63  }
64  HEXDUMP_PRINT(" ");
65  for (j = 0; j < len; j++) {
66  c = buf[i + j];
67  if (c < ' ' || c > '~')
68  c = '.';
69  HEXDUMP_PRINT("%c", c);
70  }
71  HEXDUMP_PRINT("\n");
72  }
73 }
74 
75 void av_hex_dump(FILE *f, const uint8_t *buf, int size)
76 {
77  hex_dump_internal(NULL, f, 0, buf, size);
78 }
79 
80 void av_hex_dump_log(void *avcl, int level, const uint8_t *buf, int size)
81 {
82  hex_dump_internal(avcl, NULL, level, buf, size);
83 }
84 
85 static void pkt_dump_internal(void *avcl, FILE *f, int level, const AVPacket *pkt,
86  int dump_payload, AVRational time_base)
87 {
88  HEXDUMP_PRINT("stream #%d:\n", pkt->stream_index);
89  HEXDUMP_PRINT(" keyframe=%d\n", (pkt->flags & AV_PKT_FLAG_KEY) != 0);
90  HEXDUMP_PRINT(" duration=%0.3f\n", pkt->duration * av_q2d(time_base));
91  /* DTS is _always_ valid after av_read_frame() */
92  HEXDUMP_PRINT(" dts=");
93  if (pkt->dts == AV_NOPTS_VALUE)
94  HEXDUMP_PRINT("N/A");
95  else
96  HEXDUMP_PRINT("%0.3f", pkt->dts * av_q2d(time_base));
97  /* PTS may not be known if B-frames are present. */
98  HEXDUMP_PRINT(" pts=");
99  if (pkt->pts == AV_NOPTS_VALUE)
100  HEXDUMP_PRINT("N/A");
101  else
102  HEXDUMP_PRINT("%0.3f", pkt->pts * av_q2d(time_base));
103  HEXDUMP_PRINT("\n");
104  HEXDUMP_PRINT(" size=%d\n", pkt->size);
105  if (dump_payload)
106  hex_dump_internal(avcl, f, level, pkt->data, pkt->size);
107 }
108 
109 void av_pkt_dump2(FILE *f, const AVPacket *pkt, int dump_payload, const AVStream *st)
110 {
111  pkt_dump_internal(NULL, f, 0, pkt, dump_payload, st->time_base);
112 }
113 
114 void av_pkt_dump_log2(void *avcl, int level, const AVPacket *pkt, int dump_payload,
115  const AVStream *st)
116 {
117  pkt_dump_internal(avcl, NULL, level, pkt, dump_payload, st->time_base);
118 }
119 
120 
121 static void print_fps(double d, const char *postfix)
122 {
123  uint64_t v = lrintf(d * 100);
124  if (!v)
125  av_log(NULL, AV_LOG_INFO, "%1.4f %s", d, postfix);
126  else if (v % 100)
127  av_log(NULL, AV_LOG_INFO, "%3.2f %s", d, postfix);
128  else if (v % (100 * 1000))
129  av_log(NULL, AV_LOG_INFO, "%1.0f %s", d, postfix);
130  else
131  av_log(NULL, AV_LOG_INFO, "%1.0fk %s", d / 1000, postfix);
132 }
133 
134 static void dump_metadata(void *ctx, AVDictionary *m, const char *indent)
135 {
136  if (m && !(av_dict_count(m) == 1 && av_dict_get(m, "language", NULL, 0))) {
138 
139  av_log(ctx, AV_LOG_INFO, "%sMetadata:\n", indent);
140  while ((tag = av_dict_get(m, "", tag, AV_DICT_IGNORE_SUFFIX)))
141  if (strcmp("language", tag->key)) {
142  const char *p = tag->value;
144  "%s %-16s: ", indent, tag->key);
145  while (*p) {
146  char tmp[256];
147  size_t len = strcspn(p, "\x8\xa\xb\xc\xd");
148  av_strlcpy(tmp, p, FFMIN(sizeof(tmp), len+1));
149  av_log(ctx, AV_LOG_INFO, "%s", tmp);
150  p += len;
151  if (*p == 0xd) av_log(ctx, AV_LOG_INFO, " ");
152  if (*p == 0xa) av_log(ctx, AV_LOG_INFO, "\n%s %-16s: ", indent, "");
153  if (*p) p++;
154  }
155  av_log(ctx, AV_LOG_INFO, "\n");
156  }
157  }
158 }
159 
160 /* param change side data*/
161 static void dump_paramchange(void *ctx, AVPacketSideData *sd)
162 {
163  int size = sd->size;
164  const uint8_t *data = sd->data;
165  uint32_t flags, channels, sample_rate, width, height;
166  uint64_t layout;
167 
168  if (!data || sd->size < 4)
169  goto fail;
170 
171  flags = AV_RL32(data);
172  data += 4;
173  size -= 4;
174 
176  if (size < 4)
177  goto fail;
178  channels = AV_RL32(data);
179  data += 4;
180  size -= 4;
181  av_log(ctx, AV_LOG_INFO, "channel count %"PRIu32", ", channels);
182  }
184  if (size < 8)
185  goto fail;
186  layout = AV_RL64(data);
187  data += 8;
188  size -= 8;
190  "channel layout: %s, ", av_get_channel_name(layout));
191  }
193  if (size < 4)
194  goto fail;
196  data += 4;
197  size -= 4;
198  av_log(ctx, AV_LOG_INFO, "sample_rate %"PRIu32", ", sample_rate);
199  }
201  if (size < 8)
202  goto fail;
203  width = AV_RL32(data);
204  data += 4;
205  size -= 4;
206  height = AV_RL32(data);
207  data += 4;
208  size -= 4;
209  av_log(ctx, AV_LOG_INFO, "width %"PRIu32" height %"PRIu32, width, height);
210  }
211 
212  return;
213 fail:
214  av_log(ctx, AV_LOG_ERROR, "unknown param");
215 }
216 
217 /* replaygain side data*/
218 static void print_gain(void *ctx, const char *str, int32_t gain)
219 {
220  av_log(ctx, AV_LOG_INFO, "%s - ", str);
221  if (gain == INT32_MIN)
222  av_log(ctx, AV_LOG_INFO, "unknown");
223  else
224  av_log(ctx, AV_LOG_INFO, "%f", gain / 100000.0f);
225  av_log(ctx, AV_LOG_INFO, ", ");
226 }
227 
228 static void print_peak(void *ctx, const char *str, uint32_t peak)
229 {
230  av_log(ctx, AV_LOG_INFO, "%s - ", str);
231  if (!peak)
232  av_log(ctx, AV_LOG_INFO, "unknown");
233  else
234  av_log(ctx, AV_LOG_INFO, "%f", (float) peak / UINT32_MAX);
235  av_log(ctx, AV_LOG_INFO, ", ");
236 }
237 
238 static void dump_replaygain(void *ctx, AVPacketSideData *sd)
239 {
240  AVReplayGain *rg;
241 
242  if (sd->size < sizeof(*rg)) {
243  av_log(ctx, AV_LOG_ERROR, "invalid data");
244  return;
245  }
246  rg = (AVReplayGain*)sd->data;
247 
248  print_gain(ctx, "track gain", rg->track_gain);
249  print_peak(ctx, "track peak", rg->track_peak);
250  print_gain(ctx, "album gain", rg->album_gain);
251  print_peak(ctx, "album peak", rg->album_peak);
252 }
253 
254 static void dump_stereo3d(void *ctx, AVPacketSideData *sd)
255 {
256  AVStereo3D *stereo;
257 
258  if (sd->size < sizeof(*stereo)) {
259  av_log(ctx, AV_LOG_ERROR, "invalid data");
260  return;
261  }
262 
263  stereo = (AVStereo3D *)sd->data;
264 
265  av_log(ctx, AV_LOG_INFO, "%s", av_stereo3d_type_name(stereo->type));
266 
267  if (stereo->flags & AV_STEREO3D_FLAG_INVERT)
268  av_log(ctx, AV_LOG_INFO, " (inverted)");
269 }
270 
272 {
273  enum AVAudioServiceType *ast = (enum AVAudioServiceType *)sd->data;
274 
275  if (sd->size < sizeof(*ast)) {
276  av_log(ctx, AV_LOG_ERROR, "invalid data");
277  return;
278  }
279 
280  switch (*ast) {
282  av_log(ctx, AV_LOG_INFO, "main");
283  break;
285  av_log(ctx, AV_LOG_INFO, "effects");
286  break;
288  av_log(ctx, AV_LOG_INFO, "visually impaired");
289  break;
291  av_log(ctx, AV_LOG_INFO, "hearing impaired");
292  break;
294  av_log(ctx, AV_LOG_INFO, "dialogue");
295  break;
297  av_log(ctx, AV_LOG_INFO, "commentary");
298  break;
300  av_log(ctx, AV_LOG_INFO, "emergency");
301  break;
303  av_log(ctx, AV_LOG_INFO, "voice over");
304  break;
306  av_log(ctx, AV_LOG_INFO, "karaoke");
307  break;
308  default:
309  av_log(ctx, AV_LOG_WARNING, "unknown");
310  break;
311  }
312 }
313 
314 static void dump_cpb(void *ctx, AVPacketSideData *sd)
315 {
316  AVCPBProperties *cpb = (AVCPBProperties *)sd->data;
317 
318  if (sd->size < sizeof(*cpb)) {
319  av_log(ctx, AV_LOG_ERROR, "invalid data");
320  return;
321  }
322 
325  "bitrate max/min/avg: %d/%d/%d buffer size: %d ",
326 #else
327  "bitrate max/min/avg: %"PRId64"/%"PRId64"/%"PRId64" buffer size: %d ",
328 #endif
329  cpb->max_bitrate, cpb->min_bitrate, cpb->avg_bitrate,
330  cpb->buffer_size);
331  if (cpb->vbv_delay == UINT64_MAX)
332  av_log(ctx, AV_LOG_INFO, "vbv_delay: N/A");
333  else
334  av_log(ctx, AV_LOG_INFO, "vbv_delay: %"PRIu64"", cpb->vbv_delay);
335 }
336 
339  av_log(ctx, AV_LOG_INFO, "Mastering Display Metadata, "
340  "has_primaries:%d has_luminance:%d "
341  "r(%5.4f,%5.4f) g(%5.4f,%5.4f) b(%5.4f %5.4f) wp(%5.4f, %5.4f) "
342  "min_luminance=%f, max_luminance=%f",
343  metadata->has_primaries, metadata->has_luminance,
344  av_q2d(metadata->display_primaries[0][0]),
345  av_q2d(metadata->display_primaries[0][1]),
346  av_q2d(metadata->display_primaries[1][0]),
347  av_q2d(metadata->display_primaries[1][1]),
348  av_q2d(metadata->display_primaries[2][0]),
349  av_q2d(metadata->display_primaries[2][1]),
350  av_q2d(metadata->white_point[0]), av_q2d(metadata->white_point[1]),
351  av_q2d(metadata->min_luminance), av_q2d(metadata->max_luminance));
352 }
353 
355 {
357  av_log(ctx, AV_LOG_INFO, "Content Light Level Metadata, "
358  "MaxCLL=%d, MaxFALL=%d",
359  metadata->MaxCLL, metadata->MaxFALL);
360 }
361 
363 {
364  AVSphericalMapping *spherical = (AVSphericalMapping *)sd->data;
365  double yaw, pitch, roll;
366 
367  if (sd->size < sizeof(*spherical)) {
368  av_log(ctx, AV_LOG_ERROR, "invalid data");
369  return;
370  }
371 
373 
374  yaw = ((double)spherical->yaw) / (1 << 16);
375  pitch = ((double)spherical->pitch) / (1 << 16);
376  roll = ((double)spherical->roll) / (1 << 16);
377  av_log(ctx, AV_LOG_INFO, "(%f/%f/%f) ", yaw, pitch, roll);
378 
379  if (spherical->projection == AV_SPHERICAL_EQUIRECTANGULAR_TILE) {
380  size_t l, t, r, b;
381  av_spherical_tile_bounds(spherical, par->width, par->height,
382  &l, &t, &r, &b);
385  l, t, r, b);
386  } else if (spherical->projection == AV_SPHERICAL_CUBEMAP) {
387  av_log(ctx, AV_LOG_INFO, "[pad %"PRIu32"] ", spherical->padding);
388  }
389 }
390 
391 static void dump_dovi_conf(void *ctx, AVPacketSideData* sd)
392 {
394 
395  av_log(ctx, AV_LOG_INFO, "version: %d.%d, profile: %d, level: %d, "
396  "rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d",
397  dovi->dv_version_major, dovi->dv_version_minor,
398  dovi->dv_profile, dovi->dv_level,
399  dovi->rpu_present_flag,
400  dovi->el_present_flag,
401  dovi->bl_present_flag,
403 }
404 
405 static void dump_sidedata(void *ctx, AVStream *st, const char *indent)
406 {
407  int i;
408 
409  if (st->nb_side_data)
410  av_log(ctx, AV_LOG_INFO, "%sSide data:\n", indent);
411 
412  for (i = 0; i < st->nb_side_data; i++) {
413  AVPacketSideData sd = st->side_data[i];
414  av_log(ctx, AV_LOG_INFO, "%s ", indent);
415 
416  switch (sd.type) {
417  case AV_PKT_DATA_PALETTE:
418  av_log(ctx, AV_LOG_INFO, "palette");
419  break;
421  av_log(ctx, AV_LOG_INFO, "new extradata");
422  break;
424  av_log(ctx, AV_LOG_INFO, "paramchange: ");
425  dump_paramchange(ctx, &sd);
426  break;
428  av_log(ctx, AV_LOG_INFO, "H.263 macroblock info");
429  break;
431  av_log(ctx, AV_LOG_INFO, "replaygain: ");
432  dump_replaygain(ctx, &sd);
433  break;
435  av_log(ctx, AV_LOG_INFO, "displaymatrix: rotation of %.2f degrees",
437  break;
439  av_log(ctx, AV_LOG_INFO, "stereo3d: ");
440  dump_stereo3d(ctx, &sd);
441  break;
443  av_log(ctx, AV_LOG_INFO, "audio service type: ");
445  break;
447  av_log(ctx, AV_LOG_INFO, "quality factor: %"PRId32", pict_type: %c",
449  break;
451  av_log(ctx, AV_LOG_INFO, "cpb: ");
452  dump_cpb(ctx, &sd);
453  break;
456  break;
458  av_log(ctx, AV_LOG_INFO, "spherical: ");
459  dump_spherical(ctx, st->codecpar, &sd);
460  break;
463  break;
465  av_log(ctx, AV_LOG_INFO, "ICC Profile");
466  break;
468  av_log(ctx, AV_LOG_INFO, "DOVI configuration record: ");
469  dump_dovi_conf(ctx, &sd);
470  break;
471  default:
473  "unknown side data type %d (%d bytes)", sd.type, sd.size);
474  break;
475  }
476 
477  av_log(ctx, AV_LOG_INFO, "\n");
478  }
479 }
480 
481 /* "user interface" functions */
482 static void dump_stream_format(AVFormatContext *ic, int i,
483  int index, int is_output)
484 {
485  char buf[256];
486  int flags = (is_output ? ic->oformat->flags : ic->iformat->flags);
487  AVStream *st = ic->streams[i];
488  AVDictionaryEntry *lang = av_dict_get(st->metadata, "language", NULL, 0);
489  char *separator = ic->dump_separator;
490  AVCodecContext *avctx;
491  int ret;
492 
493  avctx = avcodec_alloc_context3(NULL);
494  if (!avctx)
495  return;
496 
498  if (ret < 0) {
499  avcodec_free_context(&avctx);
500  return;
501  }
502 
503  // Fields which are missing from AVCodecParameters need to be taken from the AVCodecContext
504  avctx->properties = st->codec->properties;
505  avctx->codec = st->codec->codec;
506  avctx->qmin = st->codec->qmin;
507  avctx->qmax = st->codec->qmax;
508  avctx->coded_width = st->codec->coded_width;
509  avctx->coded_height = st->codec->coded_height;
510 
511  if (separator)
512  av_opt_set(avctx, "dump_separator", separator, 0);
513  avcodec_string(buf, sizeof(buf), avctx, is_output);
514  avcodec_free_context(&avctx);
515 
516  av_log(NULL, AV_LOG_INFO, " Stream #%d:%d", index, i);
517 
518  /* the pid is an important information, so we display it */
519  /* XXX: add a generic system */
520  if (flags & AVFMT_SHOW_IDS)
521  av_log(NULL, AV_LOG_INFO, "[0x%x]", st->id);
522  if (lang)
523  av_log(NULL, AV_LOG_INFO, "(%s)", lang->value);
524  av_log(NULL, AV_LOG_DEBUG, ", %d, %d/%d", st->codec_info_nb_frames,
525  st->time_base.num, st->time_base.den);
526  av_log(NULL, AV_LOG_INFO, ": %s", buf);
527 
528  if (st->sample_aspect_ratio.num &&
530  AVRational display_aspect_ratio;
531  av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den,
532  st->codecpar->width * (int64_t)st->sample_aspect_ratio.num,
533  st->codecpar->height * (int64_t)st->sample_aspect_ratio.den,
534  1024 * 1024);
535  av_log(NULL, AV_LOG_INFO, ", SAR %d:%d DAR %d:%d",
537  display_aspect_ratio.num, display_aspect_ratio.den);
538  }
539 
540  if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
541  int fps = st->avg_frame_rate.den && st->avg_frame_rate.num;
542  int tbr = st->r_frame_rate.den && st->r_frame_rate.num;
543  int tbn = st->time_base.den && st->time_base.num;
544  int tbc = st->codec->time_base.den && st->codec->time_base.num;
545 
546  if (fps || tbr || tbn || tbc)
547  av_log(NULL, AV_LOG_INFO, "%s", separator);
548 
549  if (fps)
550  print_fps(av_q2d(st->avg_frame_rate), tbr || tbn || tbc ? "fps, " : "fps");
551  if (tbr)
552  print_fps(av_q2d(st->r_frame_rate), tbn || tbc ? "tbr, " : "tbr");
553  if (tbn)
554  print_fps(1 / av_q2d(st->time_base), tbc ? "tbn, " : "tbn");
555  if (tbc)
556  print_fps(1 / av_q2d(st->codec->time_base), "tbc");
557  }
558 
560  av_log(NULL, AV_LOG_INFO, " (default)");
562  av_log(NULL, AV_LOG_INFO, " (dub)");
564  av_log(NULL, AV_LOG_INFO, " (original)");
566  av_log(NULL, AV_LOG_INFO, " (comment)");
568  av_log(NULL, AV_LOG_INFO, " (lyrics)");
570  av_log(NULL, AV_LOG_INFO, " (karaoke)");
572  av_log(NULL, AV_LOG_INFO, " (forced)");
574  av_log(NULL, AV_LOG_INFO, " (hearing impaired)");
576  av_log(NULL, AV_LOG_INFO, " (visual impaired)");
578  av_log(NULL, AV_LOG_INFO, " (clean effects)");
580  av_log(NULL, AV_LOG_INFO, " (attached pic)");
582  av_log(NULL, AV_LOG_INFO, " (timed thumbnails)");
584  av_log(NULL, AV_LOG_INFO, " (captions)");
586  av_log(NULL, AV_LOG_INFO, " (descriptions)");
588  av_log(NULL, AV_LOG_INFO, " (metadata)");
590  av_log(NULL, AV_LOG_INFO, " (dependent)");
592  av_log(NULL, AV_LOG_INFO, " (still image)");
593  av_log(NULL, AV_LOG_INFO, "\n");
594 
595  dump_metadata(NULL, st->metadata, " ");
596 
597  dump_sidedata(NULL, st, " ");
598 }
599 
601  const char *url, int is_output)
602 {
603  int i;
604  uint8_t *printed = ic->nb_streams ? av_mallocz(ic->nb_streams) : NULL;
605  if (ic->nb_streams && !printed)
606  return;
607 
608  av_log(NULL, AV_LOG_INFO, "%s #%d, %s, %s '%s':\n",
609  is_output ? "Output" : "Input",
610  index,
611  is_output ? ic->oformat->name : ic->iformat->name,
612  is_output ? "to" : "from", url);
613  dump_metadata(NULL, ic->metadata, " ");
614 
615  if (!is_output) {
616  av_log(NULL, AV_LOG_INFO, " Duration: ");
617  if (ic->duration != AV_NOPTS_VALUE) {
618  int64_t hours, mins, secs, us;
619  int64_t duration = ic->duration + (ic->duration <= INT64_MAX - 5000 ? 5000 : 0);
620  secs = duration / AV_TIME_BASE;
622  mins = secs / 60;
623  secs %= 60;
624  hours = mins / 60;
625  mins %= 60;
626  av_log(NULL, AV_LOG_INFO, "%02"PRId64":%02"PRId64":%02"PRId64".%02"PRId64"", hours, mins, secs,
627  (100 * us) / AV_TIME_BASE);
628  } else {
629  av_log(NULL, AV_LOG_INFO, "N/A");
630  }
631  if (ic->start_time != AV_NOPTS_VALUE) {
632  int secs, us;
633  av_log(NULL, AV_LOG_INFO, ", start: ");
634  secs = llabs(ic->start_time / AV_TIME_BASE);
635  us = llabs(ic->start_time % AV_TIME_BASE);
636  av_log(NULL, AV_LOG_INFO, "%s%d.%06d",
637  ic->start_time >= 0 ? "" : "-",
638  secs,
639  (int) av_rescale(us, 1000000, AV_TIME_BASE));
640  }
641  av_log(NULL, AV_LOG_INFO, ", bitrate: ");
642  if (ic->bit_rate)
643  av_log(NULL, AV_LOG_INFO, "%"PRId64" kb/s", ic->bit_rate / 1000);
644  else
645  av_log(NULL, AV_LOG_INFO, "N/A");
646  av_log(NULL, AV_LOG_INFO, "\n");
647  }
648 
649  for (i = 0; i < ic->nb_chapters; i++) {
650  AVChapter *ch = ic->chapters[i];
651  av_log(NULL, AV_LOG_INFO, " Chapter #%d:%d: ", index, i);
653  "start %f, ", ch->start * av_q2d(ch->time_base));
655  "end %f\n", ch->end * av_q2d(ch->time_base));
656 
657  dump_metadata(NULL, ch->metadata, " ");
658  }
659 
660  if (ic->nb_programs) {
661  int j, k, total = 0;
662  for (j = 0; j < ic->nb_programs; j++) {
664  "name", NULL, 0);
665  av_log(NULL, AV_LOG_INFO, " Program %d %s\n", ic->programs[j]->id,
666  name ? name->value : "");
667  dump_metadata(NULL, ic->programs[j]->metadata, " ");
668  for (k = 0; k < ic->programs[j]->nb_stream_indexes; k++) {
670  index, is_output);
671  printed[ic->programs[j]->stream_index[k]] = 1;
672  }
673  total += ic->programs[j]->nb_stream_indexes;
674  }
675  if (total < ic->nb_streams)
676  av_log(NULL, AV_LOG_INFO, " No Program\n");
677  }
678 
679  for (i = 0; i < ic->nb_streams; i++)
680  if (!printed[i])
681  dump_stream_format(ic, i, index, is_output);
682 
683  av_free(printed);
684 }
AVMasteringDisplayMetadata::has_primaries
int has_primaries
Flag indicating whether the display primaries (and white point) are set.
Definition: mastering_display_metadata.h:62
av_pkt_dump2
void av_pkt_dump2(FILE *f, const AVPacket *pkt, int dump_payload, const AVStream *st)
Send a nice dump of a packet to the specified file stream.
Definition: dump.c:109
AV_LOG_WARNING
#define AV_LOG_WARNING
Something somehow does not look correct.
Definition: log.h:182
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
level
uint8_t level
Definition: svq3.c:210
AV_AUDIO_SERVICE_TYPE_VOICE_OVER
@ AV_AUDIO_SERVICE_TYPE_VOICE_OVER
Definition: avcodec.h:247
AV_AUDIO_SERVICE_TYPE_EMERGENCY
@ AV_AUDIO_SERVICE_TYPE_EMERGENCY
Definition: avcodec.h:246
AVOutputFormat::name
const char * name
Definition: avformat.h:491
dump_stream_format
static void dump_stream_format(AVFormatContext *ic, int i, int index, int is_output)
Definition: dump.c:482
AVChapter::metadata
AVDictionary * metadata
Definition: avformat.h:1296
r
const char * r
Definition: vf_curves.c:114
opt.h
AVCodecParameters::codec_type
enum AVMediaType codec_type
General type of the encoded data.
Definition: codec_par.h:56
AVFMT_SHOW_IDS
#define AVFMT_SHOW_IDS
Show format stream IDs numbers.
Definition: avformat.h:460
AVSphericalMapping::projection
enum AVSphericalProjection projection
Projection type.
Definition: spherical.h:86
FF_API_UNSANITIZED_BITRATES
#define FF_API_UNSANITIZED_BITRATES
Definition: version.h:136
AVProgram::nb_stream_indexes
unsigned int nb_stream_indexes
Definition: avformat.h:1262
dump_cpb
static void dump_cpb(void *ctx, AVPacketSideData *sd)
Definition: dump.c:314
dump_paramchange
static void dump_paramchange(void *ctx, AVPacketSideData *sd)
Definition: dump.c:161
AVFormatContext::nb_chapters
unsigned int nb_chapters
Number of chapters in AVChapter array.
Definition: avformat.h:1564
AVCodecParameters
This struct describes the properties of an encoded stream.
Definition: codec_par.h:52
AV_PKT_DATA_PARAM_CHANGE
@ AV_PKT_DATA_PARAM_CHANGE
An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:
Definition: packet.h:72
AV_RL64
uint64_t_TMPL AV_RL64
Definition: bytestream.h:87
AV_DISPOSITION_ATTACHED_PIC
#define AV_DISPOSITION_ATTACHED_PIC
The stream is stored in the file as an attached picture/"cover art" (e.g.
Definition: avformat.h:833
av_dict_count
int av_dict_count(const AVDictionary *m)
Get number of entries in dictionary.
Definition: dict.c:35
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
AVMasteringDisplayMetadata::has_luminance
int has_luminance
Flag indicating whether the luminance (min_ and max_) have been set.
Definition: mastering_display_metadata.h:67
avcodec_string
void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
Definition: utils.c:1246
hex_dump_internal
static void hex_dump_internal(void *avcl, FILE *f, int level, const uint8_t *buf, int size)
Definition: dump.c:48
AV_DISPOSITION_DEFAULT
#define AV_DISPOSITION_DEFAULT
Definition: avformat.h:810
AVContentLightMetadata::MaxCLL
unsigned MaxCLL
Max content light level (cd/m^2).
Definition: mastering_display_metadata.h:102
tmp
static uint8_t tmp[11]
Definition: aes_ctr.c:26
AVFormatContext::streams
AVStream ** streams
A list of all streams in the file.
Definition: avformat.h:1403
AVPacketSideData
Definition: packet.h:298
AVPacket::data
uint8_t * data
Definition: packet.h:355
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:36
b
#define b
Definition: input.c:41
AVReplayGain::album_gain
int32_t album_gain
Same as track_gain, but for the whole album.
Definition: replaygain.h:43
AV_PKT_DATA_PALETTE
@ AV_PKT_DATA_PALETTE
An AV_PKT_DATA_PALETTE side data packet contains exactly AVPALETTE_SIZE bytes worth of palette.
Definition: packet.h:46
AVStream::avg_frame_rate
AVRational avg_frame_rate
Average framerate.
Definition: avformat.h:938
spherical.h
AVChapter::start
int64_t start
Definition: avformat.h:1295
data
const char data[16]
Definition: mxf.c:91
AV_DICT_IGNORE_SUFFIX
#define AV_DICT_IGNORE_SUFFIX
Return first entry in a dictionary whose first part corresponds to the search key,...
Definition: dict.h:70
print_fps
static void print_fps(double d, const char *postfix)
Definition: dump.c:121
AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE
@ AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE
Definition: packet.h:412
AVFormatContext::programs
AVProgram ** programs
Definition: avformat.h:1515
AVPacket::duration
int64_t duration
Duration of this packet in AVStream->time_base units, 0 if unknown.
Definition: packet.h:373
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:72
mathematics.h
AVDictionary
Definition: dict.c:30
AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT
@ AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT
Definition: packet.h:411
AV_PKT_DATA_SPHERICAL
@ AV_PKT_DATA_SPHERICAL
This side data should be associated with a video stream and corresponds to the AVSphericalMapping str...
Definition: packet.h:228
AVCodecContext::qmax
int qmax
maximum quantizer
Definition: avcodec.h:1375
replaygain.h
AV_PKT_FLAG_KEY
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
Definition: packet.h:388
sample_rate
sample_rate
Definition: ffmpeg_filter.c:192
AVContentLightMetadata
Content light level needed by to transmit HDR over HDMI (CTA-861.3).
Definition: mastering_display_metadata.h:98
AVFormatContext::iformat
ff_const59 struct AVInputFormat * iformat
The input container format.
Definition: avformat.h:1347
AVCodecContext::codec
const struct AVCodec * codec
Definition: avcodec.h:535
fail
#define fail()
Definition: checkasm.h:123
AV_DISPOSITION_STILL_IMAGE
#define AV_DISPOSITION_STILL_IMAGE
still images in video stream (still_picture_flag=1 in mpegts)
Definition: avformat.h:849
AVChapter
Definition: avformat.h:1292
AV_DISPOSITION_FORCED
#define AV_DISPOSITION_FORCED
Track should be used during playback by default.
Definition: avformat.h:822
AVFormatContext::dump_separator
uint8_t * dump_separator
dump format separator.
Definition: avformat.h:1860
dump_spherical
static void dump_spherical(void *ctx, AVCodecParameters *par, AVPacketSideData *sd)
Definition: dump.c:362
AV_DISPOSITION_TIMED_THUMBNAILS
#define AV_DISPOSITION_TIMED_THUMBNAILS
The stream is sparse, and contains thumbnail images, often corresponding to chapter markers.
Definition: avformat.h:838
AVCodecContext::coded_height
int coded_height
Definition: avcodec.h:714
us
#define us(width, name, range_min, range_max, subs,...)
Definition: cbs_h2645.c:276
AV_PKT_DATA_DISPLAYMATRIX
@ AV_PKT_DATA_DISPLAYMATRIX
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
Definition: packet.h:108
av_opt_set
int av_opt_set(void *obj, const char *name, const char *val, int search_flags)
Definition: opt.c:465
av_reduce
int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)
Reduce a fraction.
Definition: rational.c:35
dump_sidedata
static void dump_sidedata(void *ctx, AVStream *st, const char *indent)
Definition: dump.c:405
AVRational::num
int num
Numerator.
Definition: rational.h:59
dump_metadata
static void dump_metadata(void *ctx, AVDictionary *m, const char *indent)
Definition: dump.c:134
AV_PKT_DATA_REPLAYGAIN
@ AV_PKT_DATA_REPLAYGAIN
This side data should be associated with an audio stream and contains ReplayGain information in form ...
Definition: packet.h:99
AVFormatContext::bit_rate
int64_t bit_rate
Total stream bitrate in bit/s, 0 if not available.
Definition: avformat.h:1457
AV_DISPOSITION_CLEAN_EFFECTS
#define AV_DISPOSITION_CLEAN_EFFECTS
stream without voice
Definition: avformat.h:825
AV_LOG_ERROR
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:176
AVFormatContext::metadata
AVDictionary * metadata
Metadata that applies to the whole file.
Definition: avformat.h:1575
av_dump_format
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,...
Definition: dump.c:600
AVProgram::id
int id
Definition: avformat.h:1258
duration
int64_t duration
Definition: movenc.c:63
AV_PKT_DATA_AUDIO_SERVICE_TYPE
@ AV_PKT_DATA_AUDIO_SERVICE_TYPE
This side data should be associated with an audio stream and corresponds to enum AVAudioServiceType.
Definition: packet.h:120
av_dict_get
AVDictionaryEntry * av_dict_get(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
Get a dictionary entry with matching key.
Definition: dict.c:40
AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS
@ AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS
Definition: packet.h:413
avcodec_alloc_context3
AVCodecContext * avcodec_alloc_context3(const AVCodec *codec)
Allocate an AVCodecContext and set its fields to default values.
Definition: options.c:157
AVChapter::end
int64_t end
chapter start/end time in time_base units
Definition: avformat.h:1295
width
#define width
stereo3d.h
AVMasteringDisplayMetadata::white_point
AVRational white_point[2]
CIE 1931 xy chromaticity coords of white point.
Definition: mastering_display_metadata.h:47
intreadwrite.h
AV_PKT_DATA_STEREO3D
@ AV_PKT_DATA_STEREO3D
This side data should be associated with a video stream and contains Stereoscopic 3D information in f...
Definition: packet.h:114
AV_PKT_DATA_MASTERING_DISPLAY_METADATA
@ AV_PKT_DATA_MASTERING_DISPLAY_METADATA
Mastering display metadata (based on SMPTE-2086:2014).
Definition: packet.h:222
AVCodecParameters::sample_aspect_ratio
AVRational sample_aspect_ratio
Video only.
Definition: codec_par.h:136
AVFormatContext::nb_programs
unsigned int nb_programs
Definition: avformat.h:1514
AVInputFormat::name
const char * name
A comma separated list of short names for the format.
Definition: avformat.h:641
AVFormatContext::chapters
AVChapter ** chapters
Definition: avformat.h:1565
AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED
@ AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED
Definition: avcodec.h:242
AVCodecParameters::width
int width
Video only.
Definition: codec_par.h:126
av_q2d
static double av_q2d(AVRational a)
Convert an AVRational to a double.
Definition: rational.h:104
AV_PKT_DATA_ICC_PROFILE
@ AV_PKT_DATA_ICC_PROFILE
ICC profile data consisting of an opaque octet buffer following the format described by ISO 15076-1.
Definition: packet.h:274
av_get_channel_name
const char * av_get_channel_name(uint64_t channel)
Get the name of a given channel.
Definition: channel_layout.c:243
AV_LOG_DEBUG
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
Definition: log.h:197
AVPacketSideData::data
uint8_t * data
Definition: packet.h:299
AVDOVIDecoderConfigurationRecord::dv_profile
uint8_t dv_profile
Definition: dovi_meta.h:54
ctx
AVFormatContext * ctx
Definition: movenc.c:48
channels
channels
Definition: aptx.h:33
nb_streams
static int nb_streams
Definition: ffprobe.c:282
AVAudioServiceType
AVAudioServiceType
Definition: avcodec.h:239
AVReplayGain::track_peak
uint32_t track_peak
Peak track amplitude, with 100000 representing full scale (but values may overflow).
Definition: replaygain.h:39
dump_stereo3d
static void dump_stereo3d(void *ctx, AVPacketSideData *sd)
Definition: dump.c:254
AVCPBProperties
This structure describes the bitrate properties of an encoded bitstream.
Definition: avcodec.h:448
f
#define f(width, name)
Definition: cbs_vp9.c:255
AVDOVIDecoderConfigurationRecord::dv_version_major
uint8_t dv_version_major
Definition: dovi_meta.h:52
print_peak
static void print_peak(void *ctx, const char *str, uint32_t peak)
Definition: dump.c:228
int32_t
int32_t
Definition: audio_convert.c:194
AVStereo3D::flags
int flags
Additional information about the frame packing.
Definition: stereo3d.h:185
dump_mastering_display_metadata
static void dump_mastering_display_metadata(void *ctx, AVPacketSideData *sd)
Definition: dump.c:337
if
if(ret)
Definition: filter_design.txt:179
AVCPBProperties::avg_bitrate
int avg_bitrate
Average bitrate of the stream, in bits per second.
Definition: avcodec.h:472
AVFormatContext
Format I/O context.
Definition: avformat.h:1335
AVStream::codecpar
AVCodecParameters * codecpar
Codec parameters associated with this stream.
Definition: avformat.h:1012
AVStream::time_base
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented.
Definition: avformat.h:894
NULL
#define NULL
Definition: coverity.c:32
AVDOVIDecoderConfigurationRecord::dv_level
uint8_t dv_level
Definition: dovi_meta.h:55
AVDOVIDecoderConfigurationRecord::dv_bl_signal_compatibility_id
uint8_t dv_bl_signal_compatibility_id
Definition: dovi_meta.h:59
dump_replaygain
static void dump_replaygain(void *ctx, AVPacketSideData *sd)
Definition: dump.c:238
avcodec_free_context
void avcodec_free_context(AVCodecContext **avctx)
Free the codec context and everything associated with it and write NULL to the provided pointer.
Definition: options.c:172
AVRational
Rational number (pair of numerator and denominator).
Definition: rational.h:58
print_gain
static void print_gain(void *ctx, const char *str, int32_t gain)
Definition: dump.c:218
AVPacketSideData::type
enum AVPacketSideDataType type
Definition: packet.h:301
AV_DISPOSITION_COMMENT
#define AV_DISPOSITION_COMMENT
Definition: avformat.h:813
AVProgram::stream_index
unsigned int * stream_index
Definition: avformat.h:1261
AVStream::metadata
AVDictionary * metadata
Definition: avformat.h:929
AV_DISPOSITION_METADATA
#define AV_DISPOSITION_METADATA
Definition: avformat.h:847
AV_AUDIO_SERVICE_TYPE_MAIN
@ AV_AUDIO_SERVICE_TYPE_MAIN
Definition: avcodec.h:240
AV_DISPOSITION_ORIGINAL
#define AV_DISPOSITION_ORIGINAL
Definition: avformat.h:812
index
int index
Definition: gxfenc.c:89
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
AVFormatContext::oformat
ff_const59 struct AVOutputFormat * oformat
The output container format.
Definition: avformat.h:1354
AV_AUDIO_SERVICE_TYPE_KARAOKE
@ AV_AUDIO_SERVICE_TYPE_KARAOKE
Definition: avcodec.h:248
AVFormatContext::nb_streams
unsigned int nb_streams
Number of elements in AVFormatContext.streams.
Definition: avformat.h:1391
AVOutputFormat::flags
int flags
can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS,...
Definition: avformat.h:510
AV_DISPOSITION_CAPTIONS
#define AV_DISPOSITION_CAPTIONS
To specify text track kind (different from subtitles default).
Definition: avformat.h:845
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:60
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:65
AVPacket::size
int size
Definition: packet.h:356
size
int size
Definition: twinvq_data.h:11134
AV_NOPTS_VALUE
#define AV_NOPTS_VALUE
Undefined timestamp value.
Definition: avutil.h:248
AVReplayGain::track_gain
int32_t track_gain
Track replay gain in microbels (divide by 100000 to get the value in dB).
Definition: replaygain.h:34
AV_DISPOSITION_DUB
#define AV_DISPOSITION_DUB
Definition: avformat.h:811
AV_PKT_DATA_H263_MB_INFO
@ AV_PKT_DATA_H263_MB_INFO
An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of structures with info about macroblo...
Definition: packet.h:93
AVStream::sample_aspect_ratio
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown)
Definition: avformat.h:927
AV_DISPOSITION_HEARING_IMPAIRED
#define AV_DISPOSITION_HEARING_IMPAIRED
stream for hearing impaired audiences
Definition: avformat.h:823
AVPacket::dts
int64_t dts
Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed.
Definition: packet.h:354
height
#define height
AVSphericalMapping::padding
uint32_t padding
Number of pixels to pad from the edge of each cube face.
Definition: spherical.h:182
FFMIN
#define FFMIN(a, b)
Definition: common.h:96
AVPacketSideData::size
int size
Definition: packet.h:300
AVCPBProperties::max_bitrate
int max_bitrate
Maximum bitrate of the stream, in bits per second.
Definition: avcodec.h:454
AV_PKT_DATA_CONTENT_LIGHT_LEVEL
@ AV_PKT_DATA_CONTENT_LIGHT_LEVEL
Content light level (based on CTA-861.3).
Definition: packet.h:235
AVPacket::flags
int flags
A combination of AV_PKT_FLAG values.
Definition: packet.h:361
AV_STEREO3D_FLAG_INVERT
#define AV_STEREO3D_FLAG_INVERT
Inverted views, Right/Bottom represents the left view.
Definition: stereo3d.h:167
AV_LOG_INFO
#define AV_LOG_INFO
Standard information.
Definition: log.h:187
AVStream::side_data
AVPacketSideData * side_data
An array of side data that applies to the whole stream (i.e.
Definition: avformat.h:967
layout
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel layout
Definition: filter_design.txt:18
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:88
AVCPBProperties::vbv_delay
uint64_t vbv_delay
The delay between the time the packet this structure is associated with is received and the time when...
Definition: avcodec.h:490
HEXDUMP_PRINT
#define HEXDUMP_PRINT(...)
Definition: dump.c:40
AVSphericalMapping::roll
int32_t roll
Rotation around the forward vector [-180, 180].
Definition: spherical.h:128
log.h
lrintf
#define lrintf(x)
Definition: libm_mips.h:70
i
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:269
AVPacket::pts
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
Definition: packet.h:348
AVCodecContext::properties
unsigned properties
Properties of the stream that gets decoded.
Definition: avcodec.h:2191
AVCodecParameters::height
int height
Definition: codec_par.h:127
avcodec_parameters_to_context
int avcodec_parameters_to_context(AVCodecContext *codec, const AVCodecParameters *par)
Fill the codec context based on the values from the supplied codec parameters.
Definition: utils.c:2184
AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED
@ AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED
Definition: avcodec.h:243
AV_TIME_BASE
#define AV_TIME_BASE
Internal time base represented as integer.
Definition: avutil.h:254
AVProgram::metadata
AVDictionary * metadata
Definition: avformat.h:1263
display.h
AV_AUDIO_SERVICE_TYPE_EFFECTS
@ AV_AUDIO_SERVICE_TYPE_EFFECTS
Definition: avcodec.h:241
AV_DISPOSITION_KARAOKE
#define AV_DISPOSITION_KARAOKE
Definition: avformat.h:815
uint8_t
uint8_t
Definition: audio_convert.c:194
av_mallocz
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
Definition: mem.c:237
AV_PKT_DATA_CPB_PROPERTIES
@ AV_PKT_DATA_CPB_PROPERTIES
This side data corresponds to the AVCPBProperties struct.
Definition: packet.h:145
AV_DISPOSITION_DEPENDENT
#define AV_DISPOSITION_DEPENDENT
dependent audio stream (mix_type=0 in mpegts)
Definition: avformat.h:848
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:452
av_rescale
int64_t av_rescale(int64_t a, int64_t b, int64_t c)
Rescale a 64-bit integer with rounding to nearest.
Definition: mathematics.c:129
AVCPBProperties::min_bitrate
int min_bitrate
Minimum bitrate of the stream, in bits per second.
Definition: avcodec.h:463
dump_dovi_conf
static void dump_dovi_conf(void *ctx, AVPacketSideData *sd)
Definition: dump.c:391
av_cmp_q
static int av_cmp_q(AVRational a, AVRational b)
Compare two rationals.
Definition: rational.h:89
AVStream::disposition
int disposition
AV_DISPOSITION_* bit field.
Definition: avformat.h:918
AV_DISPOSITION_VISUAL_IMPAIRED
#define AV_DISPOSITION_VISUAL_IMPAIRED
stream for visual impaired audiences
Definition: avformat.h:824
tag
uint32_t tag
Definition: movenc.c:1532
AVStream::id
int id
Format-specific stream ID.
Definition: avformat.h:872
ret
ret
Definition: filter_design.txt:187
AVStream
Stream structure.
Definition: avformat.h:865
AV_PKT_DATA_DOVI_CONF
@ AV_PKT_DATA_DOVI_CONF
DOVI configuration ref: dolby-vision-bitstreams-within-the-iso-base-media-file-format-v2....
Definition: packet.h:283
av_hex_dump_log
void av_hex_dump_log(void *avcl, int level, const uint8_t *buf, int size)
Send a nice hexadecimal dump of a buffer to the log.
Definition: dump.c:80
AVSphericalMapping::pitch
int32_t pitch
Rotation around the right vector [-90, 90].
Definition: spherical.h:127
AVCPBProperties::buffer_size
int buffer_size
The size of the buffer to which the ratecontrol is applied, in bits.
Definition: avcodec.h:481
AVStream::nb_side_data
int nb_side_data
The number of elements in the AVStream.side_data array.
Definition: avformat.h:971
AVStereo3D::type
enum AVStereo3DType type
How views are packed within the video.
Definition: stereo3d.h:180
avformat.h
dovi_meta.h
AV_DISPOSITION_DESCRIPTIONS
#define AV_DISPOSITION_DESCRIPTIONS
Definition: avformat.h:846
AV_RL32
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_RL32
Definition: bytestream.h:88
SIZE_SPECIFIER
#define SIZE_SPECIFIER
Definition: internal.h:264
AV_AUDIO_SERVICE_TYPE_COMMENTARY
@ AV_AUDIO_SERVICE_TYPE_COMMENTARY
Definition: avcodec.h:245
AVCodecContext
main external API structure.
Definition: avcodec.h:526
channel_layout.h
AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT
@ AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT
Definition: packet.h:410
pkt
static AVPacket pkt
Definition: demuxing_decoding.c:54
dump_audioservicetype
static void dump_audioservicetype(void *ctx, AVPacketSideData *sd)
Definition: dump.c:271
AVInputFormat::flags
int flags
Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS, AVFMT_NOTIMESTAMPS,...
Definition: avformat.h:655
AVCodecContext::qmin
int qmin
minimum quantizer
Definition: avcodec.h:1368
AV_PKT_DATA_NEW_EXTRADATA
@ AV_PKT_DATA_NEW_EXTRADATA
The AV_PKT_DATA_NEW_EXTRADATA is used to notify the codec or the format that the extradata buffer was...
Definition: packet.h:55
AVRational::den
int den
Denominator.
Definition: rational.h:60
AVDOVIDecoderConfigurationRecord::bl_present_flag
uint8_t bl_present_flag
Definition: dovi_meta.h:58
AVReplayGain::album_peak
uint32_t album_peak
Same as track_peak, but for the whole album,.
Definition: replaygain.h:47
AVStream::r_frame_rate
AVRational r_frame_rate
Real base framerate of the stream.
Definition: avformat.h:989
AVDOVIDecoderConfigurationRecord::rpu_present_flag
uint8_t rpu_present_flag
Definition: dovi_meta.h:56
AVDOVIDecoderConfigurationRecord::el_present_flag
uint8_t el_present_flag
Definition: dovi_meta.h:57
AVMasteringDisplayMetadata::min_luminance
AVRational min_luminance
Min luminance of mastering display (cd/m^2).
Definition: mastering_display_metadata.h:52
AVFormatContext::duration
int64_t duration
Duration of the stream, in AV_TIME_BASE fractional seconds.
Definition: avformat.h:1450
AVPacket::stream_index
int stream_index
Definition: packet.h:357
pkt_dump_internal
static void pkt_dump_internal(void *avcl, FILE *f, int level, const AVPacket *pkt, int dump_payload, AVRational time_base)
Definition: dump.c:85
AVReplayGain
ReplayGain information (see http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1....
Definition: replaygain.h:29
AVCodecContext::coded_width
int coded_width
Bitstream width / height, may be different from width/height e.g.
Definition: avcodec.h:714
AVDOVIDecoderConfigurationRecord::dv_version_minor
uint8_t dv_version_minor
Definition: dovi_meta.h:53
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:201
mastering_display_metadata.h
AV_AUDIO_SERVICE_TYPE_DIALOGUE
@ AV_AUDIO_SERVICE_TYPE_DIALOGUE
Definition: avcodec.h:244
dump_content_light_metadata
static void dump_content_light_metadata(void *ctx, AVPacketSideData *sd)
Definition: dump.c:354
av_free
#define av_free(p)
Definition: tableprint_vlc.h:34
AVDictionaryEntry
Definition: dict.h:81
AVContentLightMetadata::MaxFALL
unsigned MaxFALL
Max average light level per frame (cd/m^2).
Definition: mastering_display_metadata.h:107
AVPacket
This structure stores compressed data.
Definition: packet.h:332
convert_header.str
string str
Definition: convert_header.py:20
AV_PKT_DATA_QUALITY_STATS
@ AV_PKT_DATA_QUALITY_STATS
This side data contains quality related information from the encoder.
Definition: packet.h:132
flags
#define flags(name, subs,...)
Definition: cbs_av1.c:565
av_strlcpy
size_t av_strlcpy(char *dst, const char *src, size_t size)
Copy the string src to dst, but no more than size - 1 bytes, and null-terminate dst.
Definition: avstring.c:83
av_log
#define av_log(a,...)
Definition: tableprint_vlc.h:28
AVFormatContext::start_time
int64_t start_time
Position of the first frame of the component, in AV_TIME_BASE fractional seconds.
Definition: avformat.h:1440
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:57
av_pkt_dump_log2
void av_pkt_dump_log2(void *avcl, int level, const AVPacket *pkt, int dump_payload, const AVStream *st)
Send a nice dump of a packet to the log.
Definition: dump.c:114
AVStereo3D
Stereo 3D type: this structure describes how two videos are packed within a single video surface,...
Definition: stereo3d.h:176
AVDictionaryEntry::value
char * value
Definition: dict.h:83
avstring.h
AVChapter::time_base
AVRational time_base
time base in which the start/end timestamps are specified
Definition: avformat.h:1294
AVStream::codec_info_nb_frames
int codec_info_nb_frames
Number of frames that have been demuxed during avformat_find_stream_info()
Definition: avformat.h:1080
AVSphericalMapping
This structure describes how to handle spherical videos, outlining information about projection,...
Definition: spherical.h:82
AVSphericalMapping::yaw
int32_t yaw
Rotation around the up vector [-180, 180].
Definition: spherical.h:126
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:34
AV_DISPOSITION_LYRICS
#define AV_DISPOSITION_LYRICS
Definition: avformat.h:814
AVDOVIDecoderConfigurationRecord
Definition: dovi_meta.h:51
av_hex_dump
void av_hex_dump(FILE *f, const uint8_t *buf, int size)
Send a nice hexadecimal dump of a buffer to the specified file stream.
Definition: dump.c:75