gst_gtk_base_sink_get_widget (GstGtkBaseSink * gtk_sink)
{
if (gtk_sink->widget != NULL)
- return gtk_sink->widget;
+ return g_object_ref (gtk_sink->widget);
/* Ensure GTK is initialized, this has no side effect if it was already
* initialized. Also, we do that lazily, so the application can be first */
gtk_gst_base_widget_set_element (GTK_GST_BASE_WIDGET (gtk_sink->widget),
GST_ELEMENT (gtk_sink));
- return gtk_sink->widget;
+ return g_object_ref (gtk_sink->widget);
}
GtkWidget *
GST_OBJECT_LOCK (gtk_sink);
if (gtk_sink->widget != NULL)
- widget = gtk_sink->widget;
+ widget = g_object_ref (gtk_sink->widget);
GST_OBJECT_UNLOCK (gtk_sink);
if (!widget)
switch (prop_id) {
case PROP_WIDGET:
{
- g_value_set_object (value, gst_gtk_base_sink_acquire_widget (gtk_sink));
+ g_value_take_object (value, gst_gtk_base_sink_acquire_widget (gtk_sink));
break;
}
case PROP_FORCE_ASPECT_RATIO:
{
switch (prop_id) {
case PROP_ROTATE_METHOD:
- gtk_gst_gl_widget_set_rotate_method (GTK_GST_GL_WIDGET
- (gst_gtk_base_sink_acquire_widget (GST_GTK_BASE_SINK (object))),
+ {
+ GtkWidget *widget =
+ gst_gtk_base_sink_acquire_widget (GST_GTK_BASE_SINK (object));
+ gtk_gst_gl_widget_set_rotate_method (GTK_GST_GL_WIDGET (widget),
g_value_get_enum (value), FALSE);
+ g_object_unref (widget);
break;
-
+ }
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
{
switch (prop_id) {
case PROP_ROTATE_METHOD:
+ {
+ GtkWidget *widget =
+ gst_gtk_base_sink_acquire_widget (GST_GTK_BASE_SINK (object));
+
g_value_set_enum (value,
- gtk_gst_gl_widget_get_rotate_method (GTK_GST_GL_WIDGET
- (gst_gtk_base_sink_acquire_widget (GST_GTK_BASE_SINK (object)))));
- break;
+ gtk_gst_gl_widget_get_rotate_method (GTK_GST_GL_WIDGET (widget)));
+ g_object_unref (widget);
+ break;
+ }
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
(gst_gtk_base_sink_acquire_widget (GST_GTK_BASE_SINK (sink)));
gtk_gst_gl_widget_set_rotate_method (widget, orientation, TRUE);
+
+ g_object_unref (widget);
}
break;
default: