[mythtv] [Experimental Patch] HDTV Recorder patch updated

Daniel Thor Kristjansson danielk at mrl.nyu.edu
Fri Sep 24 16:49:31 EDT 2004


The patch is available at
  http://www.mrl.nyu.edu/~danielk/mythtv/

I spent some time on the HDTV Recorder patch. I renamed most of the
method names to begin with a capital letter to match the MythTV style.
I'm still using C++ style casts, and K&R bracketing in many places, so
it's not quite MythTV style compliant yet.

Functionally, I've eliminated the TSPacketProcessor class and moved it's
methods to the [ATSC,MPEG]StreamData and HDTVRecorder classes as
appropriate. This should make DVB integration a little easier. I've also
rewritten TSPacket to be castable from the Transport Stream buffer, and
I've rejigged the PESPacket and PSIPTable classes so that memory
allocation is simpler to track. This made it possible for me to
use Valgrind to eliminate memory leaks that some earlier versions of my
PSIP parser suffered from.

By default the base_pid rewriting is disabled, which means this will
patch breaks "Live TV". You can re-enable the hack via a define in
"tspacket.h". But I'd like to fix the bug in ffmpeg that forces us to
use this hack. Both because it's ugly and because it makes it impossible
to use ATSC tables without additional hacks.

I've included a copy of my settings.pro for this patch, the only thing
you need is the "DEFINES += L2_CACHE_SIZE_KB=512" line, which is used to
set the buffer size in HDTVRecorder. The buffer is set to half the cache
size, minus a little. The idea is to keep as much of our stream data in
the cache while not tossing the rest of our working set out of the cache.
So if you have a 256kb cache or a 1024kb or 2048kb cache, set this to
that value. For me this keeps recorder CPU below 1% while not destroying
the performance of mythfrontend.

-- Daniel


More information about the mythtv-dev mailing list