VDR frontend priority

  • I have two different dvb-t frontends. One of them has better sensitivity. However, for some reason vdr always prefers the other. I have tried changing the order they appear in the /dev/dvb directory by passing the appropriate options to the respective modules but that had no effect. So my question is: Is there a way to force vdr to prefer a certain frontend?

  • Hi and welcome!


    The function cDevice::GetDevice in device.c is responsible for selecting the device. If your two frontends have the same capabilities, the first one is normally used for live-tv and the second for recordings. But that's not a rule. vdr will log the capabilities of each card on startup.
    You can bound a channel to a specific card with the ca field in your channels.conf, but that won't help you either.
    And when should vdr prefer one frontend? For live-tv, for recordings? It's not so easy...


    The better is you replace the hardware with something working. If you have poor reception try another antenna or better another dvb-t-stick. They are not so expensive it's worth the work. Developing around bad hardware is not very satisfying. :)


    Lars.

  • Thanks for the reply. I can see now why this happens. Apparently vdr uses the "less capable" device if the channel is available on that device so that to keep the other "more capable" device available.
    This is from the logs:
    frontend 0/0 provides DVB-T with QPSK,QAM16,QAM64 ("TerraTec/qanu...iver")
    frontend 1/0 provides DVB-T with QAM16,QAM64 ("ITE 9135 Generic_1")


    In my case vdr always prefers frontend 1 which is rather unfortunate because I bought it to be the cheap second device which would be used only occassionaly. That is why I would rather not buy another device but be able to somehow configure vdr so that it is used only if the other is busy.

  • Sadly that's not possible. vdr does not have a device-priority mechanism.


    You can patch your vdr and add AvoidRecording to the class cDvbDevice in dvbdevice.h:

    Code
    virtual bool AvoidRecording(void) const { return adapter > 0; }


    Then adapter0 will be preferred.


    Lars.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!