[mythtv-commits] Ticket #321: DVB timeouts for tuning are not not long enough for USB connected tuners

MythTV mythtv at cvs.mythtv.org
Sun Sep 11 21:17:55 UTC 2005


#321: DVB timeouts for tuning are not not long enough for USB connected tuners
--------------------------------------+-------------------------------------
 Reporter:  malc at porsche,demon.co.uk  |       Owner:  ijr 
     Type:  defect                    |      Status:  new 
 Priority:  major                     |   Milestone:  0.19
Component:  mythtv                    |     Version:  head
 Severity:  medium                    |         Cc:                            |  
--------------------------------------+-------------------------------------
 Timeouts on USB ver 1 connected tuners (Nova-T USB2) are not long enough
 to allow PID capture. (25% hit rate on tuning, highly dependent on which
 MUX is chosen).

 (This can be proven by using dvb_scan -5 .. .extended timeout option,
 which works fine).

 I increased 2 hard coded timeouts as below, to fix the code. Also tried it
 with a PCI version of the tuner, which works fine, with no effect on the
 performance.

 Fix could be as below, increasing the hard coded timeouts, or as suggested
 in the comments, to add a database derived timeout value. Patch given
 below for basic timeout increase.


 From
 libs/libmythtv/dvbsignalmonitor.cpp

 -    int wait = 3000; // timeout when waiting on signal

 +    int wait = 20000; // timeout when waiting on signal



 libs/libmythtv/tv_rec.cpp

 -#define DVB_TABLE_WAIT 3000 /* msec */

 +#define DVB_TABLE_WAIT 15000 /* msec */


 {{{


 Index: libs/libmythtv/dvbsignalmonitor.cpp
 ===================================================================
 --- libs/libmythtv/dvbsignalmonitor.cpp (revision 7191)
 +++ libs/libmythtv/dvbsignalmonitor.cpp (working copy)
 @@ -31,7 +31,7 @@
   *  \brief Initializes signal lock and signal values.
   *
   *   Start() must be called to actually begin continuous
 - *   signal monitoring. The timeout is set to 3 seconds,
 +    signal monitoring. The timeout is set to 3 seconds, changed to 20secs
   *   and the signal threshold is initialized to 0%.
   *
   *  \param db_cardnum Recorder number to monitor,
 @@ -55,7 +55,7 @@
  {
      channel_dev = channel->GetDevice();
      // These two values should probably come from the database...
 -    int wait = 3000; // timeout when waiting on signal
 +    int wait = 20000; // timeout when waiting on signal
      int threshold = -32768; // signal strength threshold in %

      signalLock.SetTimeout(wait);
 Index: libs/libmythtv/tv_rec.cpp
 ===================================================================
 --- libs/libmythtv/tv_rec.cpp   (revision 7191)
 +++ libs/libmythtv/tv_rec.cpp   (working copy)
 @@ -65,7 +65,7 @@
  #include "dbox2channel.h"
  #endif

 -#define DVB_TABLE_WAIT 3000 /* msec */
 +#define DVB_TABLE_WAIT 15000 /* msec */

  const int TVRec::kRequestBufferSize = 256*1000;


 }}}

-- 
Ticket URL: <http://cvs.mythtv.org/trac/ticket/321>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list