Exemple #1
0
//================================= TpresetAutoloadDlgBase ==================================
TpresetAutoloadDlgBase::TpresetAutoloadDlgBase(IffdshowBase *Ideci, HWND Iparent, int x, int y): TdlgWindow(IDD_PRESET_AUTOLOAD, Ideci), parent(Iparent), deciD(Ideci)
{
    this->x = x;
    this->y = y;
    itemsw = NULL;
    static const TbindRadiobutton<TpresetAutoloadDlgBase> rbt[] = {
        IDC_RBT_PRESETAUTOLOAD_OR,  IDFF_presetAutoloadLogic, 0, NULL,
        IDC_RBT_PRESETAUTOLOAD_AND, IDFF_presetAutoloadLogic, 1, NULL,
        0, 0, 0, NULL
    };
    bindRadioButtons(rbt);

    static const TbindEditInt<TpresetAutoloadDlgBase> edInt[] = {
        IDC_ED_PRESETAUTOLOAD_SIZE_SCREEN_XMIN, 1, 16384, IDFF_presetAutoloadScreenSizeXmin, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_SCREEN_XMAX, 1, 16384, IDFF_presetAutoloadScreenSizeXmax, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_SCREEN_YMIN, 1, 16384, IDFF_presetAutoloadScreenSizeYmin, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_SCREEN_YMAX, 1, 16384, IDFF_presetAutoloadScreenSizeYmax, NULL,
        0
    };
    bindEditInts(edInt);

    static const TbindCheckbox<TpresetAutoloadDlgBase> chb[] = {
        IDC_CHB_PRESETAUTOLOAD_SCREEN_SIZE, IDFF_presetAutoloadScreenSize, NULL,
        0, NULL, NULL
    };
    bindCheckboxes(chb);
}
Exemple #2
0
TdecoderOptionsPage::TdecoderOptionsPage(TffdshowPageDec *Iparent): TconfPageDecVideo(Iparent)
{
    dialogId = IDD_DECODEROPTIONS;
    inPreset = 1;
    helpURL = _l("http://ffdshow-tryout.sourceforge.net/wiki/video:decoder_options");
    static const TbindCheckbox<TdecoderOptionsPage> chb[] = {
        IDC_CHB_DROP_ON_DELAY, IDFF_dropOnDelay, NULL,
        IDC_CHB_H264_SKIP_ON_DELAY, IDFF_h264skipOnDelay, NULL,
        IDC_CHB_SOFT_TELECINE, IDFF_softTelecine, NULL,
        0, NULL, NULL
    };
    bindCheckboxes(chb);
    static const TbindEditInt<TdecoderOptionsPage> edInt[] = {
        IDC_ED_NUMTHREADS, 1, 8, IDFF_numLAVCdecThreads, NULL,
        IDC_ED_DROP_ON_DELAY_TIME, 0, 20000, IDFF_dropOnDelayTime, NULL,
        IDC_ED_H264SKIP_ON_DELAY_TIME, 0, 20000, IDFF_h264skipOnDelayTime, NULL,
        0, NULL, NULL
    };
    bindEditInts(edInt);
    static const TbindCombobox<TdecoderOptionsPage> cbx[] = {
        IDC_CBX_IDCT, IDFF_idct, BINDCBX_SEL, NULL,
        0
    };
    bindComboboxes(cbx);
    static const TbindButton<TdecoderOptionsPage> bt[] = {
        IDC_BT_QUANTMATRIX_EXPORT, &TdecoderOptionsPage::onMatrixExport,
        0, NULL
    };
    bindButtons(bt);
}
TsubtitlesTextPage::TsubtitlesTextPage(TffdshowPageDec *Iparent,const TfilterIDFF *idff):TconfPageDecVideo(Iparent,idff,5)
{
    dialogId=IDD_SUBTITLESTEXT;
    static const TbindCheckbox<TsubtitlesTextPage> chb[]= {
        IDC_CHB_SUB_SPLIT,IDFF_fontSplitting,&TsubtitlesTextPage::split2dlg,
        IDC_CHB_SUB_MINDURATION,IDFF_subIsMinDuration,&TsubtitlesTextPage::min2dlg,
        //IDC_CHB_SUB_HQBORDER,IDFF_fontHqBorder,&TsubtitlesTextPage::memory2dlg,
        0,NULL,NULL
    };
    bindCheckboxes(chb);
    static const TbindTrackbar<TsubtitlesTextPage> htbr[]= {
        IDC_TBR_SUB_LINESPACING,IDFF_subLinespacing,&TsubtitlesTextPage::linespacing2dlg,
        0,0,NULL
    };
    bindHtracks(htbr);
    static const TbindCombobox<TsubtitlesTextPage> cbx[]= {
        IDC_CBX_SUB_MINDURATION,IDFF_subMinDurationType,BINDCBX_SEL,&TsubtitlesTextPage::min2dlg,
        IDC_CBX_SUBFIX_IL,IDFF_subFixLang,BINDCBX_SEL,NULL,
        IDC_CBX_SUBFIX_ORTOGRAPHY,IDFF_subFixDict,BINDCBX_TEXT,NULL,
        IDC_CBX_SUB_WORDWRAP,IDFF_subWordWrap,BINDCBX_SEL,&TsubtitlesTextPage::split2dlg,
        0
    };
    bindComboboxes(cbx);
    static const TbindEditInt<TsubtitlesTextPage> edInt[]= {
        IDC_ED_SUB_SPLIT_BORDER,0,4096,IDFF_subSplitBorder,NULL,
        IDC_ED_SUB_MEMORY,0,256,IDFF_fontMemory,
        0
    };
    bindEditInts(edInt);
}
Exemple #4
0
TquantPage::TquantPage(TffdshowPageEnc *Iparent): TconfPageEnc(Iparent)
{
    dialogId = IDD_QUANT;
    static const int props[] = {IDFF_enc_q_i_min, IDFF_enc_q_i_max, IDFF_enc_i_quant_factor, IDFF_enc_i_quant_offset, IDFF_enc_isInterQuantBias, IDFF_enc_interQuantBias, IDFF_enc_isIntraQuantBias, IDFF_enc_intraQuantBias, IDFF_enc_dct_algo, 0};
    propsIDs = props;
    helpURL = _l("Quantization.html");
    static const TbindCheckbox<TquantPage> chb[] = {
        IDC_CHB_QUANT_INTER_BIAS, IDFF_enc_isInterQuantBias, &TquantPage::bias2dlg,
        IDC_CHB_QUANT_INTRA_BIAS, IDFF_enc_isIntraQuantBias, &TquantPage::bias2dlg,
        0, NULL, NULL
    };
    bindCheckboxes(chb);
    static const TbindEditInt<TquantPage> edInt[] = {
        IDC_ED_QUANT_INTER_BIAS, -512, 512, IDFF_enc_interQuantBias, NULL,
        IDC_ED_QUANT_INTRA_BIAS, -512, 512, IDFF_enc_intraQuantBias, NULL,
        0
    };
    bindEditInts(edInt);
    static const TbindEditReal<TquantPage> edReal[] = {
        IDC_ED_I_QUANTFACTOR, -31.0, 31.0, IDFF_enc_i_quant_factor, 100.0, NULL,
        IDC_ED_I_QUANTOFFSET, -31.0, 31.0, IDFF_enc_i_quant_offset, 100.0, NULL,
        0
    };
    bindEditReals(edReal);
    static const TbindCombobox<TquantPage> cbx[] = {
        IDC_CBX_DCT_ALGO, IDFF_enc_dct_algo, BINDCBX_SEL, NULL,
        0
    };
    bindComboboxes(cbx);
}
Exemple #5
0
ToutsfsPage::ToutsfsPage(TffdshowPageDec *Iparent): TconfPageDecAudio(Iparent)
{
    dialogId = IDD_OUTSFS;
    inPreset = 1;
    idffOrder = maxOrder + 3;
    filterID = IDFF_filterOutputAudio;
    static const TbindCheckbox<ToutsfsPage> chb[] = {
        IDC_CHB_ALWAYEXTENSIBLE, -IDFF_alwaysextensible, NULL,
        IDC_CHB_ALLOWOUTSTREAM, IDFF_allowOutStream, NULL,
        IDC_CHB_AOUT_CONNECTTO_SPDIF, IDFF_aoutConnectToOnlySpdif, NULL,
        IDC_CHB_AOUT_AC3ENCODE_MODE, IDFF_aoutAC3EncodeMode, NULL,
        IDC_CHB_ALWAYEXTENSIBLE_IEC61937, IDFF_aoutUseIEC61937, NULL,
        0, NULL, NULL
    };
    bindCheckboxes(chb);
    static const TbindCombobox<ToutsfsPage> cbx[] = {
        IDC_CBX_OUT_AC3, IDFF_outAC3bitrate, BINDCBX_DATA, NULL,
        IDC_CBX_AOUT_CONNECTTO, IDFF_aoutConnectTo, BINDCBX_SEL, &ToutsfsPage::connect2dlg,
        IDC_CBX_OUT_PASSTHROUGH_DEVICEID, IDFF_aoutpassthroughDeviceId, BINDCBX_SEL, NULL,
        0
    };
    bindComboboxes(cbx);

    static const TbindEditInt<ToutsfsPage> edInt[] = {
        IDC_ED_AUDIO_DELAY, INT_MIN / 2, INT_MAX / 2, IDFF_audio_decoder_delay, NULL,
        0, NULL, NULL
    };
    bindEditInts(edInt);
}
Exemple #6
0
TkeysPage::TkeysPage(TffdshowPageDec *Iparent): TconfPageDec(Iparent, NULL, 0)
{
    dialogId = IDD_KEYS;
    idffInter = IDFF_isKeys;
    resInter = IDC_CHB_KEYS;
    helpURL = _l("Keyboard+and+remote+control.html");
    static const TbindCheckbox<TkeysPage> chb[] = {
        IDC_CHB_KEYS_ALWAYS, IDFF_keysAlways, NULL,
        IDC_CHB_KEYS_SHORTOSD, IDFF_keysShortOsd, NULL,
        IDC_CHB_REMOTE, IDFF_isRemote, NULL,
        IDC_CHB_REMOTE_ACCEPTKEYS, IDFF_remoteAcceptKeys, NULL,
        0, NULL, NULL
    };
    bindCheckboxes(chb);
    static const TbindRadiobutton<TkeysPage> rbt[] = {
        IDC_RBT_REMOTE_FFDSHOW, IDFF_remoteMessageMode, 0, NULL,
        IDC_RBT_REMOTE_USER, IDFF_remoteMessageMode, 1, NULL,
        0, 0, 0, NULL
    };
    bindRadioButtons(rbt);
    static const TbindEditInt<TkeysPage> edInt[] = {
        IDC_ED_KEYS_SEEK1, 1, 10000, IDFF_keysSeek1, NULL,
        IDC_ED_KEYS_SEEK2, 1, 10000, IDFF_keysSeek2, NULL,
        IDC_ED_REMOTE_USER, 1, int(1 << 30), IDFF_remoteMessageUser, NULL,
        0
    };
    bindEditInts(edInt);
    static const TbindButton<TkeysPage> bt[] = {
        IDC_BT_REMOTE_GIRDER, &TkeysPage::onGirder,
        0, NULL
    };
    bindButtons(bt);
}
Exemple #7
0
TinPage::TinPage(TffdshowPageEnc *Iparent):TconfPageEnc(Iparent)
{
    dialogId=IDD_IN;
    ffproc=NULL;
    static const int props[]= {IDFF_enc_flip,IDFF_enc_forceIncsp,IDFF_enc_incsp,IDFF_enc_isProc,IDFF_enc_is_lavc_nr,IDFF_enc_lavc_nr,0};
    propsIDs=props;
    static const TbindCheckbox<TinPage> chb[]= {
        IDC_CHB_PROC,IDFF_enc_isProc,NULL,
        IDC_CHB_FLIP,IDFF_enc_flip,NULL,
        IDC_CHB_FORCEINCSP,IDFF_enc_forceIncsp,&TinPage::incsp2dlg,
        IDC_CHB_DY_INTERLACED,IDFF_isDyInterlaced,&TinPage::interlaced2dlg,
        IDC_CHB_LAVC_NR,IDFF_enc_is_lavc_nr,&TinPage::lavcnr2dlg,
        0,NULL,NULL
    };
    bindCheckboxes(chb);
    static const TbindEditInt<TinPage> edInt[]= {
        IDC_ED_DY_INTERLACED,0,4096,IDFF_dyInterlaced,NULL,
        IDC_ED_LAVC_NR,0,10000,IDFF_enc_lavc_nr,NULL,
        0
    };
    bindEditInts(edInt);
    static const TbindCombobox<TinPage> cbx[]= {
        IDC_CBX_INCSP,IDFF_enc_incsp,BINDCBX_DATA,NULL,
        0
    };
    bindComboboxes(cbx);
    static const TbindButton<TinPage> bt[]= {
        IDC_BT_PROC_CONFIG,&TinPage::onProcConfig,
        0,NULL
    };
    bindButtons(bt);
}
Exemple #8
0
TresizeAspectPage::TresizeAspectPage(TffdshowPageDec *Iparent, const TfilterIDFF *idff): TconfPageDecVideo(Iparent, idff, 1)
{
    resInter = IDC_CHB_RESIZE;
    helpURL = _l("http://ffdshow-tryout.sourceforge.net/wiki/video:resize_aspect");
    static const TbindTrackbar<TresizeAspectPage> htbr[] = {
        IDC_TBR_ASPECT_USER, IDFF_aspectRatio, &TresizeAspectPage::userAspect2dlg,
        IDC_TBR_HWOVERLAY_ASPECT, IDFF_hwOverlayAspect, &TresizeAspectPage::aspect2dlg,
        0, 0, NULL
    };
    bindHtracks(htbr);
    static const TbindRadiobutton<TresizeAspectPage> rbt[] = {
        IDC_RBT_RESIZE_MODE_SIZE, IDFF_resizeMode, 0, &TresizeAspectPage::onModeChange,
        IDC_RBT_RESIZE_MODE_ASPECT, IDFF_resizeMode, 1, &TresizeAspectPage::onModeChange,
        IDC_RBT_RESIZE_MOD_16, IDFF_resizeMode, 2, &TresizeAspectPage::onModeChange,
        IDC_RBT_RESIZE_MODE_MULT, IDFF_resizeMode, 3, &TresizeAspectPage::onModeChange,
        IDC_RBT_RESIZE_MODE_SIZE_H, IDFF_resizeMode, 4, &TresizeAspectPage::onModeChange,
        IDC_RBT_RESIZE_MODE_SCREEN_RES, IDFF_resizeMode, 5, &TresizeAspectPage::onModeChange,
        IDC_RBT_ASPECT_NO, IDFF_isAspect, 0, NULL,
        IDC_RBT_ASPECT_KEEP, IDFF_isAspect, 1, NULL,
        IDC_RBT_ASPECT_USER, IDFF_isAspect, 2, NULL,
        IDC_RBT_RESIZE_ALWAYS, IDFF_resizeIf, 0, NULL,
        IDC_RBT_RESIZE_IFSIZE, IDFF_resizeIf, 1, NULL,
        IDC_RBT_RESIZE_IFNUMBEROFPIXELS, IDFF_resizeIf, 2, NULL,
        0, 0, 0, NULL
    };
    bindRadioButtons(rbt);
    static const TbindEditInt<TresizeAspectPage> edInt[] = {
        IDC_ED_RESIZEA1, 1, 10000, IDFF_resizeA1, NULL,
        IDC_ED_RESIZEA2, 1, 10000, IDFF_resizeA2, NULL,
        IDC_ED_RESIZE_IFX, 0, 16384, IDFF_resizeIfXval, NULL,
        IDC_ED_RESIZE_IFY, 0, 16384, IDFF_resizeIfYval, NULL,
        IDC_ED_RESIZE_IFPIX, 0, 16384 * 16384, IDFF_resizeIfPixVal, NULL,
        IDC_ED_RESIZE_MOD_16, 1, 128, IDFF_resizeMultOf, NULL,
        IDC_ED_RESIZE_OUT_DEVICE_A1, 1, 10000, IDFF_resizeOutDeviceA1, NULL,
        IDC_ED_RESIZE_OUT_DEVICE_A2, 1, 10000, IDFF_resizeOutDeviceA2, NULL,
        0
    };
    bindEditInts(edInt);
    static const TbindEditReal<TresizeAspectPage> edReal[] = {
        IDC_ED_RESIZE_MULT, 0.001, 1000.0, IDFF_resizeMult1000, 1000.0, NULL,
        IDC_ED_RESIZE_USER_ASPECT, 0.05, 5, IDFF_aspectRatio, 65536, NULL,
        0
    };
    bindEditReals(edReal);
    static const TbindButton<TresizeAspectPage> bt[] = {
        IDC_BT_RESIZE_SIZE_MENU, &TresizeAspectPage::onResizeSizeMenu,
        IDC_BT_RESIZE_MOD_16, &TresizeAspectPage::onResizeMulfOfMenu,
        IDC_BT_RESIZE_ASPECT_MENU, &TresizeAspectPage::onResizeAspectMenu,
        IDC_BT_RESIZE_PIX_MENU, &TresizeAspectPage::onResizePixMenu,
        IDC_BT_RESIZE_USER_ASPECT, &TresizeAspectPage::onResizeManualArMenu,
        0, NULL
    };
    static const TbindCheckbox<TresizeAspectPage> chb[] = {
        IDC_CHB_SAR_INTERNALLY, IDFF_resizeSARinternally, &TresizeAspectPage::resize2dlg,
        0, NULL, NULL
    };
    bindCheckboxes(chb);
    bindButtons(bt);
}
Exemple #9
0
TdolbyDecoderPage::TdolbyDecoderPage(TffdshowPageDec *Iparent, const TfilterIDFF *idff): TconfPageDecAudio(Iparent, idff)
{
    resInter = IDC_CHB_DOLBYDECODER;
    static const TbindEditInt<TdolbyDecoderPage> edInt[] = {
        IDC_ED_DOLBYDECODER_DELAY, 0, 1000, IDFF_dolbyDecoderDelay, NULL,
        0
    };
    bindEditInts(edInt);
}
Exemple #10
0
TgenericFFV1page::TgenericFFV1page(TffdshowPageEnc *Iparent) : TconfPageEnc(Iparent)
{
    dialogId = IDD_GENERIC_FFV1;
    static const int props[] = {IDFF_enc_ffv1_csp, IDFF_enc_ffv1_coder, IDFF_enc_ffv1_context, IDFF_enc_ffv1_key_interval, 0};
    propsIDs = props;
    static const TbindEditInt<TgenericFFV1page> edInt[] = {
        //IDC_ED_FFV1_CONTEXT  ,0,10 ,IDFF_enc_ffv1_context    ,NULL,
        IDC_ED_MAXKEYINTERVAL, 1, 500, IDFF_enc_ffv1_key_interval, NULL,
        0
    };
    bindEditInts(edInt);
    static const TbindCombobox<TgenericFFV1page> cbx[] = {
        IDC_CBX_FFV1_CSP, IDFF_enc_ffv1_csp, BINDCBX_DATA, NULL,
        IDC_CBX_FFV1_CODER, IDFF_enc_ffv1_coder, BINDCBX_SEL, NULL,
        IDC_CBX_FFV1_CONTEXT, IDFF_enc_ffv1_context, BINDCBX_SEL, NULL,
        0
    };
    bindComboboxes(cbx);
}
Exemple #11
0
TlevelsPage::TlevelsPage(TffdshowPageDec *Iparent,const TfilterIDFF *idff):TconfPageDecVideo(Iparent,idff),filter(NULL)
{
    resInter=IDC_CHB_LEVELS;
    helpURL=_l("levels.html");
    curvesflnm[0]='\0';
    static const TbindCheckbox<TlevelsPage> chb[]= {
        IDC_CHB_LEVELS_ONLYLUMA,IDFF_levelsOnlyLuma,&TlevelsPage::levels2dlg,
        IDC_CHB_LEVELS_SHOW_HISTOGRAM,IDFF_buildHistogram,NULL,
        IDC_CHB_LEVELS_SHOW_HISTOGRAM_FULL,IDFF_levelsFullY,&TlevelsPage::map2dlg,
        IDC_CHB_LEVELS_INPUT_AUTO,IDFF_levelsInAuto,NULL,
        IDC_CHB_LEVELS_RGB,IDFF_levelsForceRGB,&TlevelsPage::mode2dlg,
        0,NULL,NULL
    };
    bindCheckboxes(chb);
    static const TbindTrackbar<TlevelsPage> htbr[]= {
        IDC_TBR_LEVELS_GAMMA,IDFF_levelsGamma,&TlevelsPage::levels2dlg,
        IDC_TBR_LEVELS_POSTERIZE,IDFF_levelsPosterize,&TlevelsPage::levels2dlg,
        0,0,NULL
    };
    bindHtracks(htbr);
    static const TbindCombobox<TlevelsPage> cbx[]= {
        IDC_CBX_LEVELS_MODE,IDFF_levelsMode,BINDCBX_SEL,&TlevelsPage::mode2dlg,
        0
    };
    bindComboboxes(cbx);
    static const TbindButton<TlevelsPage> bt[]= {
        IDC_BT_LEVELS_CURVES_LOAD,&TlevelsPage::onCurveLoad,
        0,NULL
    };
    bindButtons(bt);
    static const TbindEditInt<TlevelsPage> edInt[]= {
        IDC_ED_Y_MAX_DELTA ,1,50,IDFF_levelsYmaxDelta,NULL,
        IDC_ED_Y_THRESHOLD ,1,150,IDFF_levelsYthreshold,NULL,
        IDC_ED_Y_TEMPORAL ,1,20,IDFF_levelsYtemporal,NULL,
        0
    };
    bindEditInts(edInt);
}
Exemple #12
0
//================================= TpresetAutoloadDlgVideo =================================
TpresetAutoloadDlgVideo::TpresetAutoloadDlgVideo(IffdshowBase *Ideci, HWND parent, int x, int y): TpresetAutoloadDlgBase(Ideci, parent, x, y)
{
    // Note that we're adding checkboxes from TpresetAutoloadDlgBase to the list of checkboxes to be bound,
    // this is because bindCheckboxes() will override the previous bind, same goes for bindEditInts()
    static const TbindCheckbox<TpresetAutoloadDlgVideo> chb[] = {
        IDC_CHB_PRESETAUTOLOAD_SIZE, IDFF_presetAutoloadSize, NULL,
        IDC_CHB_PRESETAUTOLOAD_SCREEN_SIZE, IDFF_presetAutoloadScreenSize, NULL,
        0, NULL, NULL
    };
    bindCheckboxes(chb);
    static const TbindEditInt<TpresetAutoloadDlgVideo> edInt[] = {
        IDC_ED_PRESETAUTOLOAD_SIZE_XMIN, 1, 16384, IDFF_presetAutoloadSizeXmin, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_XMAX, 1, 16384, IDFF_presetAutoloadSizeXmax, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_YMIN, 1, 16384, IDFF_presetAutoloadSizeYmin, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_YMAX, 1, 16384, IDFF_presetAutoloadSizeYmax, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_SCREEN_XMIN, 1, 16384, IDFF_presetAutoloadScreenSizeXmin, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_SCREEN_XMAX, 1, 16384, IDFF_presetAutoloadScreenSizeXmax, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_SCREEN_YMIN, 1, 16384, IDFF_presetAutoloadScreenSizeYmin, NULL,
        IDC_ED_PRESETAUTOLOAD_SIZE_SCREEN_YMAX, 1, 16384, IDFF_presetAutoloadScreenSizeYmax, NULL,
        0
    };
    bindEditInts(edInt);
}