glimagesink: Add render-rectangle property

This allow controlling the render rectangle from gst-launch-1.0.

https://bugzilla.gnome.org/show_bug.cgi?id=792798
This commit is contained in:
Nicolas Dufresne 2018-01-29 12:45:06 +00:00
parent e368b3105b
commit 3b317ea6c2

View file

@ -122,7 +122,8 @@ enum
PROP_BIN_SHOW_PREROLL_FRAME, PROP_BIN_SHOW_PREROLL_FRAME,
PROP_BIN_OUTPUT_MULTIVIEW_LAYOUT, PROP_BIN_OUTPUT_MULTIVIEW_LAYOUT,
PROP_BIN_OUTPUT_MULTIVIEW_FLAGS, PROP_BIN_OUTPUT_MULTIVIEW_FLAGS,
PROP_BIN_OUTPUT_MULTIVIEW_DOWNMIX_MODE PROP_BIN_OUTPUT_MULTIVIEW_DOWNMIX_MODE,
PROP_BIN_LAST
}; };
enum enum
@ -284,6 +285,9 @@ gst_gl_image_sink_bin_class_init (GstGLImageSinkBinClass * klass)
"Output anaglyph type to generate when downmixing to mono", "Output anaglyph type to generate when downmixing to mono",
GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE, DEFAULT_MULTIVIEW_DOWNMIX, GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE, DEFAULT_MULTIVIEW_DOWNMIX,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
gst_video_overlay_install_properties (gobject_class, PROP_BIN_LAST);
gst_gl_image_sink_bin_signals[SIGNAL_BIN_CLIENT_DRAW] = gst_gl_image_sink_bin_signals[SIGNAL_BIN_CLIENT_DRAW] =
g_signal_new ("client-draw", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, g_signal_new ("client-draw", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2,
@ -389,7 +393,8 @@ enum
PROP_IGNORE_ALPHA, PROP_IGNORE_ALPHA,
PROP_OUTPUT_MULTIVIEW_LAYOUT, PROP_OUTPUT_MULTIVIEW_LAYOUT,
PROP_OUTPUT_MULTIVIEW_FLAGS, PROP_OUTPUT_MULTIVIEW_FLAGS,
PROP_OUTPUT_MULTIVIEW_DOWNMIX_MODE PROP_OUTPUT_MULTIVIEW_DOWNMIX_MODE,
PROP_LAST
}; };
enum enum
@ -692,6 +697,8 @@ gst_glimage_sink_class_init (GstGLImageSinkClass * klass)
GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE, DEFAULT_MULTIVIEW_DOWNMIX, GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE, DEFAULT_MULTIVIEW_DOWNMIX,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
gst_video_overlay_install_properties (gobject_class, PROP_LAST);
gst_element_class_set_metadata (element_class, "OpenGL video sink", gst_element_class_set_metadata (element_class, "OpenGL video sink",
"Sink/Video", "A videosink based on OpenGL", "Sink/Video", "A videosink based on OpenGL",
"Julien Isorce <julien.isorce@gmail.com>"); "Julien Isorce <julien.isorce@gmail.com>");
@ -827,6 +834,7 @@ gst_glimage_sink_set_property (GObject * object, guint prop_id,
GST_GLIMAGE_SINK_UNLOCK (glimage_sink); GST_GLIMAGE_SINK_UNLOCK (glimage_sink);
break; break;
default: default:
if (!gst_video_overlay_set_property (object, PROP_LAST, prop_id, value))
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
} }
@ -885,6 +893,7 @@ gst_glimage_sink_get_property (GObject * object, guint prop_id,
g_value_set_enum (value, glimage_sink->mview_downmix_mode); g_value_set_enum (value, glimage_sink->mview_downmix_mode);
break; break;
default: default:
if (!gst_video_overlay_set_property (object, PROP_LAST, prop_id, value))
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
} }