rtpbin: fix a bug handling BUFFERING messages.

If a session exists but has no streams, set the min buffering percent to 0
since it means that we haven't received anything for that session yet.
This commit is contained in:
Alessandro Decina 2010-05-03 11:56:58 +02:00
parent f6e9f359b9
commit ffc2da30fc

View file

@ -1804,16 +1804,22 @@ gst_rtp_bin_handle_message (GstBin * bin, GstMessage * message)
GstRtpBinSession *session = (GstRtpBinSession *) sessions->data; GstRtpBinSession *session = (GstRtpBinSession *) sessions->data;
GST_RTP_SESSION_LOCK (session); GST_RTP_SESSION_LOCK (session);
for (streams = session->streams; streams; if (session->streams) {
streams = g_slist_next (streams)) { for (streams = session->streams; streams;
GstRtpBinStream *stream = (GstRtpBinStream *) streams->data; streams = g_slist_next (streams)) {
GstRtpBinStream *stream = (GstRtpBinStream *) streams->data;
GST_DEBUG_OBJECT (bin, "stream %p percent %d", stream, GST_DEBUG_OBJECT (bin, "stream %p percent %d", stream,
stream->percent); stream->percent);
/* find min percent */ /* find min percent */
if (min_percent > stream->percent) if (min_percent > stream->percent)
min_percent = stream->percent; min_percent = stream->percent;
}
} else {
GST_INFO_OBJECT (bin,
"session has no streams, setting min_percent to 0");
min_percent = 0;
} }
GST_RTP_SESSION_UNLOCK (session); GST_RTP_SESSION_UNLOCK (session);
} }