diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2001-03-31 08:42:27 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2001-03-31 08:42:27 +0200 |
commit | 5c68fc100c87bf677932852fbcd446199c03fecb (patch) | |
tree | d8257dcf6457b0f38124606fb0419912ffc71bfc /remux.h | |
parent | 191fb910bf8f908266dd512a9c649cc906cb72d0 (diff) | |
download | vdr-5c68fc100c87bf677932852fbcd446199c03fecb.tar.gz vdr-5c68fc100c87bf677932852fbcd446199c03fecb.tar.bz2 |
Redesigned the ring buffer; prepared for remultiplexing
Diffstat (limited to 'remux.h')
-rw-r--r-- | remux.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/remux.h b/remux.h new file mode 100644 index 00000000..bceb676b --- /dev/null +++ b/remux.h @@ -0,0 +1,51 @@ +/* + * remux.h: A streaming MPEG2 remultiplexer + * + * See the main source file 'vdr.c' for copyright information and + * how to reach the author. + * + * $Id: remux.h 1.1 2001/03/31 08:42:27 kls Exp $ + */ + +#ifndef __REMUX_H +#define __REMUX_H + +// There are various experiments with different types of remultiplexers +// going on at the moment. Select the remultiplexer here: +#define REMUX_NONE 1 +//#define REMUX_TEST 1 + +// Picture types: +#define NO_PICTURE 0 +#define I_FRAME 1 +#define P_FRAME 2 +#define B_FRAME 3 + +// Start codes: +#define SC_PICTURE 0x00 // "picture header" +#define SC_SEQU 0xB3 // "sequence header" +#define SC_PHEAD 0xBA // "pack header" +#define SC_SHEAD 0xBB // "system header" +#define SC_AUDIO 0xC0 +#define SC_VIDEO 0xE0 + +// The minimum amount of video data necessary to identify frames: +#define MINVIDEODATA (256*1024) // just a safe guess (max. size of any frame block, plus some safety) + +typedef unsigned char uchar; + +class cRemux { +private: +#if defined(REMUX_NONE) + bool synced; + int GetPacketLength(const uchar *Data, int Count, int Offset); + int ScanVideoPacket(const uchar *Data, int Count, int Offset, uchar &PictureType); +#elif defined(REMUX_TEST) +#endif +public: + cRemux(void); + ~cRemux(); + const uchar *Process(const uchar *Data, int &Count, int &Result, uchar &PictureType); + }; + +#endif // __REMUX_H |