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

📄 tglobalsettings.h

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

#include "TOSDsettings.h"
#include "ffcodecs.h"
#include "Toptions.h"

#define COMPATIBLE_EXE_FILENAME _l("aegisub.exe\r\nALLPlayer.exe\r\nALShow.exe\r\nass_help3r.exe\r\navi2mpg.exe\r\navipreview.exe\r\naviutl.exe\r\nBePipe.exe\r\nbsplay.exe\r\nbsplayer.exe\r\nchristv.exe\r\nCorePlayer.exe\r\ncoreplayer.exe\r\ncrystalfree.exe\r\ncut_assistant.exe\r\nDScaler.exe\r\ndv.exe\r\nDVDMaker.exe\r\nehshell.exe\r\nfirefox.exe\r\ngom.exe\r\ngraphedit.exe\r\ngraphedt.exe\r\ngspot.exe\r\niexplore.exe\r\nJetAudio.exe\r\nkmplayer.exe\r\nLA.exe\r\nLilith.exe\r\nmakeAVIS.exe\r\nMedia Center 12.exe\r\nMedia Jukebox.exe\r\nmegui.exe\r\nMovieMk.exe\r\nmplayer2.exe\r\nmplayerc.exe\r\nMunite.exe\r\nMuzikbrowzer.exe\r\nMv2PlayerPlus.exe\r\nnvplayer.exe\r\npowerdvd.exe\r\nprogdvb.exe\r\nQonoha.exe\r\nrealplay.exe\r\nrlkernel.exe\r\nSinkuHadouken.exe\r\nSplitCam.exe\r\nTheaterTek DVD.exe\r\ntimecodec.exe\r\nViPlay3.exe\r\nvirtualdub.exe\r\nvirtualdubmod.exe\r\nwinamp.exe\r\nwindvd.exe\r\nwmenc.exe\r\nwmplayer.exe\r\nzplayer.exe\r\n")\
          _l("Sleipnir.exe\r\n")\
          _l("fenglei.exe\r\n")\
          _l("MDirect.exe\r\n")\
          _l("SubtitleEdit.exe\r\n")\
          _l("sherlock2.exe\r\n")\
          _l("GoogleDesktop.exe\r\n")\
          _l("MediaServer.exe\r\n")\
          _l("MediaPortal.exe\r\n")\
          _l("honestechTV.exe\r\n")\
          _l("DVD Shrink 3.2.exe\r\n")\
          _l("stillcap.exe\r\n")\
          _l("carom.exe\r\n")\
          _l("WCreator.exe\r\n")\
          _l("ppmate.exe\r\n")\
          _l("ShowTime.exe\r\n")\
          _l("YahooWidgetEngine.exe\r\n")\
          _l("PowerDirector.exe\r\n")\
          _l("infotv.exe\r\n")\
          _l("rundll32.exe\r\n")\
          _l("smartmovie.exe\r\n")\
          _l("MpegVideoWizard.exe\r\n")\
          _l("SWFConverter.exe\r\n")\
          _l("FMRadio.exe\r\n")\
          _l("TMPGEnc.exe\r\n")\
          _l("HPWUCli.exe\r\n")\
          _l("pcwmp.exe\r\n")\
          _l("NeroVision.exe\r\n")\
          _l("ICQLite.exe\r\n")\
          _l("SubtitleWorkshop.exe\r\n")\
          _l("Adobe Premiere Pro.exe\r\n")\
          _l("Media Player Classic.exe\r\n")\
          _l("Opera.exe\r\n")\
          _l("amcap.exe\r\n")\
          _l("PaintDotNet.exe\r\n")\
          _l("GoogleDesktopCrawl.exe\r\n")\
          _l("WinAVI.exe\r\n")\
          _l("TVersity.exe\r\n")\
          _l("IHT.exe\r\n")\
          _l("START.EXE\r\n")\
          _l("mencoder.exe\r\n")\
          _l("dvdplay.exe\r\n")\
          _l("ehExtHost.exe\r\n")\
          _l("aim6.exe\r\n")\
          _l("CrystalPro.exe\r\n")\
          _l("PPStream.exe\r\n")\
          _l("Crystal.exe\r\n")\
          _l("TMPGEnc4XP.exe\r\n")\
          _l("subedit.exe\r\n")\
          _l("emule_TK4.exe\r\n")\
          _l("BTVD3DShell.exe\r\n")\
          _l("Xvid4PSP.exe\r\n")\
          _l("dashboard.exe\r\n")\
          _l("drdivx.exe\r\n")\
          _l("NMSTranscoder.exe\r\n")\
          _l("Fortius.exe\r\n")\
          _l("VideoSnapshot.exe\r\n")\
          _l("RadLight.exe\r\n")\
          _l("Procoder2.exe\r\n")\
          _l("DivX Player.exe\r\n")\
          _l("i_view32.exe\r\n")\
          _l("Recode.exe\r\n")\
          _l("Encode360.exe\r\n")\
          _l("ACDSee5.exe\r\n")\
          _l("filtermanager.exe\r\n")\
          _l("avicodec.exe\r\n")\
          _l("x264.exe\r\n")\
          _l("MediaLife.exe\r\n")\
          _l("cscript.exe\r\n")\
          _l("wscript.exe\r\n")\
          _l("SopCast.exe\r\n")\
          _l("DreamMaker.exe\r\n")\
          _l("Maxthon.exe\r\n")\
          _l("InfoTool.exe\r\n")\
          _l("Ultra EDIT.exe\r\n")\
          _l("moviethumb.exe\r\n")\
          _l("GDivX Player.exe\r\n")\
          _l("TOTALCMD.EXE\r\n")\
          _l("CodecInstaller.exe\r\n")\
          _l("OUTLOOK.EXE\r\n")\
          _l("NeroHome.exe\r\n")\
          _l("ALSong.exe\r\n")\
          _l("HBP.exe\r\n")\
          _l("Easy RealMedia Tools.exe\r\n")\
          _l("myplayer.exe\r\n")\
          _l("bplay.exe\r\n")\
          _l("nero.exe\r\n")\
          _l("ICQ.exe\r\n")\
          _l("XNVIEW.EXE\r\n")\
          _l("WINWORD.EXE\r\n")\
          _l("POWERPNT.EXE\r\n")\
          _l("Studio.exe\r\n")\
          _l("iPlayer.exe\r\n")\
          _l("Adobe Premiere Elements.exe\r\n")\
          _l("Photoshop.exe\r\n")\
          _l("VideoSplitter.exe\r\n")\
          _l("dvbviewer.exe\r\n")\
          _l("FSViewer.exe\r\n")\
          _l("DVDMF.exe\r\n")\
          _l("Flash.exe\r\n")\
          _l("VCD_PLAY.EXE\r\n")\
          _l("WinMPGVideoConvert.exe\r\n")\
          _l("Apollo DivX to DVD Creator.exe\r\n")\
          _l("Avi2Dvd.exe\r\n")\
          _l("PVCR.exe\r\n")\
          _l("HDVSplit.exe\r\n")\
          _l("time_adjuster.exe\r\n")\
          _l("playwnd.exe\r\n")\
          _l("OrbStreamerClient.exe\r\n")\
          _l("SelfMV.exe\r\n")\
          _l("TVUPlayer.exe\r\n")\
          _l("amvtransform.exe\r\n")\
          _l("Badak.exe\r\n")\
          _l("CTCMSU.exe\r\n")\
          _l("CTWave.exe\r\n")\
          _l("IncMail.exe\r\n")\
          _l("MMPlayer.exe\r\n")\
          _l("mpcstar.exe\r\n")\
          _l("PhotoScreensaver.scr\r\n")\
          _l("QQPlayerSvr.exe\r\n")\
          _l("Shareaza.exe\r\n")\
          _l("afreecaplayer.exe\r\n")\
          _l("WFTV.exe\r\n")\
          _l("coolpro2.exe\r\n")\
          _l("PPLive.exe\r\n")\
          _l("Picasa2.exe\r\n")\
          _l("VeohClient.exe\r\n")\
          _l("ACDSee9.exe\r\n")\
          _l("BitComet.exe\r\n")\
          _l("jwBrowser.exe\r\n")\
          _l("DVDAuthor.exe\r\n")

#define BLACKLIST_EXE_FILENAME _l("explorer.exe;oblivion.exe;morrowind.exe")

struct TregOp;
struct Tconfig;
struct TglobalSettingsBase :public Toptions
{
private:
 void addToCompatiblityList(char_t *list, const char_t *exe, const char_t *delimit);
protected:
 const Tconfig *config;
 const char_t *reg_child;
 virtual void reg_op_codec(TregOp &t,TregOp *t2) {}
 void _reg_op_codec(short id,TregOp &tHKCU,TregOp *tHKLM,const char_t *name,int &val,int def);
 strings blacklistList,useonlyinList;bool firstBlacklist,firstUseonlyin;
public:
 TglobalSettingsBase(const Tconfig *Iconfig,int Imode,const char_t *Ireg_child,TintStrColl *Icoll);
 virtual ~TglobalSettingsBase() {}
 bool exportReg(bool all,const char_t *regflnm,bool unicode);
 int filtermode;
 int multipleInstances;
 int isBlacklist,isUseonlyin;char_t blacklist[MAX_COMPATIBILITYLIST_LENGTH],useonlyin[MAX_COMPATIBILITYLIST_LENGTH];
 virtual bool inBlacklist(const char_t *exe);
 virtual bool inUseonlyin(const char_t *exe,IffdshowBase *Ideci);
 int addToROT;
 int allowedCPUflags;
 int compOnLoadMode;

 virtual void load(void);
 virtual void save(void);
 int trayIcon,trayIconType,trayIconExt,trayIconChanged;
 int isCompMgr,isCompMgrChanged;

 int outputdebug;
 int outputdebugfile;char_t debugfile[MAX_PATH];
 int errorbox;

 char_t dscalerPth[MAX_PATH];
};

struct TglobalSettingsDec :public TglobalSettingsBase
{
private:
 TglobalSettingsDec& operator =(const TglobalSettingsDec&);
protected:
 virtual void reg_op(TregOp &t);
 void fixMissing(int &codecId,int movie1,int movie2,int movie3);
 void fixMissing(int &codecId,int movie1,int movie2);
 void fixMissing(int &codecId,int movie);
 virtual int getDefault(int id);
 static void cleanupCodecsList(std::vector<CodecID> &ids,Tstrptrs &codecs);
 TglobalSettingsDec(const Tconfig *Iconfig,int Imode,const char_t *Ireg_child,TintStrColl *Icoll,TOSDsettings *Iosd);
public:
 char_t defaultPreset[MAX_PATH];
 int autoPreset,autoPresetFileFirst;

 int streamsMenu;
 TOSDsettings *osd;

 virtual void load(void);
 virtual void save(void);

 virtual CodecID getCodecId(DWORD fourCC,FOURCC *AVIfourCC) const =0;
 virtual const char_t** getFOURCClist(void) const=0;
 virtual void getCodecsList(Tstrptrs &codecs) const=0;
};

struct TglobalSettingsDecVideo :public TglobalSettingsDec
{
private:
 int forceInCSP;
 int needCodecFix;
 void fixNewCodecs(void);
 static const char_t *fourccs[];
 static const CodecID c_mpeg4[IDFF_MOVIE_MAX+1],c_mpeg1[IDFF_MOVIE_MAX+1],c_mpeg2[IDFF_MOVIE_MAX+1],c_theora[IDFF_MOVIE_MAX+1],c_wvc1[IDFF_MOVIE_MAX+1],c_wmv3[IDFF_MOVIE_MAX+1],c_wmv2[IDFF_MOVIE_MAX+1],c_wmv1[IDFF_MOVIE_MAX+1];
protected:
 virtual void reg_op(TregOp &t);
 virtual void reg_op_codec(TregOp &t,TregOp *t2);
 virtual int getDefault(int id);
public:
 int buildHistogram;
 int xvid,div3,mp4v,dx50,fvfw,mp43,mp42,mp41,h263,h264,vp5,vp6,vp6f,wmv1,wmv2,wvc1,wmv3,mss2,wvp2,cavs,rawv,mpg1,mpg2,mpegAVI,em2v,avrn,mjpg,dvsd,cdvc,hfyu,cyuv,theo,asv1,svq1,svq3,cram,rt21,iv32,cvid,rv10,ffv1,vp3,vcr1,rle,avis,mszh,zlib,flv1,_8bps,png1,qtrle,duck,tscc,qpeg,h261,loco,wnv1,cscd,zmbv,ulti,vixl,aasc,fps1,qtrpza,snow;
 int supdvddec;
 int fastMpeg2,fastH264,libtheoraPostproc;

 virtual void load(void);
 TOSDsettingsVideo osd;

 struct TsubtitlesSettings : Toptions
  {
  protected:
   virtual void getDefaultStr(int id,char_t *buf,size_t buflen);
  public:
   TsubtitlesSettings(TintStrColl *Icoll);
   char_t searchDir[2*MAX_PATH];char_t searchExt[2*MAX_PATH];
   int searchHeuristic;
   int watch;
   int textpin,textpinSSA;
  } sub;

 TglobalSettingsDecVideo(const Tconfig *Iconfig,int Imode,TintStrColl *Icoll);
 virtual CodecID getCodecId(DWORD fourCC,FOURCC *AVIfourCC) const;
 virtual const char_t** getFOURCClist(void) const;
 virtual void getCodecsList(Tstrptrs &codecs) const;
};

struct TglobalSettingsDecAudio :public TglobalSettingsDec
{
private:
 static const char_t *wave_formats[];
 static const CodecID c_mp123[IDFF_MOVIE_MAX+1],c_ac3[IDFF_MOVIE_MAX+1],c_dts[IDFF_MOVIE_MAX+1],c_aac[IDFF_MOVIE_MAX+1],c_vorbis[IDFF_MOVIE_MAX+1];
protected:
 virtual void reg_op_codec(TregOp &t,TregOp *t2);
 virtual int getDefault(int id);
 virtual void getDefaultStr(int id,char_t *buf,size_t buflen);
public:
 TglobalSettingsDecAudio(const Tconfig *Iconfig,int Imode,TintStrColl *Icoll,const char_t *Ireg_child=FFDSHOWDECAUDIO);
 TOSDsettingsAudio osd;
 int wma1,wma2,mp2,mp3,ac3,aac,amr,rawa,avis,iadpcm,msadpcm,flac,lpcm,dts,vorbis,law,gsm,tta,otherAdpcm,qdm2,truespeech,mace,ra,imc,atrac3;
 int dtsinwav;
 int ac3drc,dtsdrc;
 int ac3SPDIF;
 int showCurrentVolume;
 int showCurrentFFT;
 int firIsUserDisplayMaxFreq,firUserDisplayMaxFreq;
 int isAudioSwitcher;
 int alwaysextensible;
 int allowOutStream;
 int vorbisgain;
 char_t winamp2dir[MAX_PATH];
 virtual void load(void);
 virtual CodecID getCodecId(DWORD fourCC,FOURCC *AVIfourCC) const;
 virtual const char_t** getFOURCClist(void) const;
 virtual void getCodecsList(Tstrptrs &codecs) const;
};
struct TglobalSettingsDecAudioRaw :public TglobalSettingsDecAudio
{
 TglobalSettingsDecAudioRaw(const Tconfig *Iconfig,int Imode,TintStrColl *Icoll):TglobalSettingsDecAudio(Iconfig,Imode,Icoll,FFDSHOWDECAUDIORAW) {}
};

struct TglobalSettingsEnc :public TglobalSettingsBase
{
protected:
 virtual int getDefault(int id);
public:
 TglobalSettingsEnc(const Tconfig *Iconfig,int Imode,TintStrColl *Icoll);
 int psnr;
 int isDyInterlaced,dyInterlaced;
};

#endif

⌨️ 快捷键说明

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