Hallo allerseits,
ich habe ein kleines Plugin zusammengebastelt, dass ich Euch nicht länger vorenthalten möchte.
Vielleicht kann der ein oder andere ja etwas damit anfangen oder hat evtl. noch weitere Ideen zur Verbesserung.
Bis jetzt existiert hier nur ein rudimentärer Dreambox Client für das Plugin.
Kurze Beschreibung auf deutsch:
Dieses Plugin soll eine Art "Full-Featured DVB device emulation über das Netzwerk" sein. (Mir ist leider keine bessere Bezeichnung eingefallen. ) VDR sieht also ein weiteres Device, dass MPEG2 Playback und ein OSD unterstützt. Nur werden diese Daten über das Netzwerk an einen Client gesendet.
Das Plugin verfolgt also einen ganz anderen Ansatz als das streamdev-Plugin . Anstatt auf einem potentiellen Client einen "ausgewachsenen" Client zu schreiben, soll ein "einfacher" Client herhalten, der nur den Empfang des TS und die Anzeige des bereits fertigen OSD übernehmen soll.
Ich kann das Plugin mit meiner Dreambox 5620S momentan ohne größere Probleme benutzen. Ich habe dazu einen kleinen nativen Client (kein Enigma Plugin!) für die DM zusammengebastelt.
Um der Frage vorwegzugreifen: Warum sollte man eine Dreambox für sowas benutzen???Bekloppt!
1. ich habe an diesem Ort keinen SAT-Anschluss, aber Netzwerk.
2. ich nehme lieber eine Dreambox5620 oder 500 als eine MediaMVP, weil dort die Software-Unterstützung besser ist und alle Anschlüsse schon vorhanden sind(SPDIF, etc....)
Also viel Spass damit!
Nicht vergessen: Es handelt sich dabei, um einen ersten Versuch!!!
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.
So the first thing that has to be written for the desired client is the code which receives the OSD bitmap
and transfers it into the streaming client's framebuffer.
The second thing is the TS receiver module. Assuming that the streaming client provides MPEG2 hardware decoding
you must find a way of sending the TS to hardware demuxer or demultiplex it in software if the client's CPU is powerful
enough.
A multi client environment can look as follows:
--------------------------------------------------------------------
---powerful Server with one main VDR process and streamdev-server---
--------------------------------------------------------------------
- -
- -
---------------------------------------------------- ----------------------------
-2nd VDR process with streamdev-client and ffnetdev- - 3rd VDR process and so on-
---------------------------------------------------- ----------------------------
Each streaming client gets its own (perhaps customized) VDR.
--------
Details:
--------
The plugin creates two listening TCP sockets:
-one for remote control and OSD
-one for TS streaming to the client
OSD (and text2skin)
-------------------
The OSD is transfered using a rfb style protocol (aka VNC). See rfbproto.h for details.
You can also use the text2skin plugin to get a nice skinned OSD.
BUT BE AWARE that the current code only supports ONE BIG AREA (method CanHandleAreas).
This limitation is due to the fact that my current and only client (a Dreambox 5620S) only
supports an 8-bit palette based framebuffer.
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 8 bits.
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.
Existing clients
----------------
-Dreambox 5620S (simple native client, it is NOT an enigma plugin!)
--------------
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