fixes for /dev/misc/pvr opening problems in some conditions
[enigma2.git] / lib / dvb / idemux.h
index 85119925d19043455c67016656070ffffebc86ae..e92b1e75c6df7e89442a7cfc25b10d006774992f 100644 (file)
@@ -3,47 +3,6 @@
 
 #include <lib/dvb/idvb.h>
 
-#ifndef DMX_FILTER_SIZE
-#define DMX_FILTER_SIZE   16
-#endif
-
-struct eDVBSectionFilterMask
-{
-       int pid;
-               /* mode is 0 for positive, 1 for negative filtering */
-       __u8 data[DMX_FILTER_SIZE], mask[DMX_FILTER_SIZE], mode[DMX_FILTER_SIZE];
-       enum {
-               rfCRC=1,
-               rfNoAbort=2
-       };
-       int flags;
-};
-
-struct eDVBTableSpec
-{
-       int pid, tid, tidext, tid_mask, tidext_mask;
-       int version;
-       int timeout;        /* timeout in ms */
-       enum
-       {
-               tfInOrder=1,
-               /*
-                       tfAnyVersion      filter ANY version
-                       0                 filter all EXCEPT given version (negative filtering)
-                       tfThisVersion     filter only THIS version
-               */
-               tfAnyVersion=2,
-               tfThisVersion=4,
-               tfHaveTID=8,
-               tfHaveTIDExt=16,
-               tfCheckCRC=32,
-               tfHaveTimeout=64,
-               tfHaveTIDMask=128,
-               tfHaveTIDExtMask=256
-       };
-       int flags;
-};
-
 class iDVBSectionReader: public iObject
 {
 public:
@@ -53,6 +12,15 @@ public:
        virtual ~iDVBSectionReader() { };
 };
 
+class iDVBPESReader: public iObject
+{
+public:
+       virtual RESULT start(int pid)=0;
+       virtual RESULT stop()=0;
+       virtual RESULT connectRead(const Slot2<void,const __u8*, int> &read, ePtr<eConnection> &conn)=0;
+       virtual ~iDVBPESReader() { };
+};
+
        /* records a given set of pids into a file descriptor. */
        /* the FD must not be modified between start() and stop() ! */
 class iDVBTSRecorder: public iObject
@@ -62,7 +30,7 @@ public:
        virtual RESULT addPID(int pid) = 0;
        virtual RESULT removePID(int pid) = 0;
        
-       virtual RESULT setTimingPID(int pid) = 0;
+       virtual RESULT setTimingPID(int pid, int type) = 0;
        
        virtual RESULT setTargetFD(int fd) = 0;
                /* for saving additional meta data. */
@@ -70,6 +38,8 @@ public:
        virtual RESULT setBoundary(off_t max) = 0;
        
        virtual RESULT stop() = 0;
+
+       virtual RESULT getCurrentPCR(pts_t &pcr) = 0;
        
        enum {
                eventWriteError,