---
libavfilter/vf_showinfo.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c
index 031d8fe..de1c5d9 100644
--- a/libavfilter/vf_showinfo.c
+++ b/libavfilter/vf_showinfo.c
@@ -25,6 +25,7 @@
#include <inttypes.h>
#include "libavutil/adler32.h"
+#include "libavutil/display.h"
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "libavutil/pixdesc.h"
@@ -68,6 +69,26 @@ static void dump_stereo3d(AVFilterContext *ctx,
AVFrameSideData *sd)
av_log(ctx, AV_LOG_INFO, " (inverted)");
}
+static void dump_transformation(AVFilterContext *ctx, AVFrameSideData *sd)
+{
+ int rotation, hflip, vflip;
+
+ rotation = av_display_rotation_angle(sd->data);
+ if (rotation)
+ av_log(ctx, AV_LOG_INFO, "rotation of %d degrees ", rotation);
+
+ hflip = av_display_hflip(sd->data);
+ if (hflip)
+ av_log(ctx, AV_LOG_INFO, "horizontal flip ");
+
+ vflip = av_display_vflip(sd->data);
+ if (vflip)
+ av_log(ctx, AV_LOG_INFO, "vertical flip ");
+
+ if (!rotation && !hflip && !vflip)
+ av_log(ctx, AV_LOG_INFO, "unknown transformation");
+}
+
static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
{
AVFilterContext *ctx = inlink->dst;
@@ -117,6 +138,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame
*frame)
case AV_FRAME_DATA_STEREO3D:
dump_stereo3d(ctx, sd);
break;
+ case AV_FRAME_DATA_DISPLAYMATRIX:
+ dump_transformation(ctx, sd);
+ break;
default:
av_log(ctx, AV_LOG_WARNING, "unknown side data type %d (%d bytes)",
sd->type, sd->size);
--
1.8.3.4 (Apple Git-47)
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel