diff --git a/ChangeLog b/ChangeLog index aafaea342d..b8bf8932fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,26 @@ +2004-01-14 Julien MOUTTE + + * gst-libs/gst/colorbalance/colorbalance.c: + (gst_color_balance_class_init): Adding a default type. + * gst-libs/gst/colorbalance/colorbalance.h: Adding a macro to access + the type. + * gst/videofilter/gstvideobalance.c: (gst_videobalance_get_type), + (gst_videobalance_dispose), (gst_videobalance_class_init), + (gst_videobalance_init), (gst_videobalance_interface_supported), + (gst_videobalance_interface_init), + (gst_videobalance_colorbalance_list_channels), + (gst_videobalance_colorbalance_set_value), + (gst_videobalance_colorbalance_get_value), + (gst_videobalance_colorbalance_init): Implementing colorbalance + interface. + * gst/videofilter/gstvideobalance.h: Adding colorbalance channels + list. + * sys/ximage/ximagesink.c: (gst_ximagesink_set_xwindow_id): Fixing a + bug which was triggering a BadAccess X error when setting an overlay + before pad was really negotiated. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_colorbalance_init): + Using the colorbalance type macro. + 2004-01-14 Benjamin Otte * ext/flac/gstflacenc.c: (gst_flacenc_set_metadata), diff --git a/gst-libs/gst/colorbalance/colorbalance.c b/gst-libs/gst/colorbalance/colorbalance.c index 163111cd69..272b7eb990 100644 --- a/gst-libs/gst/colorbalance/colorbalance.c +++ b/gst-libs/gst/colorbalance/colorbalance.c @@ -82,6 +82,8 @@ gst_color_balance_class_init (GstColorBalanceClass *klass) initialized = TRUE; } + klass->balance_type = GST_COLOR_BALANCE_SOFTWARE; + /* default virtual functions */ klass->list_channels = NULL; klass->set_value = NULL; diff --git a/gst-libs/gst/colorbalance/colorbalance.h b/gst-libs/gst/colorbalance/colorbalance.h index 3f365485d2..3eb126cf21 100644 --- a/gst-libs/gst/colorbalance/colorbalance.h +++ b/gst-libs/gst/colorbalance/colorbalance.h @@ -41,6 +41,8 @@ G_BEGIN_DECLS (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_COLOR_BALANCE)) #define GST_COLOR_BALANCE_GET_CLASS(inst) \ (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_COLOR_BALANCE, GstColorBalanceClass)) + +#define GST_COLOR_BALANCE_TYPE(klass) (klass->balance_type) typedef struct _GstColorBalance GstColorBalance; diff --git a/gst-libs/gst/interfaces/colorbalance.c b/gst-libs/gst/interfaces/colorbalance.c index 163111cd69..272b7eb990 100644 --- a/gst-libs/gst/interfaces/colorbalance.c +++ b/gst-libs/gst/interfaces/colorbalance.c @@ -82,6 +82,8 @@ gst_color_balance_class_init (GstColorBalanceClass *klass) initialized = TRUE; } + klass->balance_type = GST_COLOR_BALANCE_SOFTWARE; + /* default virtual functions */ klass->list_channels = NULL; klass->set_value = NULL; diff --git a/gst-libs/gst/interfaces/colorbalance.h b/gst-libs/gst/interfaces/colorbalance.h index 3f365485d2..3eb126cf21 100644 --- a/gst-libs/gst/interfaces/colorbalance.h +++ b/gst-libs/gst/interfaces/colorbalance.h @@ -41,6 +41,8 @@ G_BEGIN_DECLS (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_COLOR_BALANCE)) #define GST_COLOR_BALANCE_GET_CLASS(inst) \ (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_COLOR_BALANCE, GstColorBalanceClass)) + +#define GST_COLOR_BALANCE_TYPE(klass) (klass->balance_type) typedef struct _GstColorBalance GstColorBalance; diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c index 69c004166f..2035670e31 100644 --- a/sys/ximage/ximagesink.c +++ b/sys/ximage/ximagesink.c @@ -1002,8 +1002,9 @@ gst_ximagesink_set_xwindow_id (GstXOverlay *overlay, XID xwindow_id) /* If that new window geometry differs from our one we try to renegotiate caps */ - if (xwindow->width != GST_VIDEOSINK_WIDTH (ximagesink) || - xwindow->height != GST_VIDEOSINK_HEIGHT (ximagesink)) + if (gst_pad_is_negotiated (GST_VIDEOSINK_PAD (ximagesink)) && + (xwindow->width != GST_VIDEOSINK_WIDTH (ximagesink) || + xwindow->height != GST_VIDEOSINK_HEIGHT (ximagesink))) { GstPadLinkReturn r; r = gst_pad_try_set_caps (GST_VIDEOSINK_PAD (ximagesink), diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c index 34f18ec984..51b604424d 100644 --- a/sys/xvimage/xvimagesink.c +++ b/sys/xvimage/xvimagesink.c @@ -1297,7 +1297,7 @@ gst_xvimagesink_colorbalance_get_value (GstColorBalance *balance, static void gst_xvimagesink_colorbalance_init (GstColorBalanceClass *iface) { - iface->balance_type = GST_COLOR_BALANCE_HARDWARE; + GST_COLOR_BALANCE_TYPE (iface) = GST_COLOR_BALANCE_HARDWARE; iface->list_channels = gst_xvimagesink_colorbalance_list_channels; iface->set_value = gst_xvimagesink_colorbalance_set_value; iface->get_value = gst_xvimagesink_colorbalance_get_value;