rtspconnection: not enter in not controllable state unless it is necessary

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
This commit is contained in:
Miguel Angel Cabrera Moya 2011-05-16 15:35:50 +02:00 committed by Wim Taymans
parent 330456456e
commit df5af9cdfd

View file

@ -2269,7 +2269,9 @@ gst_rtsp_connection_receive (GstRTSPConnection * conn, GstRTSPMessage * message,
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 */