[ANNOUNCE] CEC Plugin 0.1.0

  • pugixml would work out fine for me as well. What one might consider is if the source code for it should be installed along with the cecremote plugin or not. This would solve the problem of distributions where pugixml is not available. The overhead would be minimal and the license of pugixml do allow such distribution since it has a generous MIT license.


    What I did on rasbian, who lack pugixml packages, was to create a pugixml folder in the plugin source directory and instead of linking with the pugixml library I instead link directly with the source code.


    - Magnus

  • With changeset 19 vdr hangs at startup. This is due to the change to announce oneself as both a CEC_DEVICE_TYPE_RECORDING_DEVICE and a CEC_DEVICE_TYPE_TUNER e.g. these two lines of codes in cecremote.cc:

    Code
    1. mCECConfig.deviceTypes.Add(CEC_DEVICE_TYPE_RECORDING_DEVICE);
    2. mCECConfig.deviceTypes.Add(CEC_DEVICE_TYPE_TUNER);


    If I remove the second line the plugin works as expected for me.


    When we worked on the cec support on vompclient we also played around with announcing oneself as both of these types at the same time. I can't recall that one got any hangs and according to the CEC spec it is definitely valid to announce oneself as supporting both types. At the end Marten, one of the vompclient maintainers, decided to stick with only announcing vompclient as a CEC_DEVICE_TYPE_RECORDING_DEVICE.


    Still I think it would be of interest to support both types and change the "active" type depending on if one is watching recordings or watching live broadcasts. For me this would be nice since one of my TV's remote have the key CH+ and Skip right on the same button (and the same of course for CH- and Skip left). It would thus be convenient to have the CH+/CH- functionality while watching live tv and the skip functionality when watching recordings.


    -Magnus

  • With changeset 19 vdr hangs at startup. This is due to the change to announce oneself as both a CEC_DEVICE_TYPE_RECORDING_DEVICE and a CEC_DEVICE_TYPE_TUNER e.g. these two lines of codes in cecremote.cc:


    This looks like a bug in the CEC implementation of the used libCEC in raspian. What version is used there? since I have no problems with libCEC 2.2.0.

    Still I think it would be of interest to support both types and change the "active" type depending on if one is watching recordings or watching live broadcasts.


    I don't know if it is possible to get this information within the plugin. Has anybody a tip, if there are functions available which can be used to notify the plugin about a change between watching TV or recordings?

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2

  • What one might consider is if the source code for it should be installed along with the cecremote plugin or not


    I will have a look if this would be a way to go. But in this case I have to take care about updates of pugixml and probably any compiler problems may becomes part of my responsibility.

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2


  • This looks like a bug in the CEC implementation of the used libCEC in raspian. What version is used there? since I have no problems with libCEC 2.2.0.


    I can confirm this bug. I use libcec 2.2.0 und latest userland libs. Setting both device types will result in hanging startup.

    SAT Hardware: Gibertini SE75 | DuraSat Dur-Line UK-24 | DD OctopusNET V2 Rack (Firmware 1.0.81) mit MaxS8
    Server: Asus M5A78L-M/USB3 | Sempron 145@2Cores | 8GB ECC RAM | PicoPSU | Debian Stretch 64Bit | VDR 2.4.0 mit SAT>IP, epgsearch, epg2vdr, vdr-epg-daemon
    Clients: RaspberryPI 2/3 | Yocto Poky Linux (Openembedded) 2.5+git | Linux Kernel 4.14+git | VDR 2.4.0 mit SAT>IP, RpiHDDevice, SkinDesigner, Remote, Graphlcd-ax206dpf, Extrecmenu, Femon, Mlist


    R.I.P: Gigaset M740 mit VDR von open7x0.org

  • I have done some investigations on why the Stop key does not work as intended on my setup. Turns out the Stop key is interpreted as a combo key. If no other key is pressed within a timeout the key press will be registered by libcec.


    Can you please check with V0.2.0 if this problem is solved.

    The timeout is configurable by setting iComboKeyTimeoutMs field of CEC:libcec_configuration. By default the timeout is 1000ms.


    This timeout can be configured in V0.2.0 with the new element <combokeytimeoutms> in <global>.

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2


  • I can confirm this bug. I use libcec 2.2.0 und latest userland libs. Setting both device types will result in hanging startup.

    I have as well been using libcec 2.2.0 and has also tested with the latest git commit b3d938a5 of libcec.
    If i register the tuner prior to prior to the recording device it works.


    Unless there is a need for it I would suggest not announcing the plugins as both a recording device and a tuner device. At the end as I mentioned before the vompclient implementation settled to only register as a recording device. More info about the discussions that lead to that decision can be read here at the loggytronic forum.


    - Magnus