+2004-01-16 David Schleef <ds@schleef.org>
+
+ * gst/videofilter/gstvideobalance.c: Fix regression; changing a
+ property affects the video stream.
+ * sys/xvimage/xvimagesink.c:
+ * sys/xvimage/xvimagesink.h:
+ Add synchronous property for debugging. Should probably be
+ disabled in non-CVS builds. Make sure that the Xv attribute
+ exists before we set it (crash!). Fix a silly float bug that
+ caused colorbalance to just not work.
+
2004-01-17 Christian Schaller <Uraeus@gnome.org>
* tools/gst-launch-ext.in - update for new plugins
ARG_BRIGHTNESS,
ARG_HUE,
ARG_SATURATION,
- ARG_DISPLAY
+ ARG_DISPLAY,
+ ARG_SYNCHRONOUS
/* FILL ME */
};
g_object_ref (channel);
/* Our range conversion coef */
- convert_coef = (channel->max_value - channel->min_value) / 2000;
+ convert_coef = (channel->max_value - channel->min_value) / 2000.0;
if (g_ascii_strcasecmp (channel->label, "XV_HUE") == 0)
{
matching_attr = xv_attr + j;
}
- channel = g_object_new (GST_TYPE_COLOR_BALANCE_CHANNEL, NULL);
- channel->label = g_strdup (channels[i]);
- channel->min_value = matching_attr ? matching_attr->min_value : -1000;
- channel->max_value = matching_attr ? matching_attr->max_value : 1000;
-
- xcontext->channels_list = g_list_append (xcontext->channels_list,
- channel);
+ if (matching_attr) {
+ channel = g_object_new (GST_TYPE_COLOR_BALANCE_CHANNEL, NULL);
+ channel->label = g_strdup (channels[i]);
+ channel->min_value = matching_attr ? matching_attr->min_value : -1000;
+ channel->max_value = matching_attr ? matching_attr->max_value : 1000;
+
+ xcontext->channels_list = g_list_append (xcontext->channels_list,
+ channel);
+ }
}
if (xv_attr)
case ARG_DISPLAY:
xvimagesink->display_name = g_strdup (g_value_get_string (value));
break;
+ case ARG_SYNCHRONOUS:
+ xvimagesink->synchronous = g_value_get_boolean (value);
+ if (xvimagesink->xcontext) {
+ XSynchronize (xvimagesink->xcontext->disp,
+ xvimagesink->synchronous);
+ }
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case ARG_DISPLAY:
g_value_set_string (value, g_strdup (xvimagesink->display_name));
break;
+ case ARG_SYNCHRONOUS:
+ g_value_set_boolean (value, xvimagesink->synchronous);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
g_object_class_install_property (gobject_class, ARG_DISPLAY,
g_param_spec_string ("display", "Display", "X Display name",
NULL, G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class, ARG_SYNCHRONOUS,
+ g_param_spec_boolean ("synchronous", "Synchronous", "When enabled, runs "
+ "the X display in synchronous mode. (used only for debugging)", FALSE,
+ G_PARAM_READWRITE));
gobject_class->dispose = gst_xvimagesink_dispose;
gobject_class->set_property = gst_xvimagesink_set_property;