Ticket #5654: mca_longterm_eit.diff

File mca_longterm_eit.diff, 2.1 KB (added by Neil Garratt <ngarratt@…>, 11 years ago)
  • libs/libmythtv/mpeg/dvbstreamdata.cpp

     
    1010
    1111#define PREMIERE_ONID 133
    1212#define FREESAT_EIT_PID 3842
     13#define MCA_ONID 6144
     14#define MCA_EIT_TSID 136
     15#define MCA_EIT_PID 1018
    1316
    1417// service_id is synonymous with the MPEG program number in the PMT.
    1518DVBStreamData::DVBStreamData(uint desired_netid,  uint desired_tsid,
     
    131134        return SDToSectionSeen(psip.TableIDExtension(), psip.Section());
    132135    }
    133136
    134     if (DVB_EIT_PID == pid || FREESAT_EIT_PID == pid)
     137    if (DVB_EIT_PID == pid || FREESAT_EIT_PID == pid || MCA_EIT_PID == pid)
    135138    {
    136139        // Standard Now/Next Event Information Tables for other transport
    137140        is_eit |= TableID::PF_EITo == table_id;
     
    328331        }
    329332    }
    330333
    331     if ((DVB_EIT_PID == pid || DVB_DNLONG_EIT_PID == pid || FREESAT_EIT_PID == pid) &&
     334    if ((DVB_EIT_PID == pid || DVB_DNLONG_EIT_PID == pid || FREESAT_EIT_PID == pid ||
     335        ((MCA_ONID == _desired_netid) && (MCA_EIT_TSID == _desired_tsid) &&
     336        (MCA_EIT_PID == pid))) &&
     337
    332338        DVBEventInformationTable::IsEIT(psip.TableID()))
    333339    {
    334340        QMutexLocker locker(&_listener_lock);
     
    435441        {
    436442            add_pids.push_back(FREESAT_EIT_PID);
    437443        }
     444
     445        if (MCA_ONID == _desired_netid && MCA_EIT_TSID == _desired_tsid &&
     446            find(cur_pids.begin(), cur_pids.end(),
     447                 (uint) MCA_EIT_PID) == cur_pids.end())
     448        {
     449            add_pids.push_back(MCA_EIT_PID);
     450        }
     451
    438452    }
    439453    else
    440454    {
     
    470484        {
    471485            del_pids.push_back(FREESAT_EIT_PID);
    472486        }
     487
     488        if (MCA_ONID == _desired_netid && MCA_EIT_TSID == _desired_tsid &&
     489            find(cur_pids.begin(), cur_pids.end(),
     490                 (uint) MCA_EIT_PID) != cur_pids.end())
     491        {
     492            del_pids.push_back(MCA_EIT_PID);
     493        }
    473494    }
    474495
    475496    return add_pids.size() || del_pids.size();