Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: dvb/v4l: what's that with the tuners?



Guido Draheim wrote:
> Johannes Stezenbach schrieb:
> >
> >If my understanding of what you say is correct, then with
> >  struct video_channel dvb_chan = { 0, "DVB", 0, VIDEO_VC_AUDIO,
> >                                    VIDEO_TYPE_TV, 1 };
> >
> >zapping should recognize that there is no tuner?
> >
> 
> I'm not sure, just digging into the things, it looks like yes,
> because `zapping` uses VIDIOCGCHAN (looping over all channels)
> and copies some capabilities into internal structures. Among
> that we see in tveng1_get_inputs()
>      ioctl(info->fd, VIDIOCGCHAN, &channel
>      info->inputs[info->num_inputs].tuners = channel.tuners;
> all other functions later in the text
> seem to check for info->*->tuners and shortcircuit
> into a return-from-function instead of trying to call
> any tuner ioctl, e.g. in tveng1_tune_input() we see
>   /* Check that there are tuners in the current input */
>   if (info->inputs[info->cur_input].tuners == 0)
>     return 0; /* Success (we shouldn't be tuning, anyway) */
> Whenever there is a tuners != 0 then it starts trying
> some tune ioctl, prints errno descriptions as a result,
> and returns an error code to the caller.
>     Again, I am not sure whether the caller does just go
> on, and while putting a message-box on the screen, it still
> tries to put a video overlay window. Fixing the above
> problems (as described) did not led to `zapping` to
> start working. The fix for VIDIOCGWIN was more succesful.

With my video_channel change aobove zapping fails:
tveng1.c (708): tveng1_get_standards: assertion (j != info->num_inputs) failed

Maybe I should read the zapping source, but I don't have enough time
now.


Johannes


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index