add teletext parser
authorFelix Domke <tmbinc@elitedvb.net>
Fri, 12 May 2006 17:48:08 +0000 (17:48 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Fri, 12 May 2006 17:48:08 +0000 (17:48 +0000)
lib/dvb/teletext.cpp [new file with mode: 0644]
lib/dvb/teletext.h [new file with mode: 0644]

diff --git a/lib/dvb/teletext.cpp b/lib/dvb/teletext.cpp
new file mode 100644 (file)
index 0000000..e05891c
--- /dev/null
@@ -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 (file)
index 0000000..9fa1e2e
--- /dev/null
@@ -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