Merge branch 'bug_621_caid_info' into experimental
authorghost <andreas.monzner@multimedia-labs.de>
Mon, 29 Nov 2010 13:17:37 +0000 (14:17 +0100)
committerghost <andreas.monzner@multimedia-labs.de>
Mon, 29 Nov 2010 13:17:37 +0000 (14:17 +0100)
1  2 
lib/dvb/pmt.cpp
lib/dvb/pmt.h

diff --cc lib/dvb/pmt.cpp
@@@ -242,29 -230,8 +246,29 @@@ int eDVBServicePMTHandler::getProgramIn
                        for (i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i)
                        {
                                const ProgramMapSection &pmt = **i;
 +                              int is_hdmv = 0;
 +
                                program.pcrPid = pmt.getPcrPid();
  
-                                               program.caids.insert(pair);
 +                              for (DescriptorConstIterator desc = pmt.getDescriptors()->begin();
 +                                      desc != pmt.getDescriptors()->end(); ++desc)
 +                              {
 +                                      if ((*desc)->getTag() == CA_DESCRIPTOR)
 +                                      {
 +                                              CaDescriptor *descr = (CaDescriptor*)(*desc);
 +                                              program::capid_pair pair;
 +                                              pair.caid = descr->getCaSystemId();
 +                                              pair.capid = descr->getCaPid();
++                                              program.caids.push_back(pair);
 +                                      }
 +                                      else if ((*desc)->getTag() == REGISTRATION_DESCRIPTOR)
 +                                      {
 +                                              RegistrationDescriptor *d = (RegistrationDescriptor*)(*desc);
 +                                              if (d->getFormatIdentifier() == 0x48444d56) // HDMV
 +                                                      is_hdmv = 1;
 +                                      }
 +                              }
 +
                                ElementaryStreamInfoConstIterator es;
                                for (es = pmt.getEsInfo()->begin(); es != pmt.getEsInfo()->end(); ++es)
                                {
diff --cc lib/dvb/pmt.h
Simple merge