summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTorsten Jager <t.jager@gmx.de>2011-10-18 11:18:54 +0300
committerTorsten Jager <t.jager@gmx.de>2011-10-18 11:18:54 +0300
commit5ae44fd6e69481c8b2779857a7231cf1c5dc74a5 (patch)
tree4d2721441e7f345c39e2cb3c139ae9cab11b008c /src
parenta3e08d2839de1a6529286d106376a74f8e62c6ad (diff)
downloadxine-lib-5ae44fd6e69481c8b2779857a7231cf1c5dc74a5.tar.gz
xine-lib-5ae44fd6e69481c8b2779857a7231cf1c5dc74a5.tar.bz2
net_buf_ctrl: dvb sync: observe a/v buffers only.
Dont get fooled by subtitle buffers with pts seconds away from video for example.
Diffstat (limited to 'src')
-rw-r--r--src/input/net_buf_ctrl.c10
1 files changed, 6 insertions, 4 deletions
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;