[mythtv-commits] Ticket #4752: Add R5000 STB Support to MythTV

MythTV mythtv at cvs.mythtv.org
Fri Oct 17 13:23:10 UTC 2008


#4752: Add R5000 STB Support to MythTV
----------------------------------+-----------------------------------------
 Reporter:  alannisota at gmail.com  |        Owner:  danielk 
     Type:  enhancement           |       Status:  assigned
 Priority:  minor                 |    Milestone:  unknown 
Component:  mythtv                |      Version:  head    
 Severity:  medium                |   Resolution:          
  Mlocked:  0                     |  
----------------------------------+-----------------------------------------

Comment(by alannisota at gmail.com):

 I've offered to work on supporting the 6000 series boxes if someone has
 one with an R5k mod and can provide test streams and help with debug.  It
 shouldn't be too hard, though because the 6000 delivers PES rather than
 TS, synchronization will take longer.  Apparently BEV is going to the 9242
 which should already work, or the 6141 which is not yet supported by R5k,
 but when it is, will likely work with the existing code (my understanding
 is that the 6141== vip211k, which is nearly identical inside to the
 vip211)

 If you are having issues compiling the code, it would be helpful to supply
 the errors.  It compiles just fine on Ubuntu 8.04.

 The only changes I've made vs patch r11 are the following to prevent a
 segfault:
 {{{
 Index: libs/libmythtv/r5000/libusb_augment.c
 ===================================================================
 --- libs/libmythtv/r5000/libusb_augment.c.orig  2008-10-17
 06:19:51.000000000 -0700
 +++ libs/libmythtv/r5000/libusb_augment.c       2008-10-17
 06:19:34.000000000 -0700
 @@ -264,7 +264,7 @@
  int usb_urb_reap(usb_dev_handle *dev,     // Open usb device handle.
                   struct usbdevfs_urb *iso_urb,        // Pointer to URB.
                   int timeout) {           // Attempt timeout (usec).
 -  void *context;
 +  void *context = NULL;
    int ret;
    struct pollfd ufd[1];

 @@ -297,7 +297,7 @@
    //fprintf(stderr, "error count: %d\n", iso_urb->error_count);

    //fprintf(stderr, "waiting done\n");
 -  if(iso_urb != context) {
 +  if(context != NULL && iso_urb != context) {
      fprintf(stderr, "Expected urb: %p but got %p\n", iso_urb, context);
      return -1;
    }
 Index: libs/libmythtv/r5000/r5k_misc.c
 ===================================================================
 --- libs/libmythtv/r5000/r5k_misc.c.orig        2008-10-17
 06:19:51.000000000 -0700
 +++ libs/libmythtv/r5000/r5k_misc.c     2008-10-17 06:19:34.000000000
 -0700
 @@ -134,7 +134,7 @@
    }
    ts[7] = (ptr - ts) - 8/*header*/ + 4/*CRC*/;
    r5000_calc_crc(ptr, ts + 5, (ptr - ts) - 5);
 -  memset(ptr+4, 0xff, 188 - (ptr - ts - 4));
 +  memset(ptr+4, 0xff, 188 - (ptr + 4 - ts));
    memcpy(r5kdev->pmt_pkt, ts, 188);
    //PRINTHEX("PMT", r5kdev->pmt_pkt, 188);
  }
 }}}
 I am currently working on trying to get more reliability with the vip211
 (commercial detection/ff don't work very well still)

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/4752#comment:22>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list