From 785fb4931f9d50716810cb4cc2355133fb37b462 Mon Sep 17 00:00:00 2001 From: Simon Farnsworth Date: Mon, 28 Jul 2008 17:17:39 +0100 Subject: Only set the tuner if we're going to use it (fixes baseband video inputs) --- ChangeLog | 2 ++ src/input/input_v4l.c | 16 ++++++---------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index f0066718d..274b18dda 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,8 @@ xine-lib (1.1.15) 2008-??-?? others, there would be no problem. * V4L changes: - Delay preallocating video frames until we know how large they'll be + - Only try and set the tuner if we're going to use it. Setting the tuner + when using baseband video (CVBS, S-Video) breaks the input. xine-lib (1.1.14) 2008-06-29 * DVB changes: diff --git a/src/input/input_v4l.c b/src/input/input_v4l.c index 9e6b783e3..b97f11ace 100644 --- a/src/input/input_v4l.c +++ b/src/input/input_v4l.c @@ -549,6 +549,12 @@ static int set_frequency(v4l_input_plugin_t *this, unsigned long frequency) fd = this->radio_fd; if (frequency != 0) { + /* FIXME: Don't assume tuner 0 ? */ + this->tuner = 0; + ret = ioctl(fd, VIDIOCSTUNER, &this->tuner); + lprintf("(%d) Response on set tuner to %d\n", ret, this->tuner); + this->video_tuner.tuner = this->tuner; + if (this->video_tuner.flags & VIDEO_TUNER_LOW) { this->calc_frequency = frequency * 16; } else { @@ -683,16 +689,6 @@ static int search_by_channel(v4l_input_plugin_t *this, char *input_source) ret = ioctl(fd, VIDIOCSCHAN, &this->input); lprintf("(%d) Set channel to %d\n", ret, this->input); - - /* FIXME: Don't assume tuner 0 ? */ - - this->tuner = 0; - - ret = ioctl(fd, VIDIOCSTUNER, &this->tuner); - - lprintf("(%d) Response on set tuner to %d\n", ret, this->tuner); - - this->video_tuner.tuner = this->tuner; } else { xprintf(this->stream->xine, XINE_VERBOSITY_LOG, "input_v4l: Not setting video source. No source given\n"); -- cgit v1.2.3