aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-09-30 19:32:54 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-09-30 19:32:54 +0000
commit8d8294b4b354436adde202604fffb55c181d686c (patch)
treecb56e191bf75fda0d504cfc66e8e1cf4d8575e4e /lib/dvb
parentfc233e3a96e68514165781859afc94a2bb33e9e9 (diff)
downloadenigma2-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.cpp8
-rw-r--r--lib/dvb/db.h2
-rw-r--r--lib/dvb/demux.h2
-rw-r--r--lib/dvb/dvbtime.cpp6
-rw-r--r--lib/dvb/dvbtime.h2
-rw-r--r--lib/dvb/eit.cpp4
-rw-r--r--lib/dvb/eit.h4
-rw-r--r--lib/dvb/frontend.cpp6
-rw-r--r--lib/dvb/idvb.h1
-rw-r--r--lib/dvb/pmt.cpp12
-rw-r--r--lib/dvb/pmt.h8
-rw-r--r--lib/dvb/scan.cpp34
-rw-r--r--lib/dvb/scan.h14
-rw-r--r--lib/dvb/specs.h46
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;