Ticket #4632: passiveeit.patch
File passiveeit.patch, 3.3 KB (added by , 16 years ago) |
---|
-
libs/libmythtv/dvbstreamhandler.cpp
177 177 void DVBStreamHandler::Start(void) 178 178 { 179 179 QMutexLocker locker(&_start_stop_lock); 180 _eit_pids.clear(); 180 181 181 182 if (IsRunning() && _using_section_reader && !_allow_section_reader) 182 183 Stop(); -
libs/libmythtv/mpeg/dvbstreamdata.cpp
108 108 if (is_eit) 109 109 { 110 110 uint service_id = psip.TableIDExtension(); 111 if (VersionEIT(table_id, service_id) != version) 111 uint section_id = psip.Section(); 112 if (VersionEIT(table_id, service_id, section_id) != version) 112 113 return false; 113 return EITSectionSeen(table_id, service_id, psip.Section());114 return EITSectionSeen(table_id, service_id, section_id); 114 115 } 115 116 116 117 //////////////////////////////////////////////////////////////////////// … … 147 148 if (is_eit) 148 149 { 149 150 uint service_id = psip.TableIDExtension(); 150 if (VersionEIT(table_id, service_id) != version) 151 uint section_id = psip.Section(); 152 if (VersionEIT(table_id, service_id, section_id) != version) 151 153 return false; 152 return EITSectionSeen(table_id, service_id, psip.Section());154 return EITSectionSeen(table_id, service_id, section_id); 153 155 } 154 156 155 157 if (PREMIERE_EIT_DIREKT_PID == pid || PREMIERE_EIT_SPORT_PID == pid … … 335 337 return true; 336 338 337 339 uint service_id = psip.TableIDExtension(); 338 SetVersionEIT(psip.TableID(), service_id, psip.Version()); 339 SetEITSectionSeen(psip.TableID(), service_id, psip.Section()); 340 uint section_id = psip.Section(); 341 SetVersionEIT(psip.TableID(), service_id, section_id, psip.Version()); 342 SetEITSectionSeen(psip.TableID(), service_id, section_id); 340 343 341 344 DVBEventInformationTable eit(psip); 342 345 for (uint i = 0; i < _dvb_eit_listeners.size(); i++) -
libs/libmythtv/mpeg/dvbstreamdata.h
97 97 return *it; 98 98 } 99 99 100 void SetVersionEIT(uint tableid, uint serviceid, int version)100 void SetVersionEIT(uint tableid, uint serviceid, uint sectionid, int version) 101 101 { 102 if (VersionEIT(tableid, serviceid ) == version)102 if (VersionEIT(tableid, serviceid, sectionid) == version) 103 103 return; 104 uint key = ( tableid << 16) | serviceid;104 uint key = (sectionid << 24) | (tableid << 16) | serviceid; 105 105 _eit_version[key] = version; 106 106 } 107 107 108 int VersionEIT(uint tableid, uint serviceid ) const108 int VersionEIT(uint tableid, uint serviceid, uint sectionid) const 109 109 { 110 uint key = ( tableid << 16) | serviceid;110 uint key = (sectionid << 24) | (tableid << 16) | serviceid; 111 111 const QMap<uint, int>::const_iterator it = _eit_version.find(key); 112 112 if (it == _eit_version.end()) 113 113 return -1;