diff --git a/ChangeLog b/ChangeLog index 9fdc9b340e..adc669e480 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-05-11 Wim Taymans + + * sys/ximage/ximagesink.c: (gst_ximagesink_get_type): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_type): + Register special buffer types along with the objects so + that they are not registered at runtime from N different + streaming threads since they are not threadsafe. + 2006-05-10 Thomas Vander Stichele * tests/check/elements/multifdsink.c: (wait_bytes_served), diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c index d6c6cd86ed..23f7c0b977 100644 --- a/sys/ximage/ximagesink.c +++ b/sys/ximage/ximagesink.c @@ -2006,6 +2006,10 @@ gst_ximagesink_get_type (void) &navigation_info); g_type_add_interface_static (ximagesink_type, GST_TYPE_X_OVERLAY, &overlay_info); + + /* register type in a more safe place instead of at runtime since the + * type registration is not threadsafe. */ + gst_ximage_buffer_get_type (); } return ximagesink_type; diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c index 0a24e26793..b93fb6dc17 100644 --- a/sys/xvimage/xvimagesink.c +++ b/sys/xvimage/xvimagesink.c @@ -2566,6 +2566,10 @@ gst_xvimagesink_get_type (void) &overlay_info); g_type_add_interface_static (xvimagesink_type, GST_TYPE_COLOR_BALANCE, &colorbalance_info); + + /* make sure type is registered and not at runtime as this is not + * threadsafe */ + gst_xvimage_buffer_get_type (); } return xvimagesink_type;