summaryrefslogtreecommitdiff
path: root/avprobe.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2015-04-29 16:48:26 +0300
committerMartin Storsjö <martin@martin.st>2015-05-02 22:09:09 +0300
commit709e1c91ea7a5bbf2b9a104642572ca7616b224f (patch)
treea596664dbd03f96fc31feecb9f7d672693601ae1 /avprobe.c
parent3080b0497ddf8549d86ee99b79ac0c15f44ee382 (diff)
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.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/avprobe.c b/avprobe.c
index ebc41dfd32..a83fa6815d 100644
--- a/avprobe.c
+++ b/avprobe.c
@@ -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");
}