summaryrefslogtreecommitdiff
path: root/HISTORY
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2004-10-16 09:36:28 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2004-10-16 09:36:28 +0200
commit6415cc900de3361925d22f879077be687fce3858 (patch)
tree98ab10cda016e125e33966e371ccfe01e5fd9bd1 /HISTORY
parent15030f6acece1060f9736f875fe3abbcf9392263 (diff)
downloadvdr-6415cc900de3361925d22f879077be687fce3858.tar.gz
vdr-6415cc900de3361925d22f879077be687fce3858.tar.bz2
Improved buffer handling
Diffstat (limited to 'HISTORY')
-rw-r--r--HISTORY32
1 files changed, 31 insertions, 1 deletions
diff --git a/HISTORY b/HISTORY
index 1b533929..b0b71be5 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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).