aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dvb')
-rw-r--r--lib/dvb/eit.cpp5
-rw-r--r--lib/dvb/eit.h1
-rw-r--r--lib/dvb/idvb.h6
-rw-r--r--lib/dvb/specs.h21
4 files changed, 33 insertions, 0 deletions
diff --git a/lib/dvb/eit.cpp b/lib/dvb/eit.cpp
index cc2c29b2..9f3169f9 100644
--- a/lib/dvb/eit.cpp
+++ b/lib/dvb/eit.cpp
@@ -42,6 +42,11 @@ void eDVBServiceEITHandler::start(iDVBDemux *demux, int sid)
m_EIT.begin(eApp, eDVBEITSpec(sid), demux);
}
+void eDVBServiceEITHandler::startOther(iDVBDemux *demux, int sid)
+{
+ m_EIT.begin(eApp, eDVBEITSpecOther(sid), demux);
+}
+
RESULT eDVBServiceEITHandler::getEvent(ePtr<eServiceEvent> &event, int nownext)
{
event = nownext ? m_event_next : m_event_now;
diff --git a/lib/dvb/eit.h b/lib/dvb/eit.h
index 43bdb6b2..bc52e146 100644
--- a/lib/dvb/eit.h
+++ b/lib/dvb/eit.h
@@ -19,6 +19,7 @@ public:
eDVBServiceEITHandler();
void start(iDVBDemux *demux, int sid);
+ void startOther(iDVBDemux *demux, int sid);
RESULT getEvent(ePtr<eServiceEvent> &event, int nownext);
diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h
index 22eccbd9..742a3a32 100644
--- a/lib/dvb/idvb.h
+++ b/lib/dvb/idvb.h
@@ -153,6 +153,12 @@ struct eServiceReferenceDVB: public eServiceReference
eDVBNamespace getDVBNamespace() const { return eDVBNamespace(data[4]); }
void setDVBNamespace(eDVBNamespace dvbnamespace) { data[4]=dvbnamespace.get(); }
+ eServiceID getParentServiceID() const { return eServiceID(data[5]); }
+ void setParentServiceID( eServiceID sid ) { data[5]=sid.get(); }
+
+ eTransportStreamID getParentTransportStreamID() const { return eTransportStreamID(data[6]); }
+ void setParentTransportStreamID( eTransportStreamID tsid ) { data[6]=tsid.get(); }
+
eServiceReferenceDVB(eDVBNamespace dvbnamespace, eTransportStreamID transport_stream_id, eOriginalNetworkID original_network_id, eServiceID service_id, int service_type)
:eServiceReference(eServiceReference::idDVB, 0)
{
diff --git a/lib/dvb/specs.h b/lib/dvb/specs.h
index 23ef2cec..afd5cef8 100644
--- a/lib/dvb/specs.h
+++ b/lib/dvb/specs.h
@@ -127,4 +127,25 @@ public:
}
};
+class eDVBEITSpecOther
+{
+ eDVBTableSpec m_spec;
+public:
+ /* this is for now&next on actual transponder. */
+ eDVBEITSpecOther(int sid)
+ {
+ m_spec.pid = EventInformationSection::PID;
+ m_spec.tid = TID_EIT_OTHER;
+ m_spec.tidext = sid;
+ m_spec.timeout = EventInformationSection::TIMEOUT;
+ m_spec.flags = eDVBTableSpec::tfAnyVersion |
+ eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfHaveTIDExt |
+ eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout;
+ }
+ operator eDVBTableSpec &()
+ {
+ return m_spec;
+ }
+};
+
#endif