EPG (TV-Guide) data-store code development discussion for the unified PVR front-end - Printable Version
+- XBMC Community Forum (http://forum.xbmc.org)
+-- Forum: Development (/forumdisplay.php?fid=32)
+--- Forum: Development (/forumdisplay.php?fid=93)
+--- Thread: EPG (TV-Guide) data-store code development discussion for the unified PVR front-end (/showthread.php?tid=32212)
- the_alien - 2008-09-02 23:24
Gamester17 Wrote:XMLTV formated listings.xml for input from the client and a own epg.db SQL database for the storage does sounds logical.
Had a discussion with alcoheca about handling the epg data on the xbmc side.
As how it is intended to be right now I see a problem on how to synchronize the epg from the client and the pvr.
I see 3 options:
1. The server knows which data has been inserted or been replaced in the latest update and offers the delta.
2. The client only updates everything that has been inserted after the last day it knows. Thinking about changes in the epg data this is a bad option.
3. The client doesn't permanently stores all epg data and just receives them on demand from the server. Thinking of filtering and searching the libcmyth isn't really capable of doing this. So there have to be changes made to the lib, which can't be to bad, since it just queries the mythtv mysql db.
If we store all epg data and don't want option 2, because changes in the epg wouldn't be recognized and the server doesn't offers option 1... we have to receive a full epg update, which can be timecritical in my opinion.
Feel free to discuss the problem
- mgbouma - 2008-09-03 08:16
Why not talk to some of the dreambox developers (pli). They are dealing with the same issues. I really like the way they handle epg data and the way they show the zaplist.
I know that pli also works with a sqlite database for the epg data.
- alcoheca - 2008-09-03 11:06
mgbouma Wrote:I really like the way they handle epg data and the way they show the zaplist.hi mgbouma,
What is it that you like in the way they handle EPG data? From the PLi wiki I've read they chose SQLite as a means to store more than 2 days of data with the limited resources (RAM) of the dreamboxen. (Not exactly the same issues the_alien is raising).
- dteirney - 2008-09-03 13:17
MythTV updates it's own TV schedule each time the XMLTV feed is given to it.
For my system I have a cron job that obtains the latest XMLTV file containing 7-8 days worth of data from the internet. This job then uses the native mythfilldatabase command line tool, which does the magic to make sure the TV schedule is up-to-date in the database.
Would seem silly to have XBMC try and do the same sort of thing. As long as the EPG in XBMC matches what I'd see in Myth TV in terms of the schedule I'd call the solution a success.
Is there anyway to have XBMC simply copy the entire content of the Myth TV schedule every now and then (perhaps once a day at a given time to coincide with what most people are likely doing for the backend)?
EIT data feeds for the programs are more timely and can change the timings more frequently but I don't have much experience with this.
- alcoheca - 2008-09-03 14:15
dteirney Wrote:MythTV updates it's own TV schedule each time the XMLTV feed is given to it.You mean like it's doing at the moment? I'm not sure you've understood what's being suggested.
dteirney Wrote:EIT data feeds for the programs are more timely and can change the timings more frequently but I don't have much experience with this.We're talking about much more frequent updates: e.g. in the case where the PVR backend is following changes to the EPG via the Running Status Table (taken from the EIT) and is updating start/end times of programs that are due to start very soon. Few PVR backends support this, and even fewer broadcasters actually send useful data in the RST currently but there's good sense in supporting this from the outset.
- mgbouma - 2008-09-03 14:57
What I ment was that during channel selection from the list you see the epg data for the current show. You also see a bar showing if the show has just started or is nearly finished. If you select a channel you will see the now/next data (short version) if you press the info button you will see all the info available in the now/next data.
The sql database was chosen to be able to simple fill the epg data with 3rd party programs.
I currently use my xbmc to connect to my dreambox. I also have an skystar card in my linux server running mythtv. Would be nice if it it's possible to connect to both frontends. Currently I use tuxbox to connect to my dreambox. It's working but channel selection is a disaster. Therefore looking forward to using the universal tv frontend.
- alcoheca - 2008-09-03 15:06
Well there's no graphical list of channels currently except in the tv guide window, but I know what you mean and there will something along the lines of this.
mgbouma Wrote:I currently use my xbmc to connect to my dreambox. I also have an skystar card in my linux server running mythtv. Would be nice if it it's possible to connect to both frontends. Currently I use tuxbox to connect to my dreambox. It's working but channel selection is a disaster. Therefore looking forward to using the universal tv frontend.Multiple backends will be supported from the outset, though we still need to decide how to section/display the different sources. Do you have any channels that are available from both sources? In that case we need a setting that chooses which backend has priority when reading schedule data, which isn't a big deal.
- mgbouma - 2008-09-04 10:29
Yes, Both the dreambox and the skystar are using the same dishes and thus see the same channels. I'm using the skystar to record tv-shows and use the dreambox to watch tv.
I'm currently using two xbox and one linux xbmc systems. The problem is that the all 3 xbmc are using the same sources. If i'm watching tv via xbmc and my son wants to watch tv via his xbmc he will override my connection. Each xbmc setup can connect to different tv-backends. So should xbmc know that one backend is busy and it should use another one? I think the problem is one can have multiple xbmc setups and also multiple backends. A bit of a challenge here.
- alcoheca - 2008-09-04 11:40
This should be continued somewhere else as it's getting off-topic, a new thread could be started to discuss these sort of problems with watching live-tv with multiple sources & multiple clients. As it is I see all of this being handled by the backend (if smart enough) or by the client plugin, and not by XBMC.
I'll be in a similar situation, I have 2 satellite sources & 3 from terrestrial. All are in one pc. The channel lists are different but there are channels available from both sources, so the backend (MythTV, but eventually VDR) will handle the requests and just return true or false to a request to start live-tv.
- alcoheca - 2008-09-04 12:05
the_alien Wrote:Had a discussion with alcoheca about handling the epg data on the xbmc side.
So there's not been much discussion on this problem yet, but in the meantime I'm having a go at modifying the CGUIWindowEPG so that it streams EPG data via PVRManager->Client->Backend rather than from PVRManager->local databsae. Will report back with some benchmarks once it's working.
I agree that it's a lot simpler to just demand epg directly from the client as and when we need it, but what should happen with clients who for some reason or another cannot offer timely retrieval of EPG data within a range, and/or for certain channels? In that case it's up the client plugin to handle caching of EPG data locally and in that case it's probably sensible to offer API access to a local db.
I already have storage of client's properties & capabilities working, so we could add another field which dictates whether or not to retrieve data via the db, or via the plugin directly.
what does anyone think?