Opened 14 years ago

Closed 14 years ago

#755 closed patch (fixed)

add handling of current/next program EIT information

Reported by: mythdev@… Owned by: danielk
Priority: minor Milestone: unknown
Component: mythtv Version: head
Severity: low Keywords: now/next
Cc: Ticket locked: no

Description

UK freeview uses the 4E/4F pid's for current/next program details. The current EIT scan ignores these - however they often seem to include last minute schedule changes. The patch below is all that seems to be needed to use them on dvb-t (only tested against ttusb-dec and bt8xx)

Index: mythtv/libs/libmythtv/siparser.cpp
===================================================================
--- mythtv/libs/libmythtv/siparser.cpp  (revision 8106)
+++ mythtv/libs/libmythtv/siparser.cpp  (working copy)
@@ -573,6 +573,7 @@
             ParseSDT(&head, &buffer[8], size-8);
             break;
 #ifdef USING_DVB_EIT
+        case 0x4E ... 0x4F:
         case 0x50 ... 0x6F:
             /* Standard Future Event Information Table(s) */
             ParseDVBEIT(&head, &buffer[8], size-8);
@@ -1293,7 +1294,8 @@

     // TODO: This is temp
     Table[EVENTS]->DependencyMet(SERVICES);
-    Table[EVENTS]->AddPid(0x12,0x00,0x00,true);
+    Table[EVENTS]->AddPid(0x12,0x7F,0x80,true);
+
 }

 /** \fn GetLanguagePriority(const QString&)

In looking at this I guessed that either the AddPid? has been assumed to be against DVB/SIParser or there has been a change in the definition of TableHandler::AddPid? that means the last changed line above seems to be logicaly incorrect, or I've misread the overrides! :) - the prototypes at svn 8106 are

EventHandler
void AddPid(uint16_t pid,uint8_t filter, uint8_t mask, uint8_t key);
TableHandler
virtual void AddPid(uint16_t pid,uint8_t filter, uint8_t mask, uint8_t key = 0)

where key is used as an index into a QMap of added pid's It doesn't affect the current functionality but to help any later maintenance should the last line of the change be something like:

+    Table[EVENTS]->AddPid(0x12,0x7F,0x80,0x12);

Attachments (2)

nownext.patch (694 bytes) - added by daniel.chassot@… 14 years ago.
patch to get now/next info working without long term EIT available
now_next.patch (789 bytes) - added by reidjr 14 years ago.
clean svn diff against #8386

Download all attachments as: .zip

Change History (6)

comment:1 Changed 14 years ago by danielk

Milestone: 0.19unknown

comment:2 Changed 14 years ago by danielk

Resolution: fixed
Status: newclosed

(In [8239]) Close #755 by applying patch + comments

John Pullan confirmed that the current/next EIT tables were only left out because they wasn't considered useful at the time; but it now appears that they would be useful, at least in Australia.

The other change looks harmless and is technically more correct than the current code.

Changed 14 years ago by daniel.chassot@…

Attachment: nownext.patch added

patch to get now/next info working without long term EIT available

comment:3 Changed 14 years ago by daniel.chassot@…

Keywords: now/next added
Resolution: fixed
Status: closedreopened
Type: enhancementpatch

To get now next info working, I had to modify the ParseSDT routine in siparser.cpp to set EITPresent when either EIT_schedule_flag or EIT_present_following_flag is set.

This is needed when provider is not sending long term EIT info at all.

Changed 14 years ago by reidjr

Attachment: now_next.patch added

clean svn diff against #8386

comment:4 Changed 14 years ago by danielk

Resolution: fixed
Status: reopenedclosed

(In [8409]) Closes #755 by applying a modified patch.

This enables EIT if either the present_following or the schedule flag is present in DVB countries. Before it only parsed the EITs if the EIT schedule flag was present (or an override was used).

Note: See TracTickets for help on using tickets.