Important: Please read the Qt Code of Conduct -

V4LRadioControl problems

  • I am running an ADSTech Instant FM Music (silabs si470x, USB radio dongle), and trying to get a QRadioTuner to play nicely with it. One piece of the V4LRadioControl code says:
    @if(((cap.capabilities & V4L2_CAP_RADIO) == 0) && ((cap.capabilities & V4L2_CAP_AUDIO) == 0))
    available = true;@

    In my case, my device capabilities come to 0x50500, and the pertinent v4l2 defines are:

    @#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture /
    #define V4L2_CAP_HW_FREQ_SEEK 0x00000400 /
    Can do hardware frequency seek /
    #define V4L2_CAP_TUNER 0x00010000 /
    has a tuner /
    #define V4L2_CAP_RADIO 0x00040000 /
    is a radio device */@

    The defines look correct when compared to the device caps, but when are any of those going to be equal to 0? Shouldn't it be something like (cap.capabilities & V4L2_CAP_RADIO) == V4L2_CAP_RADIO? Or just test the (cap.capabilities & V4L2_CAP_RADIO) part?

    The code then goes on to do VIDIOC_ENUMINPUT, which according to the V4L2 docs "Enumerate video inputs", in which my device flatly refuses to do.

    What is the best course of action here on my part? Surely there's going to be vast differences in devices. Am I to create my own QMediaServiceProvider plugin?

Log in to reply