⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tvideocodeclibmpeg2.h

📁 从FFMPEG转换而来的H264解码程序,VC下编译..
💻 H
字号:
#ifndef _TVIDEOCODECLIBMPEG2_H_
#define _TVIDEOCODECLIBMPEG2_H_

#include "TvideoCodec.h"
#include "libmpeg2/include/mpeg2.h"

class Tdll;
struct Textradata;
class TccDecoder;
class TvideoCodecLibmpeg2 :public TvideoCodecDec
{
private:
 Tdll *dll;
 uint32_t (*mpeg2_accel)(uint32_t accel);
 mpeg2dec_t* (*mpeg2_init)(void);
 const mpeg2_info_t* (*mpeg2_info)(mpeg2dec_t *mpeg2dec);
 void (*mpeg2_set_accel)(int accel);
 mpeg2_state_t (*mpeg2_parse )(mpeg2dec_t *mpeg2dec);
 void (*mpeg2_buffer)(mpeg2dec_t *mpeg2dec, const uint8_t *start, const uint8_t *end);
 void (*mpeg2_close)(mpeg2dec_t *mpeg2dec);
 void (*mpeg2_reset)(mpeg2dec_t *mpeg2dec, int full_reset);
 void (*mpeg2_set_rtStart)(mpeg2dec_t *mpeg2dec,int64_t rtStart);
 int (*mpeg2_guess_aspect)(const mpeg2_sequence_t * sequence,unsigned int * pixel_width,unsigned int * pixel_height);

 mpeg2dec_t *mpeg2dec;
 const mpeg2_info_t *info;
 bool wait4Iframe;
 int sequenceFlag;
 REFERENCE_TIME avgTimePerFrame;
 TffPict oldpict;
 Textradata *extradata;
 TccDecoder *ccDecoder;
 void init(void);
 Tbuffer *buffer;
 virtual HRESULT decompressI(const unsigned char *src,size_t srcLen,IMediaSample *pIn);
protected:
 virtual bool beginDecompress(TffPictBase &pict,FOURCC infcc,const CMediaType &mt,int sourceFlags);
public:
 TvideoCodecLibmpeg2(IffdshowBase *Ideci,IdecVideoSink *Isink);
 virtual ~TvideoCodecLibmpeg2();

 static const char_t *dllname;
 virtual int getType(void) const {return IDFF_MOVIE_LIBMPEG2;}
 virtual int caps(void) const {return CAPS::VIS_QUANTS;}

 virtual void end(void);
 virtual HRESULT decompress(const unsigned char *src,size_t srcLen,IMediaSample *pIn);
 virtual bool onSeek(REFERENCE_TIME segmentStart);
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -