aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2007-06-19 23:40:09 +0000
committerFelix Domke <tmbinc@elitedvb.net>2007-06-19 23:40:09 +0000
commitcf5341701c32afc934b3ff0dc75a28c7e9f264ee (patch)
treeb3f8032fcc7172b47106d08366caddfa412cab5f /lib
parent92e521a30c214ac2e65c6fb68401e90196a6c88b (diff)
downloadenigma2-cf5341701c32afc934b3ff0dc75a28c7e9f264ee.tar.gz
enigma2-cf5341701c32afc934b3ff0dc75a28c7e9f264ee.zip
implement streamableService for playing dvb services
Diffstat (limited to 'lib')
-rw-r--r--lib/service/servicedvb.cpp31
-rw-r--r--lib/service/servicedvb.h7
2 files changed, 35 insertions, 3 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 173f471b..613dc9be 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -1277,7 +1277,7 @@ RESULT eDVBServicePlay::setFastForward(int ratio)
return m_decoder->setFastForward(ffratio);
}
-
+
RESULT eDVBServicePlay::seek(ePtr<iSeekableService> &ptr)
{
if (m_is_pvr || m_timeshift_enabled)
@@ -2862,6 +2862,35 @@ void eDVBServicePlay::video_event(struct iTSMPEGDecoder::videoEvent event)
m_event((iPlayableService*)this, evVideoSizeChanged);
}
+RESULT eDVBServicePlay::stream(ePtr<iStreamableService> &ptr)
+{
+ ptr = this;
+ return 0;
+}
+
+PyObject *eDVBServicePlay::getStreamingData()
+{
+ eDVBServicePMTHandler::program program;
+ if (m_service_handler.getProgramInfo(program))
+ {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+
+ PyObject *r = program.createPythonObject();
+ ePtr<iDVBDemux> demux;
+ if (!m_service_handler.getDataDemux(demux))
+ {
+ uint8_t demux_id;
+ demux->getCADemuxID(demux_id);
+
+ PyDict_SetItemString(r, "demux", PyInt_FromLong(demux_id));
+ }
+
+ return r;
+}
+
+
DEFINE_REF(eDVBServicePlay)
PyObject *eDVBService::getInfoObject(const eServiceReference &ref, int w)
diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h
index 7c785c4e..4a40df12 100644
--- a/lib/service/servicedvb.h
+++ b/lib/service/servicedvb.h
@@ -89,7 +89,7 @@ class eDVBServicePlay: public eDVBServiceBase,
public iAudioTrackSelection, public iAudioChannelSelection,
public iSubserviceList, public iTimeshiftService,
public iCueSheet, public iSubtitleOutput, public iAudioDelay,
- public iRdsDecoder
+ public iRdsDecoder, public iStreamableService
{
DECLARE_REF(eDVBServicePlay);
public:
@@ -176,7 +176,10 @@ public:
int getPCMDelay();
void setAC3Delay(int);
void setPCMDelay(int);
-
+
+ // iStreamableService
+ RESULT stream(ePtr<iStreamableService> &ptr);
+ PyObject *getStreamingData();
private:
friend class eServiceFactoryDVB;
eServiceReference m_reference;