VDR Plugin 'streamdev' Revision History
---------------------------------------

- added IGMP based multicast streaming
- ignore trailing blank lines in HTTP requests
- fixed parsing Min/MaxPriority from config (thanks to Joachim König-Baltes)
- updated Finnish translation (thanks to Rolf Ahrenberg)
- added Min/MaxPriority parameters. Can be used to keep client VDR from
  using streamdev e.g. when recording
- disabled PES for VDR 1.7.3+
- added Network Media Tank browser support to HTML pages (thanks to Jori
  Hamalainen)
- minor fixes of PAT repacker
- repack and send every PAT packet we receive
- fixed null pointer in server.c when cConnection::Accept() failes
- consider Pids from channels.conf when HTTP TS streaming. Section filtering
  is an optional feature for VDR devices, so we must not rely on the PMT
  alone (pointed out by wirbel@vdrportal)
- improved externremux script termination (thanks to Rolf Ahrenberg)
- use cThread::Running()/Active() instead of private members (thanks to
  Rolf Ahrenberg)
- fixed output format of some debug messages (thanks to Rolf Ahrenberg)
- added HTTP authentication
- compatibility for VDR 1.7.1 (thanks to Udo Richter)
- added vdr-1.6.0-intcamdevices.patch (thanks to Anssi Hannula)
- fixed problem when switching from one encrypted channel to an other
  (reported by Tiroler@vdrportal, initial bugfix by pixelpeter@vdrportal,
  another fix by owagner@vdrportal)
- added preprocessor directive for ancient gcc
- added Russian translation (thanks to Oleg Roitburd)
- fixed assignment of externremux.sh's default location (reported by plautze)
- added French translation (thanks to micky979)
- added Italian translation (thanks to Diego Pierotto)
- added gettext support (thanks to Rolf Ahrenberg)
- added vdr-1.6.0-ignore_missing_cam patch
- dropped obsolete respect_ca patch
- removed legacy code for < VDR 1.5.9 (thanks to Rolf Ahrenberg)

2008-04-07: Branched v0_4

- changed location of streamdevhosts.conf to VDRCONFDIR/plugins/streamdev
- changed externremux.sh's default location to VDRCONFDIR/plugins/streamdev
- added sample externremux.sh from http://www.vdr-wiki.de/
- stop providing channels after client has been disabled at runtime
- added logging of the client device's card index
- changed default suspend mode to "Always suspended"
- added "Hide Mainmenu Entry" setup option on client
- resurrected clients "Suspend Server" menu item as its mainmenu entry
- dropped unused code for remote timers/recordings on client side
- dropped unused files client/{assembler,menu,remote}.[hc]
- dropped unused files in libdvbmpeg (reported by tobi)
- dropped patches for pre VDR 1.4
- removed legacy code for pre VDR 1.4 (thanks to Rolf Ahrenberg)

2008-03-31: Version 0.3.4

- added possibility to pass parameter to externremux.sh (thanks to Rolf
  Ahrenberg)
- use HTTP host header in absolute URLs for DNAT / reverse proxy support
- rewrite of the HTTP menu part
- added M3U playlists (thanks to Petri Hinutkainen)
- enable section filtering only with compatible clients (thanks to Petri
  Hintukainen)
- fixed compiler warning
- added EIT to HTTP TS streams (thanks to Rolf Ahrenberg)
- compatibility for FreeBSD (thanks to Joerg Pulz)
- added TS PAT repacker (thanks to Rolf Ahrenberg)
- fixed Makefile's default target (suggested by Rolf Ahrenberg)
- workaround for tuning problems on 1.5.x clients (thanks to alexw)
- added VTP support for PS, PES and EXTERN (PS requested by mpanczyk)
- fixed gcc-4.3.0 warnings (thanks to Petri Hintukainen)
- fixed busy wait when client isn't accepting data fast enough (thanks to
  Olli Lammi)
- fixed client reconnect after server restart (reported by alexw)
- added lock in ~cStreamdevDevice (thanks to Petri Hintukainen)
- externremux: check for ringbuffer full condition (reported by
  vdr-freak@vdrportal)
- diffserv support for traffic shaping and WMM capable WLAN accesspoint
  (suggested by ollo@vdrportal)
- check vasprintf() return code (thanks to Rolf Ahrenberg)
- fixed memory leak in buffer overflow situations (thanks to Rolf Ahrenberg)
- added PAT, PMT and PCR to HTTP TS streams (thanks to Petri Hintukainen and
  Rolf Ahrenberg)
- detect data stream disconnections. Fixes high CPU load (thanks to Petri
  Hintukainen)
- fixed segfault with VDR 1.5 (thanks to Petri Hintukainen)
- made section filtering work (thanks to Petri Hintukainen)
- added compiler flag -Wall and fixed corresponding warnings (thanks to
  Rolf Ahrenberg)
- close pipe when externremux is gone. Fixes high CPU load problem
- close connection when client is gone. Fixes high CPU load problem
- silenced compiler warnings (thanks to Rolf Ahrenberg)
- added commandline parameter for externremux script (thanks to Rolf
  Ahrenberg)
- detach receivers before switching transponders
- API changes for VDR 1.5.0 (thanks to Udo Richter)
- log connections failures only every 10s (reported by greenman@vdrportal)
- replaced uint64 by uint64_t
- added Recursion patch for vdr 1.4
- added LocalChannelProvide for vdr 1.4.x
- added respect_ca patch
- speedup cPluginStreamdevServer::Active() by caching translation (thanks
  to Udo Richter)
- periodically check if streamdev-server needs to shutdown (thanks to Udo
  Richter)
- collect terminated externremux.sh processes (reported by Norad@vdrportal)
- avoid fd leaks when we fail to spawn externremux.sh
- detach all receivers before tuning to a different transponder
- Re-enabled logging for the Detach()/Attach() issue
- Added -fPIC compiler flag required on AMD64 architectures

2006-08-17: End of maintenance by Thomas Keil

- updated Finish translation (thanks to Rolf Ahrenberg)
- fixed fd leak (thanks to Artur Skawina)
- re-enabled Detach/Attach to temporarily release the device used by
  streamdev while checking if we can switch transponders (thanks to
  PanamaJack@vdrportal)
- adopted to VDR 1.4.x

2006-01-26: End of maintenance by Sascha Volkenandt

- fixed http error response
- added class forward declaration for gcc >= 4.0
- adopted to VDR >= 1.3.36
- added LocalChannelProvide for vdr 1.3.24
- fixed missing include
- added TS compatibility mode
- deleting whole block instead of fractions now
- fixed wrong remux usage
- added finish translations (thanks to Rolf Ahrenberg)
- protected cStreamer::Stop() from being called concurrently
- some compilers complained about missing declarations, added <ctype.h>
- removed assembler and thus saving one ringbuffer
- fixed destruction order on channel switch (fixes one crash that happens
  occasionally when switching)
- removed client menu code temporarily
- streamer now gets stopped when connection terminates unexpectedly
- fixed recursive delete in streamer
- fixed pure virtual crash in server
- audio track selection for http

2004-??-??: Version 0.3.3

- dropped support for non-ts streaming in vdr-to-vdr clients
- implemented packet buffer that seems to improve distortions
- greatly re-worked device selection on server and client
  (vdr-to-vdr clients should behave exactly like clients with one card,
  can't test conditional access, though)
- now printing an error and exiting if streamdevhosts.conf is not existing
- increased client stream priority to 1
- implemented remote schedule to program remote timers directly from schedule
- the servers are turned on by default now
- new setup parameters "Bind to IP" for both servers for binding to a specific
  interface
- re-implemented section streaming (turned off by default, see setup menu)
- implemented a possibility to prevent a shutdown when clients are connected
  (patch VDR with patches/vdr-pluginactivity.diff if you want this feature)
- implemented channel listing through channels.htm(l) URI

????-??-??: Version 0.3.2

... has myteriously disappeared :-)

2004-02-16: Version 0.3.1 (unstable)

- Added finnish language texts (thanks to Rolf Ahrenberg)
- Increased all ringbuffer sizes to 3 MB
- Autodetecting VDR 1.2.x, 1.2.x with AutoPID and 1.3.x on compilation
- Server is only restarted if necessary after confirming setup
- Implemented PID-based streaming (only needed PIDs are transferred instead of
  all PIDs of the requested channel) (configurable)
- Implemented an editor for remote timers
- Implemented manual EPG synchronization from client
- Implemented Server Suspend remotely from client (configurable)
- Implemented an IP-Editor for the setup menu
- Separated Client and Server into two PlugIns
- Increased initial number of clients to five
- Implemented host-based authorization (syntax is equal to svdrphosts.conf)
- Removed two irritating messages that appeared sometimes while exiting VDR
- Implemented "Choose, Always, Never" for Suspend Mode, so it can be configured
  to behave like 0.2.0 (Always), 0.3.0 (Choose) or completely different (Never)
- Added missing translation entries
- Added PlugIn description to translation table
- Fully upgraded to VDR 1.3.X regarding threading (but still works with 1.2.6)
- Reworked manual (almost everything)

2003-10-10: Version 0.3.0 (unstable)

- Implemented "Suspend Live TV" in the VDR server (configurable)
- Reimplemented choice of device for live streaming (better for switching on
  client, and server doesn't loose live-tv)
- Added missing translation entries
- Increased client's streaming buffer size from 1 to 3 MB
- Updated installation instructions (including a patch to VDR that is 
  recommended currently)
- Updated manual

2003-10-04: Version 0.2.0 

- Removed those silly warnings in the toolbox-headers
- Implemented intelligent buffer overflow logging (doesn't flood syslog)
- Implemented EPG synchronization in the VDR client (configurable)
- Station name is transmitted in radio streaming now (Shoutcast-format).

2003-09-24: Version 0.1.1beta1

- Restructured remuxer code
- Added an ES-remuxer for radio channels (currently only manually)

2003-09-20: Version 0.1.0

- Fixed thread-abortion timeout in server thread

2003-08-31: Version 0.1.0beta4

- Added italian language texts (thanks to Angelus (DOm))
- Added a missing i18n translation (thanks to DOm)
- Added an #ifdef so the setup menu is displayed correctly with ElchiAIO 
	(thanks to DOm for reporting this one)
- It's possible to select the HTTP streamtype remotely, specified in the
  URL in addition to the old behaviour (thanks to Michal Novotny)
- Fixed creation ob remuxer objects in the server
- Fixed handling of timeout in cTBSelect

2003-06-08: Version 0.1.0beta3

- Fixed setup menu - now the cursor starts at the first visible entry
- Added PS streaming for HTTP (should work with most players now)
- Debugging symbols are only compiled with DEBUG=1 set

2003-06-06: Version 0.1.0beta2

- Added an #ifdef so this PlugIn will compile cleanly with the next 
  AUTOPID-patches
- Added categories to the menu
- Fixed segfault when closing the menu with OK
- Added an AnalogTV section to the README
- Added some missing i18n entries
- Corrected client reinitialization code (when changing client settings)
- Added PS streaming for HTTP (should work with most players now)
- Added -D_GNU_SOURCE to the Makefile (.......)

2003-06-03: Version 0.1.0beta1

- Replaced the toolbox with a current version
- Rewrote the server core from scratch
- Rewrote the client core from scratch
- Reduced the size of blocks processed in a transceiver turn to 10 TS packets
- Added TS transmission for HTTP (configurable via setup)
- Most client settings can be done on-the-fly now
- MIME type for radio channels now "audio/mpeg" instead of "video/mpeg"
  (still doesn't work really)

2003-05-08: Version 0.0.3beta1

- Server stops correctly on VDR exit
- Fixed a race condition when several threads access the client device
- Made server code more modular
- Structured the directories
- Fixed a bug in informational log-message
- Added Apid2, Dpid1 and Ppid in TS mode (silly me;) )

2003-05-03: Version 0.0.2

- Device is not deactivated anymore, since VDR does that itself
- Server is correctly deactivated, so it can be faultlessly reactivated
- Did some major code cleanup
- Added new command to the PROTOCOL (to negotiate stream types)
- Added the possibility to stream TS between two VDR's (which adds the 
  possibility of having AC3, Teletext etc. on the client) - this is 
  autonegotiated
- Streamtype can be changed in the setup menu, if TS works too unreliable
- Fixed a bug in multi-threaded device operation
- Sharing an epg.data with a server will be possible even if there is no 
  DVB-Device present
- Added a basic HTTP daemon to the server code

2003-03-17: Version 0.0.1a

- Corrected some bugs in the README and on the homepage *g*

2003-03-17: Version 0.0.1

- Initial revision.
