srtsink: Register SRT listen callback before binding socket

This change https://github.com/Haivision/srt/pull/2683 forces us to
call `srt_listen_callback` before `srt_listen`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7688>
This commit is contained in:
Francisco Javier Velázquez-García 2024-10-09 12:08:10 -04:00 committed by GStreamer Marge Bot
parent 28c18b5390
commit 718ed88290

View file

@ -1139,20 +1139,22 @@ gst_srt_object_wait_connect (GstSRTObject * srtobject,
goto failed; goto failed;
} }
GST_DEBUG_OBJECT (srtobject->element, "Starting to listen on bind socket");
if (srt_listen (sock, 1) == SRT_ERROR) {
g_set_error (error, GST_RESOURCE_ERROR,
GST_RESOURCE_ERROR_OPEN_READ_WRITE, "Cannot listen on bind socket: %s",
srt_getlasterror_str ());
goto failed;
}
srtobject->listener_sock = sock; srtobject->listener_sock = sock;
/* Register the SRT listen callback */ /* Register the SRT listen callback */
if (srt_listen_callback (srtobject->listener_sock, if (srt_listen_callback (srtobject->listener_sock,
(srt_listen_callback_fn *) srt_listen_callback_func, srtobject)) { (srt_listen_callback_fn *) srt_listen_callback_func, srtobject)) {
g_set_error (error, GST_RESOURCE_ERROR,
GST_RESOURCE_ERROR_OPEN_READ_WRITE,
"Failed to register SRT listen callback: %s", srt_getlasterror_str ());
goto failed;
}
GST_DEBUG_OBJECT (srtobject->element, "Starting to listen on bind socket");
if (srt_listen (sock, 1) == SRT_ERROR) {
g_set_error (error, GST_RESOURCE_ERROR,
GST_RESOURCE_ERROR_OPEN_READ_WRITE, "Cannot listen on bind socket: %s",
srt_getlasterror_str ());
goto failed; goto failed;
} }