mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Improved buffer handling
This commit is contained in:
32
HISTORY
32
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<68>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<68><6C>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<68><6C>ler for suggestions and testing).
|
||||
|
Reference in New Issue
Block a user