When closing rtspsrc the state change blocks until the polling in the
connection timeouts. This is because the second time we loop to read a
full message controllable is set to FALSE in the poll group, even though no
message is half read.
This can be avoided by not setting controllable to FALSE the poll group
unless we had begin to read a message.
Fixes #610916
if (gst_poll_fd_has_error (conn->fdset, conn->writefd))
goto socket_error;
- gst_poll_set_controllable (conn->fdset, FALSE);
+ /* once we start reading the wait cannot be controlled */
+ if (builder.state != STATE START)
+ gst_poll_set_controllable (conn->fdset, FALSE);
}
/* we have a message here */