diff --git a/ChangeLog b/ChangeLog index 06e9ec3109..9035bbdcd3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-06-28 Wim Taymans + + * gst/playback/gstqueue2.c: (apply_segment), (update_buffering): + Use other metrics as well when estimating the buffer level. + 2007-06-28 Wim Taymans * gst/playback/gstplaybasebin.c: (make_decoder), (setup_source): diff --git a/gst/playback/gstqueue2.c b/gst/playback/gstqueue2.c index 1bbe495329..679a2cb2aa 100644 --- a/gst/playback/gstqueue2.c +++ b/gst/playback/gstqueue2.c @@ -664,13 +664,13 @@ update_buffering (GstQueue * queue) percent = 100; } else { /* figure out the percent we are filled, we take the max of all formats. */ - if (queue->use_rate_estimate) { - percent = GET_PERCENT (rate_time); - } else { - percent = GET_PERCENT (bytes); - percent = MAX (percent, GET_PERCENT (time)); - percent = MAX (percent, GET_PERCENT (buffers)); - } + percent = GET_PERCENT (bytes); + percent = MAX (percent, GET_PERCENT (time)); + percent = MAX (percent, GET_PERCENT (buffers)); + + /* also apply the rate estimate when we need to */ + if (queue->use_rate_estimate) + percent = MAX (percent, GET_PERCENT (rate_time)); } if (queue->is_buffering) {