[mythtv] Freesat (UK)

David Matthews dm at prolingua.co.uk
Wed Mar 5 15:22:20 UTC 2008


John wrote:
> Very Interested. Glad to see my evil plan of luring other people into 
> working on it was successful ;-)
> 
> Could you post a diff of what you did to play around ? Like to see  it 
> for myself. My interest is in ending up with matching programme info for 
> my freeview and freesat sources, as at the moment I want to use the 
> programmeid/seriesID stuff to check for repeats, but there is no easy 
> way to share the freeview eit info over to the matching freesat 
> channels. If they end up effectively simulcasting so that freeview eit = 
> freesat eit, then all the issues of scheduling between sources 
> dissapear. :-)

Just at the moment the TV-Anytime CRIDs seem to be fictitious so it's 
not going to be very helpful.  However when the EPG comes live it looks 
as though it will do what you want.  I think it's very likely that the 
Freesat and Freeview EPGs will be close or identical since they're going 
to be derived from the same database.  There'll be a need for a patch to 
apply the UK EIT fixup to the Freesat EIT as well as Freeview but it 
makes sense to leave that until everything settles down.

I'm including the diff below.  I hope it will be readable enough 
although you may need to correct for line breaks in the wrong place. 
Since this is only temporary it's not appropriate to create a ticket. 
If you already have schedule data from, e.g. Radio Times, you may not 
want to try this because it could well overwrite the data you have.  I 
think the information is on various BBC transponders. I use 10802750 
horizontal.

I've also been testing some updates to the MHEG code to take account of 
the additional features that are used in the current Freesat interactive 
tests.  I thought I'd wait until the current release is out of the way 
before creating a ticket and also incorporate any changes that are 
needed once a fuller interactive service starts to appear.

David.

Index: libs/libmythtv/mpeg/dvbstreamdata.cpp
===================================================================
--- libs/libmythtv/mpeg/dvbstreamdata.cpp       (revision 16387)
+++ libs/libmythtv/mpeg/dvbstreamdata.cpp       (working copy)
@@ -97,7 +97,7 @@
          return false;

      bool is_eit = false;
-    if (DVB_EIT_PID == pid)
+    if (DVB_EIT_PID == pid || 3842 == pid)
      {
          // Standard Now/Next Event Information Tables for this transport
          is_eit |= TableID::PF_EIT  == table_id;
@@ -130,7 +130,7 @@
          return SDToSectionSeen(psip.TableIDExtension(), psip.Section());
      }

-    if (DVB_EIT_PID == pid)
+    if (DVB_EIT_PID == pid || 3842 == pid)
      {
          // Standard Now/Next Event Information Tables for other transport
          is_eit |= TableID::PF_EITo == table_id;
@@ -327,7 +327,7 @@
          }
      }

-    if ((DVB_EIT_PID == pid || DVB_DNLONG_EIT_PID == pid) &&
+    if ((DVB_EIT_PID == pid || DVB_DNLONG_EIT_PID == pid || 3842 == pid) &&
          DVBEventInformationTable::IsEIT(psip.TableID()))
      {
          QMutexLocker locker(&_listener_lock);
@@ -428,6 +428,12 @@
          {
              add_pids.push_back(PREMIERE_EIT_SPORT_PID);
          }
+
+        if (find(cur_pids.begin(), cur_pids.end(),
+                 (uint) 3842) == cur_pids.end())
+        {
+            add_pids.push_back(3842);
+        }
      }
      else
      {
@@ -457,6 +463,12 @@
          {
              del_pids.push_back(PREMIERE_EIT_SPORT_PID);
          }
+
+        if (find(cur_pids.begin(), cur_pids.end(),
+                 (uint) 3842) == cur_pids.end())
+        {
+            del_pids.push_back(3842);
+        }
      }

      return add_pids.size() || del_pids.size();


More information about the mythtv-dev mailing list