[mythtv] DEC 2000t and Mythtv - driver patches ex Peter Beutner

jd mythdev at penyball.cix.co.uk
Thu Dec 8 11:57:00 EST 2005

> Re: [mythtv] scanning and USB/Dec 2000 patches
> > Don't most of these "fixes" fall into the fix it in the driver
> > category ? 

As mr Pullan said! - for whoever is interested (apart from me I mean :) )  
there are now patches to the driver available agaimst 2.6.14, courtesy of 
Peter Beutner, that clear up all of the anomalous dec behaviour.  Peter is 
submitting these so they should eventually end up in the standard driver.

Wrt to myth the dec still needs a section reader as the driver doesn't 
support PES_OTHER filtering - though the test can now be simpler as a 
request to set a PES_OTHER filter now fails. Obviously I don't know if any 
of the other USB drivers will support a simpler test.

Basically with these driver patches the dec works quite happily with the 
current svn (ca 7897 to at least 8154) - for recording, livetv and 
scanning(using tuned full scans, simple full scan's seem to change the dec 
too frequently and it eventually gets upset)

The main patch is available at:

The following patch, (also from Peter), additional to the above is needed 
to ensure failure of PES_OTHER filtering is reported consistently to myth 
and hence that the section tracker gets invoked.

--- linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c.orig
+++ linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c
@@ -965,8 +965,8 @@ static int ttusb_dec_start_ts_feed(struc

        case DMX_TS_PES_TELETEXT:
                dec->pid[DMX_PES_TELETEXT] = dvbdmxfeed->pid;
-               dprintk("  pes_type: DMX_TS_PES_TELETEXT\n");
-               break;
+               dprintk("  pes_type: DMX_TS_PES_TELETEXT(not 
+               return -ENOSYS;

        case DMX_TS_PES_PCR:
                dprintk("  pes_type: DMX_TS_PES_PCR\n");
@@ -975,8 +975,8 @@ static int ttusb_dec_start_ts_feed(struc

        case DMX_TS_PES_OTHER:
-               dprintk("  pes_type: DMX_TS_PES_OTHER\n");
-               break;
+               dprintk("  pes_type: DMX_TS_PES_OTHER(not supported)\n");
+               return -ENOSYS;

                dprintk("  pes_type: unknown (%d)\n", 

Finally - if you want to use eit guide data with the dec then the mask and 
filter values need to be set in the eit pid setup - as follows - (this is 
a myth change but this time I think the dec is just about behaving as it 
should - the mask in the patch picks up all eit sections - you may want to 
cut out the 4E/4F current-next tables by changing the filter and mask eg 
+    Table[EVENTS]->AddPid(0x12,0x7D,0x82,true); 

Index: mythtv/libs/libmythtv/siparser.cpp
--- mythtv/libs/libmythtv/siparser.cpp  (revision 8142)
+++ mythtv/libs/libmythtv/siparser.cpp  (working copy)
@@ -1293,7 +1294,7 @@

     // TODO: This is temp
-    Table[EVENTS]->AddPid(0x12,0x00,0x00,true);
+    Table[EVENTS]->AddPid(0x12,0x7F,0x80,true);

 /** \fn GetLanguagePriority(const QString&)

More information about the mythtv-dev mailing list