summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibaut Mattern <tmattern@users.sourceforge.net>2003-10-16 22:15:09 +0000
committerThibaut Mattern <tmattern@users.sourceforge.net>2003-10-16 22:15:09 +0000
commit975e5194a8494a8f9379fb15e912db56fa0743de (patch)
tree92ee3386778475c233b7323ade45a2ea7559e8bc
parentd600e7bf25209e559b9708eb378d9ea647c8cdfc (diff)
downloadxine-lib-975e5194a8494a8f9379fb15e912db56fa0743de.tar.gz
xine-lib-975e5194a8494a8f9379fb15e912db56fa0743de.tar.bz2
Avoid yoyo effect with poorly interleaved streams.
CVS patchset: 5532 CVS date: 2003/10/16 22:15:09
-rw-r--r--src/input/net_buf_ctrl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/input/net_buf_ctrl.c b/src/input/net_buf_ctrl.c
index ed14b323f..6fb1c557e 100644
--- a/src/input/net_buf_ctrl.c
+++ b/src/input/net_buf_ctrl.c
@@ -40,6 +40,8 @@
#define DEFAULT_LOW_WATER_MARK 1
#define DEFAULT_HIGH_WATER_MARK 5000 /* in 1/1000 s */
+#define FULL_FIFO_MARK 5 /* buffers free */
+
#define WRAP_THRESHOLD 5*90000 /* from the asf demuxer */
#define FIFO_PUT 0
@@ -403,7 +405,7 @@ static void nbc_get_cb (fifo_buffer_t *fifo,
/* Don't pause if the other fifo is full because the next
put() will restart the engine */
- if (other_fifo_free > 2) {
+ if (other_fifo_free > FULL_FIFO_MARK) {
this->buffering = 1;
this->progress = 0;
report_progress (this->stream, 0);