[vdr-plugin-satip] Issues with mixed setup DVB-S & DVB-T

  • Many thanks to rofafor for the plugin!


    I have an OctopusNet with two DVB-S/S2 tuners and two DVB-C/T/T2 tuners. The satellite signals come from twin LNBs and the terrestrial signals from a normal DVB-T antenna. And for added complexity there is a single LNB on a rotor feeding a USB tuner.


    I give the OctopusNet high priority, so the rotor is only used when no other sat-tuner is available.


    Unfortunately this configuration fails, in particular when programmed timers kick in. Clearly no more than 3 DVB-S and/or 2 DVB-T simultaneous recordings are possible, but I am seeing effects where even the second DVB-S recording get assigned to a DVB-T tuner, apparently.


    So I have changed "--plugin=satip -d 4" to -d 2 and set satip.DisabledSources=T, thus disabling DVB-T reception. But it would be great to be able to use all of the tuners. I would be pleased to help with debugging and apologise if there is some configuration option that has escaped me.

    vdr: 2.5.6, NUC8i5BEH, MANJARO, OctopusNet-Max DVB-S2 Unicable 8 Slots
    samsung tv: ue46d7090

  • manxie


    Your issue doesn't seem to be just a "this and that" with vdr-plugin-satip, rather some more fundamental question regarding mixed setup of an Octopus Net. So please open a new thread for such questions, I moved it out of the big one.


    Regards
    fnu

    HowTo: APT pinning

    Edited once, last by fnu ().

  • Unfortunately this configuration fails, in particular when programmed timers kick in. Clearly no more than 3 DVB-S and/or 2 DVB-T simultaneous recordings are possible, but I am seeing effects where even the second DVB-S recording get assigned to a DVB-T tuner, apparently.


    If you're not using radio id field to assign channels to a certain frontends, the latter problem sounds like a bug in the firmware - how do you detect that DVB-S gets assigned into a DVB-T tuner?

  • I'm not using radio id.


    Situation before a recording:



    and during the recording:



    Just to clarify the device numbers:

    Code
    new device number 1
    frontend 0/0 provides DVB-S,DVB-S2,DSS with QPSK ("STV090x Multistandard")


    Code
    initializing plugin: softhddevice (0.6.1rc1-GIT9f134c1): A software and GPU emulated HD device
    new device number 2


    Code
    initializing plugin: play (0.0.14-GIT8035264): A play plugin
    new device number 3


    Code
    initializing plugin: satip (1.0.0): SAT>IP Devices
    ERROR (thread.c,227): Permission denied
    new device number 4
    SATIP: Creating device CardIndex=3 DeviceNumber=3 [device 0]
    SATIP#0 tuner thread started (pid=369, tid=406, prio=high)


    Code
    new device number 5
    SATIP: Creating device CardIndex=4 DeviceNumber=4 [device 1]
    SATIP#1 tuner thread started (pid=369, tid=409, prio=high)


    Code
    new device number 6
    SATIP: Creating device CardIndex=5 DeviceNumber=5 [device 2]
    SATIP#2 tuner thread started (pid=369, tid=412, prio=high)


    Code
    new device number 7
    SATIP: Creating device CardIndex=6 DeviceNumber=6 [device 3]
    SATIP#3 tuner thread started (pid=369, tid=415, prio=high)


    And other random data:

    Code
    Linux version 3.18.1-gentoo (root@vdr) (gcc version 4.8.3 (Gentoo 4.8.3 p1.1, pie-0.5.9) ) #1 SMP Wed Dec 17 16:19:22 CET 2014


    Code
    VDR version 2.1.6 started


    Code
    OctopusNet 1.0.40 BETA

    vdr: 2.5.6, NUC8i5BEH, MANJARO, OctopusNet-Max DVB-S2 Unicable 8 Slots
    samsung tv: ue46d7090

  • As far as I remember satip plugin has no way (at least up to now) to make any difference between channels of ONE satip server (rofafor, maybe you can confirm or correct me). This will be handled as an enhancement request, so from my pov no way to make it work with current plugins.


    I am also not sure if VDR provides the possibility to have different transponder types (DVB-T and DVB-S) in one plugin, maybe we need to check it before thinking on SATIP plugin enhancement.

  • Quote

    Any info about the timers?

    I generate 3 timers, for the 3 available sat tuners (2 on Octopus, 1 direct), with this script.



    Channel 1 is BBC 1 HD, 2 is ITV HD and 3 is Das Erste.


    It works as expected with the terrestrials disabled, but chaos ensues with them enabled.


    As in:

    vdr: 2.5.6, NUC8i5BEH, MANJARO, OctopusNet-Max DVB-S2 Unicable 8 Slots
    samsung tv: ue46d7090

  • manxie


    Looking to rofafor's README you can find these requirements:


    Code
    Requirements:- Libcurl >= 7.36.0 - the multiprotocol file transfer library with RTSP support  http://curl.haxx.se/libcurl/- PugiXML - Light-weight, simple and fast XML parser for C++  http://pugixml.org/  or  TinyXML - a simple, small, C++ XML parser  http://www.grinninglizard.com/tinyxml/


    Have you met them during building the plugin?


    Regards
    fnu

    HowTo: APT pinning

  • fnu


    The requirements are ok.



    Code
    fdc@vdr ~ $ cave owner /usr/lib64/libcurl.so.4
    net-misc/curl-7.39.0::installed
    fdc@vdr ~ $ cave owner /usr/lib64/libpugixml.so.1
    dev-libs/pugixml-1.5::installed


    rofafor


    I will reset the OctopusNet tomorrow and continue testing.

    vdr: 2.5.6, NUC8i5BEH, MANJARO, OctopusNet-Max DVB-S2 Unicable 8 Slots
    samsung tv: ue46d7090

  • Well, I am not familiar with the protocol.


    Some info I forgot to provide with the previous trace, namely the timer settings:



    Now I have done the same test, but with disabled DVB-T tuners, where everything works as planned.



    And the good trace is attached.

  • Comparing the two traces in messages 11 and 13, it seems that the wrong decision is made in trace 1 starting at 'Jan 05 11:10:00'. That is when vdr starts to prepare for the recordings that will start a minute later. ProvidesTransponder and ProvidesSource claim to be able to provide 'transponder=210847 source=S' (which is BBC 1 HD via Satellite 28.2) on any of the 4 devices. Unfortunately, that is only going to work for the first two.


    Given that the capabilities of the tuners are known to the plugin, maybe it's just a "small matter of programming" to extend it (hint).

    vdr: 2.5.6, NUC8i5BEH, MANJARO, OctopusNet-Max DVB-S2 Unicable 8 Slots
    samsung tv: ue46d7090

  • Well, you'll have first understand that satip devices aren't tied to any server (nor its' frontends) until tuned and you've enabled the trace call back - you don't get the return values in your log.


    Now, you're having 2 DVB-S2 frontends and one is tuned. When the timer kicks in, VDR checks ALL devices whether they are able to receive it. Your server has one free DVB-S2 slot, so depending the transponder 3-4 satip devices report having able to handle it. There's a definitely bug somewhere, and most propably due to missing model information in cSatipServer::Used() method.

  • Thanks rofafor.


    It still fails, I am afraid. The attached trace has this device configuration:


    new device number 1
    frontend 0/0 provides DVB-S,DVB-S2,DSS with QPSK ("STV090x Multistandard")
    new device number 4
    SATIP: Creating device CardIndex=3 DeviceNumber=3 [device 0]
    new device number 5
    SATIP: Creating device CardIndex=4 DeviceNumber=4 [device 1]
    new device number 6
    SATIP: Creating device CardIndex=5 DeviceNumber=5 [device 2]
    new device number 7
    SATIP: Creating device CardIndex=6 DeviceNumber=6 [device 3]


    The default channel is Sat-Radio 4. The Test sets live Sat-TV on channel 1 and
    schedules recording of Sat channel 7, Terrestrial channel 501 and Sat channel 100 (which are all on different transponders). I imagine vdr/satip in this situation should leave live TV on the tuned satip device, schedule recordings on the other sat tuner and a terrestrial tuner, and let vdr use the low-priority directly connected frontend for the remaining recording.


    I noticed a couple of minor bugs. When parsing satip.DisabledSources from the setup file, if more then one is disabled, only the first survives. It is subtle, because if you set 2 sources via osd it looks right initially and also after a restart. After the 2nd restart only one is still there. It is due to scribbling over the setup line, that vdr will write back on shutdown. There are a bunch of similar occurrences which may also cause problems (beware casts!). "fgrep -s '(char *)' *"


    In cSatipServer::cSatipServer, when parsing modelM, you need to use "else if (strstr(r, "DVBT"))" etc., otherwise DVBT2 is counted twice (similarly DVBC2).


    A cosmetic fix: s/GetHeaderLenght/GetHeaderLength/g


    I still think it would be preferable, and indeed actually necessary, to let the user specify how many of which type of tuner to use. Something like '--plugin=satip --SatTuners=2 --TerrTuners=2". At the moment, even if the current method can be made to work, I don't see how to reserve a specific number of a specific type (i.e use fewer than are actually available).

  • In cSatipServer::cSatipServer, when parsing modelM, you need to use "else if (strstr(r, "DVBT"))" etc., otherwise DVBT2 is counted twice (similarly DVBC2).


    It's due that DVB-T2 devices can handle DVB-T too. Same goes for cable too.


    I still think it would be preferable, and indeed actually necessary, to let the user specify how many of which type of tuner to use. Something like '--plugin=satip --SatTuners=2 --TerrTuners=2". At the moment, even if the current method can be made to work, I don't see how to reserve a specific number of a specific type (i.e use fewer than are actually available).


    The SATIP_USE_SINGLE_MODEL_SERVERS_ONLY hack should provide exactly this. You can define manually number of frontends and their types via --server parameter, if you don't like to use auto-detection.

  • Ah. I hadn't noticed the updated README.


    My server claims


    Code
    <satip:X_SATIPCAP xmlns:satip="urn:ses-com:satip">DVBS2-2,DVBT2-2,DVBC-2</satip:X_SATIPCAP>


    However, when I start vdr with "--plugin=satip -d 4 -s 192.168.38.73|DVBS2-2,DVBT2-2|OctopusNet", I still see the same bad behavior.

    vdr: 2.5.6, NUC8i5BEH, MANJARO, OctopusNet-Max DVB-S2 Unicable 8 Slots
    samsung tv: ue46d7090

  • It is due to scribbling over the setup line, that vdr will write back on shutdown.


    Thanks! Didn't notice this bug beforehand as I though VDR just uses fire-and-forget parsing & saving for setup.conf.


    However, when I start vdr with "--plugin=satip -d 4 -s 192.168.38.73|DVBS2-2,DVBT2-2|OctopusNet", I still see the same bad behavior.


    Could you verify that you'll end up using 2 servers?


    Code
    $ vdr  -P 'satip -d 4 -s 192.168.0.9|DVBC-4,DVBT2-4|OctopusNet'
    $ grep Adding /var/log/vdr.log
    Jan 15 00:23:02 xxx vdr: [16911] SATIP: Adding server '192.168.0.9|DVBC-4|OctopusNet #0'
    Jan 15 00:23:02 xxx vdr: [16911] SATIP: Adding server '192.168.0.9|DVBT2-4|OctopusNet #1'

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!