DDsrv - Network DEVice proxy for DVBDream
ALPHA RELEASE - YES IT HAS BUGS -- ALPHA RELEASE - YES IT HAS BUGS
Although intended to proxy ANY device for DVBDream, this alpha release will doubtless fall short of expectations. I'm releasing this alpha simply to gauge reaction and see if any other devices actually work. So far I have only tested with the 'BDA Native' device (BDA.DEV), as attempting to test any other device causes DVBDream to either do nothing or crash on my system. Don't expect a rapid release schedule, but I will try to fix simple (yet crippling) bugs quickly. (The source code needs serious cleanup before adding anything new and significant.)
I recommend testing both client and server on the DVB host (the machine with DVB hardware) before attempting to deploy.
Be aware that there are two (2) INI files which are placed in two (2) different locations - one for the host applet, and one for the client DEVice. Yes, the data can be consolidated into one file, but bear in mind that the client and host will each search for their respective INI's in different folders.
Installation:
HOST - Place DDsrv.EXE and its INI into DVBDream's main program folder. (same folder as DVBDream.exe)
CLIENT - Place DDsrv.DEV and its INI into DVBDream's DEVICES folder. (same folder as all the other .DEV files)
Configuration:
HOST - Run DDsrv.EXE, click the 'Select' button, choose your DEVice.
CLIENT - Use Notepad to edit the hosts IP address or name in DDsrv.INI (in the DEVICES folder).
Execution:
1) Make sure DDsrv.EXE is running on the DVB host machine (and your device is selected).
2) Run DVBDream on the client machine. (Hit CTRL+D and select the DDsrv device if not selected already, click OK, then restart DVBDream.)
3) Enjoy TV! ... or document a crash

Ports Used: 30000 (TCP, client->host), 30001 (UDP, host->client)
Notes & Known Bugs:
I have had little luck attempting to 'Start' the DDsrv device in DVBDream's device selection window. Instead select the device, click OK, and restart DVBDream.
The host (server) applet MUST be running before starting DVBDream on the client!!
Server and client may fall out-of-sync to the point where BOTH the server (host) applet AND the client DVBDream may need to be restarted. (Quit client AND server. Remember, re-start the server applet first.)
I've tried to add some 'common sense' to the host-side applet in the event of lost messages and client crashes, but its barely adequate.
I've not yet had success using DVBDream's LAN streaming together with DDsrv.
If you use a hostname instead of an IP address be aware that gethostbyname() will probably cause the client application to immediately crash if NetBIOS lookup fails and DNS is not available. Try using the IP address instead.
Busy networks may cause issues with UDP packet reception. I do not attempt to re-sequence out-of-order packets at the moment. Maybe I'll add a TCP option in the future.
I assume 64kb UDP packets are OK (Some stacks are limited to 16KB.)
I assume all DVB packets are 188 bytes. (Let me know if you find an exception.)
Client may often experience an exception (crash) upon exiting from DVBDream. I'm still looking for the cause.
Not thread-safe (yet)
- Only supports one (1) device per DVB host (untested - try more if you like)
- Only supports one (1) client per DVB host (client2 will steal control)
- No PIPs (DVBDream freezes/crashes)
CI interface (BDA only) is hopelessly broken at the moment.
Diseqc interface is implemented but untested (let me know).
High CPU load (100%) for more than 1 or 2 seconds on the client may cause DVBDream to crash.
Slowly resizing DVBDream's video window may eventually cause DVBDream to crash.
DDsrv's 'Configure' button may not work properly (I have only seen it function once.)
HD untested, streaming data rates unknown.
I don't keep .LOG files. If you need something to post regarding a perceived error just copy some meaningful text from the host applet's dialog or use DBWIN32 (bobmoore.mvps.org/Files/Utils/Utilshome.htm) if you think you need to see client messages.