diff options
author | Martin Storsjö <martin@martin.st> | 2015-04-29 16:48:26 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2015-05-02 22:09:09 +0300 |
commit | 709e1c91ea7a5bbf2b9a104642572ca7616b224f (patch) | |
tree | a596664dbd03f96fc31feecb9f7d672693601ae1 /avprobe.c | |
parent | 3080b0497ddf8549d86ee99b79ac0c15f44ee382 (diff) | |
download | ffmpeg-709e1c91ea7a5bbf2b9a104642572ca7616b224f.tar.gz |
avprobe: Print the display matrix from per-stream sidedata
This is printed in a separate subgroup "displaymatrix" inside a
new group named "sidedata". The subgroup has got two values,
"rotation" (which is the parsed rotation from the matrix) and
"matrix" containing the full actual values.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'avprobe.c')
-rw-r--r-- | avprobe.c | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -24,6 +24,7 @@ #include "libavformat/avformat.h" #include "libavcodec/avcodec.h" #include "libavutil/avstring.h" +#include "libavutil/display.h" #include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "libavutil/dict.h" @@ -700,6 +701,27 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx) probe_dict(stream->metadata, "tags"); + if (stream->nb_side_data) { + int i, j; + probe_object_header("sidedata"); + for (i = 0; i < stream->nb_side_data; i++) { + const AVPacketSideData* sd = &stream->side_data[i]; + switch (sd->type) { + case AV_PKT_DATA_DISPLAYMATRIX: + probe_object_header("displaymatrix"); + probe_array_header("matrix", 1); + for (j = 0; j < 9; j++) + probe_int(NULL, ((int32_t *)sd->data)[j]); + probe_array_footer("matrix", 1); + probe_int("rotation", + av_display_rotation_get((int32_t *)sd->data)); + probe_object_footer("displaymatrix"); + break; + } + } + probe_object_footer("sidedata"); + } + probe_object_footer("stream"); } |