diff options
Diffstat (limited to 'decoder.h')
-rw-r--r-- | decoder.h | 78 |
1 files changed, 0 insertions, 78 deletions
@@ -27,7 +27,6 @@ typedef unsigned char uchar; #endif -#ifdef HAVE_AVCODEC extern "C" { #include <libavcodec/avcodec.h> @@ -36,7 +35,6 @@ extern "C" #include <libavformat/avformat.h> #endif } -#endif #include "global.h" @@ -44,100 +42,24 @@ class cMarkAdDecoder { private: int recvnumber; -#ifdef HAVE_AVCODEC AVCodecContext *ac3_context; AVCodecContext *mp2_context; AVCodecContext *video_context; AVFrame *video_frame; - uchar *temp_pictureplane[4]; bool SetAudioInfos(MarkAdContext *maContext, AVCodecContext *Audio_Context); void PAR2DAR(AVRational a, AVRational *erg); bool SetVideoInfos(MarkAdContext *maContext,AVCodecContext *Video_Context, AVFrame *Video_Frame, AVRational *DAR); -#endif - // taken from femon - enum - { - NAL_SEI = 0x06, // Supplemental Enhancement Information - NAL_SPS = 0x07, // Sequence Parameter Set - NAL_AUD = 0x09, // Access Unit Delimiter - NAL_END_SEQ = 0x0A // End of Sequence - }; - int nalUnescape(uint8_t *dst, const uint8_t *src, int len); - - void FindH264VideoInfos(MarkAdContext *maContext, uchar *pkt, int len); - void FindH262VideoInfos(MarkAdContext *maContext, uchar *pkt, int len); public: - void FindVideoInfos(MarkAdContext *maContext, uchar *pkt, int len); bool DecodeVideo(MarkAdContext *maContext, uchar *pkt, int plen); bool DecodeMP2(MarkAdContext *maContext, uchar *espkt, int eslen); - void FindAC3AudioInfos(MarkAdContext *maContext, uchar *espkt, int eslen); bool DecodeAC3(MarkAdContext *maContext, uchar *espkt, int eslen); cMarkAdDecoder(int recvnumber, bool useH264, bool hasAC3); ~cMarkAdDecoder(); }; -// taken from femon -class cBitStream -{ -private: - const uint8_t *data; - int count; // in bits - int index; // in bits - -public: - cBitStream(const uint8_t *buf, const int len); - ~cBitStream(); - - int getBit(); - uint32_t getBits(uint32_t n); - void skipBits(uint32_t n); - uint32_t getUeGolomb(); - int32_t getSeGolomb(); - void skipGolomb(); - void skipUeGolomb(); - void skipSeGolomb(); - void byteAlign(); - - void skipBit() - { - skipBits(1); - } - uint32_t getU8() - { - return getBits(8); - } - uint32_t getU16() - { - return ((getBits(8) << 8) | getBits(8)); - } - uint32_t getU24() - { - return ((getBits(8) << 16) | (getBits(8) << 8) | getBits(8)); - } - uint32_t getU32() - { - return ((getBits(8) << 24) | (getBits(8) << 16) | (getBits(8) << 8) | getBits(8)); - } - bool isEOF() - { - return (index >= count); - } - void reset() - { - index = 0; - } - int getIndex() - { - return (isEOF() ? count : index); - } - const uint8_t *getData() - { - return (isEOF() ? NULL : data + (index / 8)); - } -}; #endif |