﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	mlocked
11914	EIT/EPG improvements for DVB-C	klaas.de.waal@…	Stuart Auchterlonie	"The EPG of MythTV is not correct for the DVB-C signal from provider Ziggo in The Netherlands.

The EIT/EPG data from the DVB-C signal is like this:
- There is a EPG data for up to 3 or 4 days ahead
- If there is no program data yet there are dummy program entries with the title ""Zender verstrekt geen informatie"" (""Broadcaster does not provide information"") or with other titles that convey a similar message.
- For 1 to 3 days ahead there are program entries with title/starttime/endtime.
- For 1 day ahead, at least 24 hours, all program entries have also a subtitle and a description.

Processing the received EIT entries and updating the EPG is implemented in libs/libmythtv/programdata.cpp.
In this implementation each new entry is compared with what is already in the database and based on the result of the comparison the new entry can be:
- inserted in the database
- used to update an existing entry, complete or partially
- or completely discarded!
The result is that quite often the MythTV Guide shows for today the dummy entries that were broadcasted three days ago instead of the actual programs.

My TV does not have any EPG memory and only starts collecting EPG data after it is switched on. It always has a correct and complete EPG within 30 to 60 seconds.
This suggests to me that all comparisons and selective updating that is in the current implementation is not correct, at least not for my DVB-C signal.

I have greatly simplified the code in programdata.cpp so that it always accepts all new program entries and that it deletes everything in the database that conflicts with the new data.
With this code the MythTV EPG shows exactly the same programs as my TV.

The file programdata.cpp is attached.

In order to test this I have added a lot of debug output. This can be enabled like this:
$ mythbackend --loglevel debug -v eit.

The new log output looks like this:

{{{
2013-10-18 04:02:21.932963 D  EIT: update chanid 1008 2013-10-18T11:15:00Z 'Ranger dierenjournaal vanuit Emmen'
2013-10-18 04:02:21.936359 D  EIT: update chanid 1008 2013-10-18T11:20:00Z 'Ultimate Spider-man'
2013-10-18 04:02:21.939324 D  EIT: delete chanid 1901 2013-10-21T00:03:00Z 'Zender verstrekt geen informatie'
2013-10-18 04:02:21.941013 D  EIT: insert chanid 1901 2013-10-21T00:03:00Z 'NOS Tekst tv'
2013-10-18 04:02:21.954900 D  EIT: update chanid 1311 2013-10-18T12:31:00Z 'Doctor Cheezy'
2013-10-18 04:02:21.967634 D  EIT: update chanid 1311 2013-10-18T12:57:00Z 'SpangaS'
2013-10-18 04:02:22.380320 D  EIT: update chanid 1311 2013-10-18T13:17:00Z 'Het Klokhuis'

}}}
Note that I have only tested this with my local DVB-C signal.

N.B. The Ziggo DVB-C signal is also discussed in ticket #10136, although the subject of that ticket is the ""duplicate key entry"" messages caused by a bug in the current implementation of programdata.cpp.
"	Patch - Bug Fix	closed	minor	0.28	MythTV - EIT	0.27-fixes	medium	fixed	EIT EPG DVB-C Ziggo		0
