bool ffMpeg4Configure(void) { diaMenuEntry meE[]={ {1,QT_TRANSLATE_NOOP("ffmpeg4","None")}, {2,QT_TRANSLATE_NOOP("ffmpeg4","Full")}, {3,QT_TRANSLATE_NOOP("ffmpeg4","Log")}, {4,QT_TRANSLATE_NOOP("ffmpeg4","Phods")}, {5,QT_TRANSLATE_NOOP("ffmpeg4","EPZS")}, {6,QT_TRANSLATE_NOOP("ffmpeg4","X1")} }; diaMenuEntry qzE[]={ {0,QT_TRANSLATE_NOOP("ffmpeg4","H.263")}, {1,QT_TRANSLATE_NOOP("ffmpeg4","MPEG")} }; diaMenuEntry rdE[]={ {0,QT_TRANSLATE_NOOP("ffmpeg4","MB comparison")}, {1,QT_TRANSLATE_NOOP("ffmpeg4","Fewest bits (vhq)")}, {2,QT_TRANSLATE_NOOP("ffmpeg4","Rate distortion")} }; diaMenuEntry threads[]={ {0,QT_TRANSLATE_NOOP("ffmpeg4","One thread")}, {2,QT_TRANSLATE_NOOP("ffmpeg4","Two threads)")}, {3,QT_TRANSLATE_NOOP("ffmpeg4","Three threads")}, {99,QT_TRANSLATE_NOOP("ffmpeg4","Auto (#cpu)")} }; FFcodecSettings *conf=&Mp4Settings; uint32_t me=(uint32_t)conf->lavcSettings.me_method; #define PX(x) &(conf->lavcSettings.x) diaElemBitrate bitrate(&(Mp4Settings.params),NULL); diaElemMenu meM(&me,QT_TRANSLATE_NOOP("ffmpeg4","Matrices"),4,meE); diaElemMenu threadM(PX(MultiThreaded),QT_TRANSLATE_NOOP("ffmpeg4","Threading"),4,threads); diaElemUInteger qminM(PX(qmin),QT_TRANSLATE_NOOP("ffmpeg4","Mi_n. quantizer:"),1,31); diaElemUInteger qmaxM(PX(qmax),QT_TRANSLATE_NOOP("ffmpeg4","Ma_x. quantizer:"),1,31); diaElemUInteger qdiffM(PX(max_qdiff),QT_TRANSLATE_NOOP("ffmpeg4","Max. quantizer _difference:"),1,31); diaElemToggle fourMv(PX(_4MV),QT_TRANSLATE_NOOP("ffmpeg4","4_MV")); diaElemToggle trellis(PX(_TRELLIS_QUANT),QT_TRANSLATE_NOOP("ffmpeg4","_Trellis quantization")); diaElemToggle qpel(PX(_QPEL),QT_TRANSLATE_NOOP("ffmpeg4","_Quarter pixel")); diaElemToggle gmc(PX(_GMC),QT_TRANSLATE_NOOP("ffmpeg4","_GMC")); diaElemUInteger max_b_frames(PX(max_b_frames),QT_TRANSLATE_NOOP("ffmpeg4","_Number of B frames:"),0,32); diaElemMenu qzM(PX(mpeg_quant),QT_TRANSLATE_NOOP("ffmpeg4","_Quantization type:"),2,qzE); diaElemMenu rdM(PX(mb_eval),QT_TRANSLATE_NOOP("ffmpeg4","_Macroblock decision:"),3,rdE); diaElemUInteger filetol(PX(vratetol),QT_TRANSLATE_NOOP("ffmpeg4","_Filesize tolerance (kb):"),0,100000); diaElemFloat qzComp(PX(qcompress),QT_TRANSLATE_NOOP("ffmpeg4","_Quantizer compression:"),0,1); diaElemFloat qzBlur(PX(qblur),QT_TRANSLATE_NOOP("ffmpeg4","Quantizer _blur:"),0,1); diaElemUInteger GopSize(PX(gop_size),QT_TRANSLATE_NOOP("ffmpeg4","_Gop Size:"),1,500); /* First Tab : encoding mode */ diaElem *diamode[]={&GopSize,&threadM,&bitrate}; diaElemTabs tabMode(QT_TRANSLATE_NOOP("ffmpeg4","User Interface"),3,diamode); /* 2nd Tab : ME */ diaElemFrame frameMe(QT_TRANSLATE_NOOP("ffmpeg4","Advanced Simple Profile")); frameMe.swallow(&max_b_frames); frameMe.swallow(&qpel); frameMe.swallow(&gmc); diaElem *diaME[]={&fourMv,&frameMe}; diaElemTabs tabME(QT_TRANSLATE_NOOP("ffmpeg4","Motion Estimation"),2,diaME); /* 3nd Tab : Qz */ diaElem *diaQze[]={&qzM,&rdM,&qminM,&qmaxM,&qdiffM,&trellis}; diaElemTabs tabQz(QT_TRANSLATE_NOOP("ffmpeg4","Quantization"),6,diaQze); /* 4th Tab : RControl */ diaElem *diaRC[]={&filetol,&qzComp,&qzBlur}; diaElemTabs tabRC(QT_TRANSLATE_NOOP("ffmpeg4","Rate Control"),3,diaRC); diaElemTabs *tabs[]={&tabMode,&tabME,&tabQz,&tabRC}; if( diaFactoryRunTabs(QT_TRANSLATE_NOOP("ffmpeg4","libavcodec MPEG-4 configuration"),4,tabs)) { conf->lavcSettings.me_method=(Motion_Est_ID)me; return true; } return false; }
bool x264Configure(void) { diaMenuEntry threads[]={ {1,QT_TR_NOOP("One thread")}, {2,QT_TR_NOOP("Two threads)")}, {3,QT_TR_NOOP("Three threads")}, {99,QT_TR_NOOP("Auto (#cpu)")} }; #define PX(x) &(x264Settings.x) // Main int nbPreset=sizeof(x264_preset_names)/sizeof(const char *); int nbTunes=sizeof(x264_tune_names)/sizeof(const char *); #define MKMENUENTRY(N,out,array) diaMenuEntry out[N]; \ for(int i=0;i<N;i++) {out[i].val=i;out[i].text=array[i];out[i].desc=NULL;} MKMENUENTRY(nbPreset,presetEntries,x264_preset_names); MKMENUENTRY(nbTunes,tuneEntries,x264_tune_names); diaElemMenu presetMenu(PX(preset),QT_TR_NOOP("Preset"),nbPreset,presetEntries); diaElemMenu tuneMenu(PX(tune),QT_TR_NOOP("Tune"),nbTunes,tuneEntries); uint32_t presetToggle=(uint32_t)x264Settings.usePreset; uint32_t tuneToggle=(uint32_t)x264Settings.useTune; diaElemToggle usePreset(&presetToggle,QT_TR_NOOP("Use preset")); diaElemToggle useTune(&tuneToggle, QT_TR_NOOP("Use tune")); uint32_t trelBol=*PX(Trellis); uint32_t cabacBol=*PX(CABAC); diaElemToggle trellis(&trelBol,QT_TR_NOOP("_Trellis quantization")); diaElemToggle cabac(&cabacBol,QT_TR_NOOP("Cabac encoding")); diaElemUInteger GopSize(PX(MaxIdr),QT_TR_NOOP("_Gop Size:"),1,500); diaElemUInteger max_b_frames(PX(MaxBFrame),QT_TR_NOOP("Max B Frames:"),0,5); diaElemBitrate bitrate(&(x264Settings.params),NULL); diaElemMenu threadM(PX(threads),QT_TR_NOOP("Threading"),4,threads); diaElemUInteger profile(PX(profile),QT_TR_NOOP("Profile:"),10,50); //------------------- /* First Tab : encoding mode */ diaElem *diaMain[]={&usePreset,&presetMenu,&useTune,&tuneMenu,&profile}; diaElemTabs tabMain(QT_TR_NOOP("Main"),5,diaMain); diaElemFrame frameMe(QT_TR_NOOP("Main")); frameMe.swallow(&max_b_frames); frameMe.swallow(&GopSize); frameMe.swallow(&bitrate); diaElem *diaME[]={&frameMe}; diaElemTabs tabME(QT_TR_NOOP("Encoding mode"),1,diaME); /* 2nd Tab : Qz */ diaElem *diaQze[]={&trellis,&cabac}; diaElemTabs tabQz(QT_TR_NOOP("Quantization"),2,diaQze); /* 3th Tab : thread */ diaElem *diaThread[]={&threadM}; diaElemTabs tabThread(QT_TR_NOOP("Threads"),1,diaThread); diaElemTabs *tabs[]={&tabMain,&tabME,&tabQz,&tabThread}; // usePreset.link(0,&trellis); //usePreset.link(0,&cabac); usePreset.link(1,&presetMenu); useTune.link(1,&tuneMenu); if( diaFactoryRunTabs(QT_TR_NOOP("X264 MPEG-4 AVC configuration"),4,tabs)) { *PX(Trellis)= trelBol; *PX(CABAC)= cabacBol; *PX(usePreset)= presetToggle; *PX(useTune)= tuneToggle; return true; } return false; }
bool xvid4Configure(void) { diaMenuEntry meE[]={ {0,QT_TRANSLATE_NOOP("xvid4","None")}, {1,QT_TRANSLATE_NOOP("xvid4","Low")}, {2,QT_TRANSLATE_NOOP("xvid4","Medium")}, {3,QT_TRANSLATE_NOOP("xvid4","Full")} }; diaMenuEntry qzE[]={ {0,QT_TRANSLATE_NOOP("xvid4","H.263")}, {1,QT_TRANSLATE_NOOP("xvid4","MPEG")}, {2,QT_TRANSLATE_NOOP("xvid4","Custom")} }; diaMenuEntry profileE[]={ { XVID_PROFILE_S_L0 ,"Simple Level0"}, { XVID_PROFILE_S_L1 ,"Simple Level1"}, { XVID_PROFILE_S_L2 ,"Simple Level2"}, { XVID_PROFILE_S_L3 ,"Simple Level3"}, { XVID_PROFILE_AS_L0 ,"Adv. Simple Level0"}, { XVID_PROFILE_AS_L1 ,"Adv. Simple Level1"}, { XVID_PROFILE_AS_L2 ,"Adv. Simple Level2"}, { XVID_PROFILE_AS_L3 ,"Adv. Simple Level3"}, { XVID_PROFILE_AS_L4 ,"Adv. Simple Level4"}, }; diaMenuEntry rdE[]={ {0,QT_TRANSLATE_NOOP("xvid4","None")}, {1,QT_TRANSLATE_NOOP("xvid4","DCT")}, {2,QT_TRANSLATE_NOOP("xvid4","Qpel16")}, {3,QT_TRANSLATE_NOOP("xvid4","Qpel8")}, {4,QT_TRANSLATE_NOOP("xvid4","Square")} }; diaMenuEntry threads[]={ {1,QT_TRANSLATE_NOOP("xvid4","One thread")}, {2,QT_TRANSLATE_NOOP("xvid4","Two threads)")}, {3,QT_TRANSLATE_NOOP("xvid4","Three threads")}, {99,QT_TRANSLATE_NOOP("xvid4","Auto (#cpu)")} }; diaMenuEntry arModeE[]={ {XVID_PAR_11_VGA,QT_TRANSLATE_NOOP("xvid4","1:1 (PC)")}, {XVID_PAR_43_PAL,QT_TRANSLATE_NOOP("xvid4","4:3 (PAL)")}, {XVID_PAR_43_NTSC,QT_TRANSLATE_NOOP("xvid4","4:3 (NTSC)")}, {XVID_PAR_169_PAL,QT_TRANSLATE_NOOP("xvid4","16:9 (PAL)")}, {XVID_PAR_169_NTSC,QT_TRANSLATE_NOOP("xvid4","16:9 (NTSC)")}, }; #define PX(x) &(xvid4Settings.x) diaElemBitrate bitrate(&(xvid4Settings.params),NULL); diaElemMenu meM(PX(motionEstimation),QT_TRANSLATE_NOOP("xvid4","MotionEstimation"),4,meE); diaElemMenu threadM(PX(nbThreads),QT_TRANSLATE_NOOP("xvid4","Threading"),4,threads); diaElemUInteger qminM(PX(qMin),QT_TRANSLATE_NOOP("xvid4","Mi_n. quantizer:"),1,31); diaElemUInteger qmaxM(PX(qMax),QT_TRANSLATE_NOOP("xvid4","Ma_x. quantizer:"),1,31); /* diaElemUInteger qdiffM(PX(max_qdiff),QT_TRANSLATE_NOOP("xvid4","Max. quantizer _difference:"),1,31); */ diaElemToggle trellis(PX(trellis),QT_TRANSLATE_NOOP("xvid4","_Trellis quantization")); diaElemUInteger max_b_frames(PX(maxBFrame),QT_TRANSLATE_NOOP("xvid4","_Number of B frames:"),0,32); diaElemMenu qzM(PX(cqmMode),QT_TRANSLATE_NOOP("xvid4","_Quantization type:"),2,qzE); diaElemMenu rdM(PX(rdMode),QT_TRANSLATE_NOOP("xvid4","_Macroblock decision:"),5,rdE); diaElemMenu profileM(PX(profile),QT_TRANSLATE_NOOP("xvid4","Profile:"),9,profileE); diaElemMenu par(PX(arMode),QT_TRANSLATE_NOOP("xvid4","Aspect Ratio:"),sizeof(arModeE)/sizeof(diaMenuEntry),arModeE); /* diaElemUInteger filetol(PX(vratetol),QT_TRANSLATE_NOOP("xvid4","_Filesize tolerance (kb):"),0,100000); diaElemFloat qzComp(PX(qcompress),QT_TRANSLATE_NOOP("xvid4","_Quantizer compression:"),0,1); diaElemFloat qzBlur(PX(qblur),QT_TRANSLATE_NOOP("xvid4","Quantizer _blur:"),0,1); */ diaElemUInteger GopSize(PX(maxKeyFrameInterval),QT_TRANSLATE_NOOP("xvid4","_Gop Size:"),1,500); // DIVX or XVID ? diaElemToggle fcc(PX(useXvidFCC),QT_TRANSLATE_NOOP("xvid4","Use XVID fcc (else DIVX)")); /* First Tab : encoding mode */ diaElemFrame frameMe(QT_TRANSLATE_NOOP("xvid4","Advanced Simple Profile")); frameMe.swallow(&profileM); frameMe.swallow(&max_b_frames); frameMe.swallow(&GopSize); frameMe.swallow(&bitrate); frameMe.swallow(&fcc); diaElem *diaME[]={&frameMe}; diaElemTabs tabME(QT_TRANSLATE_NOOP("xvid4","Motion Estimation"),1,diaME); /* 2nd Tab : Qz */ diaElem *diaQze[]={&qzM,&qminM,&qmaxM,&rdM,&meM,&trellis}; diaElemTabs tabQz(QT_TRANSLATE_NOOP("xvid4","Quantization"),6,diaQze); /* 3th Tab : thread */ diaElem *diaThread[]={&threadM}; diaElemTabs tabThread(QT_TRANSLATE_NOOP("xvid4","Threads"),1,diaThread); /** * 4th tab : aspect ratio * @return */ diaElem *diaAR[]={&par}; diaElemTabs tabAR(QT_TRANSLATE_NOOP("xvid4","Aspect Ratio"),1,diaAR); #if 0 diaElem *diaRC[]={&filetol,&qzComp,&qzBlur}; diaElemTabs tabRC(QT_TRANSLATE_NOOP("xvid4","Rate Control"),3,diaRC); #endif diaElemTabs *tabs[]={&tabME,&tabQz,&tabThread,&tabAR}; if( diaFactoryRunTabs(QT_TRANSLATE_NOOP("xvid4","Xvid4 MPEG-4 ASP configuration"),4,tabs)) { return true; } return false; }