diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2004-10-16 09:36:28 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2004-10-16 09:36:28 +0200 |
commit | 6415cc900de3361925d22f879077be687fce3858 (patch) | |
tree | 98ab10cda016e125e33966e371ccfe01e5fd9bd1 /HISTORY | |
parent | 15030f6acece1060f9736f875fe3abbcf9392263 (diff) | |
download | vdr-6415cc900de3361925d22f879077be687fce3858.tar.gz vdr-6415cc900de3361925d22f879077be687fce3858.tar.bz2 |
Improved buffer handling
Diffstat (limited to 'HISTORY')
-rw-r--r-- | HISTORY | 32 |
1 files changed, 31 insertions, 1 deletions
@@ -2967,7 +2967,7 @@ Video Disk Recorder Revision History - The 'radio' channel icon is now only displayed in the ST:TNG skin if the channel actually has an APID. -2004-08-08: Version 1.3.13 +2004-10-16: Version 1.3.13 - Fixed checking for the presence of NPTL (thanks to Jouni Karvo). - Making sure section filters are only set if the device actually has a lock @@ -2976,3 +2976,33 @@ Video Disk Recorder Revision History Marco Schlüssler). - Fixed a crash in case the last line in channels.conf is a group separator and that group is selected in the channel display (thanks to Dick Streefland). +- Added cRingBufferLinear::Read() to read directly from a file handle into the + ring buffer. +- Using timeouts in ring buffers to avoid 'usleep()'. +- Clearing the 'Transfer Mode' ring buffer after clearing the device to avoid + an "almost full" ring buffer. +- Removed locking from cRingBufferLinear for better performance under high load. +- Using a cRingBufferLinear in cRemux to avoid unnecessary copying of data. +- Using a cRingBufferLinear in cTSBuffer and filling it in a separate thread + to avoid buffer overflows. Plugins using cTSBuffer will need to remove the + call to the now obsolete Read() function (see cDvbDevice::GetTSPacket() for + the new usage of cTSBuffer). +- cRemux::Process() has been split into Put(), Get() and Del() to allow for a + better decoupling of the remuxing and disk writing process. Plugins using + cRemux will need to be modified accordingly. +- The actual disk writing in recordings is now done in a separate thread to + improve the overall throughput. +- Changed cRemux so that it returns the maximum available amount of data with + each call, not just 2048 byte. +- Added a visual display of all cRingBufferLinear buffers for debugging. To + activate it, define DEBUGRINGBUFFERS in ringbuffer.h. +- Instead of cCondVar now using the new cCondWait (which also avoids a possible + "near miss" condition; thanks to Sascha Volkenandt for pointing out this one). + cCondVar is still present for plugins that use it (and VDR itself also still + uses it in cRemote). +- The cRingBuffer now does EnableGet()/EnablePut() only if the buffer is more than + one third full or empty, respectively. This dramatically improves recording + performance and reduces system load (thanks to Marco Schlüßler for doing some + testing regarding buffer performance and giving me some hints that finally led + to finding out that this was the basic problem causing buffer overflows). +- Improved Transfer Mode (thanks to Marco Schlüßler for suggestions and testing). |