diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-09-30 19:32:54 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-09-30 19:32:54 +0000 |
| commit | 8d8294b4b354436adde202604fffb55c181d686c (patch) | |
| tree | cb56e191bf75fda0d504cfc66e8e1cf4d8575e4e /lib/dvb | |
| parent | fc233e3a96e68514165781859afc94a2bb33e9e9 (diff) | |
| download | enigma2-8d8294b4b354436adde202604fffb55c181d686c.tar.gz enigma2-8d8294b4b354436adde202604fffb55c181d686c.zip | |
use libdvbsi++ from tuxbox-cvs,
please add http://ghost.dream-multimedia-tv.de/libdvbsi++.bb to your bitbake/openembedded/packages/tuxbox directory and exectute "bitbake -b ../openembedded/packages/tuxbox/libdvbsi++.bb" then install the libdvbsi++...ipk
Diffstat (limited to 'lib/dvb')
| -rw-r--r-- | lib/dvb/db.cpp | 8 | ||||
| -rw-r--r-- | lib/dvb/db.h | 2 | ||||
| -rw-r--r-- | lib/dvb/demux.h | 2 | ||||
| -rw-r--r-- | lib/dvb/dvbtime.cpp | 6 | ||||
| -rw-r--r-- | lib/dvb/dvbtime.h | 2 | ||||
| -rw-r--r-- | lib/dvb/eit.cpp | 4 | ||||
| -rw-r--r-- | lib/dvb/eit.h | 4 | ||||
| -rw-r--r-- | lib/dvb/frontend.cpp | 6 | ||||
| -rw-r--r-- | lib/dvb/idvb.h | 1 | ||||
| -rw-r--r-- | lib/dvb/pmt.cpp | 12 | ||||
| -rw-r--r-- | lib/dvb/pmt.h | 8 | ||||
| -rw-r--r-- | lib/dvb/scan.cpp | 34 | ||||
| -rw-r--r-- | lib/dvb/scan.h | 14 | ||||
| -rw-r--r-- | lib/dvb/specs.h | 46 |
14 files changed, 76 insertions, 73 deletions
diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index 13bb900a..fdcd428d 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -3,10 +3,10 @@ #include <lib/dvb/frontend.h> #include <lib/base/eerror.h> #include <lib/base/estring.h> -#include <lib/dvb_si/sdt.h> -#include <lib/dvb_si/descriptor_tag.h> -#include <lib/dvb_si/service_descriptor.h> -#include <lib/dvb_si/satellite_delivery_system_descriptor.h> +#include <dvbsi++/service_description_section.h> +#include <dvbsi++/descriptor_tag.h> +#include <dvbsi++/service_descriptor.h> +#include <dvbsi++/satellite_delivery_system_descriptor.h> DEFINE_REF(eDVBService); diff --git a/lib/dvb/db.h b/lib/dvb/db.h index 3db7228e..084c877a 100644 --- a/lib/dvb/db.h +++ b/lib/dvb/db.h @@ -4,7 +4,7 @@ #include <lib/dvb/idvb.h> #include <set> -class ServiceDescriptionTable; +class ServiceDescriptionSection; struct eDVBBouquet { diff --git a/lib/dvb/demux.h b/lib/dvb/demux.h index 23aef0f3..a01cf60b 100644 --- a/lib/dvb/demux.h +++ b/lib/dvb/demux.h @@ -14,6 +14,7 @@ class eDVBDemux: public iDVBDemux friend class eDVBVideo; friend class eDVBPCR; friend class eDVBTSRecorder; + friend class eDVBCAService; public: DECLARE_REF(eDVBDemux); eDVBDemux(int adapter, int demux); @@ -22,6 +23,7 @@ public: RESULT createTSRecorder(ePtr<iDVBTSRecorder> &recorder); RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &reader); RESULT getSTC(pts_t &pts); + RESULT getCADemuxID(uint8_t &id) { id = demux; return 0; } }; class eDVBSectionReader: public iDVBSectionReader, public Object diff --git a/lib/dvb/dvbtime.cpp b/lib/dvb/dvbtime.cpp index 795b5242..82ceffd5 100644 --- a/lib/dvb/dvbtime.cpp +++ b/lib/dvb/dvbtime.cpp @@ -97,10 +97,10 @@ void TDT::start() if ( chan ) { eDVBTableSpec spec; - spec.pid = TimeAndDateTable::PID; - spec.tid = TimeAndDateTable::TID; + spec.pid = TimeAndDateSection::PID; + spec.tid = TimeAndDateSection::TID; spec.tid_mask = 0xFC; - spec.timeout = TimeAndDateTable::TIMEOUT; + spec.timeout = TimeAndDateSection::TIMEOUT; spec.flags= eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfHaveTIDMask | diff --git a/lib/dvb/dvbtime.h b/lib/dvb/dvbtime.h index 3b92fd1e..fbc82f06 100644 --- a/lib/dvb/dvbtime.h +++ b/lib/dvb/dvbtime.h @@ -3,7 +3,7 @@ #include <lib/base/eerror.h> #include <lib/dvb/esection.h> -#include <lib/dvb_si/tdt.h> +#include <dvbsi++/time_date_section.h> class eDVBChannel; diff --git a/lib/dvb/eit.cpp b/lib/dvb/eit.cpp index 2462d333..b78b2279 100644 --- a/lib/dvb/eit.cpp +++ b/lib/dvb/eit.cpp @@ -7,11 +7,11 @@ void eDVBServiceEITHandler::EITready(int error) { if (!error) { - ePtr<eTable<EventInformationTable> > ptr; + ePtr<eTable<EventInformationSection> > ptr; if (!m_EIT.getCurrent(ptr)) { int a = 0; - for (EventInformationTableConstIterator i = ptr->getSections().begin(); + for (std::vector<EventInformationSection*>::const_iterator i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) { for (EventConstIterator ev = (*i)->getEvents()->begin(); ev != (*i)->getEvents()->end(); ++ev) diff --git a/lib/dvb/eit.h b/lib/dvb/eit.h index a026773c..43bdb6b2 100644 --- a/lib/dvb/eit.h +++ b/lib/dvb/eit.h @@ -3,13 +3,13 @@ #include <lib/dvb/idemux.h> #include <lib/dvb/esection.h> -#include <lib/dvb_si/eit.h> +#include <dvbsi++/event_information_section.h> #include <lib/service/event.h> class eDVBServiceEITHandler: public Object { ePtr<iDVBDemux> m_demux; - eAUTable<eTable<EventInformationTable> > m_EIT; + eAUTable<eTable<EventInformationSection> > m_EIT; void EITready(int error); RESULT parseEvent(ePtr<eServiceEvent> &serviceevent, const Event &dvbevent); diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index d4704a9d..69519837 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -23,9 +23,9 @@ #include <linux/dvb/frontend.h> #endif -#include <lib/dvb_si/satellite_delivery_system_descriptor.h> -#include <lib/dvb_si/cable_delivery_system_descriptor.h> -#include <lib/dvb_si/terrestrial_delivery_system_descriptor.h> +#include <dvbsi++/satellite_delivery_system_descriptor.h> +#include <dvbsi++/cable_delivery_system_descriptor.h> +#include <dvbsi++/terrestrial_delivery_system_descriptor.h> void eDVBFrontendParametersSatellite::set(const SatelliteDeliverySystemDescriptor &descriptor) { diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 683a7b71..add9ba85 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -476,6 +476,7 @@ public: virtual RESULT createTSRecorder(ePtr<iDVBTSRecorder> &recorder)=0; virtual RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &reader)=0; virtual RESULT getSTC(pts_t &pts)=0; + virtual RESULT getCADemuxID(uint8_t &id)=0; }; class iTSMPEGDecoder: public iObject diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index e62de9b8..57e617ca 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -50,14 +50,14 @@ void eDVBServicePMTHandler::PMTready(int error) void eDVBServicePMTHandler::PATready(int) { eDebug("got PAT"); - ePtr<eTable<ProgramAssociationTable> > ptr; + ePtr<eTable<ProgramAssociationSection> > ptr; if (!m_PAT.getCurrent(ptr)) { int pmtpid = -1; - ProgramAssociationTableConstIterator i; + std::vector<ProgramAssociationSection*>::const_iterator i; for (i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) { - const ProgramAssociationTable &pat = **i; + const ProgramAssociationSection &pat = **i; ProgramAssociationConstIterator program; for (program = pat.getPrograms()->begin(); program != pat.getPrograms()->end(); ++program) if (eServiceID((*program)->getProgramNumber()) == m_reference.getServiceID()) @@ -74,7 +74,7 @@ void eDVBServicePMTHandler::PATready(int) int eDVBServicePMTHandler::getProgramInfo(struct program &program) { eDebug("got PMT"); - ePtr<eTable<ProgramMapTable> > ptr; + ePtr<eTable<ProgramMapSection> > ptr; program.videoStreams.clear(); program.audioStreams.clear(); @@ -82,10 +82,10 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) if (!m_PMT.getCurrent(ptr)) { - ProgramMapTableConstIterator i; + std::vector<ProgramMapSection*>::const_iterator i; for (i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) { - const ProgramMapTable &pmt = **i; + const ProgramMapSection &pmt = **i; program.pcrPid = pmt.getPcrPid(); ElementaryStreamInfoConstIterator es; diff --git a/lib/dvb/pmt.h b/lib/dvb/pmt.h index efe54ee7..2d47852f 100644 --- a/lib/dvb/pmt.h +++ b/lib/dvb/pmt.h @@ -5,8 +5,8 @@ #include <lib/dvb/dvb.h> #include <lib/dvb/idemux.h> #include <lib/dvb/esection.h> -#include <lib/dvb_si/pmt.h> -#include <lib/dvb_si/pat.h> +#include <dvbsi++/program_map_section.h> +#include <dvbsi++/program_association_section.h> class eDVBServicePMTHandler: public Object { @@ -15,8 +15,8 @@ class eDVBServicePMTHandler: public Object int m_last_channel_state; - eAUTable<eTable<ProgramMapTable> > m_PMT; - eAUTable<eTable<ProgramAssociationTable> > m_PAT; + eAUTable<eTable<ProgramMapSection> > m_PMT; + eAUTable<eTable<ProgramAssociationSection> > m_PAT; eUsePtr<iDVBChannel> m_channel; eUsePtr<iDVBPVRChannel> m_pvr_channel; diff --git a/lib/dvb/scan.cpp b/lib/dvb/scan.cpp index 7e603314..11b4e7c6 100644 --- a/lib/dvb/scan.cpp +++ b/lib/dvb/scan.cpp @@ -1,11 +1,11 @@ #include <lib/dvb/idvb.h> -#include <lib/dvb_si/sdt.h> -#include <lib/dvb_si/nit.h> -#include <lib/dvb_si/bat.h> -#include <lib/dvb_si/descriptor_tag.h> -#include <lib/dvb_si/service_descriptor.h> -#include <lib/dvb_si/satellite_delivery_system_descriptor.h> -#include <lib/dvb_si/ca_identifier_descriptor.h> +#include <dvbsi++/service_description_section.h> +#include <dvbsi++/network_information_section.h> +#include <dvbsi++/bouquet_association_section.h> +#include <dvbsi++/descriptor_tag.h> +#include <dvbsi++/service_descriptor.h> +#include <dvbsi++/satellite_delivery_system_descriptor.h> +#include <dvbsi++/ca_identifier_descriptor.h> #include <lib/dvb/specs.h> #include <lib/dvb/esection.h> #include <lib/dvb/scan.h> @@ -119,18 +119,18 @@ RESULT eDVBScan::startFilter() { assert(m_demux); - m_SDT = new eTable<ServiceDescriptionTable>(); + m_SDT = new eTable<ServiceDescriptionSection>(); if (m_SDT->start(m_demux, eDVBSDTSpec())) return -1; CONNECT(m_SDT->tableReady, eDVBScan::SDTready); m_NIT = 0; - m_NIT = new eTable<NetworkInformationTable>(); + m_NIT = new eTable<NetworkInformationSection>(); if (m_NIT->start(m_demux, eDVBNITSpec())) return -1; CONNECT(m_NIT->tableReady, eDVBScan::NITready); - m_BAT = new eTable<BouquetAssociationTable>(); + m_BAT = new eTable<BouquetAssociationSection>(); if (m_BAT->start(m_demux, eDVBBATSpec())) return -1; CONNECT(m_BAT->tableReady, eDVBScan::BATready); @@ -222,7 +222,7 @@ void eDVBScan::channelDone() hash); SCAN_eDebug("SDT: "); - ServiceDescriptionTableConstIterator i; + std::vector<ServiceDescriptionSection*>::const_iterator i; for (i = m_SDT->getSections().begin(); i != m_SDT->getSections().end(); ++i) processSDT(dvbnamespace, **i); m_ready &= ~validSDT; @@ -231,10 +231,10 @@ void eDVBScan::channelDone() if (m_ready & validNIT) { SCAN_eDebug("dumping NIT"); - NetworkInformationTableConstIterator i; + std::vector<NetworkInformationSection*>::const_iterator i; for (i = m_NIT->getSections().begin(); i != m_NIT->getSections().end(); ++i) { - const TransportStreamInfoVector &tsinfovec = *(*i)->getTsInfo(); + const TransportStreamInfoList &tsinfovec = *(*i)->getTsInfo(); for (TransportStreamInfoConstIterator tsinfo(tsinfovec.begin()); tsinfo != tsinfovec.end(); ++tsinfo) @@ -353,9 +353,9 @@ void eDVBScan::insertInto(iDVBChannelList *db) } } -RESULT eDVBScan::processSDT(eDVBNamespace dvbnamespace, const ServiceDescriptionTable &sdt) +RESULT eDVBScan::processSDT(eDVBNamespace dvbnamespace, const ServiceDescriptionSection &sdt) { - const ServiceDescriptionVector &services = *sdt.getDescriptions(); + const ServiceDescriptionList &services = *sdt.getDescriptions(); SCAN_eDebug("ONID: %04x", sdt.getOriginalNetworkId()); eDVBChannelID chid(dvbnamespace, sdt.getTransportStreamId(), sdt.getOriginalNetworkId()); @@ -394,9 +394,9 @@ RESULT eDVBScan::processSDT(eDVBNamespace dvbnamespace, const ServiceDescription case CA_IDENTIFIER_DESCRIPTOR: { CaIdentifierDescriptor &d = (CaIdentifierDescriptor&)**desc; - const CaSystemIdVector &caids = *d.getCaSystemIds(); + const CaSystemIdList &caids = *d.getCaSystemIds(); SCAN_eDebugNoNewLine("CA "); - for (CaSystemIdVector::const_iterator i(caids.begin()); i != caids.end(); ++i) + for (CaSystemIdList::const_iterator i(caids.begin()); i != caids.end(); ++i) { SCAN_eDebugNoNewLine("%04x ", *i); service->m_ca.insert(*i); diff --git a/lib/dvb/scan.h b/lib/dvb/scan.h index 743ea8d9..6abc1d0f 100644 --- a/lib/dvb/scan.h +++ b/lib/dvb/scan.h @@ -1,9 +1,9 @@ #ifndef __lib_dvb_scan_h #define __lib_dvb_scan_h -#include <lib/dvb_si/nit.h> -#include <lib/dvb_si/sdt.h> -#include <lib/dvb_si/bat.h> +#include <dvbsi++/network_information_section.h> +#include <dvbsi++/service_description_section.h> +#include <dvbsi++/bouquet_association_section.h> #include <lib/dvb/idemux.h> #include <lib/dvb/esection.h> #include <lib/dvb/db.h> @@ -45,9 +45,9 @@ private: ePtr<iDVBFrontendParameters> m_ch_current; eDVBChannelID m_chid_current; - ePtr<eTable<ServiceDescriptionTable> > m_SDT; - ePtr<eTable<NetworkInformationTable> > m_NIT; - ePtr<eTable<BouquetAssociationTable> > m_BAT; + ePtr<eTable<ServiceDescriptionSection> > m_SDT; + ePtr<eTable<NetworkInformationSection> > m_NIT; + ePtr<eTable<BouquetAssociationSection> > m_BAT; void SDTready(int err); void NITready(int err); @@ -60,7 +60,7 @@ private: void channelDone(); Signal1<void,int> m_event; - RESULT processSDT(eDVBNamespace dvbnamespace, const ServiceDescriptionTable &sdt); + RESULT processSDT(eDVBNamespace dvbnamespace, const ServiceDescriptionSection &sdt); public: eDVBScan(iDVBChannel *channel); ~eDVBScan(); diff --git a/lib/dvb/specs.h b/lib/dvb/specs.h index 2e2eed9b..23ef2cec 100644 --- a/lib/dvb/specs.h +++ b/lib/dvb/specs.h @@ -3,12 +3,12 @@ #include <lib/dvb/idvb.h> #include <lib/dvb/idemux.h> -#include <lib/dvb_si/pmt.h> -#include <lib/dvb_si/sdt.h> -#include <lib/dvb_si/nit.h> -#include <lib/dvb_si/bat.h> -#include <lib/dvb_si/pat.h> -#include <lib/dvb_si/eit.h> +#include <dvbsi++/program_map_section.h> +#include <dvbsi++/service_description_section.h> +#include <dvbsi++/network_information_section.h> +#include <dvbsi++/bouquet_association_section.h> +#include <dvbsi++/program_association_section.h> +#include <dvbsi++/event_information_section.h> struct eDVBPMTSpec { @@ -17,9 +17,9 @@ public: eDVBPMTSpec(int pid, int sid) { m_spec.pid = pid; - m_spec.tid = ProgramMapTable::TID; + m_spec.tid = ProgramMapSection::TID; m_spec.tidext = sid; - m_spec.timeout = 20000; // ProgramMapTable::TIMEOUT; + m_spec.timeout = 20000; // ProgramMapSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfHaveTIDExt | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -36,9 +36,9 @@ struct eDVBSDTSpec public: eDVBSDTSpec() { - m_spec.pid = ServiceDescriptionTable::PID; - m_spec.tid = ServiceDescriptionTable::TID; - m_spec.timeout = 20000; // ServiceDescriptionTable::TIMEOUT; + m_spec.pid = ServiceDescriptionSection::PID; + m_spec.tid = ServiceDescriptionSection::TID; + m_spec.timeout = 20000; // ServiceDescriptionSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -55,9 +55,9 @@ struct eDVBNITSpec public: eDVBNITSpec() { - m_spec.pid = NetworkInformationTable::PID; - m_spec.tid = NetworkInformationTable::TID; - m_spec.timeout = NetworkInformationTable::TIMEOUT; + m_spec.pid = NetworkInformationSection::PID; + m_spec.tid = NetworkInformationSection::TID; + m_spec.timeout = NetworkInformationSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -74,9 +74,9 @@ struct eDVBBATSpec public: eDVBBATSpec() { - m_spec.pid = BouquetAssociationTable::PID; - m_spec.tid = BouquetAssociationTable::TID; - m_spec.timeout = BouquetAssociationTable::TIMEOUT; + m_spec.pid = BouquetAssociationSection::PID; + m_spec.tid = BouquetAssociationSection::TID; + m_spec.timeout = BouquetAssociationSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -93,9 +93,9 @@ struct eDVBPATSpec public: eDVBPATSpec() { - m_spec.pid = ProgramAssociationTable::PID; - m_spec.tid = ProgramAssociationTable::TID; - m_spec.timeout = 20000; // ProgramAssociationTable::TIMEOUT; + m_spec.pid = ProgramAssociationSection::PID; + m_spec.tid = ProgramAssociationSection::TID; + m_spec.timeout = 20000; // ProgramAssociationSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -113,10 +113,10 @@ public: /* this is for now&next on actual transponder. */ eDVBEITSpec(int sid) { - m_spec.pid = EventInformationTable::PID; - m_spec.tid = EventInformationTable::TID; + m_spec.pid = EventInformationSection::PID; + m_spec.tid = EventInformationSection::TID; m_spec.tidext = sid; - m_spec.timeout = EventInformationTable::TIMEOUT; + m_spec.timeout = EventInformationSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfHaveTIDExt | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; |
