tblursettings.cpp.svn-base
来自「ffshow源码」· SVN-BASE 代码 · 共 181 行
SVN-BASE
181 行
/* * Copyright (c) 2003-2006 Milan Cutka * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */#include "stdafx.h"#include "TblurSettings.h"#include "TimgFilterBlur.h"#include "TimgFilterSmoother.h"#include "TimgFilterTimesmooth.h"#include "TimgFilterGradualDenoise.h"#include "TimgFilterDenoise3d.h"#include "Cblur.h"#include "TffdshowPageDec.h"const TfilterIDFF TblurSettings::idffs={ /*name*/ _l("Blur & NR"), /*id*/ IDFF_filterBlur, /*is*/ IDFF_isBlur, /*order*/ IDFF_orderBlur, /*show*/ IDFF_showBlur, /*full*/ IDFF_fullBlur, /*half*/ IDFF_halfBlur, /*dlgId*/ IDD_BLUR,};TblurSettings::TblurSettings(TintStrColl *Icoll,TfilterIDFFs *filters):TfilterSettingsVideo(sizeof(*this),Icoll,filters,&idffs){ static const TintOptionT<TblurSettings> iopts[]= { IDFF_isBlur ,&TblurSettings::is ,0,0,_l(""),1, _l("isBlur"),0, IDFF_showBlur ,&TblurSettings::show ,0,0,_l(""),1, _l("showBlur"),1, IDFF_orderBlur ,&TblurSettings::order ,1,1,_l(""),1, _l("orderBlur"),0, IDFF_fullBlur ,&TblurSettings::full ,0,0,_l(""),1, _l("fullBlur"),0, IDFF_halfBlur ,&TblurSettings::half ,0,0,_l(""),1, _l("halfBlur"),0, IDFF_blurIsSoften ,&TblurSettings::isSoften ,0,0,_l(""),1, _l("blurIsSoften"),0, IDFF_blurStrength ,&TblurSettings::soften ,0,255,_l(""),1, _l("blurStrength"),30, IDFF_blurIsTempSmooth ,&TblurSettings::isTempSmooth ,0,0,_l(""),1, _l("blurIsTempSmooth"),0, IDFF_tempSmooth ,&TblurSettings::tempSmooth ,0,10,_l(""),1, _l("tempSmooth"),0, IDFF_tempSmoothColor ,&TblurSettings::tempSmoothColor ,0,0,_l(""),1, _l("tempSmoothColor"),1, IDFF_blurIsSmoothLuma ,&TblurSettings::isSmoothLuma ,0,0,_l(""),1, _l("blurIsSmoothLuma"),0, IDFF_smoothStrengthLuma ,&TblurSettings::smoothStrengthLuma ,0,5000,_l(""),1, _l("blurIsSmoothChroma"),0, IDFF_blurIsSmoothChroma ,&TblurSettings::isSmoothChroma ,0,0,_l(""),1, _l("smoothStrengthLuma"),300, IDFF_smoothStrengthChroma ,&TblurSettings::smoothStrengthChroma ,0,5000,_l(""),1, _l("smoothStrengthChroma"),0, IDFF_blurIsGradual ,&TblurSettings::isGradual ,0,0,_l(""),1, _l("blurIsGradual"),1, IDFF_gradualStrength ,&TblurSettings::gradualStrength ,5,100,_l(""),1, _l("gradualStrength"),40, IDFF_blurIsMplayerTNR ,&TblurSettings::isMplayerTNR ,0,0,_l(""),1, _l("blurIsMplayerTNR"),0, IDFF_mplayerTNR1 ,&TblurSettings::mplayerTNR1 ,-3,-3,_l(""),1, _l("mplayerTNR1"),700, IDFF_mplayerTNR2 ,&TblurSettings::mplayerTNR2 ,-3,-3,_l(""),1, _l("mplayerTNR2"),1500, IDFF_mplayerTNR3 ,&TblurSettings::mplayerTNR3 ,-3,-3,_l(""),1, _l("mplayerTNR3"),3000, IDFF_blurIsMplayer ,&TblurSettings::isMplayerBlur ,0,0,_l(""),1, _l("blurIsMplayerBLur"),0, IDFF_mplayerBlurRadius ,&TblurSettings::mplayerBlurRadius ,1,9,_l(""),1, _l("mplayerBlurRadius"),3, IDFF_mplayerBlurLuma ,&TblurSettings::mplayerBlurLuma ,0,400,_l(""),1, _l("mplayerBlurLuma"),100, IDFF_mplayerBlurChroma ,&TblurSettings::mplayerBlurChroma ,0,400,_l(""),1, _l("mplayerBlurChroma"),150, IDFF_blurIsDenoise3d ,&TblurSettings::isDenoise3d ,0,0,_l(""),1, _l("isDenoise3d"),0, IDFF_denoise3Dluma ,&TblurSettings::denoise3Dluma ,0,2000,_l(""),1, _l("denoise3Dluma"),400, IDFF_denoise3Dchroma ,&TblurSettings::denoise3Dchroma ,0,2000,_l(""),1, _l("denoise3Dchroma"),300, IDFF_denoise3Dtime ,&TblurSettings::denoise3Dtime ,0,2000,_l(""),1, _l("denoise3Dtime"),600, IDFF_denoise3Dhq ,&TblurSettings::denoise3Dhq ,0,0,_l(""),1, _l("denoise3Dhq"),0, 0 }; addOptions(iopts);}void TblurSettings::getMinMax(int id,int &min,int &max){ switch (id) { case IDFF_mplayerTNR1:min=1;max=mplayerTNR2;return; case IDFF_mplayerTNR2:min=mplayerTNR1;max=mplayerTNR3;return; case IDFF_mplayerTNR3:min=mplayerTNR2;max=5000;return; }}void TblurSettings::createFilters(size_t filtersorder,Tfilters *filters,TfilterQueue &queue) const{ idffOnChange(idffs,filters,queue.temporary); if (is && show) { if (!queue.temporary) { setOnChange(IDFF_blurIsSoften,filters,&Tfilters::onQueueChange); setOnChange(IDFF_blurIsTempSmooth,filters,&Tfilters::onQueueChange); setOnChange(IDFF_blurIsSmoothLuma,filters,&Tfilters::onQueueChange); setOnChange(IDFF_blurIsSmoothChroma,filters,&Tfilters::onQueueChange); setOnChange(IDFF_blurIsGradual,filters,&Tfilters::onQueueChange); setOnChange(IDFF_blurIsMplayerTNR,filters,&Tfilters::onQueueChange); setOnChange(IDFF_blurIsMplayer,filters,&Tfilters::onQueueChange); setOnChange(IDFF_blurIsDenoise3d,filters,&Tfilters::onQueueChange); setOnChange(IDFF_denoise3Dhq,filters,&Tfilters::onQueueChange); } if (isSoften) queueFilter<TimgFilterBlur>(filtersorder,filters,queue); if (isSmoothLuma) queueFilter<TimgFilterSmootherLuma>(filtersorder,filters,queue); if (isSmoothChroma) queueFilter<TimgFilterSmootherChroma>(filtersorder,filters,queue); if (isTempSmooth) queueFilter<TimgFilterTimesmooth>(filtersorder,filters,queue); if (isGradual) queueFilter<TimgFilterGradualDenoise>(filtersorder,filters,queue); if (isMplayerTNR) queueFilter<TimgFilterMplayerTNR>(filtersorder,filters,queue); if (isMplayerBlur) queueFilter<TimgFilterMplayerBlur>(filtersorder,filters,queue); if (isDenoise3d) if (denoise3Dhq) queueFilter<TimgFilterDenoise3dHQ>(filtersorder,filters,queue); else queueFilter<TimgFilterDenoise3dNormal>(filtersorder,filters,queue); }}void TblurSettings::createPages(TffdshowPageDec *parent) const{ parent->addFilterPage<TblurPage>(&idffs);}const int* TblurSettings::getResets(unsigned int pageId){ static const int idResets[]={ IDFF_blurStrength, IDFF_tempSmooth,IDFF_tempSmoothColor, IDFF_gradualStrength, IDFF_mplayerTNR1,IDFF_mplayerTNR2,IDFF_mplayerTNR3, IDFF_mplayerBlurRadius,IDFF_mplayerBlurLuma,IDFF_mplayerBlurChroma, IDFF_denoise3Dluma,IDFF_denoise3Dchroma,IDFF_denoise3Dtime,IDFF_denoise3Dhq, 0}; return idResets;}bool TblurSettings::getTip(unsigned int pageId,char_t *tipS,size_t len){ char_t tip[1000]=_l(""); if (isSoften) tsprintf(tip,_l("blur: %i\n"),soften); if (isTempSmooth) strcatf(tip,_l("temporal smooth: %i\n"),tempSmooth); if (isSmoothLuma) strcatf(tip,_l("luminance smoother: %i\n"),smoothStrengthLuma); if (isSmoothChroma) strcatf(tip,_l("chroma smoother %i\n"),smoothStrengthChroma); if (isGradual) strcatf(tip,_l("gradual denoise: %i\n"),gradualStrength); if (isMplayerTNR) strcatf(tip,_l("mplayer TNR: %i,%i,%i\n"),mplayerTNR1,mplayerTNR2,mplayerTNR3); if (isMplayerBlur) strcatf(tip,_l("swscaler gaussian blur - radius:%i, luma:%.2f, chroma:%.2f\n"),mplayerBlurRadius,mplayerBlurLuma/100.0f,mplayerBlurChroma/100.0f); if (isDenoise3d) strcatf(tip,_l("denoise 3d %s - luma:%.2f, chroma:%.2f, time:%.2f"),denoise3Dhq?_l("hq"):_l(""),denoise3Dluma/100.0f,denoise3Dchroma/100.0f,denoise3Dtime/100.0f); if (tip[strlen(tip)-1]=='\n') tip[strlen(tip)-1]='\0'; strncpy(tipS,tip,len);tipS[len-1]='\0'; return true;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?