[ANNOUNCE] ffnetdev plugin 0.0.2

  • Hallo allerseits,


    es gibt eine neue Version des ffnetdev Plugins. Neu ist im Wesentlichen, dass das OSD nun mit jedem beliebigen VNC client darstellbar sein sollte.
    Diese Funktion ist unabhängig vom Rest des Plugins. Ist deshalb vielleicht für den ein oder anderen auch interessant.


    Gruss,
    Nano


    --schnipp--


    This is a "plugin" for the Video Disk Recorder (VDR).


    Written by: Christian Cier-Zniewski <c.cier@gmx.de>
    some code taken from: Sascha Volkenandt's streamdev plugin <sascha@akv-soft.de>


    Project's homepage: http://nano.gmxhome.de/ffnetdev/


    See the file COPYING for license information.


    !!! WARNING !!!
    The code of this plugin is alpha quality. So expect it to have all kinds of bugs.
    If it crashes your machine, do not blame me. You have been warned!!! :)
    !!! WARNING !!!


    ------------
    Description:
    ------------


    The purpose of this plugin is to provide an "easy" way of connecting possible streaming clients
    to VDR by emulating a full featured DVB device over the network including OSD and TS streaming capabilities.


    The FFnetDev Plugin creates two listening TCP ports:
    1) a VNC server on default port 20001 that exports the OSD and accepts remote control keys from the keyboard(or whatever the VNC client uses).
    2) a TS streaming server on default port 20002 that streams the MPEG2 data instead of decoding and rendering it.
    The streaming server registers as a "normal" Full Featured DVB device in VDR. Therefore offering playback capabilites including playback of
    recordings and "transfer mode".


    Both built-in servers work independent from each other.
    So you can just use the plugin for viewing the OSD on a remote machine for example.


    --------
    Details:
    --------


    OSD (and text2skin)
    -------------------
    The OSD is transfered using the VNC protocol (aka VNC). See rfbproto.h for details.
    Currently only RAW encoding is supported.


    You can also use the text2skin plugin to get a nice skinned OSD.
    BUT BE AWARE that the code supports ONE BIG AREA only(method CanHandleAreas).
    This limitation is due to the fact that the built-in VNC server also supports palette based (a.k.a. colour map) framebuffer via VNC.
    So if you want to use the text2skin plugin you have to change the desired skin to only use ONE
    <window> tag with the greatest bounding rectangle the skin wants to draw in. bpp should be set to 8 bits.
    This is NOT going to change in future version of the ffnetdev plugin.


    TS streaming
    ------------
    The PES packets are multiplexed into a TS by the plugins own very simple PES2TS remux code.
    No PAT/PMT insertion is currently being done.
    The two TS PIDs for Audio and Video PIDs have fixed values. So changing a channel does not result in a change
    of the TS PIDs. (Video-PID: 99, Audio-PID: 100 [decimal])


    Existing clients
    ----------------
    -Dreambox 5620S (simple native client, it is NOT an enigma plugin!, supports OSD via VNC and TS-Streaming)
    -Any VNC client using RFB protocol version 3.3 or 3.5 (TightVNC, RealVNC, etc.)



    Command line options
    --------------------


    -t PORT, --tsport PORT port number for sending TS to.
    -o PORT, --osdport PORT listen on this port for OSD connect.
    -e enable remote control over OSD connection.

    Option "-e" registers a new remote control object causing VDR to start the learning procedure for this new remote control if you start
    VDR and the ffnetdev plugin for the first time. If you want to control VDR over SVDRP you can simply leave out the "-e" option.


    --------------
    Prerequisites:
    --------------
    This plugin only works for VDR versions >=1.3.7, because of changes in the OSD code.


    Installation:
    -------------


    Install ffnetdev like any other plugin. In this example I assume that you have
    changed to the folder where the VDR sourcecode is located, and that it is
    version 0.0.1 of the plugin you wish to install.


    root@linux # cd PLUGINS/src
    root@linux # wget http://nano.gmxhome.de/ffnetdev/vdr-ffnetdev-0.0.1.tgz
    root@linux # tar -xfz vdr-ffnetdev-0.0.1.tgz
    root@linux # cd ../..
    root@linux # make plugins
    root@linux # ./vdr -P ffnetdev

  • Kleiner Bugfix ab Zeile 350 in osdworker.c:


    sollte sein:

    Code
    if (msg.ke.down) 
    								m_Remote->Put(Swap32IfLE(msg.ke.key), false, false);
    							else 
    								m_Remote->Put(Swap32IfLE(msg.ke.key), false, true);


    Behebt den Fehler, dass die Tasten doppelt interpretiert werden.


    Kleiner Tipp:
    RealVNC stellt das OSD viel schneller dar als andere VNC clients, die den colourmap mode nicht unterstützen. Also mal RealVNC testen. ;)


    Noch was: :)
    Im VDR sollte das ffnetdev Device als Primary ausgewählt werden, damit das OSD nun über VNC exportiert wird. Eine Darstellung des OSD auf einer normalen FF Karte UND VNC ist (momentan) nicht möglich! Entweder oder... Mein VDR Server hat nur eine Budget-Karte eingebaut.

  • Hallo,


    Habs sofort ausprobiert (auch mit dem Patch)
    funzt mit dem Classic Skin und Sttng wunderbar.


    Wenn ich das skinelchi Plugin aktiviere verabschiedet sich der VDR
    beim aufrufen des Menüs sofort mit der Meldung:

    Code
    [ffnetdev] Constructor cNetOSD.
    [ffnetdev] total OSD memory needed: 160680 bytes.
    [ffnetdev] total OSD memory needed: 160680 bytes.


    auch im Syslog steht nicht mehr zum plötzlichen beenden des VDR's.


    Was heißt diese Meldung?


    mit dem Text2Skin Plugin probier ich's auch gleich.

  • hab ich vergessen es ist egal ob ich mit RealVNC nun connected bin oder nicht der VDR stürzt so oder so mit dem Skinelchi Plugin ab.


    EDIT: Sorry hatte das README file nicht richtig gelesen ich denk mal das es am gleichen Problem hängt, wie das man im Text2Skin Plugin auch nur Skins benutzen kann die einen <window> Tag benutzen. Oder?

  • Hi,


    erstmal DANKE für das coole Plugin. Ideal zum Entwickeln auf einem VDR ohne Hardware!
    Aber: :D
    Classic skin läuft bei mir, text2skin meldet mit deepblue immer 'Skin zu groß'.
    /EDIT: hab jetzt auch die README gelesen :D


    Die Wiedergabe einer Aufnahme hab ich bisher nicht hinbekommen:



    Das 'failed' erscheint, sobald ich eine Aufnahme wiedergeben möchte.
    ???


    Trotzdem: Weiter so!


    Tschüss,


    winni

  • maverick-me:
    Ob Du mit VNC verbunden bist oder nicht dürfte hier in der Tat egal sein.
    Der ffnetdev OSD Provider ist trotzdem aktiv.


    Wichtig:
    Das Plugin kann nur eine große OSD "AREA" handhaben.
    Stell mal im Skin Elchi Plugin die Option "SingleArea" ein.


    Dann sollte es eigentlich klappen.


    Die Meldung über "total osd memory" sagt nur, wieviel Speicher für die gewünschte(n) Area(s) zusammen benötigt wird.
    Da hier nur EINE unterstützt wird. Ist es also die Größe im Speicher dieser einen OSD Area.

  • winni:


    ich glaube, Du hast da etwas missverstanden.
    Der TS server auf Port 20002 liefert einfach nur einen Transport Stream mit darin enthaltenen MPEG2 Daten. Du kannst also _nicht_ einfach mit dem VNC client auf diesen Port connecten und dann in Deinem Client das laufende Programm sehen. (vielleicht sollte ich sowas auch mal irgendwann einbauen)

  • Moin moin...


    maverick-me


    Ich habe mir jetzt erst einmal das skinelchi-0.0.1j Plugin angesehen.
    Bei mir läuft es einigermaßen stabil unter vdr-1.3.27 und ffnetdev-0.0.2.
    ABER: ich habe nur die Logos aktiviert, keine Video-Fenster oder ähnliches.
    Zum Compilieren musste ich eine Zeile auskommentieren(wegen der fehlenden Summary.vdr).


    Single Area ist bei Verwendung des ffnetdev-Plugins IMMER von Nöten. Das gilt auch für andere OSD Plugins wie z.B. text2skin.


    Die Meldung über den benötigten Speicher ist keine Fehlermeldung oder so. Lediglich zur Info, um ein Gefühl dafür zu bekommen, wieviel Bytes im RAW Encoding Modus über das Netzwerk für eine maximale OSD Area zu übertragen sind.


    Hast Du beim SkinElchi das Video Fenster aktiviert?
    Wenn ja, ist das vermutlich das Problem. Das ffnetdev kommt mit der Udpate
    Geschwindigkeit für die Video Bitmap bestimmt einfach nicht mit.


    LarsAC:
    Nette Idee. :)
    Wenn es funktioniert mit dem WinCE Viewer, dann gib mal laut. Ich trage das dann in die Liste der funktionierenden VNC Clients ein.

  • Zitat

    Original von LarsAC
    Hat jmd das OSD mal via VNC auf einen Pocket PC gebeamt?


    Oder auf 'nen alten Laptop, der dann, an die Wand genagelt, als billiges, aber großes Display herhalten kann :D

    Gruß, Dirk
    "Es ist die Arbeit der Interpretation im Kopf, die aus den Zeichen, die Computer anzeigen, eine Information macht."

  • Hi
    ich hab grad mal versucht das graphtft mit der Option -d vdr/2 auf das DVB Device von FFnetdev umzulenken.
    Leider hat es nicht geklappt - VDR startet ständig neu.


    Die Anzeige des Graphtft auf einem VNC Fenster wär echt genial ! :)


    Ist es möglich das ffnetdev dazu zu missbrauchen ??


    Gruß


    machtnix

  • maverick-me:


    super :)


    winni:
    Genau...irgendwie sowas in der Art....alles, was mit TS umgehen kann über TCP.


    machtnix:
    habe es gerade mal kurz getestet....funzt aber nicht. Hatte die Änderungen an der Klasse cDevice mit in das NetOSD eingebaut, aber ich bekomme auch nur Abstürze ud Neustarts...... ich werde das aber erst einmal nicht weiterverfolgen, da andere Sachen gemacht werden müssen. :)

  • Zitat

    ich werde das aber erst einmal nicht weiterverfolgen, da andere Sachen gemacht werden müssen. :)


    Schade, aber ich geb mal die Hoffnung nicht auf.


    Bestimmt gibt es einige VDR'ler die anstatt eines PSone, lieber ihr altes 486 Notebook als Anzeige fürs Graphtft benutzen würden.


    ciao


    machtnix

  • Hallo,


    installiert und scheint zu laufen. Mit dem Pocket PC mag er aber nicht. Er kommt bis hier, der Client sagt "Please wait - initial screen loading". Wieviel fehlt da noch?



    Nachtrag: Der client ändert noch den Fenstertitel in VDR-OSD und scheint dann abzustürzen... :(


    Lars

Jetzt mitmachen!

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