[mythtv] dvb zero length record

Tj NG htpc at treblid.dyndns.org
Sat May 28 07:10:00 UTC 2005


Tj NG wrote:

> In the meantime, I have turned on SIPARSER and thus have to wait for 
> perhaps a few more hours for another failed recording to find out how 
> SIParser works.....

This patch should fix the problem where you get a 0 byte recording & the 
following mythbackend log messages:
---
Status: LOCK
...
Timeout waiting for PMT
...
No data from card in 1 second
No data from card in 1 second
---
If you still get the above mythbackend messages after applying this 
patch, please edit the file dvbchannel.cpp, go to line 810 and change 
the "3000" to some larger number (maybe change it to TUNER_INTERVAL? ).. 
I've run this patch for around 6 hrs now with 3000 and it  seems to work 
fine for me, recordings that in theory should fail previously are now 
recorded properly. Please tell me if this works for you, thanks.


-------------- next part --------------
Index: libs/libmythtv/dvbchannel.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/dvbchannel.cpp,v
retrieving revision 1.35
diff -u -r1.35 dvbchannel.cpp
--- libs/libmythtv/dvbchannel.cpp	27 May 2005 14:45:45 -0000	1.35
+++ libs/libmythtv/dvbchannel.cpp	28 May 2005 06:01:11 -0000
@@ -884,10 +884,11 @@
             /* Stop the SIParser.  It will be resumed as soon as a lock is
                obtained.  For DVB-C/T/S with no Dish Movement it could be
                immediatly started */
-            siparser->Reset();
-
             if (havetuned == false)
             {
+                siparser->Reset();
                 /* Start the SIParser back now that a lock has been obtained */
                 if (channel.sistandard == "atsc")
                     siparser->FillPMap(SI_STANDARD_ATSC);
@@ -929,6 +930,9 @@
             {
                 status += "LOCK.";
                 GENERAL(status);
+                siparser->Reset();
                 /* Start the SIParser back now that a lock has been obtained */
                 if (channel.sistandard == "atsc")
                     siparser->FillPMap(SI_STANDARD_ATSC);




More information about the mythtv-dev mailing list