softdevice2net
--------------

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

It is based on the softdevice plugin originally written by
Roland Praml <praml.roland@t-online.de> with modifications from
the following people:

- Holger Waechtler <holger @ convergence.de> for some DFB-examples and useful tips
- Stefan Lucke <stefan @ lucke.in-berlin.de> for the Xv-output
- Vadim Catana <vcatana @ registru.md> for the Vidix-output

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

This plugin is a MPEG2 decoder which mixes the decoded MPEG2 stream
with the OSD, reencodes the decoded frames using ffmpeg/MPEG2 and 
broadcasts the resulting stream over the network (preferably raw TS over UDP).

Requirements:
-------------

- libavcodec (latest ffmpeg from CVS)
- libavformat /latest ffmpeg from CVS)
- A strong CPU (I have tested it on an Athlon XP 1800, 50% load)

- client capable of replaying the stream (raw TS over UDP)
  (I have used the latest vlc(0.4.3) from CVS on Windows XP).

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

This plugin is written for VDR >=1.3.7

As usual, unpack the plugin and make a link in the
./VDR/PLUGINS/src directory

modify the path to libavcodec and libavformat in the Makefile.
Adjust other options (MMX/ MMX2)

start vdr with -P'softdevice udp://224.0.0.1:1234/test.ts' to use multicast.
Make sure you have added a route to 224.0.0.0 before.

You can also try udp://192.168.10.10:1234/test.ts to send the stream to only one IP, 
preferably your client. The filename extension(.ts) is important, because ffmpeg deduces the 
output format from that extension. So it should be possible to try other URLs supported by ffmpeg, 
but keep in mind that this is completely untested. 

Problems/todo:
--------------
What does NOT work:
- when switching the channels a lot of times, too many empty frames are streamed to the client,
  resulting in increased latency time.
- Audio is not implemented
- No alpha blending currently because of Bpp 16
- Recordings are completely untested

What DOES work:
- you get a picture (fixed to 352x288, 16 Bit, only I frames)
- you can zap through the program and use OSD (eg. through the remote of vdradmin)

Please note that this is a very alpha version. (proof of concept)

Internals:
The decoded frames are reencoded using ffmpeg. If there are no frames to be decoded (eg.
you switched the channel) empty frames are encoded to keep up sending the TS over UDP. 




