aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-05-12 17:48:08 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-05-12 17:48:08 +0000
commitbef5d916c40a27638388d69f2ae3f94e41e6b0f3 (patch)
tree9fb63250503e028cbc539ede5c7fdbaf8681610b /lib
parentcb4391fe559e5fa9a19540d823f8f7003cac4ab5 (diff)
downloadenigma2-bef5d916c40a27638388d69f2ae3f94e41e6b0f3.tar.gz
enigma2-bef5d916c40a27638388d69f2ae3f94e41e6b0f3.zip
add teletext parser
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/teletext.cpp33
-rw-r--r--lib/dvb/teletext.h22
2 files changed, 55 insertions, 0 deletions
diff --git a/lib/dvb/teletext.cpp b/lib/dvb/teletext.cpp
new file mode 100644
index 00000000..e05891c4
--- /dev/null
+++ b/lib/dvb/teletext.cpp
@@ -0,0 +1,33 @@
+#include <lib/base/eerror.h>
+#include <lib/dvb/teletext.h>
+#include <lib/dvb/idemux.h>
+
+DEFINE_REF(eDVBTeletextParser);
+
+eDVBTeletextParser::eDVBTeletextParser(iDVBDemux *demux)
+{
+ setStreamID(0xBD); // as per en 300 472
+
+ if (demux->createPESReader(eApp, m_pes_reader))
+ eDebug("failed to create PES reader!");
+ else
+ m_pes_reader->connectRead(slot(*this, &eDVBTeletextParser::processData), m_read_connection);
+
+}
+
+void eDVBTeletextParser::processPESPacket(__u8 *pkt, int len)
+{
+ eDebug("GOT TELETEXT PACKET:");
+ int i;
+ for (i=0; i<16; ++i)
+ eDebugNoNewLine("%02x ", pkt[i]);
+ eDebug("<");
+}
+
+int eDVBTeletextParser::start(int pid)
+{
+ if (m_pes_reader)
+ return m_pes_reader->start(pid);
+ else
+ return -1;
+}
diff --git a/lib/dvb/teletext.h b/lib/dvb/teletext.h
new file mode 100644
index 00000000..9fa1e2ea
--- /dev/null
+++ b/lib/dvb/teletext.h
@@ -0,0 +1,22 @@
+#ifndef __lib_dvb_teletext_h
+#define __lib_dvb_teletext_h
+
+#include <lib/base/object.h>
+#include <lib/dvb/idvb.h>
+#include <lib/dvb/pesparse.h>
+
+class eDVBTeletextParser: public iObject, public ePESParser, public Object
+{
+ DECLARE_REF(eDVBTeletextParser);
+public:
+ eDVBTeletextParser(iDVBDemux *demux);
+ int start(int pid);
+
+private:
+ void processPESPacket(__u8 *pkt, int len);
+
+ ePtr<iDVBPESReader> m_pes_reader;
+ ePtr<eConnection> m_read_connection;
+};
+
+#endif