[mythtv] PCHDTV + DVB Integration / DTVRecorder RingBuffer
rtjacob at earthlink.net
Sun Jan 2 15:22:47 EST 2005
The most recent patches to dtvrecorder.cpp contain John Poets ringbuffer that is
necessary only for the PCHDTV and serves no purpose for linux-dvb supported
cards.. The ringbuffer also hangs the backend with my dvb-patch code.. This has
been reported by more than 1 person.. Can this be backed out of dtvrecorder and
placed where it belongs in hdtvrecorder?
The concept behind dtvrecorder was to combine all common code since both the
PCHDTV and linux-dvb cards process MpegTransport stream and had many things in
common.. GopMarking is one of the major parts I can think of right now.. Double
buffering is not..
Let me give some overview of how the codebases should be merged which I do not
see happening right now, and is resulting in conflicts like this..
The concept behind my dvb patchset is to create a database heiarachy that is
representative of ANY digital television / radio service.. The database used by
the PCHDTV is not anything like this, and has resulted in code like the DD
Virtual Channel Number patches that I don't feel are a proper way to go about
things.. Recording of multiple channels running on the same mux is quite
difficult down the road with a database that is built around analog tv.. This
also complicates getting guide data over the air which for ATSC will be
mandated in 6 months when the broadcast flag kicks in since that is where it is
present at.. This DD patch also renumbers all of the channel numbers for the
Air2PC card if you attempt to use it with DD currently which is not necessary
I (as well as many others; Julian Scheel, Jesper Sorensen, and John Pullan
specificly) have spent a good deal of time trying to make Myth's digital
television support be as powerful as a top of the line PVR but also support
both ATSC and DVB.. Both DVB and ATSC provide service tables that should be
used to drive your setup configuration not something downloaded off the
internet.. I don't want to create enemies with this posting but I want to
point out what I feel needs to be done to integrate these 2 code bases and make
them work properly in harmony..
First and foremost the drivers that support the PCHDTV and the Linux-DVB cards
are completley differnet and have many different requirements.. The Extra
Ringbuffer for the pchdtv is useless for linux-dvb cards since linux-dvb
provides its own buffering.. So this ringbuffer needs to be places exclusivly
in hdtvrecorder.cpp not in the dtvrecorder.cpp base.. Once you go beyond
saving the TS to the ringbuffer the rest of the code is the same..
Secondly the PCHDTV card ought to use the database structure that I have setup
for the linux-dvb cards which works properly with ATSC as well as DVB in
harmony.. I also have a service table updating class that constantly monitors
all of the SI (DVB) or PSIP (ATSC) tables and keeps all the tuning information
up to date.. This also helps reduce the number of "bad channel hangs" that are
common to both the DVB codebase and HDTV codebase..
I feel right now the two groups (PCHDTV and DVB) are going in seperate
directions.. We need to be more organized if we are going to integrate this
code properly.. I know it is more difficult to deal with the dvb-patch since it
is not in myth-cvs now but if any of you PCHDTV developers would like read
access to the cvs that houses the dvb-patch please let me know and I will be
glad to provide this to you so we can move twoard integration..
More information about the mythtv-dev