<xi:include href="xml/gstvideosink.xml" />
<xi:include href="xml/gstcolorbalance.xml" />
<xi:include href="xml/gstcolorbalancechannel.xml" />
+ <xi:include href="xml/gstvideodirection.xml" />
<xi:include href="xml/gstvideoorientation.xml" />
<xi:include href="xml/gstvideooverlay.xml" />
<xi:include href="xml/gstvideodecoder.xml" />
</SECTION>
<SECTION>
+<FILE>gstvideodirection</FILE>
+<INCLUDE>gst/video/videodirection.h</INCLUDE>
+GstVideoDirection
+GstVideoDirectionInterface
+<SUBSECTION Standard>
+GST_TYPE_VIDEO_DIRECTION
+GST_VIDEO_DIRECTION
+GST_IS_VIDEO_DIRECTION
+GST_VIDEO_DIRECTION_GET_INTERFACE
+gst_video_direction_get_type
+</SECTION>
+
+<SECTION>
<FILE>gstvideoorientation</FILE>
<INCLUDE>gst/video/videoorientation.h</INCLUDE>
GstVideoOrientation
GST_META_TAG_VIDEO_SIZE_STR
GST_META_TAG_VIDEO_COLORSPACE_STR
+GstVideoOrientationMethod
+
#video-event.h
<SUBSECTION>
gst_video_event_new_still_frame
#include <gst/video/colorbalance.h>
gst_color_balance_get_type
gst_color_balance_channel_get_type
+#include <gst/video/videodirection.h>
+gst_video_direction_get_type
#include <gst/video/videoorientation.h>
gst_video_orientation_get_type
#include <gst/video/videooverlay.h>
gstvideoaffinetransformationmeta.c \
gstvideometa.c \
gstvideopool.c \
+ videodirection.c \
videoorientation.c \
videooverlay.c \
gstvideodecoder.c \
gstvideometa.h \
gstvideoaffinetransformationmeta.h \
gstvideopool.h \
+ videodirection.h \
videoorientation.h \
videooverlay.h \
gstvideodecoder.h \
guint stride_align[GST_VIDEO_MAX_PLANES];
};
+/**
+ * GstVideoOrientationMethod:
+ * @GST_VIDEO_ORIENTATION_IDENTITY: Identity (no rotation)
+ * @GST_VIDEO_ORIENTATION_90R: Rotate clockwise 90 degrees
+ * @GST_VIDEO_ORIENTATION_180: Rotate 180 degrees
+ * @GST_VIDEO_ORIENTATION_90L: Rotate counter-clockwise 90 degrees
+ * @GST_VIDEO_ORIENTATION_HORIZ: Flip horizontally
+ * @GST_VIDEO_ORIENTATION_VERT: Flip vertically
+ * @GST_VIDEO_ORIENTATION_UL_LR: Flip across upper left/lower right diagonal
+ * @GST_VIDEO_ORIENTATION_UR_LL: Flip across upper right/lower left diagonal
+ * @GST_VIDEO_ORIENTATION_AUTO: Select flip method based on image-orientation tag
+ * @GST_VIDEO_ORIENTATION_CUSTOM: Current status depends on plugin internal setup
+ *
+ * The different video orientation methods.
+ *
+ * Since: 1.10
+ */
+typedef enum {
+ GST_VIDEO_ORIENTATION_IDENTITY,
+ GST_VIDEO_ORIENTATION_90R,
+ GST_VIDEO_ORIENTATION_180,
+ GST_VIDEO_ORIENTATION_90L,
+ GST_VIDEO_ORIENTATION_HORIZ,
+ GST_VIDEO_ORIENTATION_VERT,
+ GST_VIDEO_ORIENTATION_UL_LR,
+ GST_VIDEO_ORIENTATION_UR_LL,
+ GST_VIDEO_ORIENTATION_AUTO,
+ GST_VIDEO_ORIENTATION_CUSTOM,
+} GstVideoOrientationMethod;
+
/* metadata macros */
/**
* GST_META_TAG_VIDEO_STR:
#include <gst/video/navigation.h>
#include <gst/video/video-blend.h>
#include <gst/video/video-event.h>
+#include <gst/video/videodirection.h>
#include <gst/video/videoorientation.h>
#include <gst/video/video-overlay-composition.h>
#include <gst/video/videooverlay.h>
--- /dev/null
+/* GStreamer
+ * Copyright (C) 2016 Igalia <calvaris@igalia.com>
+ *
+ * videodirection.c: video rotation and flipping interface
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "video.h"
+
+#define PROP_DIRECTION_DEFAULT GST_VIDEO_ORIENTATION_IDENTITY
+
+/**
+ * SECTION:gstvideodirection
+ * @short_description: Interface for elements providing video
+ * rotation and flipping controls
+ *
+ * The interface allows unified access to control flipping and rotation
+ * operations of video-sources or operators.
+ *
+ * Since: 1.10
+ */
+
+G_DEFINE_INTERFACE (GstVideoDirection, gst_video_direction, 0);
+
+static void
+gst_video_direction_default_init (GstVideoDirectionInterface * iface)
+{
+ g_object_interface_install_property (iface,
+ g_param_spec_enum ("video-direction", "Video direction",
+ "Video direction: rotation and flipping",
+ GST_TYPE_VIDEO_ORIENTATION_METHOD, PROP_DIRECTION_DEFAULT,
+ GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS));
+}
--- /dev/null
+/* GStreamer
+ * Copyright (C) 2016 Igalia <calvaris@igalia.com>
+ *
+ * videodirection.h: video rotation and flipping interface
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_VIDEO_DIRECTION_H__
+#define __GST_VIDEO_DIRECTION_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_VIDEO_DIRECTION \
+ (gst_video_direction_get_type ())
+#define GST_VIDEO_DIRECTION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VIDEO_DIRECTION, GstVideoDirection))
+#define GST_IS_VIDEO_DIRECTION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_VIDEO_DIRECTION))
+#define GST_VIDEO_DIRECTION_GET_INTERFACE(inst) \
+ (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_VIDEO_DIRECTION, GstVideoDirectionInterface))
+/**
+ * GstVideoDirection:
+ *
+ * Opaque #GstVideoDirection data structure.
+ *
+ * Since: 1.10
+ */
+typedef struct _GstVideoDirection GstVideoDirection;
+typedef struct _GstVideoDirectionInterface GstVideoDirectionInterface;
+
+/**
+ * GstVideoDirectionInterface:
+ * @iface: parent interface type.
+ *
+ * #GstVideoDirectionInterface interface.
+ *
+ * Since: 1.10
+ */
+struct _GstVideoDirectionInterface
+{
+ GTypeInterface iface;
+};
+
+GType gst_video_direction_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_VIDEO_DIRECTION_H__ */
%{_includedir}/gstreamer-%{majorminor}/gst/audio/streamvolume.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/colorbalance.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/colorbalancechannel.h
+%{_includedir}/gstreamer-%{majorminor}/gst/video/videodirection.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/videoorientation.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/videooverlay.h
%{_includedir}/gstreamer-%{majorminor}/gst/app/app.h
#include <gst/video/video.h>
#include <gst/video/colorbalancechannel.h>
#include <gst/video/colorbalance.h>
+#include <gst/video/videodirection.h>
#include <gst/video/videoorientation.h>
#include <gst/video/videooverlay.h>
#include <gst/video/navigation.h>
#include <gst/video/gstvideofilter.h>
#include <gst/video/gstvideosink.h>
#include <gst/video/colorbalance.h>
+#include <gst/video/videodirection.h>
#include <gst/video/videoorientation.h>
#include <gst/video/videooverlay.h>
#include <gst/video/navigation.h>
video-info.h video-frame.h gstvideosink.h gstvideofilter.h \
gstvideometa.h gstvideopool.h videoorientation.h videooverlay.h \
gstvideodecoder.h gstvideoencoder.h gstvideoutils.h \
- video-blend.h video-overlay-composition.h"
+ video-blend.h video-overlay-composition.h videodirection.h"
fi
CFLAGS=`pkg-config --cflags gstreamer-1.0 gstreamer-$lib-1.0`