diff --git a/mythtv/libs/libmythtv/mpeg/dvbstreamdata.h b/mythtv/libs/libmythtv/mpeg/dvbstreamdata.h
index 3df7ac9..fe072d9 100644
a
|
b
|
typedef vector<DVBMainStreamListener*> dvb_main_listener_vec_t; |
18 | 20 | typedef vector<DVBOtherStreamListener*> dvb_other_listener_vec_t; |
19 | 21 | typedef vector<DVBEITStreamListener*> dvb_eit_listener_vec_t; |
20 | 22 | |
21 | | typedef QMap<uint, bool> dvb_has_eit_t; |
22 | | |
23 | 23 | class DVBStreamData : virtual public MPEGStreamData |
24 | 24 | { |
25 | 25 | public: |
… |
… |
class DVBStreamData : virtual public MPEGStreamData |
43 | 43 | // EIT info/processing |
44 | 44 | inline void SetDishNetEIT(bool); |
45 | 45 | inline bool HasAnyEIT(void) const; |
46 | | inline bool HasEIT(uint serviceid) const; |
47 | 46 | bool HasEITPIDChanges(const uint_vec_t &in_use_pids) const; |
48 | 47 | bool GetEITPIDChanges(const uint_vec_t &in_use_pids, |
49 | 48 | uint_vec_t &add_pids, |
… |
… |
class DVBStreamData : virtual public MPEGStreamData |
215 | 214 | /// Decode DishNet's long-term DVB EIT |
216 | 215 | bool _dvb_eit_dishnet_long; |
217 | 216 | /// Tell us if the DVB service has EIT |
218 | | dvb_has_eit_t _dvb_has_eit; |
| 217 | bool _dvb_has_eit; |
219 | 218 | |
220 | 219 | // Signals |
221 | 220 | dvb_main_listener_vec_t _dvb_main_listeners; |
… |
… |
inline void DVBStreamData::SetDishNetEIT(bool use_dishnet_eit) |
254 | 257 | inline bool DVBStreamData::HasAnyEIT(void) const |
255 | 258 | { |
256 | 259 | QMutexLocker locker(&_listener_lock); |
257 | | return _dvb_has_eit.size(); |
258 | | } |
259 | | |
260 | | inline bool DVBStreamData::HasEIT(uint serviceid) const |
261 | | { |
262 | | QMutexLocker locker(&_listener_lock); |
263 | | |
264 | | dvb_has_eit_t::const_iterator it = _dvb_has_eit.find(serviceid); |
265 | | if (it != _dvb_has_eit.end()) |
266 | | return *it; |
267 | | |
268 | | return false; |
| 260 | return _dvb_has_eit; |
269 | 261 | } |
270 | 262 | |
271 | 263 | #endif // DVBSTREAMDATA_H_ |
diff --git a/mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp b/mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp
index d12f177..113b1b5 100644
a
|
b
|
DVBStreamData::~DVBStreamData() |
37 | 40 | _dvb_main_listeners.clear(); |
38 | 41 | _dvb_other_listeners.clear(); |
39 | 42 | _dvb_eit_listeners.clear(); |
40 | | _dvb_has_eit.clear(); |
| 43 | _dvb_has_eit = false; |
41 | 44 | } |
42 | 45 | |
43 | 46 | void DVBStreamData::SetDesiredService(uint netid, uint tsid, int serviceid) |
… |
… |
void DVBStreamData::ProcessSDT(uint tsid, const ServiceDescriptionTable *sdt) |
398 | 433 | { |
399 | 434 | QMutexLocker locker(&_listener_lock); |
| 435 | uint i; |
400 | 436 | |
401 | | for (uint i = 0; i < sdt->ServiceCount(); i++) |
402 | | { |
403 | | if (sdt->HasEITSchedule(i) || sdt->HasEITPresentFollowing(i)) |
404 | | _dvb_has_eit[sdt->ServiceID(i)] = true; |
405 | | } |
| 437 | for (i = 0; (i < sdt->ServiceCount() && |
| 438 | !sdt->HasEITSchedule(i) && |
| 439 | !sdt->HasEITPresentFollowing(i)); i++); |
| 440 | _dvb_has_eit = i < sdt->ServiceCount(); |
406 | 441 | |
407 | 442 | for (uint i = 0; i < _dvb_main_listeners.size(); i++) |
408 | 443 | _dvb_main_listeners[i]->HandleSDT(tsid, sdt); |