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

📄 tpresetsettingsvideo.h

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

#include "TpresetSettings.h"

struct TvideoAutoPresetProps :TautoPresetProps
{
private:
 comptrQ<IffdshowDecVideo> deciV;
 bool wasResolution;unsigned int dx,dy;
 char_t fourcc[5];
 double SAR,DAR;
 double fps;
 static const char_t aspectSAR,aspectDAR;
public:
 TvideoAutoPresetProps(IffdshowBase *Ideci);
 void getSourceResolution(unsigned int *dx,unsigned int *dy);
 const char_t* getFOURCC(void);
 static const char_t* getFOURCCitem(IffdshowDec *deciD,unsigned int index);
 const char_t *getSAR(void),*getDAR(void);
 const char_t *getFps(void);
 bool aspectMatch(const char_t *mask,const char_t *flnm);
 bool fpsMatch(const char_t *mask,const char_t *flnm);
};

struct TpostprocSettings;
struct TsubtitlesSettings;
struct TlevelsSettings;
struct TvisSettings;
struct TgrabSettings;
struct ToutputVideoSettings;
struct TresizeAspectSettings;
struct TpresetVideo :public Tpreset
{
private:
 int needOutcspsFix,needGlobalFix;
protected:
 virtual void reg_op(TregOp &t);
 virtual int getDefault(int id);
public:
 TpresetVideo(const char_t *Ireg_child,const char_t *IpresetName);
 virtual ~TpresetVideo() {}
 TpresetVideo& operator=(const TpresetVideo &src)
  {
   Tpreset::operator =(src);
   needOutcspsFix=src.needOutcspsFix;
   needGlobalFix=src.needGlobalFix;

   autoloadSize=src.autoloadSize;
   autoloadSizeXmin=src.autoloadSizeXmin;
   autoloadSizeXmax=src.autoloadSizeXmax;
   autoloadSizeCond=src.autoloadSizeCond;
   autoloadSizeYmin=src.autoloadSizeYmin;
   autoloadSizeYmax=src.autoloadSizeYmax;

   videoDelay=src.videoDelay;isVideoDelayEnd=src.isVideoDelayEnd;videoDelayEnd=src.videoDelayEnd;
   idct=src.idct;
   workaroundBugs=src.workaroundBugs;errorResilience=src.errorResilience;errorConcealment=src.errorConcealment;
   lavcDecThreads=src.lavcDecThreads;
   grayscale=src.grayscale;
   multiThread=src.multiThread;
   dontQueueInWMP=src.dontQueueInWMP;
   useQueueOnlyIn=src.useQueueOnlyIn;
   queueCount=src.queueCount;
   dropOnDelay=src.dropOnDelay;
   dropDelayTime=src.dropDelayTime;
   h264skipOnDelay=src.h264skipOnDelay;
   h264skipDelayTime=src.h264skipDelayTime;
   strncpy(useQueueOnlyInList, src.useQueueOnlyInList, 256);

   isDyInterlaced=src.isDyInterlaced;dyInterlaced=src.dyInterlaced;
   return *this;
  }

 virtual Tpreset* copy(void) {return new_copy(this);}
 virtual void loadReg(void);

 int autoloadSize,autoloadSizeXmin,autoloadSizeXmax,autoloadSizeCond,autoloadSizeYmin,autoloadSizeYmax;
 bool autoloadSizeMatch(int AVIdx,int AVIdy);

 int videoDelay,isVideoDelayEnd,videoDelayEnd;
 int idct;
 int workaroundBugs,errorResilience,errorConcealment;
 int lavcDecThreads;
 int grayscale;
 int multiThread;
 int dontQueueInWMP,useQueueOnlyIn,queueCount;
 int dropOnDelay, dropDelayTime, dropDelayTimeReal;
 int h264skipOnDelay, h264skipDelayTime;
 char_t useQueueOnlyInList[256];

 int isDyInterlaced,dyInterlaced;

 TpostprocSettings *postproc;
 TsubtitlesSettings *subtitles;
 TlevelsSettings *levels;
 TresizeAspectSettings *resize;
 TvisSettings *vis;
 TgrabSettings *grab;
 ToutputVideoSettings *output;
};

class TpresetVideoPlayer : public TpresetVideo
{
public:
 TpresetVideoPlayer(const char_t *Ireg_child,const char_t *IpresetName);
 virtual Tpreset* copy(void) {return new_copy(this);}
};

#endif

⌨️ 快捷键说明

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