bouquets: fix ubouquet generation for broken services

Services with duplicate tsid/onid/sid like found e.g. on "8W Atlantic
Bird 2", "12.5W Atlantic Bird 1", "4.8E Sirius", "7E Eutelsat" caused
wrong bouquet entries because the satellite position and transponder
frequency was not used to distinguish the channels. Use the new
FindChannelFuzzy() function to fix this.


Origin commit data
------------------
Commit: cd0896a35d
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2013-01-29 (Tue, 29 Jan 2013)

Origin message was:
------------------
bouquets: fix ubouquet generation for broken services

Services with duplicate tsid/onid/sid like found e.g. on "8W Atlantic
Bird 2", "12.5W Atlantic Bird 1", "4.8E Sirius", "7E Eutelsat" caused
wrong bouquet entries because the satellite position and transponder
frequency was not used to distinguish the channels. Use the new
FindChannelFuzzy() function to fix this.
This commit is contained in:
Stefan Seyfried
2013-01-29 21:05:53 +01:00
parent 1cdf16c4eb
commit 17eb609c7a

View File

@@ -7,7 +7,7 @@
* rasc <rasc@berlios.de>,
* thegoodguy <thegoodguy@berlios.de>
*
* (C) 2009, 2011-2012 Stefan Seyfried
* (C) 2009, 2011-2013 Stefan Seyfried
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -365,10 +365,11 @@ void CBouquetManager::parseBouquetsXml(const char *fname, bool bUser)
freq = freq/1000;
CZapitChannel* chan;
t_channel_id chid = CREATE_CHANNEL_ID64;
if(bUser)
chan = CServiceManager::getInstance()->FindChannel48(CREATE_CHANNEL_ID64);
chan = CServiceManager::getInstance()->FindChannelFuzzy(chid, satellitePosition, freq);
else
chan = CServiceManager::getInstance()->FindChannel(CREATE_CHANNEL_ID64);
chan = CServiceManager::getInstance()->FindChannel(chid);
if (chan != NULL) {
DBG("%04x %04x %04x %s\n", transport_stream_id, original_network_id, service_id, xmlGetAttribute(channel_node, "n"));
#if 0