mirror of
https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git
synced 2023-10-10 19:16:51 +02:00
19e8cf2a28
if the thread has been cancelled. Delayed the streamdev main thread for up to 3 seconds. As the command timeou of VTP connections is 1.5 seconds, one hanging connection could have caused VTP connections to die.
432 lines
20 KiB
Plaintext
432 lines
20 KiB
Plaintext
VDR Plugin 'streamdev' Revision History
|
||
---------------------------------------
|
||
|
||
- writer must not spend too much time waiting in select() without checking
|
||
if the thread has been cancelled
|
||
- added Spanish translation (thanks to Javier Bradineras)
|
||
- live TV must be switched in VDR main thread
|
||
- dropped compatibility with VDR < 1.5.16
|
||
- return value of streamdev-clients cDevice::NumProvidedSystems() now
|
||
configurable in plugin setup
|
||
|
||
2011-02-11: Version 0.5.1
|
||
|
||
- updated copy of GetClippedNumProvidedSystems to the version used since
|
||
VDR 1.7.15 (reported by carel@vdrportal)
|
||
- fixed the code deciding if a device is in use for live TV or not. It did
|
||
not work as expected for FF cards (reported by wtor@vdrportal)
|
||
- increased client side timeout for TUNE command
|
||
- more dsyslog messages to help troubleshouting channel switch issues
|
||
- improved the channel switch code trying to move live TV to different card
|
||
- make sure that a client doesn't interrupt replaying on server's FF card
|
||
(reported by wtor@vdrportal)
|
||
- switching away live TV failed even when "always suspended" (reported by
|
||
Michal Novotny)
|
||
- fixed regression: no receiver created for ES/PS/PES (reported by Gavin
|
||
Hamill)
|
||
- VTP no longer uses a static priority value for its server-side receivers.
|
||
The server stores channel and priority requested with the PROV command and
|
||
re-uses these values in a subsequent TUNE for the same channel. The new
|
||
PRIO command is used to update the receiver's priority if necessary.
|
||
- added parameter HEIGHT to externremux.sh
|
||
- fixed syslog messages reporting local instead of remote IP and port
|
||
- fixed regression of the GetDevice(...) change. Filter streaming to clients
|
||
with a recent VDR version no longer worked.
|
||
- log an error if externremux.sh is missing or not executable
|
||
- since VDR 1.5.0 cDevice::GetDevice(...) is no longer a query only method.
|
||
It detaches all receivers of the device it returns. So it is no longer
|
||
suitable for testing the availability of a device. Added a copy of VDR's
|
||
cDevice::GetDevice(...) without the detach receivers part as a workaround
|
||
until a better solution is available
|
||
- added dsyslog messages to help troubleshouting channel switch issues
|
||
- VTP command SUSP didn't attach the player to the primary device
|
||
- fixed incompatibilities with older make versions
|
||
- replacing a connections receiver is now an atomic operation. Solves
|
||
stuttering audio/video due to lost TS packets when adding/removing PIDs
|
||
- disabled attribute warn_unused_result in libdvbmpeg
|
||
- slightly increased thread priorities of cStreamdevWriter/Streamer
|
||
(suggested by Rolf Ahrenberg)
|
||
- fixed missing support for invisible channel groups (groups without name)
|
||
in HTTP menu (reported by Timothy D. Lenz)
|
||
- don't quote actual program call in externremux.sh, so you can run the
|
||
program through e.g. nice or taskset just by extending the variable
|
||
which holds the program name
|
||
- in externremux.sh each mencoder audio and video codec has a dedicated
|
||
variable for a default option string now. Still you can override each
|
||
default option with an URL parameter
|
||
- externremux.sh mencoder now uses scale parameter with negative height
|
||
instead of -xy for scaling (suggested by vel_tins@vdrportal)
|
||
- added FPS (frames per second) parameter to externremux.sh (suggested by
|
||
vel_tins@vdrportal)
|
||
- don't use std::map.at(). It's not available in older libstdc++ version
|
||
(reported by Matthias Prill)
|
||
- fixed extremux x264 using value of ABR for VBR (thanks to vel_tins@vdrportal)
|
||
|
||
2010-07-20: Version 0.5.0b
|
||
|
||
- fixed wrong URL path in m3u playlists (reported by Norman Thiel)
|
||
|
||
2010-07-20: Version 0.5.0a
|
||
|
||
- set externremux.sh executable in distribution archive
|
||
- externremux quality value should be wlan54, not wlan45 (reported by
|
||
wolfi.m@vdrportal)
|
||
|
||
2010-07-19: Version 0.5.0
|
||
|
||
- using SIGINT in externremux to kill mencoder works better than SIGTERM;
|
||
especially x264 still needs a SIGKILL sometimes
|
||
- added --remove-destination to cp commands installing plugins
|
||
- fixed "plugin doesn't honor APIVERSION" (reported by carel@vdrportal)
|
||
- updated Italian translation (thanks to Diego Pierotto)
|
||
- config option "client may suspend" hidden if not applicable
|
||
- updated and enhanced README
|
||
- separated language resources of client and server
|
||
- restructured build process
|
||
- added support for HTTP method HEAD
|
||
- rewrite of externremux.sh, including support for various URL parameters,
|
||
logging and improved shutdown
|
||
- start externremux script in a separate process group
|
||
- changed HTTP URL path for externremux from EXTERN to EXT (suggested by
|
||
Rolf Ahrenberg)
|
||
- HTTP headers now have to be emitted by externremux script
|
||
- pass channel related information and URL parameters to externremux script
|
||
through environment
|
||
- implement CGI like interface for externremux script
|
||
- dropped "Synchronize EPG" feature. Please use epgsync-plugin instead
|
||
(available from http://vdr.schmirler.de)
|
||
- proper tsplay-0.2 patch detection. tsplay-0.1 is no longer recognized
|
||
(thanks to Udo Richter)
|
||
- added compatibility with VDR 1.6 tsplay-0.1 patch
|
||
- added support for EnhancedAC3 (thanks to Eric Valette)
|
||
- fixed a memory leak in cStreamdevPatFilter::GetPid (thanks to lhanisch)
|
||
- length -1 is the correct value for streams in M3U playlists
|
||
- switching between two encrypted channels on the same transponder didn't
|
||
always work (thanks to sk8ter@vdrportal)
|
||
- added DELT FORCE option to delete running timers (thanks to Alwin Esch)
|
||
- added VDR 1.7.11 parental rating support for VTP LSTE command (thanks to
|
||
Alwin Esch)
|
||
- added Lithuanian translation (thanks to Valdemaras Pipiras)
|
||
- fixed missing virtual destructor for cTSRemux
|
||
- added defines for large file support to Makefile as required by VDR 1.7.4+
|
||
(reported by wirbel@vdrportal)
|
||
- added Slovak translation (thanks to Milan Hrala)
|
||
- fixed regression from fix for switching between encrypted channels. It was
|
||
no longer possible to receive multiple (FTA) streams from the same
|
||
transponder
|
||
- silenced warnings concerning asprintf (requested by Rolf Ahrenberg)
|
||
- don't update recordings list on CmdPLAY (reported by BBlack)
|
||
- cleaned up common.h / common.c
|
||
- dropped cStreamdevMenuSetupPage
|
||
- report charset in HTTP replies (suggested by Rolf Ahrenberg)
|
||
- use SO_KEEPALIVE option on all sockets do detect dead sockets (thanks to
|
||
owagner)
|
||
- enable PatFilter for externremux, so VLC can be used as remuxer or client
|
||
- fixed insecure format strings in LSTX handlers (thanks to Anssi Hannula)
|
||
- updated Finish translation (thanks to Rolf Ahrenberg)
|
||
- removed redefinitions in includes - caused problems in older compilers
|
||
- fixed ts2ps.h defines
|
||
- fixed missing virtual for cTS2PESRemux destructor
|
||
- silenced format mismatch warning on 64bit OS
|
||
- added XBMC support by extending VTP capabilities (thanks to Alwin Esch)
|
||
- now there's a common baseclass for all remuxers, make use of it
|
||
- added cDevice::NumProvidedSystems() which was introduced in VDR 1.7.0
|
||
- added namespace to remuxers
|
||
- increased WRITERBUFSIZE - buffer was too small for high bandwidth content
|
||
- removed cStreamdevStreamer::m_Running
|
||
- eliminated potential busy waits in remuxers
|
||
- updated cTSRemux static helpers to code of their VDR 1.6.0 counterparts
|
||
- re-enabled PES vor VDR 1.7.3+. Streamdev now uses a copy of VDR 1.6.0's
|
||
cRemux for TS to PES remuxing.
|
||
- make sure that only complete TS packets are written to ringbuffers
|
||
- use signaling instead of sleeps when writing to ringbuffers
|
||
- optimized cStreamdevPatFilter PAT packet initialization
|
||
- fixed cStreamdevPatFilter not processing PATs with length > TS_SIZE - 5
|
||
- use a small ringbuffer for cStreamdevPatFilter instead of writing to
|
||
cStreamdevStreamers SendBuffer as two threads mustn't write to the same
|
||
ringbuffer
|
||
- added missing call to StopSectionHandler which could cause crashes when
|
||
shutting down VDR
|
||
- 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.
|