diff -Nru vdr-plugin-streamdev-0.6.1-580~84c6f6b/client/filter.c vdr-plugin-streamdev-0.6.1-580~d66c635/client/filter.c --- vdr-plugin-streamdev-0.6.1-580~84c6f6b/client/filter.c 2015-03-13 16:04:10.000000000 +0000 +++ vdr-plugin-streamdev-0.6.1-580~d66c635/client/filter.c 2015-11-09 23:01:26.000000000 +0000 @@ -219,9 +219,8 @@ cStreamdevFilter *f = new cStreamdevFilter(Pid, Tid, Mask); int fh = f->ReadPipe(); - Lock(); + LOCK_THREAD; Add(f); - Unlock(); return fh; } diff -Nru vdr-plugin-streamdev-0.6.1-580~84c6f6b/debian/changelog vdr-plugin-streamdev-0.6.1-580~d66c635/debian/changelog --- vdr-plugin-streamdev-0.6.1-580~84c6f6b/debian/changelog 2015-09-30 16:54:20.000000000 +0000 +++ vdr-plugin-streamdev-0.6.1-580~d66c635/debian/changelog 2015-11-09 23:01:33.000000000 +0000 @@ -1,1814 +1,11 @@ -vdr-plugin-streamdev (0.6.1-580~84c6f6b-wily) wily; urgency=medium +vdr-plugin-streamdev (0.6.1-580~d66c635-wily) wily; urgency=medium - * [84c6f6b6f363549e88efd01d12df35ae6e336578] - doubled size of client's filter buffer (fixes #2045) + * [d66c635a80b312e2e7277a8fe10f500b05317acd] + client compatibility with VDR 2.3.1 (refs #2243) - * [3e06c59196c78fa9c807744621fc173a02890da3] - make sure TimedWrite(...) doesn't return failure after a slow but successful - write operation (refs #2045) - - - * [b33d2631df753bf4918f7967404620d5e605f967] - Fixed problems related to VTP filter streaming like ringbuffer overflows, - stuttering or aborting video stream (refs #2045) - - Toerless Eckert wrote: - - This patch tries to resolve problems in streamdev-client that - can occur when enabling "StreamFilters". Enabling this option - is necessary to receive certain programs with dynamic PIDs such as - some german "regional" broadcast (eg: NDR). - - Problem: - - Without this fix, the following behavior was observed on a Raspberry - PI running streamdev-0.6.1-git with VDR-2.6.1: - - - Buffer overflows of filter data - - Stop/go video on channels - - Total stopping of video - - More logs in: - - http://www.vdr-portal.de/board16-video-disk-recorder/board55-vdr-plugins/125237- - streamdev-client-filter-daten-streamen-ndr-raspberry-haengt/ - - Analysis: - - VDR expect section data from filters separately from the - main program stream. Historically, it received each filter data - via a separate file descriptor from the DVB card. In the streamdev-client - module, a socketpair is used to feed filter data to the main VDR code. - During certain operations in VDR, such as startup or channel change - (depending also on the speed of initialization of the video output driver), - VDR does not consume the filter data as fast as it is provided by - streamdev-client, resulting in overflow of the default socket buffers - used by streamdev-client. - - To add to the problem of overflowing the socketpair buffers, the - streamdev-client code sends several times a second short packets into - the socketpair to determine if the receiving side (VDR) has closed - the socketpair (IsClosed(), CarbageCollect()). This further clogs - up the socketpair() buffer. - - The raspberry PI socketpair buffering behavior seems to be the same - as that of other 3.x linux systems, the socket buffer size is by - default 163840, and it can be increased via sysctl net.core.wmem_max. - During startup, it can take up to 10 seconds before VDR will consume - filter data, so the socketpair buffer can fill up with 10 seconds worth - of data. - - Solution - - 1. IsClosed()/CarbageCollect() where removed from client/filter.c - and replaced by explicitly tracking when VDR closes a filter socket. - This alone seems to already resolve the problem of hanging or stop&go - video and seems to be sufficient to receive dynamic-PID channels reliably. - - 2. filter.c was enhanced to request a larger socket buffer size - if config option FilterSockBufSize is set. - - 3. If supported (if streamdev-client runs on linux), the socketpair - queue is "flushed" to reduce the amount of "random" packet drop messages - and to rather drop sequential messages. - - - * [657c8bc49c7ed331e93041064452d8f0b01206e8] - Added Polish translation (closes #2038) - - - * [5f5fb7953ed267c0b7b0694f7c695904ae8d0ff3] - Converted suspend.dat into proper PES format (closes #2034) - - - * [7b17f7725cd3bd97dd3921d96575c50a86e3fac2] - Implemented GetCurrentlyTunedTransponder() on client (closes #2010) - - - * [1ee2049c4dbc85b0af5afafae80acaab6abefb73] - Added service call returning the number of clients (closes #1967) - - - * [99b223c55f0ec98bdc7fda0e6d83ca7f28c36cd9] - Added SVDRP commands to list and disconnect clients (closes #1860) - - - * [7df7185e1a719ee29e8a8305f2c91393a6cfb542] - fixed recplayer issues with large TS files (>4GB) - - - * [dd556ee7fdaea2ade54e9b6c383f44fa88a483f8] - Don't abort externremux when internal read buffer is empty - - - * [58f0348578da0707ae83deb433d6e7c5f01577c1] - Show old VDR PES recordings in HTTP menu only if PES mode is selected - - - * [e83c9d92aa1c4a83e2fb9d2474e09dfd78be33ef] - Implemented remuxing of recordings (closes #1892) - - - * [520adaf3da652f8b29de9882ac518470a5592842] - Implemented remuxing when replaying recordings - - - * [71c26e7455ea1180800dfdaead281fe4d7850abb] - Merged duplicate - - - * [e8629b5ec6e34abbb8b6dc3e487d65d1c2b1d547] - Make ChannelChange retune only if CA IDs changed (closes #1767) - - - * [2d919997a8d4500076ff378941a32849895590a8] - Moved remux from livestreamer to streamer - - - * [703dffa0cbc324c30210b7a65e1d7f86eab4d463] - Updated HISTORY - - - * [bdee8c1923edc4fb04feffbdc0b548706b9e8a0a] - Implemented VDR 2.1.4 cStatus::ChannelChange(...) - - - * [83262870d50da36039351c597b210ffe82198c17] - Call detach only if receiver is attached - - - * [888cf0a2f81d3c3180fc4ed2f63dc992aac42f39] - Try changing to other device when receiver got detached - - - * [1dc142342943b9ee90cebca96251f89707b36507] - In TSPIDS mode, create and attach receiver with empty pid list to occupy device - - - * [5a173b0b212f21a7bc5f55487aef6da20511ee26] - No need for Detach/Attach in SwitchDevice as it is only called when detached. - - - * [3e9e7f7de609520ddba024c1516b6c969ba894fb] - Setting streamer to NULL if TUNE fails should not be necessary - - - * [62fa951c6183a1e20b3a71e1953339cc68636e8e] - Fixed initialization of m_StreamType - - - * [bfbf19deccb28caf83aaa722d53d6ae6fe217f1d] - Dropped unused function and parameter. - - - * [e5550175658b3f4617d460e9fd04b3d70de366e6] - Revised class responsibilities: Moved live TV related functions to livestreamer - - - * [7be0c81a81f2a9e9be56f1cac83a0ff3e3d1179a] - Moved streamer from each individual connection class to cServerConnection - - - * [2cdf160648b9666bb870e5b3157619920476d76d] - Configurable buffer for live TV - - - * [54440cb08027f88c2913bb6b417de89423c5531c] - Typo - - - * [40704cdcbc012e15e9e814d8fe64303f13988f56] - Release 0.6.1 - - - * [5fcd6eca6904d7bbbf800096733c45baf55e9b28] - Updated Slovak translation (closes #1626) - - - * [a4a774c6ce23211a824c67ab553dc2d9065d9197] - Updated Finnish translation (thanks to Rolf Ahrenberg) - - - * [c18f7d47e72f0223f1ed3e94aaf94c553ff9846c] - Disabled PS remuxer which is said to produce anything but PS - - - * [1439b016b3e85d3d1ffdbd243bc7902c39e6c851] - The patches intcamdevices and ignore_missing_cam are no longer required - on VDR >= 1.7.30. The localchannelprovide patch became obsolete with VDR - 1.7.21. - - - * [f194ca2074396beafd0620182ab42b582628c7ca] - Added option to suspend live TV when the server starts (closes #1296) - - - * [1d4a7e06b4e5cc5a1f115d9d361c2c7b60699ff9] - Set device occupied when streamdev switches away LiveTV on the server, to - reduce the risk that the VDR main loop immediately switches back, resulting - in a black screen on the client (reported by hummel99) - - - * [458a21a62ad445ce79a55a8bb03b66c2ba280747] - Fixed channel switch issues with priority > 0 - - - * [69b654d5393189c9c23dcc1241d8ab0588bae355] - Removed noisy debug messages - - - * [5e5070edc0a40f4a4fe5be784ae23d00fca2f217] - Fixed HTTP menu destruction - - - * [dfc8339c9e636112acbf52631dddd4b0dbf46087] - API change of VDR 2.1.2 - - - * [a9c2adb56569566adae86baaeebe641cb1409f6c] - Fixed priority handling, messed up when adding multi-device support - - - * [8c5859ed4adaf8a642d1ef4f6647f53f0879f560] - Added HTTP "Server" header - - - * [e1ba17ca21266cdf2e853d49c8457e21c1f188ad] - Ignore dummy file extensions (.ts, .vob, .vdr) when parsing HTTP URIs - - - * [d3df5d07a13cb18be498db4f25b77265ee307d35] - Redesigned pos= parameter patch for streaming recordings and added missing - bits like HEAD and resume.# support - - - * [c92de13d0666bcad050989c0d81d67878876ac52] - Select start position for replaying a recording by parameter pos= - Based on offset_5.diff from hivdr@vdrportal with the following modifications: - - indenting - - replaced isyslog with Dprintf - - left out HTTP header "Server:" for the moment - - - * [d7652d89ca79e30c6296ec71882b2de6b7728c63] - Start cSuspendCtl hidden or it will prevent idle shutdown. - As long as a cControl is not hidden, cControl::Control() will return a value - and LastInteract is updated in the VDR main loop. - - - * [b25e53c867d60914248623b626d1d98a1914d000] - Fixed recordings menu inode numbers: ino_t is a long long on some systems - - - * [329129d9c141a08a930e30b1f06e5d581c5858a2] - Updated Slovak translation (closes #1293) - - - * [75ee90a974aee2de9894e7341aed4db8ede0be40] - Added missing install target (fixes #1274) - - - * [08198729ac2717a1638a9a20f128bc71705c21cf] - Adapted Makefiles to VDR 1.7.36+ (thanks to macmenot). Old makefiles have - been renamed to Makefile-1.7.33 (fixes #1199) - - - * [10db11acd9a9785443182da1ec032c1d83db271a] - API changes of VDR 1.7.38 (thanks to mal@vdr-developer) - - - * [f58086a83acb6801372985bf98980a35ae960be7] - Added simple recordings menu in HTTP server - - - * [d3dd72072c88c83271aae98f5f1a695f802feefa] - Restructured menuHTTP classes - - - * [9bbb74b7fd15cecd3256ce9035b3c2505baded5c] - Added RSS format for HTTP menus - - - * [176df8341ddb62049d34a3bb601b0c4e0c1dbeaa] - Recordings can now also be selected by struct stat "st_dev:st_ino.rec" - - - * [138580f28448f242f8705da318cb14ff1eb8bb04] - API change of 1.7.28: missed one affected line leading to crashed in VTP - (refs #1226) - - - * [525edc1ccf5aab98601af5639eb8f2f75ee9e799] - Implemented multi-device support for streamdev client (closes #1207) - - - * [9135cde7121b72c24907752e64c519696d38154e] - Basic support for HTTP streaming of recordings - - - * [0cf406ed3ab2ab465787f5a425dec8d7d705903e] - Added #include - - - * [186671647147d05821224f2b37b2ad70750f4548] - Close writer when streamer is finished - - - * [50d249c62e8ae9c062278bf73d8edfff060cd6c7] - Don't abort VTP connection if filter stream is broken - - - * [0fb7076192f60472cd5885767898d79400adfa81] - Use std::map at() is not available in old libs. Use find() - - - * [f5da0ea1fcad8078b78fe03d49b88fc92daecf35] - Restructured cStreamdevStreamer: Moved inbound buffer into actual subclass. - - - * [0677f483295d2b6f0cb777c3bfe0ffb2d12b3585] - In cStreamdevStreamer dropped Activate(bool) and moved its code into Start() - - - * [eaf9321c4c4fc01baba1a82ba8ee1337c5777625] - API change of VDR 1.7.28 - - - * [83e9f3250fd59ffc219a9287edf79434e0012163] - Moved cStreamdevFilterStreamer to livefilter.[hc] - - - * [c267b585fd74c2a72ae683fe71244a085b57b633] - - Return HTTP/1.1 compliant response headers plus some always useful headers - - Return HTTP URL parameters ending with ".dlna.org" as response headers - - Store HTTP URL parameters in a map - - - * [be9da74958088474231b080ee1b72f2cb9d69418] - Support HTTP HEAD requests with external remuxer - - - * [e7bcc9349c6cf4549bd845067acd7b70b655cddc] - Fixed always using priority 0 for HTTP HEAD requests - - - * [b614fa0ec3900c3b46e4cb7b19ee6fe2225e92e6] - Start writer right after creating it - - - * [84db6323a6cddc7d48bfa4e89086e407894739d7] -Corrected typos (thanks to Ville Skyttä) - - - * [281105f0c7cdb70cfb532020cb8c3c3c8f1611e2] - Fixed compiler error in client/device.c with VDR < 1.7.22 (reported by Uwe@vdrportal) - - - * [80e40d4260af02dce1086d78d2af80b63e99070f] - Updated Italian translation (thanks to Diego Pierotto) - - - * [5cfa16c402d33451be993aa4bc7527e1b151442d] - Added DeviceName() and DeviceType() to client device. The server IP and the - number of the device used on the server are returned respectively. - - - * [af48d11b1856f69da293ad7808771bd8f31f8ab3] - Release 0.6.0 - - - * [744dc6792ca41febf35982984cc4e79ee35a9ff6] - Reimplemented some client device methods - - - * [16f8c75918d309042490ef5c853def735151cd2c] - Dropped m_UpdatePriority - - - * [fffd5aef4f76cbf0638e4377e0bf8287f1279d55] - Proper fix for "client sends ABRT after TUNE". Obsoletes many hacks in client - - - * [6389c5fd90b546604bbe47da93527835d9ca91ea] - Added CLOCK_MONOTONIC timestamp and thread id to Dprintf - - - * [6a47e204354d159294e70c79e1e7b54dd90d44f9] - Silenced warning (thanks to Rolf Ahrenberg) - - - * [12b48591bef40e21c78c14337a997cb84677eb96] - Updated Finnish translation (thanks to Rolf Ahrenberg) - - - * [ab26b4770a879bb2f421dedc04dff68a5b01460e] - Updated README, dropped obsolete patches. - - - * [00b7318a7baf1a7146ff26ffcb662759b766a4ab] - Cleaned up HISTORY file after merge - - - * [c3ac5976235a4651c7698b3f68bd6a41c170a7d0] - Replaced server-side suspend modes with priority based precedence handling - - - * [ae634538f86d424024f4b30fff58889d217f3320] - Dropped compatibility of streamdev-server with VDR < 1.7.25 - - - * [783b261bcbb2a19388a13386cb0bbf625c32e42c] - Release 0.5.2 - - - * [316ac3344de3051722d9740e0a67855032f66e84] - Use fileno() to retrieve the fd from a FILE structure (fixes #958) - - - * [8719007f5adb33d563354cec074330647032aac9] - New special meaning "show current channel" when channel 0 is requested. - Applies to HTTP streaming only (thanks to Rolf Ahrenberg) - - - * [2e8aefd2fe424a2e5a70fc8abc7eb5187bc8dc4d] - Added streamdev-client support for upcoming streamdev-server versions - with purely priority driven precedence. - - - * [a1797719de296b381a18ae889294b00dd5850667] - Using SetOccupied() won't work as it isn't considered in GetDevice(). Trying - to compensate the loss of SetAvoidDevice() with streamdevs CheckConnection(), - ignoring the current live TV device. If a new device is returned it is just - switched to the new channel. Hopefully the main loop will pick it up later, - after streamdev switched aways live TV. - - - * [5a3c5357781d8c8e04c28a1799d6f6a0e2065daf] - API change of VDR 1.7.26: Use "occupied" instead of "avoid device". - - - * [173d2cbb7aa3ff6d39449d618d4a944faa9be517] - Fixed ProvidesChannel() on client always returning true since the new timeout - option has been added. - - - * [83b05a629222b48a045c4f885739ef146d09cd15] - Updated Finnish translation (thanks to Rolf Ahrenberg) - - - * [a63f7247cb78954d1a25fb1d6e2996c0e39f12cd] - With VDR 1.7.25 priorities down to -99 will be used - - - * [26af4459d806d4dbfbe53ec7c69e2ee498cee6e3] - Use the new streamdev-client setup option "Live TV Priority" to control - precedence among multiple clients. The VDR option "Primary Limit" which - has previouly been used for this purpose has been dropped in VDR 1.7.25. - - - * [3da6ae734e6b3caf6a02984688b8405db060df57] - Timout for network operations now configurable in streamdev-client setup - - - * [c1dc1453c5e47b46a43a81e006ab34005b20526d] - Added timeout to Commit() - - - * [a047fc7d3245cfe924fb804c9c98634e634af5be] - Report the server-side HTTP status "503 Service unavailable" instead of - the client-side error "409 Conflict" when a channel is unavailable - (suggested by Methodus) - - - * [229e8fbfff9290feb0250287cf99f9130a41866f] - Update of po headers and Finnish translation (thanks to Rolf Ahrenberg) - - - * [ba7c61fb3901eb08eec4662c355f8e4275d68c61] - Support for non-cycle-free setups (e.g. where two VDRs mutually share - their DVB cards through streamdev-client/-server). - Must be enabled in streamdev-server setup. Obsoletes recursion patches. - - - * [6a971b9145b1be99039b653c44b0884de687110f] - Added missing phrase - - - * [3440072e7e87bd1cb1c5ef579e9b4467d6499892] - API change of VDR 1.7.22 - - - * [59c6558ce3e26ecc8eec00a4ea1279f6fdfc0805] - VDR 1.7.22 obsoletes cap_net_raw patch. - Added cap_net_raw patch for VDR 1.7.5 - 1.7.21. - - - * [d93ca82bd1ad5482f76a6494e6f63097fccafbd7] - Update and UTF-8 conversion of Finnish po files (thanks to Rolf Ahrenberg) - - - * [ffb870711886b00b500b7fad452a7925859bc98e] - Added "Hide mainmenu entry" option on server (thanks to Rolf Ahrenberg) - - - * [afe255aa0b66732c216660c3cead34d07ca67ef8] - Added server menu with list of clients. Connections can be terminated - with the "red" key. The former main menu action of suspending live TV - moved to the "blue" key. - - Squashed commit of the following: - - commit 7175d7de91b637eb057831b5c27af78d3870f146 - Author: Frank Schmirler - Date: Sun Nov 27 11:51:26 2011 +0100 - - Updated README - - commit 94aef85adc9c2922205145550ff00e59c694e36d - Author: Frank Schmirler - Date: Sun Nov 27 11:32:16 2011 +0100 - - Moved "closing connection" log message to overload of cTBSocket::Close() in - cServerConnection. - - commit 9b91301d943cfbec5208419704cfece84267223d - Author: Frank Schmirler - Date: Fri Nov 25 00:24:37 2011 +0100 - - Don't keep a pointer to the connection in components MulticastGroup - structure as the connection may now be deleted from outside via menu. - - commit 7347e24123ec0b852091ec035cabce0e10278a72 - Author: Frank Schmirler - Date: Thu Nov 24 23:45:59 2011 +0100 - - Fixed missing Display() call after disconnecting a client. - - commit c652e8fa8141d7e323cbdbbc0a662244a5a84955 - Author: Frank Schmirler - Date: Tue Nov 22 01:15:09 2011 +0100 - - Added server menu with list of clients. Connections can be terminated - with the "red" key. The former main menu action of suspending live TV - moved to the "blue" key. - - - * [ce1583a756fe7d80522ed3e82275705b9cbe00b7] -Code cleanup and optimization (thanks to Ville Skyttä) - - - * [20c931ac6d8cbc335f066bb406cdaf9490f10235] - Optimized iterator. Preincrement saves a temporary copy of the object (thanks -to Ville Skyttä) - - - * [f9224d0618777947f1bc242111f792657e3f5908] - properly shutdown IGMP timeout handler thread when the plugin is stopped. - Fixes occasional segfaults on VDR exit. - - - * [30674fb6c83fea4f20bd54b70ed23f4defbb9dbd] - fixed memory leak in libdvbmpeg read_pes (fixes #769) - - - * [8850e63da52f7eefbd656447becc2956b17ec614] - dropped several unused functions in libdvbmpeg - - - * [6c9c6ca77f2ec64eaa90b355ed037d6fdcc0e763] - restricted VTP command RENR to liemikuutio patch < 1.32 (fixes #786). - - Build fails with newer versions of this patch. RENR was introduced for XBMC - which is no longer using streamdev at all, so the impact should be low. - - - * [9cb72968f62b4efeb9f0a703cb61269b3dd660aa] - updated outdated COPYING file and FSF address (fixes #767, fixes #768) - - - * [b9d2f66295500cc196841265631544912ef216b9] - include SDT and TDT in TS streams - - - * [e0e14bb322a84cc8361c1e8ce5ad7a5109fe8c16] - Added notice that sysctl commands for max number of IGMP groups has to be - issued before starting VDR. - - - * [077398fdef39b5d2f4901b87417f0a80ef19da6c] - Revert "dropped cServerConnection::m_Pending" - Required by VTP - - This reverts commit bdaea38b863ef7649d7a2253ac937130b6e11d8d. - - - * [bdaea38b863ef7649d7a2253ac937130b6e11d8d] - dropped cServerConnection::m_Pending - - - * [6b633dbfa225847d8d0767c5904884d5218a845e] - the icy-name HTTP header sent with radio streams makes VLC pick the wrong - demuxer. Send icy-name only for ES audio streams (fixes #746) - - - * [615f101b9dce6ae4a2b7b02866176a413e47169f] - fixed regression of "live TV must be switched in VDR main thread" change: - deadlock in IGMP streaming server when switching live TV. - - Previously cComponentIGMP::Accept did all the work including the channel - switch with the new cConnectionIGMP waiting for MainThreadHook. But as the - new connection is stored *after* Accept, MainThreadHook didn't see it and - so wasn't able to switch. The streamdev main thread waited forever. - - Moved the main work into cComponentIGMP::Welcome. - - - * [2fae067cfef6f930415e8b3d4c4713b5de91b1eb] - streamdev-client returns true in its AvoidRecording() method - - - * [475e7bbd6ad0dba119c87dc8b08ebc1580a8cf84] - updated device selection to code of VDR 1.7.19 - - - * [4c0888d483b935977ca62755b5c30135a39e91e8] - adaption to VDR 1.7.12 cReceiver API change - - - * [24a1638dddc5fd3d8c72ca75cdeda016910f2bf9] - increased WRITERBUFSIZE. Has been reported to fix some ringbuffer overflows -(thanks to Lubo¨ Dole¸el) - - - * [cc74cba39690f94d622b84f6a6196e8348ef23d1] - check availability of channel if VTP command TUNE is called without prior - PROV call (e.g. client side EPG scan) - - - * [2c8377d42a9ebd7c399322968d2c78fb377f55b0] - added support for VDR 1.7.19 SignalStrength/SignalQuality - - - * [673fbae2e258102c7bd2a7bee554f75eae0e332b] - analog video channels use the same transponder and pid for different - channels, so streamdev-client must always issue TUNE command. - - Thanks to Martin Dauskardt for providing the technical background related - to pvrinput. - - - * [f73665a0bd13519591c8acb451c0b884929547e5] - Server must close the VTP connection also if filter stream is broken - - Otherwise, if a client which is not livestreaming (e.g. watching a recording) - doesn't properly shutdown the port 2004 connection, the filter stream remains - open until TCP keepalive takes care of it. In the meantime, the log will show - ringbuffer overflows. - - - * [f6299b45840e6c874f7ec3457a69ecf3310a6b51] - fixed missing #ifdefs for new NumProvidedSystems setup option - - - * [09e0a0176bfea6b37ba9ffc5aa0fe11f6de30f61] - - new externremux.sh mencoder config options: audio pid by language code - (-alang) and verbosity (-msglevel) (thanks to Pekko Tiitto) - - - * [19e8cf2a286bb56c0b10eb12859c8c5feeff8ce9] - writer must not spend too much time waiting in select() without checking - 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. - - - * [17bb6390f9883a1f029ffe4caaa4cc130fcb8b7a] - Merge branch 'master' of projects.vdr-developer.org:vdr-plugin-streamdev - - Conflicts: - HISTORY - - - * [58a4f3dbe5888d6da81b401154a8b4c778ff228a] - Added Spanish translation - - - * [1a933d6cc9344bd7e7ded82eb775cc0c61ed0ae3] - Merge branch 'switch_livetv' - - Conflicts: - HISTORY - server/connection.c - - - * [c06970123cd68bd1b2f2695326596430d236f230] - Live TV must be switched in VDR main thread (fixes #568). - - - * [2cb0ba6cf128f9263ff5d1d4695546dab84da768] - Dropped compatibility with VDR < 1.5.16 - - - * [ee7929bd39101f877ee731c96c457b5e38565b37] - Deleted obsolete section about static priority - - - * [dc41eecffdbac79b1cfddadb335b7952caf8cecf] - return value of streamdev-clients cDevice::NumProvidedSystems() now - configurable in plugin setup (fixes #552) - - - * [30930d5c74587d04c5f2453676e943899a536601] - Release 0.5.1 - - - * [3a2936a1408293361065d72c5f5cd491d9a7a60b] - updated copy of GetClippedNumProvidedSystems to the version used since VDR 1.7.15 - - - * [06d5418e4284f23c91fff546a4cb25eda279265a] - Fixed the code deciding if a device is in use for live TV or not. It did - not work as expected for FF cards (fixes #536) - - - * [07837998265271ef4ff474cd450e7975003bc93b] - increased client side timeout for TUNE command - - - * [316a1f884f97e4366fe193c2acb520d66f16fb65] - connection runs as thread, so it must not use Skins.Message - - - * [9fbc16684854168f6f6bffe0f1622f778337f8e3] - Improved channel switch code - - - Avoid device allows more efficient code when trying to move live TV to different card - - Added some more dsyslog messages to help debugging channel switch issues - - - * [abf8a62fe9a056c316cff6a32df882e2b7d3ae19] - make sure that a client doesn't interrupt replaying on server's FF card - - http://www.vdr-portal.de/board/thread.php?postid=948311 (reported by wtor) - - - * [a35675490d91a7112119eb7a52a22616f3ed45a7] - switching away live TV failed even when "always suspended" - - The vdr main loop usually switches back to the previous channel at - "Make sure we have a visible programme in case device usage has changed" - (#472) - - - * [0c07109974e5335b2b962f3450ed14b0978891a3] - fixed regression: no receiver created for ES/PS/PES - - (reported by Gavin Hamill) - - - * [6ea5efe93960fc761dbb5e0b2d93d9b5818d5d7c] - Snapshot 2010-09-15 - - - * [0a860a1e3e45ee83563b09beb93ede0e99eb75fb] - don't use std::map.at(). It's not available in older libstdc++ version - Modified Files: - CONTRIBUTORS HISTORY remux/extern.c server/connectionHTTP.c - - - * [c7d19619db2d818d1c7e5e01eaee5474d790af66] - fixed extremux x264 using value of ABR for VBR - - - * [c0a7f1610a3cbc6655d26d4752d9d4f553d98af3] - fixed wrong URL path in m3u playlists - - - * [edc3ad1c8e079a96a985d60a800a56918186b9e3] - - set externremux.sh executable in distribution archive - - externremux quality value should be wlan54, not wlan45 - - - * [ebacf759ab61f44701aa3df29fafae69e37af900] - dropped "Synchronize EPG" feature - Modified Files: - HISTORY README streamdev-client.c streamdev-client.h - client/device.c client/setup.c client/setup.h client/socket.c - client/socket.h po/de_DE.po po/fi_FI.po po/fr_FR.po - po/it_IT.po po/lt_LT.po po/ru_RU.po po/sk_SK.po - - - * [1a1141e4a1e856bfff37591da1769625bd7a21dc] - Switched to proper tsplay-0.2 patch detection - Modified Files: - server/recplayer.c Makefile CONTRIBUTORS HISTORY - - - * [7517b874d8f0b5c823c8e3f9c811306e4906f1da] - added compatibility with VDR 1.6 tsplay-0.1 patch - - - * [6f984b87e32f640a260752024de2f69b0d89a499] - Added support for EnhancedAC3 - - - * [8a128f7c57fd168231798c53f890af2c1acf6492] - fixed a memory leak in cStreamdevPatFilter::GetPid (thanks to lhanisch) - - - * [2f027a6ffc2096fb612e5c6d92993539002c3232] - - length -1 is the correct value for streams in M3U playlists - - - * [dd7cc838adad330906fd836f5cde39b20373adfb] - switching between two encrypted channels on the same transponder didn't - always work (thanks to sk8ter@vdrportal) - - - * [93c9aa9af073177d04e357d61fdd0292fd360129] - added DELT FORCE option to delete running timers (#554) - - - * [c882a991ccee79ddde6e68d5f1684456a85b5729] - added VDR 1.7.11 parental rating support for VTP LSTE command (#555) - - - * [b44c9ac3f5a540f22bde390f471453a54881c5d7] - added Lithuanian translation (thanks to Valdemaras Pipiras) - - - * [b3c72deaed24d2dbf2222b14be3981c23aa67086] - fixed missing virtual destructor for cTSRemux - - - * [d794d83854412b339ebfab206e66651f328c2c9a] - added defines for large file support to Makefile as required by VDR 1.7.4+ - - - * [b5bd22e7bd7351b1aaf18c6588b173e32c232d60] - Added Slovak translations (thanks to Milan Hrala) - - - * [e99ea0034859129b8593994d406924d42ae6aae6] - fixed regression from fix for switching between encrypted channels. It was - no longer possible to receive multiple (FTA) streams from the same - transponder - - - * [73e30fd5ca1bf1c08e7ed45f24a87d977be64c0e] - silenced warnings concerning asprintf (requested by Rolf Ahrenberg) - Modified Files: - CONTRIBUTORS HISTORY server/connectionVTP.c server/setup.c - - - * [ac40edfd24c06536dcfcc990769934a98a496075] - don't update recordings list on CmdPLAY (reported by BBlack) - - - * [6da7cf90d9a4f1dc324e6957a0fe1aa612d04440] - Added missing trNOOPs - - - * [1cf41fb16f8a0ea06fa0dd8cabadc8a3e3610dc6] - - cleaned up common.h / common.c - - dropped cStreamdevMenuSetupPage - - - * [6fb88f8d99af82c301ace0f0448eb7dbb964f2be] - report charset in HTTP replies (suggested by Rolf Ahrenberg) - - - * [0e9e22c23d9671a910e82067e520c02249296842] - use SO_KEEPALIVE option on all sockets do detect dead sockets - - - * [1474cdf79972183c2cb67ba8a87e09a8078f3b08] - Fixed sysctl command - - - * [4ab256caea6b402c9880d846fbd9cf0eed6f1742] - enable PatFilter for externremux, so VLC can be used as remuxer or client - - - * [4f3a6aae88ed99abda36d10fafa7518658c1d277] - attributed wrong patch name - - - * [d5fa0a49f868ff97cb5df523df9d3204ca1664df] - fixed insecure format strings in LSTX handlers - - - * [8469a4d894c35e96beb8d405ad66dfe2c55e9458] - Updated Finish translations (thanks to Rolf Ahrenberg) - - - * [41763e7710d7b044f69b0f1355e3ff1509cf0f54] - removed redefinitions in includes - caused problems in older compilers - - - * [c8cf217c010d4bec1fd01d4e9b50025a90f6d874] - fixed ts2ps.h defines - - - * [5644d3c03fca04d52fc3cc0017784f866a746015] - fixed missing virtual for cTS2PESRemux destructor - - - * [fe77c5dccb9d8ef6119a64eb4a8cadbdf9227ea2] - silenced format mismatch warning on 64bit OS - - - * [dd09bfbb4525d974704451422bacb412719117e3] - improved PARENTALRATING patch detection (thanks to Rolf Ahrenberg) - - - * [460d5f068971cd2e3649fd7e20c80e1265a6e18d] - Missing files from previous commit - Added Files: - server/recplayer.c server/recplayer.h - - - * [052a94db5a964fad9bcbeab06f9467bbf55583b0] - added XBMC support by extending VTP capabilities (thanks to Alwin Esch) - Modified Files: - CONTRIBUTORS HISTORY Makefile common.h server/connectionVTP.c - server/connectionVTP.h - - - * [7b8e396f775608968ebe274e36fc776bb295dd97] - now there's a common baseclass for all remuxers, make use of it - Modified Files: - HISTORY remux/ts2pes.c remux/ts2pes.h remux/tsremux.h - server/livestreamer.c server/livestreamer.h - - - * [64bf3e5ecf2657b2926fe389fb949f8cf6e7cae7] - Removed unnecessary namespace qualifier - - - * [44a71ffe8a0d62c0313481aba7dffd6fce362eb0] - added cDevice::NumProvidedSystems() which was introduced in VDR 1.7.0 - Modified Files: - HISTORY client/device.h - - - * [008e7c851013722a377aa9ff4485d4af2d991883] - - 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 - - Modified Files: - CONTRIBUTORS HISTORY Makefile common.c common.h - streamdev-server.c libdvbmpeg/transform.h remux/extern.c - remux/extern.h remux/ts2es.c remux/ts2es.h remux/ts2ps.c - remux/ts2ps.h remux/tsremux.c remux/tsremux.h - server/connectionHTTP.c server/connectionVTP.c - server/livestreamer.c server/livestreamer.h server/menuHTTP.c - server/streamer.c server/streamer.h - Added Files: - remux/ts2pes.c remux/ts2pes.h - - - * [64ff2c08be769cf227ac6cf2e318fcb6b80c9689] - Added missing call to StopSectionHandler(). - This method was introduced in VDR 1.5.15. Its absence could cause crashes - when shutting down VDR - - - * [3d16ba08409e5ca42eec427ef742809cc875f0b0] - added comments to indicate that the VTP filter stream is proprietary format - Modified Files: - client/filter.c server/livefilter.c - - - * [78410ea5761eab03a7bc33852e85621594df7254] - Added IGMP multicast server - Modified Files: - CONTRIBUTORS HISTORY Makefile README po/de_DE.po po/fi_FI.po - po/fr_FR.po po/it_IT.po po/ru_RU.po server/component.c - server/component.h server/connection.c server/connection.h - server/livefilter.c server/server.c server/setup.c - server/setup.h server/streamer.c server/streamer.h - streamdev/streamdevhosts.conf tools/socket.c tools/socket.h - Added Files: - patches/vdr-cap_net_raw.diff server/componentIGMP.c - server/componentIGMP.h server/connectionIGMP.c - server/connectionIGMP.h - - - * [c26b89f9c287d64915b94cc56fb0e4e709d235a4] - ignore trailing blank lines in HTTP requests - - - * [37f2adf02bea2ce891c9175f6580aedef4390616] - Fixed parsing Min/MaxPriority from config - - - * [479d5c4b48a5b33f1669fb5db564f513740b1d50] - - Updated Finnish translation - - Reordered entries in de and fr - - - * [0e0b4b587d90efa7bbe8a37c707dda4c3e94aceb] - Added min/max priority (#508) - Modified Files: - HISTORY README client/device.c client/setup.c client/setup.h - po/de_DE.po po/fi_FI.po po/fr_FR.po po/it_IT.po po/ru_RU.po - - - * [9af6ceb00705470484c4b23cf71f9bb11d2af271] - Commented PES for vdr 1.7.3+ - Modified Files: - HISTORY common.c common.h remux/ts2ps.h remux/tsremux.h - server/connectionHTTP.c server/connectionVTP.c - server/livestreamer.c server/livestreamer.h server/menuHTTP.c - server/setup.c - - - * [41cf7a58488e8e482383d427d6afc5deef0b8d0e] - Credits for "fix to switch encrypted channel fix" - - - * [30aa3b0610f949205a96e6af40c34d808de0753f] - Problem when switching between encrypted channels still exists if CA id - is set to FTA or streamdev device. Disabled transponder check. - - - * [ca043780a7d81b3766a42aa105eaaa3ff2c6bc70] - added Network Media Tank browser support to HTML pages (#494) - - - * [cd8d7fbd6c583b81b04d082e100021eedf045283] - Compatiblity to Network Media Tank (#496) - - minor fixes of PAT repacker - - repack and send every PAT packet we receive - - - * [459e41e810cf02e3884d13ee30e773d1400d31ab] - - fixed null pointer in server.c when cConnection::Accept() failes - - - * [7184adef839d442612d10d46611bfd4042ac30e3] - 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 (#473) - - - * [ac2e992305d0840ff0f82403b017fd60a8bbe0e6] - Improved externremux script termination (#455) - - - * [c364a3396d155efa153cdc183591f7e5fff3d1b7] - - use cThread::Running()/Active() instead of private members - - replaced the last usleep by cCondWait - thanks to Rolf Ahrenberg (#383) - Modified Files: - CONTRIBUTORS HISTORY server/server.c server/server.h - server/streamer.c server/streamer.h server/suspend.c - server/suspend.h - - - * [4a5af4f4897d6b34e232ed0e22d1fec9b57177b9] - - fixed output format of some debug messages (thanks to Rolf Ahrenberg) - - - * [86c82c138122a9ed282a6496c8e20ceceda3ef16] - - added HTTP authentication (#475) - Modified Files: - HISTORY README streamdev-server.c server/connection.h - server/connectionHTTP.c server/connectionHTTP.h - server/server.c server/server.h - - - * [992444cb67e700619293d3642f95f40b18d1b62e] - Compatibility to VDR 1.7.1 (#483) - - - * [c5b5a4cbeb26d30d62a9afd66a29eb69723fd81f] - Update - - - * [42474b84314cfc40191a86369f63aca40c2d09aa] - Added vdr-1.6.0-intcamdevices.patch (#429) - Modified Files: - HISTORY README client/device.h - Added Files: - patches/vdr-1.6.0-intcamdevices.patch - - - * [924cf6e4d0e1cfccc86db8c185da60ef0fb6e2fb] - Workaround for problem when switching from one encrypted channel to an other - Yet it's not quite clear if this is really a proper fix. There have been - contradictory reports (#476). - - - * [90bae5b011f52b82c7a9f7f412533cca64c752ac] - - added preprocessor directive for ancient gcc - - - * [9ecbab88824c809c814e8d5df745e2616b0b965e] - - added Russian translation (thanks to Oleg Roitburd) - - - * [685f43c6ec1cbe59b52e008744bb86dd7c048544] - - Fixed assignment of externremux.sh's default location - - cPlugin::ConfigDirectory() cannot be used directly after the plugin has - been loaded. The return value of AddDirectory() must be allocated. - - - * [b2bea54b34853d0b12188ac46b3a8fdfd2ff006b] - - added French translation (thanks to micky979) - - - * [ecbde41090dbdca139b75f733a79a1e71c42a9d1] - Added Italian translation (thanks to Diego Pierotto) - - - * [dc796dfe74bac431de93ef2c82d0323f74946f53] - Fixed German translations - - - * [34a62eb2ef9ba0c9e5d269162772c4223bf5fa3b] - - 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) - - - * [9c60fb4e42bce2fd3b6d7d9c011f1688cddd4394] - - 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 - - - * [89735cbd95ea82c309be3c2faf939d03cc8aa6eb] - - 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) - - - * [f51d6eb2dfb128a29db34b05d9b92a9633dd5b29] - - removed legacy code for pre VDR 1.4 - - dropped patches for pre VDR 1.4 - - - * [71cc16a1eb1774f9f20f8eed03b17af3e8691edc] - Release 0.3.4 - - - * [57923c656e264a032391693132fbe3add86df941] - Missing files - - - * [b66bf7a698738389a030d1512d5442c149ab27db] - Rewrite of http menu (#439) - Including - - m3u playlists by Petri Hintukainen (#254) - - way to pass parameters to externremux by Rolf Ahrenberg - - using host header for absolute URLs for better DNAT / Reverse Proxy support - - - * [79836e69a99afd7a9a7b60ce41c5907fbed288d4] - Updated - - - * [91568bb70c99f8fa0f8759e3d454171cc8bd6d3f] - Updated using information from CVS and bugtracker - - - * [21da96308d73458deaa121e1b7a1ce712273c82a] - Make sure that a FilterStreamer is only started if client supports it - (#261) - Modified Files: - client/socket.c server/connectionVTP.c server/connectionVTP.h - - - * [650b4d5443fb5d1980f69170124893a1f6b27c9e] - Fixed compiler warning - - - * [e54f9e4fbe3062ed6fb63d0222a0587c9d236830] - Add EIT into TS stream (#442) - - - * [efeac825cc071e01b203eda2af3a28f5020c9f3e] - FreeBSD compatibility (#435) - Modified Files: - Makefile common.h libdvbmpeg/ctools.c server/connectionVTP.c - tools/socket.c - - - * [eb6fbd3bbea50c4ecf345f41ee87fd51bbcde113] - TS PAT repacker for streamtype TS. The PAT shoudln't refer to PMTs we don't - transmit. Particularely causes problems with some settop boxes. - - Thanks to Rolf Ahrenberg (#309) - - - * [cd558858e6b619c47377223ecc9e79a08775c991] - Fixed default target (suggested by rofafor - #430) - - - * [46e007f456809ce1baba5d6b6f43a3fa3e56ef65] - Workaround which fixes tuning problems for VDR 1.5.x clients. These - sometimes send ABRT after TUNE. Clean solution wanted! - Thanks to alexw (#255) - - - * [713c0564b749da455290ccfa1dddc6676c104724] - VTP now also supports PS, PES and EXTERN. - Request for PS by mpanczyk for MTPCenter (#341) - Modified Files: - server/connectionVTP.c server/connectionVTP.h - - - * [d0385f5252ba5f5463028b848b7036413626cf42] - fixes for some new warnings from gcc 4.3.0 - - array subscript is above array bounds (real bug - might overwrite other var) - - deprecated conversion from string constant to 'char*' - - suggest explicit braces to avoid ambiguous 'else' - - Thanks to Petri Hintukainen (#354) - Modified Files: - common.c libdvbmpeg/cpptools.cc libdvbmpeg/remux.c - - - * [17ff4d32e8d779f68deb4ba838201ec3c8ab7edd] - High load when client isn't accepting data fast enough. Bug report and - fix by Olli Lammi (#382). - - - * [c8bf0474f946dee2ea8c0afe4bb1b4f79520cdfa] - Client did not reconnect properly to server when server app restarts. - When Read() on the command channel failed, the buffer size was not - trimmed. Read() was never called again as the buffer appeared to be full. Fixes #322 reported by alexw. - - - * [e9bd0c96f33ee4693bde5d93bb0168c9085802ec] - Lock in ~cStreamdevDevice when shutting down (#355). - Thanks to Petri Hintukainen. - - - * [60b44caf3d419fa6794d6f08c49354b96a516c4b] - cRingBufferLinear::Read() will return 0 either if EOF is encountered - or if the buffer is full. We need to check the buffer space to distinguish - these two cases (#307). - - - * [bb1ac54c87ea689e6275838c606fa7224adf4169] - Set DSCP 41 on stream data packets. WMM capable WLAN accesspoints - should understand this and give precedence. For Internet streaming - it could be used by traffic shapers. Suggested by ollo@vdrportal (#237). - Modified Files: - server/connectionHTTP.c server/connectionVTP.c tools/socket.c - tools/socket.h - - - * [2b103196d6fb69336a14d9167dbda701ab135183] - Check vasprintf return code (thanks to rofafor) - - - * [d93eec41f310f50f67fc78eb0ed33f3a00cf4e83] - Fixed segfaults due to cTSBuffer disconnect detection workarounds (#260) - - - * [7fdf0c6832f8e57ee23133e0cb81ff91730d3bcb] - Fixed memory leak in buffer overflow situation (thanks to rofafor) - - - * [8378d5a17cc5ec14b2c1d0fa8804e014298d2e41] - Removed duplicated code fragments probably caused by patches with too - few context lines - - - * [fdda49c9f3341913aa1f7497a3384f7dc24e06cc] - server_live-filter_remove_setfilter.patch by Petri Hintukainen - - remove (now unused) cStreamdevLiveStreamer::SetFilter() - Modified Files: - server/livestreamer.c server/livestreamer.h - - - * [d012504c3a2f2086b80af8d0a5ad5823e07a9058] - server_connectionVTP-add-filter-stream.patch by Petri Hintukainen - - Add new stream for section filters data - - - * [9994ecfd08e350b227cb1ca4bcaf6c120f2d91ee] - server_live-filter-streamer.patch by Petri Hintukainen - - Add cStreamdevFilterStreamer that is binded to current device, not channel - - new streamer can exist even when there is no active data connection (live view) - Modified Files: - server/livestreamer.c server/livestreamer.h - - - * [99d19c67d84cfdfa71872147b2e903d81d05d85e] - server_livefilter-add_public_Add_and_Del.patch by Petri Hintukainen - - Add public Add/Del members instead of friend class - - - * [60b89e86465826cfeaedf5883970291dad2e4797] - client_device-sections-socket.patch by Petri Hintukainen - - Add separate data socket for sections data - - Sections data can be received when there is no active live view - (-> EPG scans etc. can be executed during replay etc.) - - - * [518886b08b5913cf8278f69905e7981424d46825] - client_filter-data-handling.patch by Petri Hintukainen - - regonize PUSI flag in TS packets (bullet-proof section start+end indicator) - - Use own TS buffer to read directly from socket, no need for ring buffer anymore - - Re-activate all active filters after re-connection to server - - Simplify thread start/stop/running detection to current VDR style - - Update "filter closed by VDR" detection (datagram sockets - return different errno's than pipes) - - Deliver data to first matching and active filter (do not drop data if first - matching filter has been closed, there is quite likely new filter for it) - - Add disconnect detection to avoid 100% CPU usage in cTSBuffer::Action() - Modified Files: - client/filter.c client/filter.h - - - * [52bf110aa9108dee206463c33a03bf55c3be3534] - server_ts-pat-pmt-filter.patch by Petri Hintukainen - - - Add PAT, PMT and PCR to HTTP TS streams - - Dynamically add and remove all related pids (of channel) to TS stream - -> DVB/teletect subtitles work in clients - -> VLC can be used as client - -> HDTV (MPEG4 / H.264) streaming is possible - -> Client can select audio and subtitle tracks on the fly without re-connection -> Client can display "real" track names / languages - - - Add new member function to set all pids in one shot - -> Receiver is not deleted, created and re-attached separately for every pid - (this causes discontinous start and is anyway unnecessarily) - - Modified Files: - server/livestreamer.c server/livestreamer.h - - - * [2e7fe3c3376ace5f5b6f913ccba6182fdf7b310a] - server_livefilter-add_ts_pusi_flag.patch by Petri Hintukainen - - Add MPEG TS PUSI (payload start indicator) to first - packet of each section - - - * [a0dfe7b20ae894240da179bfe76cf31b935bb606] - server_connectionVTP-new-data.patch by Petri Hintukainen - - Add new data (LiveFilterStreamer and LiveFilterSocket) - - Misc cleanup - Modified Files: - server/connectionVTP.c server/connectionVTP.h - - - * [ac4c391c43f993f51ff8f34eaf9eec7e15166fb8] - client_socket-close_data_connection.patch by Petri Hintukainen - - Add member function to close data connection - Modified Files: - client/socket.c client/socket.h - - - * [2a4370b6a00f370b05e311478b693d90e19ce7c9] - Add live filter stream type - - - * [0a59f04d60e72db367d2c087bebbf13d805b4397] - client_device-disconnect_detection-fix.patch by Petri Hintukainen - - Try to detect data stream disconnections to - avoid 100% CPU-usage in cTSBuffer::Action() - - - * [d5a38b3213e138b6e74d724198619ab5138242ff] - client_device-vdr-1.5.1-fixes.patch by Petri Hintukainen (#219) - - VDR 1.5.0 calls some device members in different order and - streamdev can't currently handle this. - - do not trust in OpenDvr/CloseDvr, instead keep count of active PIDs, - open data connection when it is needed and close it only when there - are no active PIDs - (closing data connection unsubscribes all pids at server end) - - some sanity checks on server side - Modified Files: - client/device.c client/device.h server/connectionVTP.c - - - * [0553fce43c696295bd4b291f58397497b59f965b] - based on server_livefilter-streamer-type.patch by Petri Hintukainen - - Use cStreamer (base class) instead of cLiveStreamer - (no need to know streamer type) - * works with cLiveStreamer and cLiveFilterStreamer - * avoid circular dependency - - visibility of cStreamdevLiveReceiver: Moved from livestreamer.h -> .c - Modified Files: - server/livefilter.c server/livefilter.h server/livestreamer.c - server/livestreamer.h - - - * [6dd3cc412ee9326c4508f8e73f042223f4e816c3] - client_section-pipe-carbage-collector.patch by Petri Hintukainen - - Run section filter carbage collector when adding new filter. - Carbage collector closes all filters that have already been - closed by local VDR section handler. - (without this, closed section filters are removed only when - they receive data from server. If they wont, ...). - - Add locking to list handling (list is accessed from separate threads) - Modified Files: - client/filter.c client/filter.h - - - * [5f54824d3d0abb08ebd6f1ef7e9f1952a7498e46] - Fixed whitespaces. No functional changes - - - * [0a7608faba11e784f69f0539446e58b9f2a32f53] - client_invalid-section-data_and_pipe-overflow.patch by Petri Hintukainen - - Reset section data unpacker only after first non-full TS packet - (last TS packet of section is typically not full - - Do not close filter if socket buffer is full (EAGAIN, EWOULDBLOCK) - (closing results in 100% CPU usage in VDR section handler) - - - * [e55981c9e1bbe128b0c45bb9c345f703a4851bf2] - client_device.patch by Petri Hintukainen - - Implement virtual IsTunedToTransponder() - - Return true from Provides... functions - Modified Files: - client/device.c client/device.h - - - * [35bfac507b1483f3d53a5e4c9e8bd1c653e4d647] - client_filter-close-fix.patch by Petri Hintukainen - - Do not close receiving side of section pipe. Ownership of handle - has been transferred to VDR section handler when filter was opened. - Closing handle twice results closing random file handle. If this - handle is laready used by another section filter pipe (very likely), - VDR section handler CPU usage will rise to 100%. - - - * [c515e82f0428609a2cb994ce5cb3c7b76f078cf9] - Fixed typos - - - * [130d7dcc080e95facff1d3acef21424d4762eec0] - client_section-filter-socket.patch by Petri Hintukainen - - Use datagram mode socket instead of pipe to feed - section data to client VDR section handler - -> preserve section data block boundaries - - - * [313da9682d1de00004539ab295bd1628ecc9bc4e] - client_filter-visibility.patch by Petri Hintukainen - - - Move cStreamdevFilter definition from filter.h to filter.c - - Add IsClosed() and Reset() members to cStreamdevFilter: - * IsClosed() returns true if filter was closed by VDR - * Reset() discards (incomplete) queued section data - - Modified Files: - client/filter.c client/filter.h - - - * [3ceb716ea9492ba1eb3331882a44b0d733426752] - Use compiler flag -Wall. Cleanup code as necessary. - (#171 Thanks to Rolf Ahrenberg) - Modified Files: - Makefile streamdev-server.c server/connection.h - server/connectionHTTP.c server/connectionVTP.c tools/source.c - - - * [69b754bef9e45c3f92be1e37c177c41a1fcba41c] - Close pipe when externremux.sh is gone. Fixes high CPU load problem (#235) - - - * [525574f9b01275aaff3e1c923cc91404365d501e] - Close connection when client is gone. Fixes high CPU load problem (#201) - Modified Files: - server/connection.h server/connectionHTTP.h - server/connectionVTP.h server/server.c server/streamer.c - server/streamer.h tools/select.c tools/select.h tools/source.c - - - * [cd7d4e3588af2cc36c8366fc8d65d0627a372c32] - Silence warning about overloaded namespace (#244, thanks to rofafor) - - - * [87e24499e3857b8cea36d9ec9f38fdb9443fd92a] - Silence warnings caused by implicit casts between uint8_t and char. - In most places casting was easy to avoid as the variables have been - casted forth and back between both data types. Anyway - the affected - functions are never used by streamdev. - - - * [1e9e200e8a9e781d5cdc8da8a5ac7d2cad49144c] - Fixed null pointers - - - * [59a4969b3f9be950e8bd0cb867b2b88aff4e694c] - Fixed indenting - no code change - - - * [e86d019878a4315cc5a75450d2753c543fbe5a1a] - Added commandline switch -r/--remux for specifying name of externremux script (thanks to Rolf Ahrenberg) - Modified Files: - streamdev-server.c streamdev-server.h remux/extern.c - remux/extern.h - - - * [e3a44184539067ff9be18a7d1458c6c349a6245a] - Compatibility for vdr < 1.3.38 (#169) - - - * [335660b62c8a11f377c10f35c704c89e601fcd2b] - API changes of VDR 1.5.0 (#219) - Modified Files: - server/connection.c server/livestreamer.c - server/livestreamer.h - - - * [970bf59cc2c1238f2f3d772ec825369f58c8d5ed] - Indenting - no code changes - - - * [56571d5879cf734770194ea975416883a5007cc5] - Log throttle for connection failure messages (#183) - - - * [ab342d37b3210e98936aa2630791f2143ddaeb3a] - Replace uint64 by uint64_t (#200) - - - * [1f3a3c129181ed942f76a36762e2dd6062e19790] - Avoid loop/deadlock when two VDRs mutually share there DVB cards, i.e. - both are streamdev-server and streamdev-client (#198). - - Bigpatch version by p_body@vdrportal - Added Files: - patches/vdr-1.4.3-recursion_bigpatch.diff - patches/vdr-1.4.3-recursion.diff - - - * [7bec5439606cecc814f8ce8062af0a388671549f] - - Updated for VDR 1.4 - - Moved the changes a litte bit around so that it shouldn't be affected by VDR changes that easy. - - Changed menu item texts - - - * [1c0f73a09b61d4489039f48886a207825ee18263] - Devices are expected to honour the CA field. Without this patch there - is no way to tell a VDR that it may not use streamdev for a specific - channel. - - - * [7c300e2a12d11a046b8a0d86c4c0f2e37a2950b1] - Cache translation in cPluginStreamdevServer::Active() as this method - may be called very often. Though tr() is not producing too much overhead - it is not neglectible either. If the actual translation is missing, - the resulting syslog messages will become annoying. - - Note that the current OSD language is not monitored. Changes won't be - reflected until the next restart. - - Thanks to Urig for the patch (#197). - - - * [11f4a0c6e1dc6d47c2867b0e29dd66588e45b232] - Use select with timeout and check if streamdev-server has to shutdown - (#135). Thanks to Urig@vdrportal - - - * [83dd64f68a77bd01d550ad79d14ea03a8af91f16] - - collect terminated externremux.sh processes (#136) - - avoid fd leaks when we fail to spawn externremux.sh - - - * [06265bab7bd5dea2e561a1c62b39ebcf36b164e3] - - detach all receivers before tuning to different transponder. Otherwise ABRT will be sent after tuning, which will destroy the LiveStreamer on the server. - - - * [610719625a51fd5b3b94adae193e227eb9c72112] - Re-enabled logging for the Detach()/Attach() issue which is still under observation - - - * [fc050db7cebe2d5a67f0c835e3760f8218afb2d7] - Added -fPIC compiler flag required on AMD64 architectures - - - * [d437c23550001c18aefa9e6b34f78006ff4c79d9] - Updated finnish translation against current cvs. - Finnish translation update 20060729 - - "Fixed" Bug http://www.vdr-developer.org/mantisbt/view.php?id=130 - - Update kindly provided by rofafor! - - - * [03a836a3ed0d2cb96dc50ecdc6bd5f07e4f5bbe0] - Wieder mal ein Test - - - * [c3ad1f33e141acccdb513cd29a826ead1f13dd14] - *** empty log message *** - - - * [afd35328935b92a1b9a46ab3f04c4357c33c57a1] - Finaler Test neues CommitInfo System - - - * [e30e52bbb5b50e89d6a657caeb022c1bcfce60a6] - Finaler Test Neues CommitInfo System - - - * [5fcfb46878c217f4bc509218880454a2e9c9c340] - *** empty log message *** - - - * [6d8349a92b98c8a540e9d53b5994ba2d01fe5307] -Nächster Test - - - * [62f1ebd554d97b262b68bc4654eb86f32fe69111] - Nochmal ein Test von CVSSpam - - - * [e62ad3613d1271e80d00a79a98e09c4afcd9eab4] - Test - - - * [453640ede46b1a9a606922e226f2c0e4f9a58645] - CVS Test - - - * [7c8e59a917a055595d858c54318b3f79db178334] - Now preventing fd leaks. - - Fix kindly provided by Artur Skawina: http://www.linuxtv.org/pipermail/vdr/2006-May/009342.html - Closing bug: http://www.vdr-developer.org/mantisbt/view.php?id=115 - - - * [01752a66d606190ec22f3ce490dc67cd365f8411] - Auskommentiertes Attach/Detach wieder aktiviert. -Kartenblockade wird dadurch behoben und alle Channels lassen sich anzappen, Unbedenklichkeit ist aber nicht einwandfrei geklärt! - - - * [434b91fa61f8c15bc61d02d86d17bfb127bc1dd5] - Anpassung an API 1.4.x - - - * [03a90ebefe9665cfbc81dee082af9b4dd7709f1d] -Anpassung an geänderte API - - - * [2179180564f179307e41214ee98936df8a0b06c0] -Plugin active i18n für 1.4.x eingebaut - - - * [c36434a83f2ec48a8de6c9dd29e33f3b4da324c7] - Anapssung an VDR 1.4.x - - - * [bf29388e02945d8fb8881037603c8ec60ae1fd97] - - fixed http error response - - - * [8634d821234b8c58fcaa6b400049acd5c3214eab] - - added class forward declaration for gcc >= 4.0 - - - * [0b590ec8261db94f515a295c0fbf4c92e78d2a55] - - adopted to VDR >= 1.3.36 - - - * [bf55805cc29b26de54b71977f43e9e4865d6a341] -Dazugefügt. Jetzt auch mit i18n :-) - - - * [321ac81a661a6fc0aacd8cf48edca7de71aabd4a] - - added finnish translations (thanks to Rolf Ahrenberg) - - - * [66b69f42817e74e9b4cd30c39ba5beaa31ebf1b2] - - fixed missing include - - - * [450c8fd4a7ec7eb878abfce0e4a499e03762b4f8] - - added TS compatibility mode - - - * [3eec47314d70d513b494750312a877f29d070eb8] - - deleting whole block instead of fractions now - - - * [32c1bf7c8be08c6016e7e9820c69baa31e38aba2] - - fixed wrong remux usage - - - * [1447427bdf8657e60144f142135c4157c1834ec8] - - added finnish translations (thanks to Rolf Ahrenberg) - - - * [4f85a010cdd1a67078824eb2412e072b3a6539e4] - - next try :-) (locking problem) - - - * [11dd989dfba4bd46548f9ce1e9577384f5040907] - - protected cStreamer::Stop() from being called concurrently - - - * [c18ebf91586cfa7c0407f349939b298e24432cb5] - - some compilers complained about missing declarations, added - - - * [30b7dfd5db791d41291eac0e9d3829df3d9dde71] - - removed assembler and thus saving one ringbuffer - - fixed destruction order on channel switch (fixes one crash that happens - occasionally when switching) - - - * [e2d58e6c2c159460be257a61f87ddad6fbd2c0ba] - - removed menu code temporarily - - - * [183de0e401637f73a4f8afd10e38cb3f17a6a0f3] - - streamer now gets stopped when connection terminates unexpectedly - - fixed recursive delete in streamer - - - * [3aa01282662a5907cc283a151bba8a939672a065] - - fixed pure virtual crash in server - - - * [523779f9aa17796b3a6c8d6a40a63efdf289e0ec] - - missing - - - * [4cc684e530bef5fcee8d4cb31dd610410dfdc9e0] - - blargh - - - * [ad70fe8c64d1acdec15db886f91676b86f5f7bd4] - - transfer - - - * [ab8f0c75f39b57cd1e28545259fb08bb7b4925b3] - - implemented audio track selection for http - - - * [c1cb77c3f8c7c0b3469e1d110f4e9a96bac16178] - - transfer - - - * [78b9b7c6ba30158f97a9f6c34a16ac3047d5f4e3] - - transfer - - - * [b2b925d1a933c9129eb84699e9893d80e7e9534d] - - transfer - - - * [0132230de0a894c4bf40dced2b82ea60546b9a61] - - transfer - - - * [916ed238bca58539835c4ee769ce8ddd9f5456d7] - - transfer - - - * [948893b25ec347b80f4b4c1f35a4356b31df6f18] - - transfer - - - * [5e7ea6f49cc6d2493f5b56c172319f6c49e16381] - - transfer - - - * [8e4556b0a982dab75d8ba3bb388965ecf47fa0b0] - - first adoptions (transfer-commit) - - - * [04a5985dcc0a24a1ff7b8debd5e88d4de46bb989] - - updated to 1.3.19 - - - * [302fa2e67276bd0674e81e2a9a01b9e91dd45d8c] - Initial revision + * [fc52e920ad7115b7b4ec80dc7e2b8784aa8bf281] + use cReceiver::SetPriority(...) in VDR 2.1.4+ - -- Andrey Pavlenko Wed, 30 Sep 2015 19:54:20 +0300 + -- Andrey Pavlenko Tue, 10 Nov 2015 02:01:33 +0300 diff -Nru vdr-plugin-streamdev-0.6.1-580~84c6f6b/HISTORY vdr-plugin-streamdev-0.6.1-580~d66c635/HISTORY --- vdr-plugin-streamdev-0.6.1-580~84c6f6b/HISTORY 2015-03-13 16:04:10.000000000 +0000 +++ vdr-plugin-streamdev-0.6.1-580~d66c635/HISTORY 2015-11-09 23:01:26.000000000 +0000 @@ -1,6 +1,8 @@ VDR Plugin 'streamdev' Revision History --------------------------------------- +- client compatibility with VDR 2.3.1 +- use cReceiver::SetPriority(...) in VDR 2.1.4+ - doubled size of client's filter buffer (suggested by Toerless Eckert) - make sure TimedWrite(...) doesn't return failure after a slow but successful write operation (thanks to Toerless Eckert) diff -Nru vdr-plugin-streamdev-0.6.1-580~84c6f6b/server/livestreamer.c vdr-plugin-streamdev-0.6.1-580~d66c635/server/livestreamer.c --- vdr-plugin-streamdev-0.6.1-580~84c6f6b/server/livestreamer.c 2015-03-13 16:04:10.000000000 +0000 +++ vdr-plugin-streamdev-0.6.1-580~d66c635/server/livestreamer.c 2015-11-09 23:01:26.000000000 +0000 @@ -443,7 +443,13 @@ void cStreamdevLiveStreamer::SetPriority(int Priority) { m_Priority = Priority; - StartReceiver(); +#if VDRVERSNUM >= 20104 + cThreadLock ThreadLock(m_Device); + if (m_Receiver) + m_Receiver->SetPriority(Priority); + else +#endif + StartReceiver(); } void cStreamdevLiveStreamer::GetSignal(int *DevNum, int *Strength, int *Quality) const