[mythtv] skippy video on I/O bound machine

John Coiner mythtv-dev@snowman.net
Sun, 27 Oct 2002 16:56:57 -0500


The NuppelVideoRecorder maintains a buffer of 40 frames. One thread 
copies frames from the capture device into this buffer; another thread 
empties the buffer by compressing each frame and storing it to the disk.

The second thread will skip the compression step if the buffer is 
getting full. On a CPU bound machine, this helps to empty the buffer 
faster. However, on an I/O bound machine, this makes the situation much 
worse, b/c more data must be stored (and later retrieved by the play 
thread).

On my machine, it doesn't get into non-compressing mode very often -- 
it's something like 1% of frames that don't get compressed. However, 
sometimes (maybe due to another process accessing the disk heavily) it 
gets into a mode where a bunch of frames in a row aren't compressed, and 
then the machine really becomes I/O bound. The buffer never empties, all 
following frames are not compressed, and everything goes very slow.

What is the best way to handle this? There could be a setting like 
"SlowIO=1" for those of us with older, lousier hard disks, that would 
force the recorder to always compress. Alternatively, we could remove 
the non-compressing mode altogether.

Let me know if the 'SlowIO' setting sounds good and I can add it. thanks.

- john