[mythtv-firehose] mythtv/master commit: bff85941c by Mark Kendall (mark-kendall)

MythTV noreply at mythtv.org
Sun Jun 5 11:59:36 UTC 2011


      Author:  Mark Kendall <mkendall at mythtv.org>
 Change Date:  2011-06-05T04:59:16-07:00
   Push Date:  2011/06/05 04:59:29 -0700
  Repository:  mythtv
      Branch:  master
New Revision:  bff85941ca0a0d09c2ea8365dcf097eedb735d15
   Changeset:  https://github.com/MythTV/mythtv/commit/bff85941c

Log:

RingBuffer: Make the buffer size dynamic.

- convert the buffer size to a member variable that can be adjusted mid-
- add buffer sizing factors that increase the size of the buffer for
networked playback, matroska streams and streams with an unknown video
bitrate.
- set the matroska and unknown bitrate flags when scanning the streams
in AvFormatDecoder.

RingBuffer behaviour is unchanged for playback of local files and for
RingBuffers operating on backends; the default 4Mb is ample for fast,
local disk access.

For networked playback, the 4Mb is doubled and doubled again for both
matroska files and files of an unknown bitrate - and hence the maximum
networked buffer size (in the frontend) is 32Mb. This is sufficient to
playback the now infamous galactica clip over an 18Mps wifi connection
with minimal pauses (and there are a couple of additional tweaks that
will remove those pauses altogether).

The specific triggers and multipliers used are a little contrived to fix
the worst case scenarios we have now (in many cases the buffer size will
be much larger than needed - improvements are more than welcome) but the
increase in buffer size for networked playback is probably long overdue.

Modified:

   mythtv/libs/libmythtv/avformatdecoder.cpp
   mythtv/libs/libmythtv/fileringbuffer.cpp
   mythtv/libs/libmythtv/ringbuffer.cpp
   mythtv/libs/libmythtv/ringbuffer.h



More information about the mythtv-firehose mailing list