https://bugs.kde.org/show_bug.cgi?id=405278

--- Comment #7 from Mauro Carvalho Chehab <mchehab+sams...@kernel.org> ---
(In reply to higuita from comment #6)
> Created attachment 118730 [details]
> kaffeine channel list
> 
> To start, thank you very much for implementing this! :D
> 
> 
> > Kaffeine's EPG data is stored using channel name, as it was discovered from 
> > MPEG-TS tables. Do you know if the display-name is identical to the channel 
> > name that Kaffeine displays?
> 
> many are the same, but most of then have little differences, that are enough
> to break the parser :)
> Some have H instead of HD, others drop the SD, others simplify the name
> (RADICAL -> R or Food Network -> TFN ), others change case (SkyNews -> SKY
> News)
> 
> I pulled the git and tested, it worked on the names that match (23 from 62
> channels i have available in my local DVB-T)

Well, as xmltv format allows multiple display names, IMHO, the right fix would
be to address those at the parser. There's one thing feature in Kaffeine's
implementation, though: right now, it will associate just one channel to the
EPG data. So, on a channel with both "SD" and "HD", it will fill EPG just for
the first one.

This is easily solvable. I should be writing a patch for it soon.

> 
> Doing the command below and attaching the list
> 
> echo 'select name from Channels;' | sqlite3 sqlite.db   > /tmp/channels.txt
> 
> But i think it is a lost battle trying to always automatically match all the
> feeds and channels, we do never know what is out there. Some automatic rules
> like the current are good to help the initial setup, but in the end one
> should be able to map the xmltv name to the channel when needed.
> 
> So i suggest adding a extra rule to also try to match names without the SD
> and HD if not matched already, as usually the channel and data is the same,
> only change the resolution. Also always match names with case insensitive

I don't like the idea of doing partial match. Things can easily go messy. Also,
this would increase a lot CPU consumption. Due to performance issues, we use a
hash table to associate a channel name to Kaffeine's channel structure. This is
very fast - using big-O notation, it is O(1). A partial search will either
require a much more complex data structure or it would be O(n). We had already
performance issues with EPG parsing time.

Also, I'm actually more concerned at the opposite side: what happens if someone
has multiple digital TV cards, each connected to different providers?

The same channel name could have different programs, depending on the
providers.

Ideally, we should associate the xmltv file to an specific DVB card. The
xmltv.cpp code is ready for this, as it was written in a way that it can
monitor multiple files, but some changes would be required at the configuration
side, and ad the DVB board configuration file.

Also, it should automatically (or via an option?) disable MPEG-TS EPG table
handling on cards that are associated with a xmltv file.

> 
> After that, in the channels config, add a extra column (may be optional) for
> epg that show the EPG/xmltv name (or * if same name). This will allow to
> quickly find out what channels are without EPG and fix then
> 
> Finally, editing the channel, we would have a new drop down list with the
> EPG/xmltv name, so one can manually choose the correct feed source for the
> channel. Of course, this also requires a new field in the database to store
> this map

This shouldn't be hard to implement, but some care should be taken about how to
handle multiple channels that would map to the same name. 

That's said, I'm a little busy here. Probably won't have much time for such
changes. It would be a way better if you could work on some patches and send
me.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to