[mythtv] Trunk EIT problems with overlapping programs

Otto Kolsi otto at kolsi.fi
Mon Jan 12 19:14:22 UTC 2009


I've been having problems with DVB-T EIT in Finland since moving from 
-fixes to trunk. I've tried to debug it but haven't got into any real 
conclusion.. and now I'd like to sum my findings and ask if anyone could 
give further info or help on this. This could be related to broadcasting 
company's EIT data and is not necessarily related to -fixes to trunk update.

Setup is simple, 10 channels and all are coming from the one EIT source. 
Problem is visible with couple of channels (YLE TV1, YLE TV2, YLE Teema) 
and it is related to overlapping programs.

Here's an example. EIT has data for program B, DB is checked for 
overlapping programs and one overlap (program A) is found (2sec overlap):
A: Jan 12 22:05:19 2009 - Jan 12 22:50:02 2009, Raja - the Border
B: Jan 12 22:50:00 2009 - Jan 12 23:34:58 2009, Hädän hetkellä

I don't go through the exact code path, but the end result is that 
there's only 1 overlapping program and match -value is so great that we 
go into UpdateDB() where program B info is first updated with selective 
values from the overlapping program A and then the data is updated to DB.

UpdateDB() code checks if title, description etc. lengths are greater in 
match/overlapping program and then uses the data which is longer. This 
sounds very very strange to me (there is probably use case that I don't 
know of).

What happens in above case is that match title (prog A) is longer and 
thus it is used. But then the description is shorter so it is not used. 
End result is that we have data in DB with title A and description B.

In my case, what would be needed is just some kind of detection that 
programs have couple of seconds overlap and then a way to cut one 
endtime little bit shorter. Updating values (title, desc., ...) based on 
the length is not right.

Can anyone help me with this one? Early in debugging I was able to "fix" 
the data so that I searched these overlapping endtimes and shortened 
those in eit.cpp. Also I could brake random program just by adding 5sec 
extension to its endtime. So this kind of situation should be possible 
to reproduce by anyone.
--
  Otto


More information about the mythtv-dev mailing list