rtspconnection: only send new data immediately if there are no queued messages

Even if watch->messages->length is 0 there may still be some
data from a message that was only written partially at the
previous attempt stored in watch->write_data, so check for
that as well. We don't want to write data into the middle
of another message, which could happen when there wasn't
enough bandwidth.

https://bugzilla.gnome.org/show_bug.cgi?id=669039
This commit is contained in:
Ognyan Tonchev 2012-01-30 15:55:26 +01:00 committed by Tim-Philipp Müller
parent 439884d628
commit f6e07b65a4

View file

@ -3490,7 +3490,7 @@ gst_rtsp_watch_write_data (GstRTSPWatch * watch, const guint8 * data,
g_mutex_lock (watch->mutex);
/* try to send the message synchronously first */
if (watch->messages->length == 0) {
if (watch->messages->length == 0 && watch->write_data == NULL) {
res = write_bytes (watch->writefd.fd, data, &off, size);
if (res != GST_RTSP_EINTR) {
if (id != NULL)