summaryrefslogtreecommitdiff
path: root/ext/gtk/gstgtksink.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/gtk/gstgtksink.c')
-rw-r--r--ext/gtk/gstgtksink.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/ext/gtk/gstgtksink.c b/ext/gtk/gstgtksink.c
index 09487b750..be5bf15e7 100644
--- a/ext/gtk/gstgtksink.c
+++ b/ext/gtk/gstgtksink.c
@@ -61,6 +61,7 @@ GST_STATIC_PAD_TEMPLATE ("sink",
#define DEFAULT_FORCE_ASPECT_RATIO TRUE
#define DEFAULT_PAR_N 0
#define DEFAULT_PAR_D 1
+#define DEFAULT_IGNORE_ALPHA TRUE
enum
{
@@ -68,6 +69,7 @@ enum
PROP_WIDGET,
PROP_FORCE_ASPECT_RATIO,
PROP_PIXEL_ASPECT_RATIO,
+ PROP_IGNORE_ALPHA,
};
enum
@@ -118,6 +120,11 @@ gst_gtk_sink_class_init (GstGtkSinkClass * klass)
"The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_IGNORE_ALPHA,
+ g_param_spec_boolean ("ignore-alpha", "Ignore Alpha",
+ "When enabled, alpha will be ignored and converted to black",
+ DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
gst_element_class_add_pad_template (gstelement_class,
gst_static_pad_template_get (&gst_gtk_sink_template));
@@ -138,6 +145,7 @@ gst_gtk_sink_init (GstGtkSink * gtk_sink)
gtk_sink->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
gtk_sink->par_n = DEFAULT_PAR_N;
gtk_sink->par_d = DEFAULT_PAR_D;
+ gtk_sink->ignore_alpha = DEFAULT_IGNORE_ALPHA;
}
static void
@@ -170,6 +178,9 @@ gst_gtk_sink_get_widget (GstGtkSink * gtk_sink)
gtk_sink->bind_pixel_aspect_ratio =
g_object_bind_property (gtk_sink, "pixel-aspect-ratio", gtk_sink->widget,
"pixel-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+ gtk_sink->bind_ignore_alpha =
+ g_object_bind_property (gtk_sink, "ignore-alpha", gtk_sink->widget,
+ "ignore-alpha", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
/* Take the floating ref, other wise the destruction of the container will
* make this widget disapear possibly before we are done. */
@@ -194,6 +205,9 @@ gst_gtk_sink_get_property (GObject * object, guint prop_id,
case PROP_PIXEL_ASPECT_RATIO:
gst_value_set_fraction (value, gtk_sink->par_n, gtk_sink->par_d);
break;
+ case PROP_IGNORE_ALPHA:
+ g_value_set_boolean (value, gtk_sink->ignore_alpha);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -214,6 +228,9 @@ gst_gtk_sink_set_property (GObject * object, guint prop_id,
gtk_sink->par_n = gst_value_get_fraction_numerator (value);
gtk_sink->par_d = gst_value_get_fraction_denominator (value);
break;
+ case PROP_IGNORE_ALPHA:
+ gtk_sink->ignore_alpha = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;