Home

Dokumentation

Impressum

Dokumentation VDR
 

Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

remux.h

Go to the documentation of this file.
00001 
00010 #ifndef __REMUX_H
00011 #define __REMUX_H
00012 
00013 #include <time.h> //XXX FIXME: DVB/linux/dvb/dmx.h should include <time.h> itself!!!
00014 #include <linux/dvb/dmx.h>
00015 #include "tools.h"
00016 
00020 #define NO_PICTURE 0
00021 #define I_FRAME    1
00022 #define P_FRAME    2
00023 #define B_FRAME    3
00024 
00029 
00030 #define MINVIDEODATA (16*1024) // just a safe guess (max. size of any frame block, plus some safety)
00031 
00032 #define RESULTBUFFERSIZE (MINVIDEODATA * 4)
00033 
00034 class cTS2PES;
00035 
00037 class cRemux {
00038 private:
00039   bool exitOnFailure;
00040   bool synced;
00041   int skipped;
00042   int vPid, aPid1, aPid2, dPid1, dPid2;
00043   cTS2PES *vTS2PES, *aTS2PES1, *aTS2PES2, *dTS2PES1, *dTS2PES2;
00044   uchar resultBuffer[RESULTBUFFERSIZE];
00045   int resultCount;
00046   int resultDelivered;
00047   int GetPid(const uchar *Data);
00048   int GetPacketLength(const uchar *Data, int Count, int Offset);
00049   int ScanVideoPacket(const uchar *Data, int Count, int Offset, uchar &PictureType);
00050 public:
00051   cRemux(int VPid, int APid1, int APid2, int DPid1, int DPid2, bool ExitOnFailure = false);
00052   ~cRemux();
00053   uchar *Process(const uchar *Data, int &Count, int &Result, uchar *PictureType = NULL);
00054   };
00055 
00056 #endif // __REMUX_H
00057 

Generated on Wed Feb 5 23:30:11 2003 for VDR by doxygen1.3-rc2