GStreamer multimedia framework
Go to file
Lubosz Sarnecki 6a58c684a7 gltransformation: implement pivot point for rotation and scale
https://bugzilla.gnome.org/show_bug.cgi?id=744763

Add a pivot vector for setting the origin of rotations and scales.

With the pivot point the rotation and scale operations can have
different origins. This adds the ability to rotate around different points.
Currently the default (0, 0) pivot point is possible,
a rotation around the center, and zooming into and out of the center.

With an pivot point this is optional.
I defined the following image coordinates for the pivot point:

	 (-1,1) ------------------------- (1,1)
		|			|
		|			|
		|			|
		|	  (0,0)		|
		|			|
		|			|
		|			|
	(-1,-1) ------------------------- (1,-1)

Example:

	Rotate the video at the bottom left corner

	gst-launch-1.0 videotestsrc \
			! gltransformation \
		 		scale-x=0.5 \
				scale-y=0.5 \
				rotation-z=25.0 \
				pivot-x=-1.0 \
				pivot-y=-1.0 \
			! glimagesink

The pivot-z option defines the pivot point in 3D space.
This only affects rotation, since we have no Z data to scale.
With this option a video can be rotated around a point in 3D space.

Example:

	Rotate around point behind the video:

    	gst-launch-1.0 videotestsrc \
			! gltransformation \
				rotation-x=10.0 \
				pivot-z=-4.0 \
			! glimagesink
2017-12-09 19:32:07 +00:00
ext/gl gltransformation: implement pivot point for rotation and scale 2017-12-09 19:32:07 +00:00
gst-libs/gst/gl gloverlaycompositor: Add shader to convert BGRA/ARGB -> RGBA 2017-12-09 19:32:07 +00:00
pkgconfig gstglconfig: Put gstglconfig.h into $(libdir)/gstreamer-1.0/include 2017-12-09 19:31:49 +00:00
tests tests/glcontext: fix INVALID_ENUM GL error in test 2017-12-09 19:32:07 +00:00