diff --git a/ChangeLog b/ChangeLog index a74776d999..28ee005b2d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-03-17 Wim Taymans + + Patch by: Ole André Vadla Ravnås + + * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init), + (gst_rtspsrc_finalize): + Call WSAStartup() and WSACleanup before using the Winsock API. + See #520808. + 2008-03-16 Stefan Kost * gst/avi/gstavidemux.c: diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index d3811deaf1..ca32b4b02f 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -104,6 +104,10 @@ #include "gstrtspsrc.h" +#ifdef G_OS_WIN32 +#include +#endif + GST_DEBUG_CATEGORY_STATIC (rtspsrc_debug); #define GST_CAT_DEFAULT (rtspsrc_debug) @@ -321,6 +325,14 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) static void gst_rtspsrc_init (GstRTSPSrc * src, GstRTSPSrcClass * g_class) { +#ifdef G_OS_WIN32 + WSADATA wsa_data; + + if (WSAStartup (MAKEWORD (2, 2), &wsa_data) != 0) { + GST_ERROR_OBJECT (src, "WSAStartup failed: 0x%08x", WSAGetLastError ()); + } +#endif + src->location = g_strdup (DEFAULT_LOCATION); src->url = NULL; @@ -368,6 +380,10 @@ gst_rtspsrc_finalize (GObject * object) g_static_rec_mutex_free (rtspsrc->conn_rec_lock); g_free (rtspsrc->conn_rec_lock); +#ifdef G_OS_WIN32 + WSACleanup (); +#endif + G_OBJECT_CLASS (parent_class)->finalize (object); }