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

📄 tlibmplayer.h

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

#include "postproc/postprocess.h"
#include "TpostprocSettings.h"

class Tdll;
struct Tconfig;
struct SwsContext;
struct SwsFilter;
struct SwsVector;
struct mp3lib_ctx;
struct SwsParams;
struct Tlibmplayer
{
private:
 Tdll *dll;
 Tlibmplayer(const Tconfig *config);
 ~Tlibmplayer();
 friend class TffdshowBase;
 friend class TffColorspaceConvert;
 int refcount;
public:
 void AddRef(void)
  {
   refcount++;
  }
 void Release(void)
  {
   if (--refcount<0)
    delete this;
  }
 static const char_t *dllname;

 void (*init_mplayer)(int mmx,int mmx2,int _3dnow,int _3dnowExt,int sse,int sse2);

 pp_context_t* (*pp_get_context)(int width, int height, int flags);
 void (*pp_postprocess)(const uint8_t * src[3], stride_t srcStride[3], uint8_t * dst[3], stride_t dstStride[3], int horizontalSize, int verticalSize, QP_STORE_T *QP_store,  int QP_stride, pp_mode_t *mode, pp_context_t *ppContext, int pict_type);
 void (*pp_free_context)(pp_context_t *ppContext);

 SwsVector* (*sws_getGaussianVec)(double variance, double quality);
 SwsVector* (*sws_getConstVec)(double c,int length);
 void (*sws_freeVec)(SwsVector *a);
 void (*sws_normalizeVec)(SwsVector *a, double height);
 SwsFilter* (*sws_getDefaultFilter)(float lumaGBlur, float chromaGBlur, float lumaSarpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose);
 void (*sws_freeFilter)(SwsFilter *filter);
 SwsContext* (*sws_getContext)(int srcW, int srcH, int srcFormat, int dstW, int dstH, int dstFormat, SwsParams *params, SwsFilter *srcFilter, SwsFilter *dstFilter);
 int (*sws_scale)(struct SwsContext *context, const uint8_t* src[], const stride_t srcStride[], int srcSliceY, int srcSliceH, uint8_t* dst[], stride_t dstStride[]);
 int (*sws_scale_ordered)(SwsContext *c, const uint8_t* src[], const stride_t srcStride[], int srcSliceY,int srcSliceH, uint8_t* dst[], stride_t dstStride[]);
 void (*sws_freeContext)(struct SwsContext *swsContext);

 mp3lib_ctx* (*MP3_Init)(int mono);
 int (*MP3_DecodeFrame)(mp3lib_ctx* ctx,const unsigned char *Isrc,unsigned int Isrclen,unsigned char *hova,short single,unsigned int *srcUsed);
 void (*MP3_Done)(mp3lib_ctx *ctx);

 void (*palette8torgb32)(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
 void (*palette8tobgr32)(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
 void (*palette8torgb24)(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
 void (*palette8tobgr24)(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
 void (*palette8torgb16)(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
 void (*palette8tobgr16)(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
 void (*palette8torgb15)(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
 void (*palette8tobgr15)(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
 void (*decCPUCount)(void);
 void (*incCPUCount)(void);

 static int swsCpuCaps(void);
 static void swsInitParams(SwsParams *params,int resizeMethod);
 static int ppCpuCaps(int csp=0);
 static void pp_mode_defaults(PPMode &ppMode);
 static int getPPmode(const TpostprocSettings *cfg,int currentq);
};

#endif

⌨️ 快捷键说明

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