summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2006-09-17 02:59:11 +0000
committerphintuka <phintuka>2006-09-17 02:59:11 +0000
commit547d3c54c77f3cfadea56b761643963585e7bf50 (patch)
tree8c09fb7c49c0f437479904a2d3a0d40b951873f5
parent6b5593819c8094cd84423c08428e4b78c190537a (diff)
downloadxineliboutput-547d3c54c77f3cfadea56b761643963585e7bf50.tar.gz
xineliboutput-547d3c54c77f3cfadea56b761643963585e7bf50.tar.bz2
Buffer leak
-rw-r--r--xine_input_vdr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/xine_input_vdr.c b/xine_input_vdr.c
index eb3570d0..fbb90f5a 100644
--- a/xine_input_vdr.c
+++ b/xine_input_vdr.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_input_vdr.c,v 1.49 2006-09-17 02:02:42 phintuka Exp $
+ * $Id: xine_input_vdr.c,v 1.50 2006-09-17 02:59:11 phintuka Exp $
*
*/
@@ -659,6 +659,10 @@ static void vdr_adjust_realtime_speed(vdr_input_plugin_t *this)
int scr_tunning = this->scr_tunning;
int num_vbufs = 0;
+ if(this->hd_stream && this->hd_buffer) {
+ num_free += this->hd_buffer->num_free(this->hd_buffer);
+ }
+
if(this->stream->audio_fifo)
num_used += this->stream->audio_fifo->size(this->stream->audio_fifo);
num_free -= (this->buffer_pool->buffer_pool_capacity - this->max_buffers);
@@ -1290,7 +1294,7 @@ static buf_element_t *get_buf_element(vdr_input_plugin_t *this, int size, int fo
}
/* limit max. buffered data */
- if(!force) {
+ if(!force && !buf) {
int buffer_limit = this->buffer_pool->buffer_pool_capacity - this->max_buffers;
if(this->buffer_pool->buffer_pool_num_free < buffer_limit)
return NULL;