From 5ae44fd6e69481c8b2779857a7231cf1c5dc74a5 Mon Sep 17 00:00:00 2001 From: Torsten Jager Date: Tue, 18 Oct 2011 11:18:54 +0300 Subject: net_buf_ctrl: dvb sync: observe a/v buffers only. Dont get fooled by subtitle buffers with pts seconds away from video for example. --- src/input/net_buf_ctrl.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/input/net_buf_ctrl.c b/src/input/net_buf_ctrl.c index 30db0e6e4..d06d8133f 100644 --- a/src/input/net_buf_ctrl.c +++ b/src/input/net_buf_ctrl.c @@ -190,12 +190,13 @@ static void dvbspeed_put (nbc_t *this, fifo_buffer_t * fifo, buf_element_t *b) { int used, mode; const char *name; /* select vars */ - if (fifo == this->video_fifo) { + mode = b->type & BUF_MAJOR_MASK; + if (mode == BUF_VIDEO_BASE) { last = &this->dvbs_video_in; fill = &this->dvbs_video_fill; mode = 0x71; name = "video"; - } else if (fifo == this->audio_fifo) { + } else if (mode == BUF_AUDIO_BASE) { last = &this->dvbs_audio_in; fill = &this->dvbs_audio_fill; mode = 0x0f; @@ -265,12 +266,13 @@ static void dvbspeed_get (nbc_t *this, fifo_buffer_t * fifo, buf_element_t *b) { int used, mode; const char *name; /* select vars */ - if (fifo == this->video_fifo) { + mode = b->type & BUF_MAJOR_MASK; + if (mode == BUF_VIDEO_BASE) { last = &this->dvbs_video_out; fill = &this->dvbs_video_fill; mode = 0x71; name = "video"; - } else if (fifo == this->audio_fifo) { + } else if (mode == BUF_AUDIO_BASE) { last = &this->dvbs_audio_out; fill = &this->dvbs_audio_fill; mode = 0x0f; -- cgit v1.2.3