[mythtv] Current DVB problems rundown

Stuart Auchterlonie stuarta at squashedfrog.net
Tue Sep 13 09:29:45 UTC 2005


On Sun, Sep 11, 2005 at 06:46:20PM +0100, Mark Weaver wrote:
> Daniel Kristjansson wrote:
> >On Sun, 2005-09-11 at 02:36 +0100, Mark Weaver wrote:
> >
> >>- Tuning to an off air channel (UK, transmitting data only) causes the 
> >>frontend to lock up
> >
> >Backend log with '-v record,siparser,channel' might help, this should
> >have been fixed 2-3 weeks ago when we turned on table monitoring for
> >DVB.
> >
> >
> Here you go.  Where the ... is the dummy recorder just carries on 
> forever (even if the frontend is killed).


This bit of the log

 Stream #0 pid(0x28a) type(unknown  0x11)
     Stream Identifier Descriptor (0x52) length(1)
 Stream #1 pid(0x28b) type(unknown  0x11)
     Stream Identifier Descriptor (0x52) length(1)
 Stream #2 pid(0x28c) type(unknown  0x11)
     Stream Identifier Descriptor (0x52) length(1)
 Stream #3 pid(0x3f3) type(unknown  0x11)
     Stream Identifier Descriptor (0x52) length(1)
 Stream #4 pid(0x3f4) type(unknown  0x11)
     Stream Identifier Descriptor (0x52) length(1)
     Unknown Descriptor (0x13) length(5)
     Data Broadcast Identifier Descriptor (0x66) length(13)

Shows that the only thing left being broadcast on this channel is
the dsmcc object carousel data (ie. Interactive TV, or in this case
probably a screen saying the channel is off air).

I have a patch which adds the identification of these streams
to mpegtables which I will attach....


Stuart

-------------- next part --------------
Index: dsmcc/libs/libmythtv/mpeg/mpegtables.h
===================================================================
--- dsmcc.orig/libs/libmythtv/mpeg/mpegtables.h	2005-09-07 21:52:13.000000000 +0100
+++ dsmcc/libs/libmythtv/mpeg/mpegtables.h	2005-09-09 13:59:14.000000000 +0100
@@ -45,6 +45,12 @@
         PrivSec        = 0x05,
         PrivData       = 0x06,
 
+        // DSM-CC Object Carousel
+        DSMCC_A        = 0x0A,      // Multi-protocol Encapsulation
+        DSMCC_B        = 0x0B,      // Std DSMCC Data
+        DSMCC_C        = 0x0C,      // NPT DSMCC Data
+        DSMCC_D        = 0x0D,      // Any DSMCC Data
+
         // special id's, not actually ID's but can be used in FindPIDs
         AnyMask        = 0xFFFF0000,
         AnyVideo       = 0xFFFF0001,
@@ -68,6 +74,14 @@
                 (StreamID::AC3Audio   == type) ||
                 (StreamID::DTSAudio   == type));
     }
+    /// Returns true iff stream contains DSMCC Object Carousel
+    static bool IsObjectCarousel(uint type)
+    {
+        return ((StreamID::DSMCC_A == type) ||
+                (StreamID::DSMCC_B == type) ||
+                (StreamID::DSMCC_C == type) ||
+                (StreamID::DSMCC_D == type));
+    }
 };
 
 enum
Index: dsmcc/libs/libmythtv/mpeg/mpegtables.cpp
===================================================================
--- dsmcc.orig/libs/libmythtv/mpeg/mpegtables.cpp	2005-09-07 21:52:13.000000000 +0100
+++ dsmcc/libs/libmythtv/mpeg/mpegtables.cpp	2005-09-09 13:59:14.000000000 +0100
@@ -304,6 +304,8 @@
         return "audio-aac"; // EIT, PMT
     else if (StreamID::DTSAudio==streamID)
         return "audio-dts"; // EIT, PMT
+    else if (StreamID::IsObjectCarousel(streamID))
+        return "object carousel"; // DSMCC Object Carousel
     else switch (streamID) {
         case (TableID::STUFFING):
             retval="stuffing"; break; // optionally in any
@@ -326,4 +328,3 @@
 {
     return QString( nameStream(StreamType(i)) );
 }
-


More information about the mythtv-dev mailing list