summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2009-07-15 16:46:56 +0000
committerphintuka <phintuka>2009-07-15 16:46:56 +0000
commitedf113180ac13433db22e08c605dee892ec71c89 (patch)
tree3e9b0da6fe285b0a9826114a327f03f2b781bb1d
parent9ba0ec21b5cb0206164421b8727203f65bc588ab (diff)
downloadxineliboutput-edf113180ac13433db22e08c605dee892ec71c89.tar.gz
xineliboutput-edf113180ac13433db22e08c605dee892ec71c89.tar.bz2
flush_all_fifos(): free all queued UDP packets
-rw-r--r--xine_input_vdr.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/xine_input_vdr.c b/xine_input_vdr.c
index fc3c418d..6746b8e7 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.264 2009-07-15 16:45:34 phintuka Exp $
+ * $Id: xine_input_vdr.c,v 1.265 2009-07-15 16:46:56 phintuka Exp $
*
*/
@@ -1154,6 +1154,15 @@ static void flush_all_fifos (vdr_input_plugin_t *this, int full)
this->read_buffer = NULL;
}
+ if (this->udp_data) {
+ int i;
+ for (i = 0; i <= UDP_SEQ_MASK; i++)
+ if (this->udp_data->queue[i]) {
+ this->udp_data->queue[i]->free_buffer(this->udp_data->queue[i]);
+ this->udp_data->queue[i] = NULL;
+ }
+ }
+
if (full) {
if (this->stream && this->stream->audio_fifo)
this->stream->audio_fifo->clear(this->stream->audio_fifo);