Ticket #9445: dvbstream-1.patch

File dvbstream-1.patch, 3.0 KB (added by eallaud@…, 14 years ago)
  • mythtv/libs/libmythtv/mpeg/dvbstreamdata.h

    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; 
    1820typedef vector<DVBOtherStreamListener*>  dvb_other_listener_vec_t;
    1921typedef vector<DVBEITStreamListener*>    dvb_eit_listener_vec_t;
    2022
    21 typedef QMap<uint, bool>                 dvb_has_eit_t;
    22 
    2323class DVBStreamData : virtual public MPEGStreamData
    2424{
    2525  public:
    class DVBStreamData : virtual public MPEGStreamData 
    4343    // EIT info/processing
    4444    inline void SetDishNetEIT(bool);
    4545    inline bool HasAnyEIT(void) const;
    46     inline bool HasEIT(uint serviceid) const;
    4746    bool HasEITPIDChanges(const uint_vec_t &in_use_pids) const;
    4847    bool GetEITPIDChanges(const uint_vec_t &in_use_pids,
    4948                          uint_vec_t &add_pids,
    class DVBStreamData : virtual public MPEGStreamData 
    215214    /// Decode DishNet's long-term DVB EIT
    216215    bool                      _dvb_eit_dishnet_long;
    217216    /// Tell us if the DVB service has EIT
    218     dvb_has_eit_t             _dvb_has_eit;
     217    bool                      _dvb_has_eit;
    219218
    220219    // Signals
    221220    dvb_main_listener_vec_t   _dvb_main_listeners;
    inline void DVBStreamData::SetDishNetEIT(bool use_dishnet_eit) 
    254257inline bool DVBStreamData::HasAnyEIT(void) const
    255258{
    256259    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;
    269261}
    270262
    271263#endif // DVBSTREAMDATA_H_
  • mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp

    diff --git a/mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp b/mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp
    index d12f177..113b1b5 100644
    a b DVBStreamData::~DVBStreamData() 
    3740    _dvb_main_listeners.clear();
    3841    _dvb_other_listeners.clear();
    3942    _dvb_eit_listeners.clear();
    40     _dvb_has_eit.clear();
     43    _dvb_has_eit = false;
    4144}
    4245
    4346void DVBStreamData::SetDesiredService(uint netid, uint tsid, int serviceid)
    void DVBStreamData::ProcessSDT(uint tsid, const ServiceDescriptionTable *sdt) 
    398433{
    399434    QMutexLocker locker(&_listener_lock);
     435    uint i;
    400436
    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();
    406441
    407442    for (uint i = 0; i < _dvb_main_listeners.size(); i++)
    408443        _dvb_main_listeners[i]->HandleSDT(tsid, sdt);