├── .gitignore ├── BUILD-GUIDE.TXT ├── FFQueue.cbp ├── LICENSE ├── Makefile.am ├── Makefile.lin ├── Makefile.win ├── README.md ├── aclocal.m4 ├── compile ├── configure ├── configure.ac ├── depcomp ├── install-sh ├── missing ├── re-automake.sh ├── res ├── DK_Flag_Anim_Hjerte.gif ├── MainIcon.ico ├── MainIcon16.xpm ├── MainIcon32.xpm ├── MainIcon64.xpm ├── MainLogo.png ├── MainLogo128.png ├── MainLogo16.png ├── MainLogo256.png ├── MainLogo32.png ├── MainLogo512.png ├── MainLogo64.png ├── about.txt ├── add.png ├── add_batch.png ├── aomav1.ffqs ├── config.png ├── delete.png ├── ffqueue.desktop ├── fonts.conf ├── icon_job.png ├── icon_tool.png ├── info.png ├── jobeditplay.png ├── mad_clippy.png ├── manifest ├── metainfo.xml ├── pencil.png ├── play_dark.png ├── play_light.png ├── preset.png ├── preview.png ├── rav1e.ffqs ├── start.png ├── stop.png ├── tab_msg.png ├── tab_off.png ├── tab_on.png ├── tools.png ├── x264.ffqs └── x265.ffqs ├── src ├── FFQAbout.cpp ├── FFQAbout.h ├── FFQApp.cpp ├── FFQApp.h ├── FFQBatchMake.cpp ├── FFQBatchMake.h ├── FFQBitRatePanel.cpp ├── FFQBitRatePanel.h ├── FFQCodecInfoEdit.cpp ├── FFQCodecInfoEdit.h ├── FFQConfigEdit.cpp ├── FFQConfigEdit.h ├── FFQFilterEdit.cpp ├── FFQFilterEdit.h ├── FFQFullSpec.cpp ├── FFQFullSpec.h ├── FFQJobEditAdv.cpp ├── FFQJobEditAdv.h ├── FFQJobEditAdvCuts.cpp ├── FFQJobEditAdvCuts.h ├── FFQJobEditAdvPopup.cpp ├── FFQJobEditAdvPopup.h ├── FFQLangEdit.cpp ├── FFQLangEdit.h ├── FFQMain.cpp ├── FFQMain.h ├── FFQPresetEdit.cpp ├── FFQPresetEdit.h ├── FFQPresetMgr.cpp ├── FFQPresetMgr.h ├── FFQPresetPanel.cpp ├── FFQPresetPanel.h ├── FFQShowText.cpp ├── FFQShowText.h ├── FFQTimeEdit.cpp ├── FFQTimeEdit.h ├── Makefile.am ├── bin_res.cpp ├── bin_res.h ├── filter │ ├── AudioDelay.cpp │ ├── AudioDelay.h │ ├── AudioTempo.cpp │ ├── AudioTempo.h │ ├── BoxBlur.cpp │ ├── BoxBlur.h │ ├── ChannelMap.cpp │ ├── ChannelMap.h │ ├── ColorBalance.cpp │ ├── ColorBalance.h │ ├── ColorMatrix.cpp │ ├── ColorMatrix.h │ ├── ColorOverlay.cpp │ ├── ColorOverlay.h │ ├── Crop.cpp │ ├── Crop.h │ ├── Curves.cpp │ ├── Curves.h │ ├── Custom.cpp │ ├── Custom.h │ ├── Decimate.cpp │ ├── Decimate.h │ ├── Deflicker.cpp │ ├── Deflicker.h │ ├── Deinterlace.cpp │ ├── Deinterlace.h │ ├── Dejudder.cpp │ ├── Dejudder.h │ ├── Delogo.cpp │ ├── Delogo.h │ ├── Deshake.cpp │ ├── Deshake.h │ ├── DynAudNorm.cpp │ ├── DynAudNorm.h │ ├── Echo.cpp │ ├── Echo.h │ ├── Elbg.cpp │ ├── Elbg.h │ ├── Equalizer.cpp │ ├── Equalizer.h │ ├── FilterBasePanel.cpp │ ├── FilterBasePanel.h │ ├── Flanger.cpp │ ├── Flanger.h │ ├── Flip.cpp │ ├── Flip.h │ ├── FrameStep.cpp │ ├── FrameStep.h │ ├── FramesPerSecond.cpp │ ├── FramesPerSecond.h │ ├── FullSpec.cpp │ ├── FullSpec.h │ ├── HighLowBandPass.cpp │ ├── HighLowBandPass.h │ ├── Hqdn3d.cpp │ ├── Hqdn3d.h │ ├── Hue.cpp │ ├── Hue.h │ ├── Interlace.cpp │ ├── Interlace.h │ ├── LensCorrection.cpp │ ├── LensCorrection.h │ ├── Negate.cpp │ ├── Negate.h │ ├── Noise.cpp │ ├── Noise.h │ ├── Pad.cpp │ ├── Pad.h │ ├── Perspective.cpp │ ├── Perspective.h │ ├── Phaser.cpp │ ├── Phaser.h │ ├── Resample.cpp │ ├── Resample.h │ ├── Rotate.cpp │ ├── Rotate.h │ ├── Scale.cpp │ ├── Scale.h │ ├── Transpose.cpp │ ├── Transpose.h │ ├── Unsharp.cpp │ ├── Unsharp.h │ ├── Vignette.cpp │ ├── Vignette.h │ ├── VolumeAndTone.cpp │ ├── VolumeAndTone.h │ ├── Watermark.cpp │ └── Watermark.h ├── resource.rc ├── tools │ ├── FFQConcat.cpp │ ├── FFQConcat.h │ ├── FFQThumbMake.cpp │ ├── FFQThumbMake.h │ ├── FFQThumbPanel.cpp │ ├── FFQThumbPanel.h │ ├── FFQVidStab.cpp │ ├── FFQVidStab.h │ ├── FFQVideoToGIF.cpp │ └── FFQVideoToGIF.h └── utils │ ├── FFQBuildCmd.cpp │ ├── FFQBuildCmd.h │ ├── FFQCodecInfo.cpp │ ├── FFQCodecInfo.h │ ├── FFQCompress.cpp │ ├── FFQCompress.h │ ├── FFQConfig.cpp │ ├── FFQConfig.h │ ├── FFQConsole.cpp │ ├── FFQConsole.h │ ├── FFQConst.cpp │ ├── FFQConst.h │ ├── FFQDebugUtils.cpp │ ├── FFQDebugUtils.h │ ├── FFQFilter.cpp │ ├── FFQFilter.h │ ├── FFQHash.cpp │ ├── FFQHash.h │ ├── FFQJob.cpp │ ├── FFQJob.h │ ├── FFQLang.cpp │ ├── FFQLang.h │ ├── FFQMisc.cpp │ ├── FFQMisc.h │ ├── FFQNvpList.cpp │ ├── FFQNvpList.h │ ├── FFQParsing.cpp │ ├── FFQParsing.h │ ├── FFQPixFmt.cpp │ ├── FFQPixFmt.h │ ├── FFQPreset.cpp │ ├── FFQPreset.h │ ├── FFQProbing.cpp │ ├── FFQProbing.h │ ├── FFQProcess.cpp │ ├── FFQProcess.h │ ├── FFQQueueItem.cpp │ ├── FFQQueueItem.h │ ├── FFQStaticJob.cpp │ ├── FFQStaticJob.h │ ├── FFQStreamMapping.cpp │ ├── FFQStreamMapping.h │ ├── FFQTaskBar.cpp │ ├── FFQTaskBar.h │ ├── FFQThumbs.cpp │ ├── FFQThumbs.h │ ├── FFQTimeValue.cpp │ ├── FFQTimeValue.h │ ├── FFQToolJobs.cpp │ ├── FFQToolJobs.h │ └── FFQUniqueID.h ├── version.h ├── wx_pch.h └── wxsmith ├── FFQAbout.wxs ├── FFQBatchMake.wxs ├── FFQBitRatePanel.wxs ├── FFQCodecInfoEdit.wxs ├── FFQConcat.wxs ├── FFQConfigEdit.wxs ├── FFQFilterEdit.wxs ├── FFQJobEditAdv.wxs ├── FFQJobEditAdvCuts.wxs ├── FFQJobEditAdvPopup.wxs ├── FFQLangEdit.wxs ├── FFQMain.wxs ├── FFQPresetEdit.wxs ├── FFQPresetMgr.wxs ├── FFQPresetPanel.wxs ├── FFQShowText.wxs ├── FFQThumbMake.wxs ├── FFQThumbPanel.wxs ├── FFQTimeEdit.wxs ├── FFQVidStab.wxs └── FFQVideoToGIF.wxs /.gitignore: -------------------------------------------------------------------------------- 1 | # Project 2 | bin/* 3 | obj/* 4 | build/* 5 | build2/* 6 | junk/* 7 | res/org/* 8 | res/junk/* 9 | *.layout 10 | *.depend 11 | *.save 12 | .copykit 13 | FFQueue.cfg 14 | ffqueue.cfg 15 | Makefile 16 | locale/* 17 | 18 | # AutoTools 19 | autom4te.cache/* 20 | config.status 21 | config.log 22 | 23 | # CMake 24 | .deps/* 25 | CMakeFiles 26 | CMakeCache.txt 27 | cmake_install.cmake 28 | -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS=src 2 | FFQ_BINARY=ffqueue 3 | FFQ_XDGVER=`xdg-icon-resource --version 2> /dev/null` 4 | if FFQ_BASE_DIR 5 | FFQ_RES=res 6 | else 7 | FFQ_RES=../res 8 | endif 9 | FFQ_DEST=$(DESTDIR)$(prefix)/share 10 | FFQ_ICONDEST=$(FFQ_DEST)/icons/hicolor 11 | 12 | .ONESHELL: 13 | install-data-hook: 14 | @if [ -z "$(FFQ_XDGVER)" ]; then 15 | @install -Dm644 $(FFQ_RES)/MainLogo16.png $(FFQ_ICONDEST)/16x16/apps/$(FFQ_BINARY).png 16 | @install -Dm644 $(FFQ_RES)/MainLogo32.png $(FFQ_ICONDEST)/32x32/apps/$(FFQ_BINARY).png 17 | @install -Dm644 $(FFQ_RES)/MainLogo64.png $(FFQ_ICONDEST)/64x64/apps/$(FFQ_BINARY).png 18 | @install -Dm644 $(FFQ_RES)/MainLogo128.png $(FFQ_ICONDEST)/128x128/apps/$(FFQ_BINARY).png 19 | @install -Dm644 $(FFQ_RES)/MainLogo256.png $(FFQ_ICONDEST)/256x256/apps/$(FFQ_BINARY).png 20 | @install -Dm644 $(FFQ_RES)/MainLogo512.png $(FFQ_ICONDEST)/512x512/apps/$(FFQ_BINARY).png 21 | @install -Dm755 $(FFQ_RES)/$(FFQ_BINARY).desktop $(FFQ_DEST)/applications/$(FFQ_BINARY).desktop 22 | @else 23 | @xdg-icon-resource install --novendor --size 16 $(FFQ_RES)/MainLogo16.png $(FFQ_BINARY) 24 | @xdg-icon-resource install --novendor --size 32 $(FFQ_RES)/MainLogo32.png $(FFQ_BINARY) 25 | @xdg-icon-resource install --novendor --size 64 $(FFQ_RES)/MainLogo64.png $(FFQ_BINARY) 26 | @xdg-icon-resource install --novendor --size 128 $(FFQ_RES)/MainLogo128.png $(FFQ_BINARY) 27 | @xdg-icon-resource install --novendor --size 256 $(FFQ_RES)/MainLogo256.png $(FFQ_BINARY) 28 | @xdg-icon-resource install --novendor --size 512 $(FFQ_RES)/MainLogo512.png $(FFQ_BINARY) 29 | @xdg-desktop-menu install --novendor $(FFQ_RES)/$(FFQ_BINARY).desktop 30 | @FFQ_DF=$(FFQ_DEST)/applications/$(FFQ_BINARY).desktop 31 | @if [ -f "$$FFQ_DF" ]; then chmod 755 "$$FFQ_DF"; fi 32 | @fi 33 | 34 | .ONESHELL: 35 | uninstall-hook: 36 | @if [ -z "$(FFQ_XDGVER)" ]; then 37 | @rm -f $(FFQ_ICONDEST)/16x16/apps/$(FFQ_BINARY).png 38 | @rm -f $(FFQ_ICONDEST)/32x32/apps/$(FFQ_BINARY).png 39 | @rm -f $(FFQ_ICONDEST)/64x64/apps/$(FFQ_BINARY).png 40 | @rm -f $(FFQ_ICONDEST)/128x128/apps/$(FFQ_BINARY).png 41 | @rm -f $(FFQ_ICONDEST)/256x256/apps/$(FFQ_BINARY).png 42 | @rm -f $(FFQ_ICONDEST)/512x512/apps/$(FFQ_BINARY).png 43 | @rm -f $(FFQ_DEST)/applications/$(FFQ_BINARY).desktop 44 | @else 45 | @xdg-icon-resource uninstall --novendor --size 16 $(FFQ_BINARY) 46 | @xdg-icon-resource uninstall --novendor --size 32 $(FFQ_BINARY) 47 | @xdg-icon-resource uninstall --novendor --size 64 $(FFQ_BINARY) 48 | @xdg-icon-resource uninstall --novendor --size 128 $(FFQ_BINARY) 49 | @xdg-icon-resource uninstall --novendor --size 256 $(FFQ_BINARY) 50 | @xdg-icon-resource uninstall --novendor --size 512 $(FFQ_BINARY) 51 | @xdg-desktop-menu uninstall --novendor $(FFQ_BINARY).desktop 52 | @fi 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ![FFQueue](res/MainLogo.png) FFQueue 2 | For more info about this FFmpeg GUI please visit the GUI's homepage at http://ffqueue.bruchhaus.dk/ 3 | where you will find __online documentation__ and __binaries__ for __Windows__ and __64bit Debian__ based 4 | Linux distros. 5 | 6 | Please read the __BUILD-GUIDE.TXT__ file for information of how to build FFQueue your self. -------------------------------------------------------------------------------- /configure.ac: -------------------------------------------------------------------------------- 1 | AC_PREREQ([2.69]) 2 | AC_INIT([ffqueue], [1.7.69], [https://ffqueue.bruchhaus.dk/]) 3 | AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) 4 | AC_CONFIG_SRCDIR([src/FFQApp.cpp]) 5 | AC_PROG_CXX 6 | WXVER=`wx-config --version | sed -e 's/\.//g'` 7 | AS_IF([test -z $WXVER], [ AC_MSG_ERROR(["wx-config" was not found. To correct this you must either install the development version of wxWidgets (usual package name "libwxgtk3.0-dev" or alike) OR if you have built your own version of wxWidgets you must ensure that "wx-config" is added to the PATH environment variable.]) ], []) 8 | AS_IF([test ${WXVER::3} -lt 302], [ AC_MSG_ERROR([wxWidgets must be at least version 3.0.2]) ], []) 9 | AC_CONFIG_FILES([Makefile src/Makefile]) 10 | AC_CHECK_LIB([z], [compress2], [], [AC_MSG_ERROR([ZLib (libz) was not found!])]) 11 | AM_CONDITIONAL([FFQ_BASE_DIR],[test -f "res/MainLogo.png"]) 12 | LIBS="$LIBS `wx-config --libs` -lz" 13 | AC_OUTPUT 14 | -------------------------------------------------------------------------------- /re-automake.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Part of FFQueue: Used to re-create the automake files 3 | 4 | function remove() { 5 | if [ -d $1 ]; then 6 | echo "Removing directory $1" 7 | rm -r $1 8 | elif [ -f $1 ]; then 9 | echo "Removing file $1" 10 | rm $1 11 | fi 12 | } 13 | 14 | if [ -z "$(which autoreconf)" ]; then 15 | echo Command "autoreconf" is not available, please install package "automake" to fix it. 16 | echo Nothing possible, exiting script.. 17 | exit 18 | fi 19 | 20 | remove autom4te.cache 21 | remove aclocal.m4 22 | remove compile 23 | remove configure 24 | remove depcomp 25 | remove install-sh 26 | remove Makefile.in 27 | remove missing 28 | remove src/Makefile.in 29 | 30 | autoreconf --install 31 | -------------------------------------------------------------------------------- /res/DK_Flag_Anim_Hjerte.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/DK_Flag_Anim_Hjerte.gif -------------------------------------------------------------------------------- /res/MainIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/MainIcon.ico -------------------------------------------------------------------------------- /res/MainLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/MainLogo.png -------------------------------------------------------------------------------- /res/MainLogo128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/MainLogo128.png -------------------------------------------------------------------------------- /res/MainLogo16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/MainLogo16.png -------------------------------------------------------------------------------- /res/MainLogo256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/MainLogo256.png -------------------------------------------------------------------------------- /res/MainLogo32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/MainLogo32.png -------------------------------------------------------------------------------- /res/MainLogo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/MainLogo512.png -------------------------------------------------------------------------------- /res/MainLogo64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/MainLogo64.png -------------------------------------------------------------------------------- /res/about.txt: -------------------------------------------------------------------------------- 1 | F F Q u e u e 2 | The best Graphical User Interface for FFmpeg! 3 | Visit website 4 | http://ffqueue.bruchhaus.dk/ 5 | Monetizing FOSS in closed source AI w/o permission is theft! 6 | 7 | Application version %s © by Torben Bruchhaus 8 | Language: %s %s 9 | Config: %s 10 | 11 | %u%% internal, %u%% 12 | 13 | wxWidgets ver. %s - http://www.wxwidgets.org/ 14 | GnuC / MinGW compiler, ver. %s 15 | 16 | Utilizing FFmpeg command line tool: %s 17 | 18 | Graphics are self made and found here and there 19 | http://www.designkindle.com/2011/04/12/basal-icons/ 20 | http://www.designkindle.com/2011/10/07/build-icons/ 21 | http://pcunleashed.com/ 22 | 23 | -------------------------------------------------------------------------------- /res/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/add.png -------------------------------------------------------------------------------- /res/add_batch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/add_batch.png -------------------------------------------------------------------------------- /res/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/config.png -------------------------------------------------------------------------------- /res/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/delete.png -------------------------------------------------------------------------------- /res/ffqueue.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Version=1.0 4 | Name=FFQueue 5 | Comment=Graphical user interface for FFmpeg 6 | Exec=ffqueue 7 | Icon=ffqueue 8 | Terminal=false 9 | Categories=AudioVideo;AudioVideoEditing; 10 | -------------------------------------------------------------------------------- /res/fonts.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ./ 5 | WINDOWSFONTDIR 6 | ~/.fonts 7 | 8 | 9 | mono 10 | 11 | 12 | monospace 13 | 14 | 15 | 16 | 17 | sans serif 18 | 19 | 20 | sans-serif 21 | 22 | 23 | 24 | 25 | sans 26 | 27 | 28 | sans-serif 29 | 30 | 31 | conf.d 32 | WINDOWSTEMPDIR_FONTCONFIG_CACHE 33 | ~/.fontconfig 34 | 35 | 36 | 0x0020 37 | 0x00A0 38 | 0x00AD 39 | 0x034F 40 | 0x0600 41 | 0x0601 42 | 0x0602 43 | 0x0603 44 | 0x06DD 45 | 0x070F 46 | 0x115F 47 | 0x1160 48 | 0x1680 49 | 0x17B4 50 | 0x17B5 51 | 0x180E 52 | 0x2000 53 | 0x2001 54 | 0x2002 55 | 0x2003 56 | 0x2004 57 | 0x2005 58 | 0x2006 59 | 0x2007 60 | 0x2008 61 | 0x2009 62 | 0x200A 63 | 0x200B 64 | 0x200C 65 | 0x200D 66 | 0x200E 67 | 0x200F 68 | 0x2028 69 | 0x2029 70 | 0x202A 71 | 0x202B 72 | 0x202C 73 | 0x202D 74 | 0x202E 75 | 0x202F 76 | 0x205F 77 | 0x2060 78 | 0x2061 79 | 0x2062 80 | 0x2063 81 | 0x206A 82 | 0x206B 83 | 0x206C 84 | 0x206D 85 | 0x206E 86 | 0x206F 87 | 0x2800 88 | 0x3000 89 | 0x3164 90 | 0xFEFF 91 | 0xFFA0 92 | 0xFFF9 93 | 0xFFFA 94 | 0xFFFB 95 | 96 | 97 | 30 98 | 99 | 100 | -------------------------------------------------------------------------------- /res/icon_job.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/icon_job.png -------------------------------------------------------------------------------- /res/icon_tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/icon_tool.png -------------------------------------------------------------------------------- /res/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/info.png -------------------------------------------------------------------------------- /res/jobeditplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/jobeditplay.png -------------------------------------------------------------------------------- /res/mad_clippy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/mad_clippy.png -------------------------------------------------------------------------------- /res/manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | PerMonitorV2, system 19 | true 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /res/pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/pencil.png -------------------------------------------------------------------------------- /res/play_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/play_dark.png -------------------------------------------------------------------------------- /res/play_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/play_light.png -------------------------------------------------------------------------------- /res/preset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/preset.png -------------------------------------------------------------------------------- /res/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/preview.png -------------------------------------------------------------------------------- /res/rav1e.ffqs: -------------------------------------------------------------------------------- 1 | FFQ_FULLSPEC_HEADER_1 2 | #source=https://docs.rs/rav1e/latest/rav1e/all.html 3 | #source=https://docs.rs/rav1e/latest/rav1e/struct.EncoderConfig.html 4 | checkval=true 5 | composite=-rav1e-params 6 | display=Rust AV1 Encoder 7 | id=rav1e 8 | matches=^librav1e[[:blank:]]-[[:blank:]] 9 | notebook=0 10 | prefix= 11 | separator=: 12 | 13 | :Threading 14 | 15 | threads 16 | text=Number of CPU to use 17 | type=integer 18 | range=0 1024 19 | default=0 20 | 21 | tile_rows 22 | text=Number of tile rows, must be a power of 2 23 | type=integer 24 | range=0 max 25 | default=0 26 | 27 | tile_cols 28 | text=Number of tile columns, must be a power of 2 29 | type=integer 30 | range=0 max 31 | default=0 32 | 33 | tiles 34 | text=Number of tiles 35 | type=integer 36 | range=0 max 37 | default=0 38 | 39 | :Encode settings 40 | 41 | bitrate 42 | text=Bitrate in kbps 43 | type=integer 44 | range=1 max 45 | default=0 46 | 47 | quantizer 48 | text=Quantizer, smaller values are higher quality 49 | type=integer 50 | range=0 255 51 | default=100 52 | 53 | min_quantizer 54 | text=Minimum quantizer to use in bitrate mode 55 | type=integer 56 | range=0 255 57 | default=0 58 | 59 | low_latency 60 | text=Low latency mode; disables frame reordering. 61 | type=check 62 | default=0 63 | 64 | min_key_frame_interval 65 | text=Minimum interval between keyframes 66 | type=integer 67 | range=0 max 68 | default=12 69 | 70 | switch_frame_interval 71 | text=Maximum interval between switch frames (0=disable switch frames) 72 | type=integer 73 | range=0 max 74 | default=0 75 | 76 | reservoir_frame_delay 77 | text=Frames used for rate control reservoir 78 | type=integer 79 | range=12 max 80 | default=240 81 | 82 | #still_picture 83 | #text=Still picture mode 84 | #type=check 85 | 86 | tune 87 | text=Quality tuning 88 | type=choice 89 | value=psnr:psychovisual 90 | default=psychovisual 91 | 92 | speed 93 | text=Speed level (0=best quality, 10=fastest) 94 | type=integer 95 | range=0 10 96 | default=6 97 | 98 | rdo_lookahead_frames 99 | text=Number of frames encoder should lookahead for RDO purposes 100 | type=integer 101 | range=0 100 102 | default=40 103 | 104 | :Level 105 | 106 | level 107 | text=AV1 level to target in the form . 108 | type=string 109 | -------------------------------------------------------------------------------- /res/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/start.png -------------------------------------------------------------------------------- /res/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/stop.png -------------------------------------------------------------------------------- /res/tab_msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/tab_msg.png -------------------------------------------------------------------------------- /res/tab_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/tab_off.png -------------------------------------------------------------------------------- /res/tab_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/tab_on.png -------------------------------------------------------------------------------- /res/tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bswebdk/FFQueue/09cc2fd2657b7b4950768b8f9cdf9926412882ef/res/tools.png -------------------------------------------------------------------------------- /src/FFQAbout.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQAbout.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQABOUT_H 25 | #define FFQABOUT_H 26 | 27 | //#include "wx_pch.h" 28 | 29 | #ifndef WX_PRECOMP 30 | //(*HeadersPCH(FFQAbout) 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | //*) 40 | #endif 41 | //(*Headers(FFQAbout) 42 | //*) 43 | 44 | #include 45 | 46 | #define ABOUT_KEY "d\te\rv" 47 | 48 | class FFQAbout: public wxDialog 49 | { 50 | public: 51 | 52 | FFQAbout(wxWindow* parent,wxWindowID id=wxID_ANY); 53 | virtual ~FFQAbout(); 54 | void Execute(); 55 | 56 | //(*Declarations(FFQAbout) 57 | wxButton* CloseButton; 58 | wxButton* HelpButton; 59 | wxPanel* AnimPanel; 60 | wxStaticBitmap* MadClippy; 61 | wxStaticBitmap* MainLogo; 62 | wxStaticText* Bacon; 63 | wxStaticText* Hdr; 64 | wxStaticText* Info; 65 | wxTextCtrl* TextCtrl; 66 | //*) 67 | 68 | protected: 69 | 70 | //(*Identifiers(FFQAbout) 71 | static const long ID_MAINLOGO; 72 | static const long ID_ANIMPANEL; 73 | static const long ID_MADCLIPPY; 74 | static const long ID_TEXTCTRL; 75 | static const long ID_HELPBUTTON; 76 | static const long ID_CLOSEBUTTON; 77 | //*) 78 | 79 | private: 80 | 81 | //(*Handlers(FFQAbout) 82 | void OnButtonCloseClick(wxCommandEvent& event); 83 | void OnClose(wxCloseEvent& event); 84 | void OnTimerTrigger(wxTimerEvent& event); 85 | //*) 86 | 87 | wxAnimationCtrl *m_Anim; 88 | wxString m_HelpPath; 89 | 90 | #ifdef DEBUG 91 | int cc; 92 | wxTimer Timer; 93 | void OnTimer(wxTimerEvent& event); 94 | #endif // DEBUG 95 | 96 | DECLARE_EVENT_TABLE() 97 | }; 98 | 99 | #endif // FFQABOUT_H 100 | -------------------------------------------------------------------------------- /src/FFQApp.cpp: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQApp.cpp * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #include "FFQApp.h" 25 | 26 | //(*AppHeaders 27 | #include "FFQMain.h" 28 | #include 29 | //*) 30 | 31 | IMPLEMENT_APP(FFQApp); 32 | 33 | //--------------------------------------------------------------------------------------- 34 | 35 | bool FFQApp::OnInit() 36 | { 37 | //(*AppInitialize 38 | bool wxsOK = true; 39 | wxInitAllImageHandlers(); 40 | if ( wxsOK ) 41 | { 42 | FFQMain* Frame = new FFQMain(0); 43 | Frame->Show(); 44 | SetTopWindow(Frame); 45 | } 46 | //*) 47 | return wxsOK; 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/FFQApp.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQApp.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQAPP_H 25 | #define FFQAPP_H 26 | 27 | //#include "wx_pch.h" 28 | #include 29 | 30 | class FFQApp : public wxApp 31 | { 32 | public: 33 | virtual bool OnInit(); 34 | }; 35 | 36 | DECLARE_APP(FFQApp); 37 | 38 | #endif // FFQAPP_H 39 | -------------------------------------------------------------------------------- /src/FFQBitRatePanel.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQBitRatePanel.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQBITRATEPANEL_H 25 | #define FFQBITRATEPANEL_H 26 | 27 | //#include "wx_pch.h" 28 | 29 | #ifndef WX_PRECOMP 30 | //(*HeadersPCH(FFQBitRatePanel) 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | //*) 37 | #endif 38 | //(*Headers(FFQBitRatePanel) 39 | //*) 40 | 41 | class FFQBitRatePanel: public wxPanel 42 | { 43 | public: 44 | 45 | FFQBitRatePanel(wxWindow* parent); 46 | virtual ~FFQBitRatePanel(); 47 | 48 | bool GetValues(wxString &values, bool showErr); 49 | bool HasValue(); 50 | void SetValues(wxString values); 51 | 52 | //(*Declarations(FFQBitRatePanel) 53 | wxChoice* BitRateType; 54 | wxFlexGridSizer* MainSizer; 55 | wxStaticText* BST1; 56 | wxStaticText* BST2; 57 | wxStaticText* BST3; 58 | wxStaticText* BST4; 59 | wxStaticText* ST1; 60 | wxStaticText* ST2; 61 | wxStaticText* ST3; 62 | wxStaticText* ST4; 63 | wxStaticText* ST5; 64 | wxTextCtrl* BitRate; 65 | wxTextCtrl* BufSize; 66 | wxTextCtrl* MaxRate; 67 | wxTextCtrl* MinRate; 68 | //*) 69 | 70 | protected: 71 | 72 | //(*Identifiers(FFQBitRatePanel) 73 | static const long ID_ST1; 74 | static const long ID_BITRATETYPE; 75 | static const long ID_ST2; 76 | static const long ID_BITRATE; 77 | static const long ID_BST1; 78 | static const long ID_ST3; 79 | static const long ID_MINRATE; 80 | static const long ID_BST2; 81 | static const long ID_ST5; 82 | static const long ID_BUFSIZE; 83 | static const long ID_BST4; 84 | static const long ID_ST4; 85 | static const long ID_MAXRATE; 86 | static const long ID_BST3; 87 | //*) 88 | 89 | private: 90 | 91 | //(*Handlers(FFQBitRatePanel) 92 | void OnChoiceChange(wxCommandEvent& event); 93 | //*) 94 | 95 | void UpdateLabels(); 96 | 97 | DECLARE_EVENT_TABLE() 98 | }; 99 | 100 | #endif // FFQBITRATEPANEL_H 101 | -------------------------------------------------------------------------------- /src/FFQCodecInfoEdit.h: -------------------------------------------------------------------------------- 1 | #ifndef FFQCODECINFOEDIT_H 2 | #define FFQCODECINFOEDIT_H 3 | 4 | #include 5 | #include "utils/FFQCodecInfo.h" 6 | 7 | #ifndef WX_PRECOMP 8 | //(*HeadersPCH(FFQCodecInfoEdit) 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | //*) 16 | #endif 17 | //(*Headers(FFQCodecInfoEdit) 18 | //*) 19 | 20 | 21 | class FFQCodecInfoEdit: public wxDialog 22 | { 23 | public: 24 | 25 | FFQCodecInfoEdit(wxWindow* parent, int id = wxID_ANY); 26 | virtual ~FFQCodecInfoEdit(); 27 | 28 | bool Execute(LPCODEC_INFO ci, wxString codec, bool video = true); 29 | 30 | //(*Declarations(FFQCodecInfoEdit) 31 | wxButton* CancelBtn; 32 | wxButton* OkBtn; 33 | wxButton* ResetBtn; 34 | wxCheckBox* CRFFloat; 35 | wxCheckBox* QScaleFloat; 36 | wxStaticText* ST4; 37 | wxTextCtrl* CRFMax; 38 | wxTextCtrl* CRFMin; 39 | wxTextCtrl* QScaleMax; 40 | wxTextCtrl* QScaleMin; 41 | //*) 42 | 43 | protected: 44 | 45 | //(*Identifiers(FFQCodecInfoEdit) 46 | static const long ID_QSMIN; 47 | static const long ID_QSMAX; 48 | static const long ID_QSFLOAT; 49 | static const long ID_CRFMIN; 50 | static const long ID_CRFMAX; 51 | static const long ID_CRFFLOAT; 52 | static const long ID_RESETBTN; 53 | static const long ID_OKBTN; 54 | static const long ID_CANCELBTN; 55 | //*) 56 | 57 | private: 58 | 59 | //int m_Integer; 60 | //float m_Float; 61 | //wxArrayString m_IntChars, m_FloatChars; 62 | //wxTextValidator *m_IntVal, *m_FloatVal; 63 | wxIntegerValidator *m_IntVal; 64 | wxFloatingPointValidator *m_FloatVal; 65 | LPCODEC_INFO m_CodecInfo; 66 | wxString m_Codec; 67 | 68 | void SetControlValues(LPCODEC_INFO ci = nullptr); 69 | void UpdateValidator(wxTextCtrl *tc, bool is_float); 70 | void UpdateValidators(); 71 | 72 | //(*Handlers(FFQCodecInfoEdit) 73 | void OnButtonClick(wxCommandEvent& event); 74 | //*) 75 | 76 | DECLARE_EVENT_TABLE() 77 | }; 78 | 79 | #endif 80 | -------------------------------------------------------------------------------- /src/FFQFilterEdit.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQFilterEdit.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQFILTEREDIT_H 25 | #define FFQFILTEREDIT_H 26 | 27 | //#include "wx_pch.h" 28 | 29 | #ifndef WX_PRECOMP 30 | //(*HeadersPCH(FFQFilterEdit) 31 | #include 32 | #include 33 | #include 34 | //*) 35 | #endif 36 | //(*Headers(FFQFilterEdit) 37 | //*) 38 | 39 | #include "filter/FilterBasePanel.h" 40 | 41 | class FFQFilterEdit: public wxDialog 42 | { 43 | public: 44 | 45 | FFQFilterEdit(wxWindow* parent); 46 | virtual ~FFQFilterEdit(); 47 | 48 | bool Execute(LPFFMPEG_FILTER filter); 49 | 50 | //(*Declarations(FFQFilterEdit) 51 | wxButton* CancelButton; 52 | wxButton* OKButton; 53 | wxFlexGridSizer* GridSizer; 54 | wxStaticBoxSizer* FilterContainer; 55 | //*) 56 | 57 | protected: 58 | 59 | //(*Identifiers(FFQFilterEdit) 60 | static const long ID_OKBUTTON; 61 | static const long ID_CANCELBUTTON; 62 | //*) 63 | 64 | private: 65 | 66 | //(*Handlers(FFQFilterEdit) 67 | void OnButtonClick(wxCommandEvent& event); 68 | //*) 69 | 70 | FilterBasePanel* m_FilterPanel; 71 | LPFFMPEG_FILTER m_Filter; 72 | 73 | DECLARE_EVENT_TABLE() 74 | }; 75 | 76 | #endif // FFQFILTEREDIT_H 77 | -------------------------------------------------------------------------------- /src/FFQJobEditAdvPopup.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQJobEditAdvPopup.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQJOBEDITADVPOPUP_H 25 | #define FFQJOBEDITADVPOPUP_H 26 | 27 | //#include "wx_pch.h" 28 | 29 | #ifndef WX_PRECOMP 30 | //(*HeadersPCH(FFQJobEditAdvPopup) 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | //*) 39 | #endif 40 | //(*Headers(FFQJobEditAdvPopup) 41 | #include 42 | #include 43 | //*) 44 | 45 | class FFQJobEditAdvPopup: public wxDialog 46 | { 47 | public: 48 | 49 | FFQJobEditAdvPopup(wxWindow* parent); 50 | virtual ~FFQJobEditAdvPopup(); 51 | bool Execute(void* data); 52 | 53 | //bool CheckFocus(wxWindow *focus = NULL); 54 | 55 | //(*Declarations(FFQJobEditAdvPopup) 56 | wxButton* ClearBtn; 57 | wxButton* NoBtn; 58 | wxButton* OkBtn; 59 | wxCheckBox* DiscardCorrupt; 60 | wxCheckBox* FrameRateSwitch; 61 | wxCheckBox* GenPTS; 62 | wxCheckBox* IgnDTS; 63 | wxCheckBox* IgnIdx; 64 | wxPanel* Panel1; 65 | wxSpinCtrl* ItsOffset; 66 | wxSpinCtrl* LoopStreams; 67 | wxStaticLine* Line; 68 | wxStaticLine* StaticLine1; 69 | wxStaticText* ST0; 70 | wxStaticText* ST1; 71 | wxStaticText* ST2; 72 | wxStaticText* ST3; 73 | wxStaticText* ST4; 74 | wxStaticText* ST5; 75 | wxStaticText* ST6; 76 | wxTextCtrl* FrameRate; 77 | //*) 78 | 79 | protected: 80 | 81 | //(*Identifiers(FFQJobEditAdvPopup) 82 | static const long ID_PANEL1; 83 | static const long ID_ITSOFFSET; 84 | static const long ID_STATICTEXT1; 85 | static const long ID_LOOPSTREAMS; 86 | static const long ID_STATICTEXT2; 87 | static const long ID_STATICLINE1; 88 | static const long ID_CLEARBTN; 89 | static const long ID_OKBTN; 90 | static const long ID_NOBTN; 91 | //*) 92 | 93 | private: 94 | 95 | void ResetCtrls(); 96 | 97 | //(*Handlers(FFQJobEditAdvPopup) 98 | void OnAction(wxCommandEvent& event); 99 | void OnChar(wxKeyEvent& event); 100 | //*) 101 | 102 | DECLARE_EVENT_TABLE() 103 | 104 | 105 | }; 106 | 107 | #endif // FFQJOBEDITADVPOPUP_H 108 | -------------------------------------------------------------------------------- /src/FFQPresetPanel.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQPresetPanel.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQPRESETPANEL_H 25 | #define FFQPRESETPANEL_H 26 | 27 | //#include "wx_pch.h" 28 | 29 | #ifndef WX_PRECOMP 30 | //(*HeadersPCH(FFQPresetPanel) 31 | #include 32 | #include 33 | #include 34 | #include 35 | //*) 36 | #endif 37 | //(*Headers(FFQPresetPanel) 38 | //*) 39 | 40 | #include "utils/FFQPreset.h" 41 | 42 | class FFQPresetPanel: public wxPanel 43 | { 44 | public: 45 | 46 | FFQPresetPanel(wxWindow* parent); 47 | virtual ~FFQPresetPanel(); 48 | void FillAndSelect(wxString selectId); 49 | void SelectPreset(LPFFQ_PRESET pst); 50 | void SetFixedFirstItem(wxString item); 51 | LPFFQ_PRESET GetSelectedPreset(); 52 | 53 | //(*Declarations(FFQPresetPanel) 54 | wxButton* MgrButton; 55 | wxChoice* Presets; 56 | //*) 57 | 58 | protected: 59 | 60 | //(*Identifiers(FFQPresetPanel) 61 | static const long ID_PRESETS; 62 | static const long ID_MGRBUTTON; 63 | //*) 64 | 65 | private: 66 | 67 | wxString m_FixedFirst; 68 | 69 | //(*Handlers(FFQPresetPanel) 70 | void OnAction(wxCommandEvent& event); 71 | //*) 72 | 73 | DECLARE_EVENT_TABLE() 74 | }; 75 | 76 | #endif // FFQPRESETPANEL_H 77 | -------------------------------------------------------------------------------- /src/FFQShowText.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQShowText.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQSHOWTEXT_H 25 | #define FFQSHOWTEXT_H 26 | 27 | //#include "wx_pch.h" 28 | 29 | #ifndef WX_PRECOMP 30 | //(*HeadersPCH(FFQShowText) 31 | #include 32 | #include 33 | #include 34 | //*) 35 | #endif 36 | //(*Headers(FFQShowText) 37 | //*) 38 | 39 | #include "utils/FFQNvpList.h" 40 | 41 | class FFQShowText: public wxDialog 42 | { 43 | public: 44 | 45 | FFQShowText(wxWindow* parent); 46 | virtual ~FFQShowText(); 47 | 48 | //(*Declarations(FFQShowText) 49 | wxTextCtrl* Text; 50 | //*) 51 | 52 | void Execute(const wxString &title, wxString text); 53 | void Execute(const wxString &title, LPFFQ_NVP_LIST nvp); 54 | 55 | protected: 56 | 57 | //(*Identifiers(FFQShowText) 58 | static const long ID_TEXT; 59 | //*) 60 | 61 | private: 62 | 63 | //(*Handlers(FFQShowText) 64 | //*) 65 | 66 | wxFont fNormal, fBold; 67 | void SetTitleAndShow(const wxString &title); 68 | 69 | DECLARE_EVENT_TABLE() 70 | }; 71 | 72 | #endif // FFQSHOWTEXT_H 73 | -------------------------------------------------------------------------------- /src/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS=ffqueue 2 | ffqueue_CXXFLAGS=`wx-config --debug=no --cxxflags` -std=c++11 -include ../wx_pch.h 3 | ffqueue_LDFLAGS=-s 4 | ffqueue_LDADD=@LIBS@ 5 | ffqueue_SOURCES=FFQAbout.cpp\ 6 | FFQApp.cpp\ 7 | FFQBatchMake.cpp\ 8 | FFQBitRatePanel.cpp\ 9 | FFQCodecInfoEdit.cpp\ 10 | FFQConfigEdit.cpp\ 11 | FFQFilterEdit.cpp\ 12 | FFQFullSpec.cpp\ 13 | FFQJobEditAdv.cpp\ 14 | FFQJobEditAdvCuts.cpp\ 15 | FFQJobEditAdvPopup.cpp\ 16 | FFQLangEdit.cpp\ 17 | FFQMain.cpp\ 18 | FFQPresetEdit.cpp\ 19 | FFQPresetMgr.cpp\ 20 | FFQPresetPanel.cpp\ 21 | FFQShowText.cpp\ 22 | FFQTimeEdit.cpp\ 23 | bin_res.cpp\ 24 | filter/AudioDelay.cpp\ 25 | filter/AudioTempo.cpp\ 26 | filter/BoxBlur.cpp\ 27 | filter/ChannelMap.cpp\ 28 | filter/ColorBalance.cpp\ 29 | filter/ColorMatrix.cpp\ 30 | filter/ColorOverlay.cpp\ 31 | filter/Crop.cpp\ 32 | filter/Curves.cpp\ 33 | filter/Custom.cpp\ 34 | filter/Decimate.cpp\ 35 | filter/Deflicker.cpp\ 36 | filter/Deinterlace.cpp\ 37 | filter/Dejudder.cpp\ 38 | filter/Delogo.cpp\ 39 | filter/Deshake.cpp\ 40 | filter/DynAudNorm.cpp\ 41 | filter/Echo.cpp\ 42 | filter/Elbg.cpp\ 43 | filter/Equalizer.cpp\ 44 | filter/FilterBasePanel.cpp\ 45 | filter/Flanger.cpp\ 46 | filter/Flip.cpp\ 47 | filter/FrameStep.cpp\ 48 | filter/FramesPerSecond.cpp\ 49 | filter/FullSpec.cpp\ 50 | filter/HighLowBandPass.cpp\ 51 | filter/Hqdn3d.cpp\ 52 | filter/Hue.cpp\ 53 | filter/Interlace.cpp\ 54 | filter/LensCorrection.cpp\ 55 | filter/Negate.cpp\ 56 | filter/Noise.cpp\ 57 | filter/Pad.cpp\ 58 | filter/Perspective.cpp\ 59 | filter/Phaser.cpp\ 60 | filter/Resample.cpp\ 61 | filter/Rotate.cpp\ 62 | filter/Scale.cpp\ 63 | filter/Transpose.cpp\ 64 | filter/Unsharp.cpp\ 65 | filter/Vignette.cpp\ 66 | filter/VolumeAndTone.cpp\ 67 | filter/Watermark.cpp\ 68 | tools/FFQConcat.cpp\ 69 | tools/FFQThumbMake.cpp\ 70 | tools/FFQThumbPanel.cpp\ 71 | tools/FFQVidStab.cpp\ 72 | tools/FFQVideoToGIF.cpp\ 73 | utils/FFQBuildCmd.cpp\ 74 | utils/FFQCodecInfo.cpp\ 75 | utils/FFQCompress.cpp\ 76 | utils/FFQConfig.cpp\ 77 | utils/FFQConsole.cpp\ 78 | utils/FFQConst.cpp\ 79 | utils/FFQFilter.cpp\ 80 | utils/FFQHash.cpp\ 81 | utils/FFQJob.cpp\ 82 | utils/FFQLang.cpp\ 83 | utils/FFQMisc.cpp\ 84 | utils/FFQNvpList.cpp\ 85 | utils/FFQParsing.cpp\ 86 | utils/FFQPixFmt.cpp\ 87 | utils/FFQPreset.cpp\ 88 | utils/FFQProbing.cpp\ 89 | utils/FFQProcess.cpp\ 90 | utils/FFQQueueItem.cpp\ 91 | utils/FFQStaticJob.cpp\ 92 | utils/FFQStreamMapping.cpp\ 93 | utils/FFQTaskBar.cpp\ 94 | utils/FFQThumbs.cpp\ 95 | utils/FFQTimeValue.cpp\ 96 | utils/FFQToolJobs.cpp -------------------------------------------------------------------------------- /src/filter/AudioDelay.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: AudioDelay.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef AUDIODELAY_H 25 | #define AUDIODELAY_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | #define CHANNEL_COUNT 10 30 | 31 | class AudioDelay : public FilterBasePanel 32 | { 33 | 34 | public: 35 | 36 | AudioDelay(wxWindow* parent); 37 | virtual ~AudioDelay(); 38 | 39 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 40 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 41 | 42 | protected: 43 | 44 | private: 45 | wxTextCtrl *m_Delays[CHANNEL_COUNT]; 46 | 47 | }; 48 | 49 | #endif // AUDIODELAY_H 50 | -------------------------------------------------------------------------------- /src/filter/AudioTempo.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: AudioTempo.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef AUDIOTEMPO_H 25 | #define AUDIOTEMPO_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class AudioTempo : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | AudioTempo(wxWindow* parent); 35 | virtual ~AudioTempo(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxSlider *m_Tempo; 45 | wxStaticText *m_SliderText; 46 | 47 | double GetTempo(); 48 | void OnSliderChange(wxCommandEvent &event); 49 | }; 50 | 51 | #endif // AUDIOTEMPO_H 52 | -------------------------------------------------------------------------------- /src/filter/BoxBlur.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: BoxBlur.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef BOXBLUR_H 25 | #define BOXBLUR_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class BoxBlur : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | BoxBlur(wxWindow* parent); 35 | virtual ~BoxBlur(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxIntegerValidator m_Val; 45 | wxTextCtrl *m_LumaRad, *m_LumaPow, *m_ChromaRad, *m_ChromaPow, *m_AlphaRad, *m_AlphaPow; 46 | 47 | void MakeRow(wxSizer *sizer, wxString caption, wxTextCtrl **rad, wxTextCtrl **pow); 48 | 49 | }; 50 | 51 | #endif // BOXBLUR_H 52 | -------------------------------------------------------------------------------- /src/filter/ChannelMap.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: ChannelMap.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef CHANNELMAP_H 25 | #define CHANNELMAP_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class ChannelMap : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | ChannelMap(wxWindow* parent); 35 | virtual ~ChannelMap(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxFlexGridSizer *m_Remappings; 45 | wxChoice *m_Layout; 46 | 47 | void EnableRemappings(int mapId); 48 | void EnableRemappings(wxString channelList); 49 | bool FindChannelCtrls(unsigned int channelId, wxStaticText **label, wxChoice **choice); 50 | unsigned int GetChannelCount(); 51 | void GetChannelCtrls(unsigned int channelIndex, wxStaticText **label, wxChoice **choice); 52 | wxString GetRemappings(bool forFFMpeg); 53 | void OnChoiceChange(wxCommandEvent& event); 54 | 55 | 56 | }; 57 | 58 | #endif // CHANNELMAP_H 59 | -------------------------------------------------------------------------------- /src/filter/ColorBalance.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: ColorBalance.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef COLORBALANCE_H 25 | #define COLORBALANCE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class ColorBalance : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | ColorBalance(wxWindow* parent); 35 | virtual ~ColorBalance(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | int m_AddID; 45 | 46 | wxSlider *m_ShadowR, *m_ShadowG, *m_ShadowB, 47 | *m_MidtoneR, *m_MidtoneG, *m_MidtoneB, 48 | *m_LightR, *m_LightG, *m_LightB; 49 | 50 | wxCheckBox *m_LockGroups, *m_LockColors; 51 | 52 | void MakeGroup(wxSizer *sizer, wxString caption, wxSlider **red, wxSlider **green, wxSlider **blue); 53 | void MakeRow(wxSizer *sizer, wxString caption, wxSlider **slider); 54 | 55 | void OnCtrlChange(wxCommandEvent &event); 56 | 57 | }; 58 | 59 | #endif // COLORBALANCE_H 60 | -------------------------------------------------------------------------------- /src/filter/ColorMatrix.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: ColorMatrix.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef COLORMATRIX_H 25 | #define COLORMATRIX_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class ColorMatrix : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | ColorMatrix(wxWindow* parent); 35 | virtual ~ColorMatrix(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxChoice *m_Src, *m_Dst; 44 | 45 | }; 46 | 47 | #endif // COLORMATRIX_H 48 | -------------------------------------------------------------------------------- /src/filter/ColorOverlay.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: ColorOverlay.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef COLOROVERLAY_H 25 | #define COLOROVERLAY_H 26 | 27 | #include "FilterBasePanel.h" 28 | #include 29 | 30 | class ColorOverlay : public FilterBasePanel 31 | { 32 | 33 | public: 34 | 35 | ColorOverlay(wxWindow* parent); 36 | virtual ~ColorOverlay(); 37 | 38 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 39 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 40 | 41 | protected: 42 | 43 | private: 44 | 45 | wxColourPickerCtrl *m_Color; 46 | wxSlider *m_Visibility; 47 | wxStaticText *m_SliderText; 48 | 49 | void OnSliderChange(wxCommandEvent &event); 50 | }; 51 | 52 | #endif // COLOROVERLAY_H 53 | -------------------------------------------------------------------------------- /src/filter/Crop.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Crop.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef CROP_H 25 | #define CROP_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Crop : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Crop(wxWindow* parent); 35 | virtual ~Crop(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxTextCtrl *m_Left, *m_Top, *m_Right, *m_Bottom; 44 | 45 | }; 46 | 47 | #endif // COLOR_H 48 | -------------------------------------------------------------------------------- /src/filter/Curves.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Curves.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef CURVES_H 25 | #define CURVES_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Curves : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Curves(wxWindow* parent); 35 | virtual ~Curves(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxChoice *m_Preset; 45 | wxTextCtrl *m_Master, *m_Red, *m_Green, *m_Blue, *m_All; 46 | wxFlexGridSizer *m_Sizer; 47 | 48 | void OnChoiceChange(wxCommandEvent& event); 49 | void UpdateCtrls(); 50 | 51 | 52 | }; 53 | 54 | #endif // CURVES_H 55 | -------------------------------------------------------------------------------- /src/filter/Custom.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Custom.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef CUSTOM_H 25 | #define CUSTOM_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Custom : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Custom(wxWindow* parent); 35 | virtual ~Custom(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxRadioButton *m_Video, *m_Audio; 45 | wxTextCtrl *m_Filter; 46 | 47 | }; 48 | 49 | #endif // CUSTOM_H 50 | -------------------------------------------------------------------------------- /src/filter/Decimate.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Decimate.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef DECIMATE_H 25 | #define DECIMATE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Decimate : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Decimate(wxWindow* parent); 35 | virtual ~Decimate(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxTextCtrl *m_Cycle, *m_DupThresh, *m_ScThresh, *m_BlockX, *m_BlockY; 44 | wxCheckBox *m_PreProc, *m_ChromaMetric; 45 | 46 | }; 47 | 48 | #endif // DECIMATE_H 49 | -------------------------------------------------------------------------------- /src/filter/Deflicker.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Deflicker.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef DEFLICKER_H 25 | #define DEFLICKER_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Deflicker : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Deflicker(wxWindow* parent); 35 | virtual ~Deflicker(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxSlider *m_Size; 44 | wxChoice *m_Mode; 45 | wxStaticText *m_SliderText; 46 | 47 | void OnSliderChange(wxCommandEvent &event); 48 | 49 | }; 50 | 51 | #endif // DEFLICKER_H 52 | -------------------------------------------------------------------------------- /src/filter/Deinterlace.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Deinterlace.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef DEINTERLACE_H 25 | #define DEINTERLACE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Deinterlace : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Deinterlace(wxWindow* parent); 35 | virtual ~Deinterlace(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxPanel *m_YadifPan, *m_KernDeintPan; 45 | wxRadioButton *m_Yadif, *m_KernDeint; 46 | 47 | //Yadif 48 | wxChoice *m_DeintMode; 49 | wxRadioButton *m_ParityAuto, *m_ParityTop, *m_ParityBottom, *m_FramesAll, *m_FramesInterlaced; 50 | 51 | //Kerndeint 52 | wxSlider *m_Threshold; 53 | wxStaticText *m_ThreshLab; 54 | wxCheckBox *m_MapToWhite, *m_SwapOrder, *m_AddSharp, *m_TwoWaySharp; 55 | 56 | void OnAction(wxCommandEvent &event); 57 | void SwapPanels(wxPanel *select = NULL); 58 | 59 | }; 60 | 61 | #endif // DEINTERLACE_H 62 | -------------------------------------------------------------------------------- /src/filter/Dejudder.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Dejudder.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef DEJUDDER_H 25 | #define DEJUDDER_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Dejudder : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Dejudder(wxWindow* parent); 35 | virtual ~Dejudder(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxRadioButton *m_Custom, *m_Film2NTSC, *m_PAL2NTSC, *m_MixBoth; 44 | wxTextCtrl *m_Cycle; 45 | 46 | }; 47 | 48 | #endif // DEJUDDER_H 49 | -------------------------------------------------------------------------------- /src/filter/Delogo.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Delogo.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef DELOGO_H 25 | #define DELOGO_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | //#define MAKE_BAND_CTRLS 30 | 31 | class Delogo : public FilterBasePanel 32 | { 33 | 34 | public: 35 | 36 | Delogo(wxWindow* parent); 37 | virtual ~Delogo(); 38 | 39 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 40 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 41 | 42 | protected: 43 | 44 | private: 45 | 46 | wxFlexGridSizer *m_DelogoCtrls; 47 | wxCheckBox *m_UseImgMask; 48 | wxTextCtrl *m_ImgMask; 49 | #ifdef MAKE_BAND_CTRLS 50 | wxTextCtrl *m_Band; 51 | #endif 52 | wxButton *m_BrowseImg; 53 | 54 | void OnAction(wxCommandEvent &event); 55 | void UpdateControls(); 56 | 57 | }; 58 | 59 | #endif // DELOGO_H 60 | -------------------------------------------------------------------------------- /src/filter/Deshake.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Deshake.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef DESHAKE_H 25 | #define DESHAKE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Deshake : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Deshake(wxWindow* parent); 35 | virtual ~Deshake(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxChoice *m_ShakeX, *m_ShakeY; 44 | wxTextCtrl *m_BlockSize, *m_Contrast; 45 | wxRadioButton *m_Search0, *m_Search1; 46 | wxCheckBox *m_OpenCL, *m_EntireFrame; 47 | wxChoice *m_FillEdge; 48 | wxStaticText *m_PositionST, *m_SizeST; 49 | 50 | void OnCtrlChange(wxCommandEvent &event); 51 | void UpdateControls(); 52 | }; 53 | 54 | #endif // DESHAKE_H 55 | -------------------------------------------------------------------------------- /src/filter/DynAudNorm.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: DynAudNorm.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef DYNAUDNORM_H 25 | #define DYNAUDNORM_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class DynAudNorm : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | DynAudNorm(wxWindow* parent); 35 | virtual ~DynAudNorm(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | 45 | wxSlider *m_FrameLen, *m_GaussWnd, *m_PeakVal, *m_MaxGain, 46 | *m_TargetRMS, *m_CompressFactor; 47 | 48 | wxCheckBox *m_ChannelCoupling, *m_DCBiasCorrection, *m_AltBoundaryMode; 49 | 50 | wxStaticText *m_FrameLenText, *m_GaussWndText, *m_PeakValText, 51 | *m_MaxGainText, *m_TargetRMSText, *m_CompressFactorText; 52 | 53 | void OnSliderChange(wxCommandEvent &event); 54 | 55 | }; 56 | 57 | #endif // DYNAUDNORM_H 58 | -------------------------------------------------------------------------------- /src/filter/Echo.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Echo.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef ECHO_H 25 | #define ECHO_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | #define DELAY_COUNT 5 30 | #define DECAY_COUNT 5 31 | 32 | class Echo : public FilterBasePanel 33 | { 34 | 35 | public: 36 | 37 | Echo(wxWindow* parent); 38 | virtual ~Echo(); 39 | 40 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 41 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 42 | 43 | protected: 44 | 45 | private: 46 | 47 | wxTextCtrl *m_InGain, *m_OutGain, *m_Delays[DELAY_COUNT], *m_Decays[DECAY_COUNT]; 48 | 49 | }; 50 | 51 | #endif // ECHO_H 52 | -------------------------------------------------------------------------------- /src/filter/Elbg.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Elbg.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef ELBG_H 25 | #define ELBG_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Elbg : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Elbg(wxWindow* parent); 35 | virtual ~Elbg(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxTextCtrl *m_Colors, *m_Iterations; 44 | 45 | }; 46 | 47 | #endif // ELBG_H 48 | -------------------------------------------------------------------------------- /src/filter/Equalizer.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Equalizer.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef EQUALIZER_H 25 | #define EQUALIZER_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | typedef struct EQ_BAND 30 | { 31 | 32 | wxSlider *gain; 33 | wxStaticText *label; 34 | int freq; 35 | 36 | EQ_BAND() { gain=NULL; freq=0; } 37 | 38 | } EQ_BAND, *LPEQ_BAND; 39 | 40 | //--------------------------------------------------------------------------------------- 41 | 42 | class Equalizer : public FilterBasePanel 43 | { 44 | 45 | public: 46 | 47 | Equalizer(wxWindow* parent); 48 | virtual ~Equalizer(); 49 | 50 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 51 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 52 | 53 | protected: 54 | 55 | private: 56 | 57 | LPEQ_BAND m_EqBands; 58 | wxTextCtrl *m_BandWidth; 59 | wxChoice *m_WidthType; 60 | void MakeEqBand(wxSizer *addToSizer, EQ_BAND &band, int f, float w); 61 | void OnSliderChange(wxCommandEvent &event); 62 | void UpdateLabels(wxSlider *forSlider = NULL); 63 | 64 | }; 65 | 66 | #endif // EQUALIZER_H 67 | -------------------------------------------------------------------------------- /src/filter/Flanger.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Flanger.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FLANGER_H 25 | #define FLANGER_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Flanger : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Flanger(wxWindow* parent); 35 | virtual ~Flanger(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxSlider *m_Delay, *m_Depth, *m_Regen, *m_Width, *m_Speed, *m_Phase; 45 | wxRadioButton *m_ShapeTri, *m_ShapeSin, *m_InterLin, *m_InterQuad; 46 | 47 | }; 48 | 49 | #endif // FLANGER_H 50 | -------------------------------------------------------------------------------- /src/filter/Flip.cpp: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Flip.cpp * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #include "Flip.h" 25 | 26 | Flip::Flip(wxWindow* parent) : FilterBasePanel(parent) 27 | { 28 | 29 | wxBoxSizer *bs; 30 | 31 | bs = new wxBoxSizer(wxVERTICAL); 32 | 33 | m_Horz = new wxCheckBox(this, wxID_ANY, FFQS(SID_FLIP_HORZ), wxDefaultPosition, wxDefaultSize, 0); 34 | bs->Add(m_Horz, 1, wxALL|wxALIGN_LEFT, 10); 35 | 36 | m_Vert = new wxCheckBox(this, wxID_ANY, FFQS(SID_FLIP_VERT), wxDefaultPosition, wxDefaultSize, 0); 37 | bs->Add(m_Vert, 1, wxALL|wxALIGN_LEFT, 10); 38 | 39 | SetSizer(bs); 40 | bs->Fit(this); 41 | //bs->SetSizeHints(this); 42 | 43 | } 44 | 45 | //--------------------------------------------------------------------------------------- 46 | 47 | Flip::~Flip() 48 | { 49 | 50 | } 51 | 52 | //--------------------------------------------------------------------------------------- 53 | 54 | void Flip::SetFilter(LPFFMPEG_FILTER fltr) 55 | { 56 | 57 | wxString fs = fltr->editable; 58 | 59 | if (fs.Len() > 0) 60 | { 61 | 62 | //Load values from filter string 63 | m_Horz->SetValue(GetToken(fs, ',') == STR_YES); 64 | m_Vert->SetValue(GetToken(fs, ',') == STR_YES); 65 | 66 | } 67 | 68 | else 69 | { 70 | 71 | //Default values 72 | m_Horz->SetValue(false); 73 | m_Vert->SetValue(true); 74 | 75 | } 76 | 77 | } 78 | 79 | //--------------------------------------------------------------------------------------- 80 | 81 | bool Flip::GetFilter(LPFFMPEG_FILTER fltr) 82 | { 83 | 84 | fltr->type = ftFLIP; 85 | 86 | if ((!m_Horz->GetValue()) && (!m_Vert->GetValue())) return ShowError(FFQS(SID_FLIP_ERROR)); 87 | 88 | wxString h = BOOLSTR(m_Horz->GetValue()), v = BOOLSTR(m_Vert->GetValue()), 89 | f = m_Horz->GetValue() ? "hflip" : ""; 90 | 91 | if (m_Vert->GetValue()) 92 | { 93 | if (f.Len() > 0) f += ","; 94 | f += "vflip"; 95 | } 96 | 97 | fltr->friendly = FFQSF(SID_FLIP_USERFRIENDLY, FFQL()->FILTER_NAMES[fltr->type], h, v); 98 | fltr->ff_filter.Printf("%s%s%s", FILTER_VIDEO_IN, f, FILTER_VIDEO_OUT); 99 | fltr->editable.Printf("%s,%s", h, v); 100 | 101 | return true; 102 | 103 | } 104 | -------------------------------------------------------------------------------- /src/filter/Flip.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Flip.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FLIP_H 25 | #define FLIP_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Flip : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Flip(wxWindow* parent); 35 | virtual ~Flip(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxCheckBox *m_Horz, *m_Vert; 44 | 45 | }; 46 | 47 | #endif // FLIP_H 48 | -------------------------------------------------------------------------------- /src/filter/FrameStep.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FrameStep.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FRAMESTEP_H 25 | #define FRAMESTEP_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class FrameStep : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | FrameStep(wxWindow* parent); 35 | virtual ~FrameStep(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxTextCtrl *m_Step; 44 | 45 | }; 46 | 47 | #endif // FRAMESTEP_H 48 | -------------------------------------------------------------------------------- /src/filter/FramesPerSecond.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FramesPerSecond.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FRAMESPERSECOND_H 25 | #define FRAMESPERSECOND_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class FramesPerSecond : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | FramesPerSecond(wxWindow* parent); 35 | virtual ~FramesPerSecond(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxChoice *m_Round, *m_EOF; 45 | wxTextCtrl *m_FPS, *m_Start; 46 | wxFlexGridSizer *m_Sizer; 47 | 48 | }; 49 | 50 | #endif // FRAMESPERSECOND_H 51 | -------------------------------------------------------------------------------- /src/filter/FullSpec.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2023 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FullSpec.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FULLSPEC_H 25 | #define FULLSPEC_H 26 | 27 | #include "FilterBasePanel.h" 28 | #include "../FFQFullSpec.h" 29 | 30 | class FullSpec : public FilterBasePanel 31 | { 32 | 33 | public: 34 | 35 | FullSpec(wxWindow* parent, void *data); 36 | virtual ~FullSpec(); 37 | 38 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 39 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 40 | 41 | protected: 42 | 43 | private: 44 | FULLSPEC_FILE *m_FullSpec; 45 | bool m_HasTime; 46 | 47 | }; 48 | 49 | #endif // AUDIODELAY_H 50 | -------------------------------------------------------------------------------- /src/filter/HighLowBandPass.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: HighLowBandPass.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef HIGHLOWBANDPASS_H 25 | #define HIGHLOWBANDPASS_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | extern const unsigned int BAND_WIDTH_TYPE_COUNT; 30 | extern const wxString WIDTH_TYPES[]; 31 | 32 | class HighLowBandPass : public FilterBasePanel 33 | { 34 | 35 | public: 36 | 37 | HighLowBandPass(wxWindow* parent); 38 | virtual ~HighLowBandPass(); 39 | 40 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 41 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 42 | 43 | protected: 44 | 45 | private: 46 | 47 | FILTER_TYPE m_FilterType; 48 | wxFlexGridSizer *m_Sizer; 49 | wxStaticText *m_MainLab, *m_PolesLab, *m_WidthLab; 50 | wxTextCtrl *m_Frequency, *m_Width; 51 | wxChoice *m_Poles, *m_WidthType; 52 | wxCheckBox *m_CSG; 53 | 54 | void OnChoiceChange(wxCommandEvent &event); 55 | void UpdateControls(); 56 | 57 | }; 58 | 59 | #endif // HIGHLOWBANDPASS_H 60 | -------------------------------------------------------------------------------- /src/filter/Hqdn3d.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Hqdn3d.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef HQDN3D_H 25 | #define HQDN3D_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Hqdn3d : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Hqdn3d(wxWindow* parent); 35 | virtual ~Hqdn3d(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxTextCtrl *m_LumaS, *m_ChromaS, *m_LumaT, *m_ChromaT; 44 | 45 | }; 46 | 47 | #endif // HQDN3D_H 48 | -------------------------------------------------------------------------------- /src/filter/Hue.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Hue.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef HUE_H 25 | #define HUE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Hue : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Hue(wxWindow* parent); 35 | virtual ~Hue(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxSlider *m_Hue, *m_Sat, *m_Bright; 45 | wxStaticText *m_HueText, *m_SatText, *m_BrightText; 46 | 47 | void OnSliderChange(wxCommandEvent &event); 48 | 49 | }; 50 | 51 | #endif // HUE_H 52 | -------------------------------------------------------------------------------- /src/filter/Interlace.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Interlace.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef INTERLACE_H 25 | #define INTERLACE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Interlace : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Interlace(wxWindow* parent); 35 | virtual ~Interlace(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | 45 | //Type selection 46 | wxRadioButton *m_Default, *m_Temporal; 47 | wxPanel *m_DefaultPan, *m_TemporalPan; 48 | 49 | //Default 50 | wxRadioButton *m_ScanEven, *m_ScanOdd; 51 | wxCheckBox *m_LowPass; //Used for both 52 | 53 | //Temporal 54 | wxChoice *m_TemporalMode; 55 | 56 | void OnAction(wxCommandEvent &event); 57 | void SwapPanels(wxPanel *select); 58 | 59 | 60 | }; 61 | 62 | #endif // INTERLACE_H 63 | -------------------------------------------------------------------------------- /src/filter/LensCorrection.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: LensCorrection.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef LENSCORRECTION_H 25 | #define LENSCORRECTION_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class LensCorrection : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | LensCorrection(wxWindow* parent); 35 | virtual ~LensCorrection(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxSlider *m_CX, *m_CY, *m_K1, *m_K2; 45 | wxStaticText *m_CXText, *m_CYText, *m_K1Text, *m_K2Text; 46 | 47 | void OnSliderChange(wxCommandEvent &event); 48 | 49 | }; 50 | 51 | #endif // LENSCORRECTION_H 52 | -------------------------------------------------------------------------------- /src/filter/Negate.cpp: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Negate.cpp * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #include "Negate.h" 25 | 26 | Negate::Negate(wxWindow* parent) : FilterBasePanel(parent) 27 | { 28 | 29 | wxBoxSizer *bs; 30 | 31 | bs = new wxBoxSizer(wxVERTICAL); 32 | 33 | m_Alpha = new wxCheckBox(this, wxID_ANY, FFQS(SID_NEGATE_ALPHA_CHANNEL), wxDefaultPosition, wxDefaultSize, 0); 34 | bs->Add(m_Alpha, 1, wxALL|wxALIGN_LEFT/*|wxALIGN_CENTER_VERTICAL*/, 10); 35 | 36 | bs->Add(GetTimeLimitControls(true), 1, wxALL|wxALIGN_LEFT/*|wxALIGN_CENTER_VERTICAL*/, 0); 37 | 38 | SetSizer(bs); 39 | bs->Fit(this); 40 | //bs->SetSizeHints(this); 41 | 42 | } 43 | 44 | //--------------------------------------------------------------------------------------- 45 | 46 | Negate::~Negate() 47 | { 48 | 49 | } 50 | 51 | //--------------------------------------------------------------------------------------- 52 | 53 | void Negate::SetFilter(LPFFMPEG_FILTER fltr) 54 | { 55 | 56 | wxString fs = fltr->editable; 57 | 58 | if (fs.Len() > 0) 59 | { 60 | 61 | //Load values from filter string 62 | m_Alpha->SetValue(GetToken(fs, ',') == STR_YES); 63 | 64 | } 65 | 66 | else 67 | { 68 | 69 | //Default values 70 | m_Alpha->SetValue(false); 71 | 72 | } 73 | 74 | SetTimeLimitValues(fs); 75 | 76 | } 77 | 78 | //--------------------------------------------------------------------------------------- 79 | 80 | bool Negate::GetFilter(LPFFMPEG_FILTER fltr) 81 | { 82 | 83 | fltr->type = ftNEGATE; 84 | 85 | uint64_t mf, mt; 86 | if (!GetTimeLimitValues(mf, mt)) return false; 87 | 88 | wxString fv = m_Alpha->GetValue() ? "1" : "0", 89 | un = m_Alpha->GetValue() ? FFQS(SID_NEGATE_ALPHA) : FFQS(SID_NEGATE_IMAGE), tf, ft; 90 | 91 | GetTimeLimitFriendly(ft); 92 | GetTimeLimitFilter(tf, true); 93 | 94 | fltr->friendly = FFQSF(SID_NEGATE_USERFRIENDLY, FFQL()->FILTER_NAMES[fltr->type], un, ft); 95 | fltr->ff_filter.Printf("%snegate=%s%s%s", FILTER_VIDEO_IN, fv, tf, FILTER_VIDEO_OUT); 96 | fltr->editable.Printf("%s," + UINT64FMT + "," + UINT64FMT, BOOLSTR(m_Alpha->GetValue()), mf, mt); 97 | 98 | return true; 99 | 100 | } 101 | -------------------------------------------------------------------------------- /src/filter/Negate.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Negate.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef NEGATE_H 25 | #define NEGATE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Negate : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Negate(wxWindow* parent); 35 | virtual ~Negate(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxCheckBox *m_Alpha; 44 | 45 | }; 46 | 47 | #endif // NEGATE_H 48 | -------------------------------------------------------------------------------- /src/filter/Noise.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Noise.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef NOISE_H 25 | #define NOISE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | #define COMPONENT_COUNT 5 30 | 31 | typedef struct NOISE_SEED 32 | { 33 | 34 | wxTextCtrl *val; 35 | wxCheckBox *use; 36 | 37 | } NOISE_SEED; 38 | 39 | //--------------------------------------------------------------------------------------- 40 | 41 | typedef struct NOISE_STRENGTH 42 | { 43 | 44 | wxSlider *val; 45 | wxCheckBox *use; 46 | wxStaticText *show; 47 | 48 | } NOISE_STRENGTH; 49 | 50 | //--------------------------------------------------------------------------------------- 51 | 52 | typedef struct NOISE_FLAGS 53 | { 54 | 55 | wxCheckBox *a, *p, *t, *u, *use; 56 | 57 | } NOISE_FLAGS; 58 | 59 | //--------------------------------------------------------------------------------------- 60 | 61 | class Noise : public FilterBasePanel 62 | { 63 | 64 | public: 65 | 66 | Noise(wxWindow* parent); 67 | virtual ~Noise(); 68 | 69 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 70 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 71 | 72 | protected: 73 | 74 | private: 75 | 76 | NOISE_SEED m_Seed[COMPONENT_COUNT]; 77 | NOISE_STRENGTH m_Strength[COMPONENT_COUNT]; 78 | NOISE_FLAGS m_Flags[COMPONENT_COUNT]; 79 | 80 | void UpdateControls(); 81 | void OnCtrlChange(wxCommandEvent &event); 82 | 83 | 84 | }; 85 | 86 | #endif // NOISE_H 87 | -------------------------------------------------------------------------------- /src/filter/Pad.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Pad.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef PAD_H 25 | #define PAD_H 26 | 27 | #include "FilterBasePanel.h" 28 | #include 29 | 30 | class Pad : public FilterBasePanel 31 | { 32 | 33 | public: 34 | 35 | Pad(wxWindow* parent); 36 | virtual ~Pad(); 37 | 38 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 39 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 40 | 41 | protected: 42 | 43 | private: 44 | wxColourPickerCtrl *m_Color; 45 | wxRadioButton *m_UseColor, *m_UseBlur; 46 | wxFlexGridSizer *m_BlurSizer; 47 | wxSlider *m_Blur; 48 | bool m_BlurOK; 49 | 50 | void OnRadioClick(wxCommandEvent &event); 51 | void UpdateControls(); 52 | 53 | }; 54 | 55 | #endif // PAD_H 56 | -------------------------------------------------------------------------------- /src/filter/Perspective.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Perspective.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef PERSPECTIVE_H 25 | #define PERSPECTIVE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Perspective : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Perspective(wxWindow* parent); 35 | virtual ~Perspective(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxSlider *m_Left, *m_Right, *m_Top, *m_Bottom; 44 | wxCheckBox *m_InterpolCubic; 45 | 46 | }; 47 | 48 | #endif // PERSPECTIVE_H 49 | -------------------------------------------------------------------------------- /src/filter/Phaser.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Phaser.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef PHASER_H 25 | #define PHASER_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Phaser : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Phaser(wxWindow* parent); 35 | virtual ~Phaser(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxTextCtrl *m_InGain, *m_OutGain, *m_Delay, *m_Decay, *m_Speed; 45 | wxRadioButton *m_TypeTri, *m_TypeSin; 46 | 47 | }; 48 | 49 | #endif // PHASER_H 50 | -------------------------------------------------------------------------------- /src/filter/Resample.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Resample.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef RESAMPLE_H 25 | #define RESAMPLE_H 26 | 27 | #include "FilterBasePanel.h" 28 | #include 29 | 30 | class Resample : public FilterBasePanel 31 | { 32 | 33 | public: 34 | 35 | Resample(wxWindow* parent); 36 | virtual ~Resample(); 37 | 38 | virtual bool Layout(); 39 | 40 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 41 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 42 | 43 | protected: 44 | 45 | private: 46 | wxComboBox *m_Rate; 47 | wxTextCtrl *m_Async; 48 | wxChoice *m_MatrixEnc, *m_FilterType, *m_Dither; 49 | wxGrid *m_Grid; 50 | wxCheckBox *m_ForceResample, *m_LinearInterp; 51 | 52 | }; 53 | 54 | #endif // RESAMPLE_H 55 | -------------------------------------------------------------------------------- /src/filter/Rotate.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Rotate.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef ROTATE_H 25 | #define ROTATE_H 26 | 27 | #include "FilterBasePanel.h" 28 | #include 29 | 30 | class Rotate : public FilterBasePanel 31 | { 32 | 33 | public: 34 | 35 | Rotate(wxWindow* parent); 36 | virtual ~Rotate(); 37 | 38 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 39 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 40 | 41 | protected: 42 | 43 | private: 44 | wxColourPickerCtrl *m_FillColor; 45 | wxCheckBox *m_Bilinear, *m_CounterClock; 46 | wxTextCtrl *m_Angle; 47 | 48 | }; 49 | 50 | #endif // ROTATE_H 51 | -------------------------------------------------------------------------------- /src/filter/Scale.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Scale.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef SCALE_H 25 | #define SCALE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Scale : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Scale(wxWindow* parent); 35 | virtual ~Scale(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxCheckBox *m_Percent, *m_FitRect, *m_AccurateRnd, *m_FullChromaInt, *m_FullChromaInp, *m_BitExact, *m_NoValid; 45 | wxChoice *m_Algorithm, *m_Dither, *m_Interlace, *m_ClrSpaceIn, *m_ClrSpaceOut, *m_SampleRngIn, *m_SampleRngOut; 46 | 47 | void OnCheckBox(wxCommandEvent &event); 48 | 49 | }; 50 | 51 | #endif // COLOR_H 52 | -------------------------------------------------------------------------------- /src/filter/Transpose.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Transpose.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef TRANSPOSE_H 25 | #define TRANSPOSE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Transpose : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Transpose(wxWindow* parent); 35 | virtual ~Transpose(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxRadioButton *m_Clockwise, *m_CClockwise; 45 | wxCheckBox *m_Flip; 46 | 47 | }; 48 | 49 | #endif // TRANSPOSE_H 50 | -------------------------------------------------------------------------------- /src/filter/Unsharp.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Unsharp.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef UNSHARP_H 25 | #define UNSHARP_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Unsharp : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Unsharp(wxWindow* parent); 35 | virtual ~Unsharp(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxSlider *m_LumaX, *m_LumaY, *m_LumaP, *m_ChromaX, *m_ChromaY, *m_ChromaP; 45 | wxCheckBox *m_LumaLock, *m_ChromaLock, *m_PowerLock, *m_OpenCL; 46 | wxString *m_Labels; 47 | 48 | void OnCtrlChange(wxCommandEvent &event); 49 | void MakeSizeGroup(wxSizer *sizer, wxString caption, wxSlider **sX, wxSlider **sY, wxCheckBox **cL, bool power); 50 | 51 | }; 52 | 53 | #endif // UNSHARP_H 54 | -------------------------------------------------------------------------------- /src/filter/Vignette.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Vignette.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef VIGNETTE_H 25 | #define VIGNETTE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Vignette : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Vignette(wxWindow* parent); 35 | virtual ~Vignette(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxTextCtrl *m_Angle; 45 | wxCheckBox *m_Centered, *m_Forward, *m_PerFrame, *m_Dither, *m_Flicker; 46 | 47 | void OnCommand(wxCommandEvent &event); 48 | void UpdateControls(); 49 | 50 | }; 51 | 52 | #endif // VIGNETTE_H 53 | -------------------------------------------------------------------------------- /src/filter/VolumeAndTone.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: VolumeAndTone.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef VOLUMEANDTONE_H 25 | #define VOLUMEANDTONE_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class VolumeAndTone : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | VolumeAndTone(wxWindow* parent); 35 | virtual ~VolumeAndTone(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | wxSlider *m_Volume, *m_Bass, *m_Treble; 44 | wxStaticText *m_LVolume, *m_LBass, *m_LTreble; 45 | 46 | void OnSliderChange(wxCommandEvent &event); 47 | void UpdateLabels(); 48 | 49 | }; 50 | 51 | #endif // VOLUMEANDTONE_H 52 | -------------------------------------------------------------------------------- /src/filter/Watermark.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: Watermark.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef WATERMARK_H 25 | #define WATERMARK_H 26 | 27 | #include "FilterBasePanel.h" 28 | 29 | class Watermark : public FilterBasePanel 30 | { 31 | 32 | public: 33 | 34 | Watermark(wxWindow* parent); 35 | virtual ~Watermark(); 36 | 37 | virtual void SetFilter(LPFFMPEG_FILTER fltr); 38 | virtual bool GetFilter(LPFFMPEG_FILTER fltr); 39 | 40 | protected: 41 | 42 | private: 43 | 44 | wxTextCtrl *m_File; 45 | wxSlider *m_Fade; 46 | wxButton *m_Browse; 47 | 48 | void OnButtonClick(wxCommandEvent &event); 49 | 50 | }; 51 | 52 | #endif // WATERMARK_H 53 | -------------------------------------------------------------------------------- /src/resource.rc: -------------------------------------------------------------------------------- 1 | 1 24 "../res/manifest" 2 | aaaa ICON "../res/MainIcon.ico" 3 | wxSTD_FRAME ICON "../res/MainIcon.ico" 4 | #include "wx/msw/wx.rc" 5 | -------------------------------------------------------------------------------- /src/tools/FFQThumbMake.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQThumbMake.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQTHUMBMAKE_H 25 | #define FFQTHUMBMAKE_H 26 | 27 | //#include "wx_pch.h" 28 | 29 | #ifndef WX_PRECOMP 30 | //(*HeadersPCH(FFQThumbMake) 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | //*) 38 | #endif 39 | //(*Headers(FFQThumbMake) 40 | #include "FFQThumbPanel.h" 41 | //*) 42 | 43 | #include "../utils/FFQToolJobs.h" 44 | 45 | class FFQThumbMake: public wxDialog 46 | { 47 | public: 48 | 49 | FFQThumbMake(wxWindow* parent); 50 | virtual ~FFQThumbMake(); 51 | bool Execute(LPFFQ_THUMB_JOB job); 52 | //bool Execute(THUMBS_AND_TILES &tnt, wxString &forFile, bool &saveLog); 53 | 54 | //(*Declarations(FFQThumbMake) 55 | FFQThumbPanel* ThumbPanel; 56 | wxButton* BrowseButton; 57 | wxButton* CancelButton; 58 | wxButton* MakeButton; 59 | wxCheckBox* SaveLog; 60 | wxFileDialog* FileDlg; 61 | wxTextCtrl* InFile; 62 | //*) 63 | 64 | protected: 65 | 66 | //(*Identifiers(FFQThumbMake) 67 | static const long ID_INFILE; 68 | static const long ID_BROWSEBUTTON; 69 | static const long ID_ThumbPanel; 70 | static const long ID_SAVELOG; 71 | static const long ID_MAKEBUTTON; 72 | static const long ID_CANCELBUTTON; 73 | //*) 74 | 75 | private: 76 | 77 | //LPTHUMBS_AND_TILES m_EditPtr; 78 | LPFFQ_THUMB_JOB m_EditJob; 79 | bool m_Reset; 80 | 81 | //(*Handlers(FFQThumbMake) 82 | void OnAction(wxCommandEvent& event); 83 | //*) 84 | 85 | DECLARE_EVENT_TABLE() 86 | 87 | }; 88 | 89 | #endif // FFQTHUMBMAKE_H 90 | -------------------------------------------------------------------------------- /src/utils/FFQBuildCmd.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQBuildCmd.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQBUILDCMD_H 25 | #define FFQBUILDCMD_H 26 | 27 | #include 28 | #include "FFQJob.h" 29 | //#include "FFQThumbs.h" 30 | 31 | //Constants used for building command lines 32 | extern const wxString CODEC_TYPE_VIDEO; 33 | extern const wxString CODEC_TYPE_AUDIO; 34 | extern const wxString CODEC_TYPE_SUBTITLE; 35 | extern const wxString CODEC_TYPE_DATA; 36 | extern const wxString CODEC_TYPE_ATTACHMENT; 37 | extern const wxString CODEC_COPY; 38 | extern const wxString CODEC_SUBS_BURNIN; 39 | 40 | //Encoder presets 41 | extern const unsigned int ENCODER_PRESET_COUNT; 42 | extern const wxString ENCODER_PRESETS[]; 43 | 44 | //Video tuning 45 | extern const unsigned int ENCODER_TUNINGS_COUNT; 46 | extern const wxString ENCODER_TUNINGS[]; 47 | 48 | //Disposition 49 | extern const unsigned int DISPOSITION_COUNT; 50 | extern const wxString DISPOSITIONS[]; 51 | 52 | //Used to flag if previewing a command is safe 53 | extern bool IsPreviewSafe; 54 | 55 | //Function interfaces 56 | void CommandLineReplace(wxString &cmd, const wxString old_str, const wxString new_str); 57 | //int IndexOfStreamByType(wxString stream_map, wxString codec_type, int file_id, int stream_id); 58 | wxString BuildCommandLine(LPFFQ_JOB job, long &encoding_pass, bool for_preview = false, bool audio_filters_complex = false); 59 | void CleanupFinishedJob(LPFFQ_JOB job); 60 | wxString EscapeFilterString(wxString s, bool un_escape = false); 61 | wxString FormatFileName(wxString fn); 62 | //bool FormatCuts(FFQ_CUTS &cuts, wxString &stream_tag, bool video, TIME_VALUE duration, int &filter_id); 63 | wxString FormatCuts(wxArrayPtrVoid &streams, int &filter_id, wxArrayInt *unique_files_only = 0); 64 | bool FormatFilter(wxString &filter, wxString &vid_in, wxString &aud_in, wxString &sub_in, wxString &req_in, int &filter_id); 65 | bool FormatStreamRate(wxString &rate, bool video, wxString stream_tag = wxEmptyString); 66 | 67 | 68 | #endif // FFQBUILDCMD_H 69 | -------------------------------------------------------------------------------- /src/utils/FFQCodecInfo.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQCodecInfo.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQCODECINFO_H 25 | #define FFQCODECINFO_H 26 | 27 | #include 28 | 29 | //Minimum and maximum quantizer values 30 | extern const int QUANTIZER_BEST_QUALITY; 31 | extern const int QUANTIZER_WORST_QUALITY; 32 | 33 | //Default codec constants 34 | extern const wxString DEFAULT_VIDEO_CODEC_INFO; 35 | extern const wxString DEFAULT_AUDIO_CODEC_INFO; 36 | 37 | //The CODEC_INFo structure 38 | typedef struct CODEC_INFO 39 | { 40 | 41 | bool friendly, qscale_float, crf_float; 42 | wxString codec; 43 | float min_qscale, max_qscale, min_crf, max_crf; 44 | CODEC_INFO *next; 45 | 46 | CODEC_INFO(); 47 | CODEC_INFO(wxString &from); 48 | ~CODEC_INFO(); 49 | 50 | void Append(wxString &from); 51 | void CopyTo(CODEC_INFO &dst); 52 | CODEC_INFO* Find(const wxString find_codec); 53 | bool GetConstRate(int pct, float *result); 54 | wxString GetConstRateStr(int pct); 55 | bool GetQScale(int pct, float *result); 56 | wxString GetQScaleStr(int pct); 57 | bool IsDefault(wxString *packed = NULL); 58 | void Parse(wxString &from); 59 | void Reset(); 60 | wxString ToString(); 61 | 62 | } CODEC_INFO, *LPCODEC_INFO; 63 | 64 | //--------------------------------------------------------------------------------------- 65 | 66 | //Helper functions 67 | LPCODEC_INFO DeleteCodecInfo(LPCODEC_INFO root, LPCODEC_INFO del); 68 | LPCODEC_INFO MakeDefaultCodecInfo(LPCODEC_INFO root = nullptr); 69 | 70 | //--------------------------------------------------------------------------------------- 71 | 72 | #endif // FFQCODECINFO_H 73 | -------------------------------------------------------------------------------- /src/utils/FFQCompress.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQCompress.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQCOMPRESS_H 25 | #define FFQCOMPRESS_H 26 | 27 | #include 28 | #include 29 | #include "FFQConst.h" 30 | 31 | void CompressAndBase64(const void* src_buf, const size_t src_len, wxString &base64, size_t wrap_len = 0); 32 | void CompressAndBase64(wxString &src_and_dst, size_t wrap_len = 0); 33 | uint8_t* CompressString(wxString &str, uint32_t *res_len, uint32_t prefix_gap = 0); 34 | bool DecompressFromBase64(wxString &base64, void* dest_buf, size_t* dest_len); 35 | bool DecompressFromBase64(wxString &base64); 36 | wxString DecompressString(uint8_t* buf, uint32_t len, uint32_t prefix_gap = 0); 37 | 38 | 39 | #endif // FFQCOMPRESS_H 40 | -------------------------------------------------------------------------------- /src/utils/FFQConst.cpp: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQConst.cpp * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #include "FFQConst.h" 25 | 26 | /*bool STRBOOLDEF(wxString sval, bool def) 27 | { 28 | return sval.Len() == 0 ? def : STRBOOL(sval); 29 | }*/ 30 | 31 | //--------------------------------------------------------------------------------------- 32 | 33 | uint32_t COLOR_BLACK = 0x01000000; 34 | uint32_t COLOR_BLUE = 0x02000000; 35 | uint32_t COLOR_GRAY = 0x03000000; 36 | uint32_t COLOR_GREEN = 0x04000000; 37 | uint32_t COLOR_ORANGE = 0x05000000; 38 | uint32_t COLOR_RED = 0x06000000; 39 | 40 | uint32_t DEFAULT_COLORS[COLOR_COUNT] = { 0x000000, 0xff0000, 0x777777, 0x007700, 0x0066ff, 0x0000ff }; 41 | uint32_t DEFAULT_COLORS_DARK[COLOR_COUNT] = { 0xffffff, 0xff5555, 0x888888, 0x337733, 0x0066ff, 0x3333ff }; 42 | 43 | //--------------------------------------------------------------------------------------- 44 | 45 | -------------------------------------------------------------------------------- /src/utils/FFQDebugUtils.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQDebugUtils.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQDEBUGUTILS_H 25 | #define FFQDEBUGUTILS_H 26 | 27 | #include 28 | 29 | //Convert files and buffera to arrays - only used in the debug version 30 | wxString BufToArray(unsigned char *buf, int len, wxString array_name, unsigned int indent = 8); 31 | wxString FileToArray(wxString filename, wxString array_name, unsigned int indent = 8); 32 | 33 | //Make binary resources ./bin_res.* 34 | bool MakeBinaryResources(); 35 | 36 | //Create Makefile 37 | wxString CreateMakefiles(wxString cbp_path = wxEmptyString); 38 | 39 | #endif // FFQDEBUGUTILS_H 40 | -------------------------------------------------------------------------------- /src/utils/FFQHash.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQHash.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQHASH_H 25 | #define FFQHASH_H 26 | 27 | #include 28 | #include "FFQConst.h" 29 | 30 | //SHA1 context 31 | typedef struct SHA1_Context { 32 | 33 | uint32_t hash[5], hi, lo, index; 34 | char buffer[64]; 35 | 36 | } SHA1_Context; 37 | 38 | //Self test to ensure correct byte alignment 39 | bool SHA1_SelfTest(); 40 | 41 | //Initialize a context 42 | void SHA1_Init(SHA1_Context* ctxt); 43 | 44 | //Append a buffer of data to the context 45 | void SHA1_Append(SHA1_Context* ctxt, void* buf, uint32_t len); 46 | 47 | //Flush the context to finalize hashing 48 | void SHA1_Finish(SHA1_Context* ctxt); 49 | 50 | //Hash a file 51 | bool SHA1_File(wxString filename, SHA1_Context* sha1); 52 | 53 | //Hash a buffer 54 | void SHA1_Buffer(SHA1_Context* sha1, void* buf, uint32_t len); 55 | 56 | //Convert a context to a hex string 57 | void SHA1_ToHex(SHA1_Context* sha1, wxString &hex); 58 | 59 | #endif //FFQHASH_H 60 | -------------------------------------------------------------------------------- /src/utils/FFQJob.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQJob.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQJOB_H 25 | #define FFQJOB_H 26 | 27 | #include 28 | #include "FFQQueueItem.h" 29 | #include "FFQTimeValue.h" 30 | #include "FFQUniqueID.h" 31 | #include "FFQPreset.h" 32 | 33 | //Constants to define parts of the job's command line 34 | extern const wxString CMD_INPUTS; 35 | extern const wxString CMD_OUTPUT; 36 | extern const wxString CMD_PRESET; 37 | extern const wxString CMD_DEFAULT; 38 | 39 | //The FFQ_JOB structure 40 | typedef struct FFQ_JOB : FFQ_QUEUE_ITEM 41 | { 42 | 43 | wxString out, //Output file 44 | stream_map, //Stream mapping for input files 45 | cmd_line, //The job's command line 46 | twopass_log; //Used to define a temporary per-job two-pass log file 47 | 48 | TIME_VALUE out_len; //The time limit of the output file 49 | UNIQUE_ID preset_id; //The id of the preset to use for building the ffmpeg command 50 | void* preset_ptr; //A pointer to a preset to use for building the ffmpeg command (usually used by tools) 51 | long skip_in_files, //Amount of input files that must be skipped (see BuildCommandLine for details) 52 | encoding_pass; //Current encoding pass 53 | 54 | FFQ_JOB(); 55 | FFQ_JOB(const FFQ_JOB ©_from); 56 | FFQ_JOB(wxString &from); 57 | 58 | virtual void Cleanup(); 59 | TIME_VALUE Duration(); 60 | virtual QUEUE_ITEM_TYPE GetItemType() { return qtJOB; }; 61 | virtual bool GetLogFileName(wxString &name); 62 | LPFFQ_PRESET GetPreset(); 63 | virtual wxString GetPreviewCommand(); 64 | virtual wxString ToString(); 65 | virtual bool UsesPreset(wxString pst_id); 66 | 67 | protected: 68 | 69 | virtual wxString GetCommandAtIndex(int index, bool for_encode); 70 | 71 | private: 72 | 73 | wxString m_CmdList; //Used for thumb and tile commands 74 | 75 | void Reset(bool load); 76 | 77 | } FFQ_JOB, *LPFFQ_JOB; 78 | 79 | #endif // FFQJOB_H 80 | -------------------------------------------------------------------------------- /src/utils/FFQNvpList.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQNvpList.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQNVPLIST_H 25 | #define FFQNVPLIST_H 26 | 27 | #include 28 | 29 | //Structure to hold a name value pair 30 | typedef struct FFQ_NVP_LIST 31 | { 32 | 33 | wxString name, value; //Name and value of the item 34 | 35 | FFQ_NVP_LIST(wxString n, wxString v); 36 | ~FFQ_NVP_LIST(); 37 | 38 | FFQ_NVP_LIST* Append(wxString n, wxString v); 39 | FFQ_NVP_LIST* Find(wxString s, bool find_value = false, FFQ_NVP_LIST** parent = NULL); 40 | unsigned int GetCount(); 41 | FFQ_NVP_LIST* GetNext(); 42 | void SetNext(FFQ_NVP_LIST* next); 43 | 44 | private: 45 | 46 | FFQ_NVP_LIST* lpNext; 47 | 48 | 49 | } FFQ_NVP_LIST, *LPFFQ_NVP_LIST; 50 | 51 | //Method to create a NVP_LIST 52 | LPFFQ_NVP_LIST NVPListFromLines(wxString &lines, wxString separator = "=", bool allow_duplicates = true); 53 | 54 | //Method to make a string from a NVP_LIST 55 | wxString NVPListToLines(LPFFQ_NVP_LIST first, wxString separator = "=", bool pad = false); 56 | 57 | //Method to append a NVP 58 | LPFFQ_NVP_LIST NVPListAppend(LPFFQ_NVP_LIST &root, wxString n, wxString v, bool allow_duplicates = true); 59 | 60 | //Method to clone a NVP 61 | LPFFQ_NVP_LIST NVPListClone(LPFFQ_NVP_LIST root); 62 | 63 | //Method to find parent of a NVP 64 | LPFFQ_NVP_LIST NVPListFindParent(LPFFQ_NVP_LIST root, LPFFQ_NVP_LIST child); 65 | 66 | //Method to remove a NVP 67 | bool NVPListRemove(LPFFQ_NVP_LIST &root, wxString n); 68 | 69 | 70 | #endif // FFQNVPLIST_H 71 | -------------------------------------------------------------------------------- /src/utils/FFQParsing.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQParsing.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQPARSING_H 25 | #define FFQPARSING_H 26 | 27 | class FFQParser 28 | { 29 | public: 30 | FFQParser(const wxString &from_string) : m_Last(""), m_Str(from_string), m_Index(0), m_Pos(0) {}; 31 | const wxString& all(); 32 | bool done(); 33 | wxString first(); 34 | bool has_more(); 35 | size_t index(); 36 | wxString last(); 37 | virtual wxString next() = 0; 38 | size_t pos(); 39 | wxString rest(); 40 | 41 | protected: 42 | wxString m_Last; 43 | const wxString &m_Str; 44 | //wxString m_Res; 45 | size_t m_Index, m_Pos; 46 | }; 47 | 48 | //--------------------------------------------------------------------------------------- 49 | //--------------------------------------------------------------------------------------- 50 | //--------------------------------------------------------------------------------------- 51 | 52 | class FFQLineParser : public FFQParser 53 | { 54 | 55 | public: 56 | FFQLineParser(const wxString &from_string); 57 | wxString next(); 58 | 59 | }; 60 | 61 | //--------------------------------------------------------------------------------------- 62 | //--------------------------------------------------------------------------------------- 63 | //--------------------------------------------------------------------------------------- 64 | 65 | class FFQTokenParser : public FFQParser 66 | { 67 | 68 | public: 69 | FFQTokenParser(const wxString &from_string, const wxString separator); 70 | wxString next(); 71 | 72 | protected: 73 | const wxString m_Sep; 74 | 75 | }; 76 | 77 | /*class FFQTokenParser 78 | { 79 | 80 | public: 81 | FFQTokenParser(const wxString &from_string); 82 | wxString GetFirstToken(); 83 | wxString GetNextToken(); 84 | bool HasMoreTokens(); 85 | 86 | protected: 87 | 88 | private: 89 | const wxString &m_Str; 90 | size_t m_Pos; 91 | 92 | };*/ 93 | 94 | #endif // FFQPARSING_H 95 | -------------------------------------------------------------------------------- /src/utils/FFQPixFmt.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQPixFmt.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQPIXFMT_H 25 | #define FFQPIXFMT_H 26 | 27 | #include 28 | 29 | //Structure to hold a pixel format 30 | typedef struct PIXEL_FORMAT 31 | { 32 | 33 | int comp; //Components 34 | int bits; //Bits per pixel 35 | bool in, out; //Input and/or output format 36 | bool hwaccl; //Hardware accelerated 37 | wxString name; //The name of the pixel format 38 | 39 | PIXEL_FORMAT(wxString &pix_fmt); 40 | ~PIXEL_FORMAT(); 41 | 42 | PIXEL_FORMAT* Find(wxString fmt); 43 | unsigned int GetCount(); 44 | PIXEL_FORMAT* GetNext(); 45 | bool Is10BitQuantizer(); 46 | wxString ToString(); 47 | 48 | private: 49 | 50 | PIXEL_FORMAT* lpNext; 51 | 52 | 53 | } PIXEL_FORMAT, *LPPIXEL_FORMAT; 54 | 55 | //Helper function used to make a list of PIXEL_FORMAT 56 | LPPIXEL_FORMAT ParsePixelFormats(wxString pix_fmt); 57 | 58 | #endif // FFQPIXFMT_H 59 | -------------------------------------------------------------------------------- /src/utils/FFQStaticJob.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQStaticJob.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQSTATICJOB_H 25 | #define FFQSTATICJOB_H 26 | 27 | #include 28 | #include "FFQQueueItem.h" 29 | 30 | //The FFQ_JOB structure 31 | typedef struct FFQ_STATIC_JOB : FFQ_QUEUE_ITEM 32 | { 33 | 34 | wxArrayString commands, del_paths; 35 | wxString save_log_for; 36 | 37 | FFQ_STATIC_JOB(); 38 | FFQ_STATIC_JOB(const FFQ_STATIC_JOB ©_from); 39 | FFQ_STATIC_JOB(wxString from); 40 | 41 | virtual QUEUE_ITEM_TYPE GetItemType() { return qtSTATIC_JOB; }; 42 | virtual bool GetLogFileName(wxString &name); 43 | virtual wxString ToString(); 44 | 45 | protected: 46 | 47 | virtual wxString GetCommandAtIndex(int index, bool for_encode); 48 | 49 | private: 50 | 51 | void Reset(); 52 | 53 | } FFQ_STATIC_JOB, *LPFFQ_STATIC_JOB; 54 | 55 | #endif // FFQSTATICJOB_H 56 | -------------------------------------------------------------------------------- /src/utils/FFQStreamMapping.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQStreamMapping.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQSTREAMMAPPING_H 25 | #define FFQSTREAMMAPPING_H 26 | 27 | #include 28 | 29 | //Char used to separate multiple stream mappings 30 | const wxUniChar STREAM_MAPPING_SEPERATOR = '|'; 31 | 32 | //The STREAM_MAPPINT structure 33 | typedef struct STREAM_MAPPING 34 | { 35 | 36 | bool checked; //True if the stream is "checked" in the job editor and thus must be included in the output file 37 | int file_id, //The index of the file used with -map (starting from 1, must be decremented when used in the ffmpeg command) 38 | stream_id; //The index of the stream in the file (starting from 0 - unlike file_id) 39 | wxString codec_type, //The codec type of the stream (video, audio or subtitle) 40 | preset_list, //A list of space-separated preset id's to be used with this stream 41 | codec_name; //The identifier (short name) of the codec used in this stream 42 | 43 | STREAM_MAPPING(); 44 | STREAM_MAPPING(bool checked, int file_id, int stream_id, wxString codec_type, wxString preset_list, wxString codec_name); 45 | STREAM_MAPPING(wxString &from); 46 | 47 | bool Parse(wxString &from); 48 | wxString ToString(wxString long_codec_name = ""); 49 | 50 | } STREAM_MAPPING, *LPSTREAM_MAPPING; 51 | 52 | #endif // FFQSTREAMMAPPING_H 53 | -------------------------------------------------------------------------------- /src/utils/FFQTaskBar.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQTaskBar.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQTASKBAR_H 25 | #define FFQTASKBAR_H 26 | 27 | #include 28 | #include 29 | 30 | //#ifdef __WINDOWS__ 31 | //#include 32 | //#include 33 | //#include 34 | //#endif // __WINDOWS__ 35 | 36 | typedef enum TASKBAR_STATE 37 | { 38 | tbsNORMAL = 0x00, 39 | tbsMARQUEE = 0x01, 40 | tbsPROGRESS = 0x02, 41 | tbsERRORED = 0x04, 42 | //tbsMARQUEE_ERRORED = 0x05, 43 | tbsPAUSED = 0x08, 44 | //tbsMARQUEE_PAUSED = 0x09, 45 | } TASKBAR_STATE; 46 | 47 | wxString GetProgramFolder(bool x86); 48 | 49 | class FFQTaskBar 50 | { 51 | 52 | public: 53 | 54 | FFQTaskBar(); 55 | ~FFQTaskBar(); 56 | 57 | void SetWindowHandle(WXWidget handle); 58 | TASKBAR_STATE GetTaskBarState(); 59 | void SetTaskBarState(TASKBAR_STATE state); 60 | void SetTaskBarProgress(unsigned char percent_done); 61 | void SetTaskBarProgress(unsigned int position, unsigned int total); 62 | 63 | protected: 64 | 65 | private: 66 | 67 | WXWidget m_WndHandle; 68 | TASKBAR_STATE m_State; 69 | 70 | #ifdef __WINDOWS__ 71 | bool m_CoUninit; 72 | void* m_TaskbarList; 73 | #endif // __WINDOWS__ 74 | 75 | }; 76 | 77 | #endif // FFQTASKBAR_H 78 | -------------------------------------------------------------------------------- /src/utils/FFQThumbs.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQThumbs.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQTHUMBS_H 25 | #define FFQTHUMBS_H 26 | 27 | #include 28 | #include "FFQTimeValue.h" 29 | 30 | //Values used with THUMBS_AND_TILES::img_dest 31 | #define THUMB_IMG_DEST_NEW_UNIQUE_SUBFOLDER 0 32 | #define THUMB_IMG_DEST_SAME_AS_SOURCE 1 33 | #define THUMB_IMG_DEST_THUMBS_SUBFOLDER 2 34 | 35 | //Values used with THUMBS_AND_TILES::freq_type 36 | #define THUMB_FREQ_TYPE_FRAMES 0 37 | #define THUMB_FREQ_TYPE_SECOND 1 38 | #define THUMB_FREQ_TYPE_MINUTE 2 39 | 40 | //The THUMBS_AND_TILES structure 41 | typedef struct THUMBS_AND_TILES 42 | { 43 | 44 | bool make_thumbs, //True if thumbs should be made 45 | make_tiles, //True if tiles / mosaics should be made 46 | every_scene; //True if each image is made on a scene change (else a fixed frequency is used) 47 | wxString img_format; //The image format to use for images 48 | unsigned int img_dest, //The destination type for images (declared with THUMB_IMG_DEST_* above) 49 | freq_type, //The type of fixed frequency (declared with THUMB_FREQ_TYPE_* above) 50 | thumb_width, //Width of thumbs and individual tiles in mosaics 51 | thumb_count, //Number of thumbs to create 52 | tile_rows, //Number of thumb rows in a mosaic 53 | tile_cols, //Number of thumb columns in a mosaic 54 | tile_count; //Number of mosaics (which is tile_coun * tile_rows * tile_cols individual thumbs) 55 | double thumb_freq; //The frequency of thumbs (in freq_type units) 56 | TIME_VALUE start_time; //The amount of time that should be skipped from the start of source (to skip intro's) 57 | 58 | THUMBS_AND_TILES(); 59 | THUMBS_AND_TILES(wxString from); 60 | 61 | void Reset(); 62 | wxString ToString(); 63 | 64 | } THUMBS_AND_TILES, *LPTHUMBS_AND_TILES; 65 | 66 | 67 | //Function to build command lines for making thumbs and tiles 68 | wxString BuildThumbsAndTilesCommand(THUMBS_AND_TILES &tnt, wxString &for_file, TIME_VALUE &for_file_duration, bool make_dirs); 69 | 70 | #endif // FFQTHUMBS_H 71 | -------------------------------------------------------------------------------- /src/utils/FFQTimeValue.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQTimeValue.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQTIMEVALUE_H 25 | #define FFQTIMEVALUE_H 26 | 27 | #include 28 | #include "FFQConst.h" 29 | 30 | //Used to declare an invalid time component 31 | const unsigned short BAD_TIME_COMP = 0xFFFF; 32 | 33 | //The TIME_VALUE structure 34 | typedef struct TIME_VALUE 35 | { 36 | 37 | unsigned short hours, minutes, seconds, milliseconds; //Obvious! 38 | 39 | //Constructors 40 | TIME_VALUE(); 41 | TIME_VALUE(unsigned short hh, unsigned short mm, unsigned short ss, unsigned short ms); 42 | TIME_VALUE(wxString time_value); 43 | TIME_VALUE(uint64_t time_value); 44 | 45 | //Validators 46 | bool IsUndefined(); 47 | bool IsValid(); 48 | 49 | //Setters 50 | void SetMilliseconds(uint64_t millis); 51 | 52 | //Converters 53 | double ToDouble(); 54 | wxString ToReadableString(); 55 | wxString ToShortString(); 56 | wxString ToString(bool ZeroPadding = true, bool AppendMillis = true, wxUniChar MillisSep = '.'); 57 | uint64_t ToMilliseconds(); 58 | 59 | //Handy operators 60 | const bool operator==(TIME_VALUE &tv) { return ToMilliseconds() == tv.ToMilliseconds(); } 61 | const bool operator==(const uint64_t tv) { return ToMilliseconds() == tv; } 62 | const bool operator!=(TIME_VALUE &tv) { return ToMilliseconds() != tv.ToMilliseconds(); } 63 | const bool operator!=(const uint64_t tv) { return ToMilliseconds() != tv; } 64 | 65 | } TIME_VALUE, *LPTIME_VALUE; 66 | 67 | #endif // FFQTIMEVALUE_H 68 | -------------------------------------------------------------------------------- /src/utils/FFQUniqueID.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: FFQUniqueID.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef FFQUNIQUEID_H 25 | #define FFQUNIQUEID_H 26 | 27 | #include 28 | #include 29 | #include 30 | 31 | const long UNIQUE_ID_NULL = 0; 32 | 33 | typedef struct UNIQUE_ID 34 | { 35 | 36 | //The unique values 37 | wxLongLong id[2]; 38 | 39 | //Constructs a new unique id 40 | UNIQUE_ID() { New(); } 41 | 42 | //Extract id from a string 43 | UNIQUE_ID(wxString uid) { wxBase64Decode((void*)&id, sizeof(id), uid.c_str().AsChar(), uid.Len()); } 44 | 45 | //Make new ID 46 | void New() { id[0] = wxGetLocalTimeMillis(); id[1] = wxLongLong(rand(), rand()); } 47 | 48 | //Reset to NULL 49 | void Reset() { memset(&id, 0, sizeof(id)); } 50 | 51 | //Encode id to string 52 | wxString ToString() { return wxBase64Encode((void*)&id, sizeof(id)); } 53 | 54 | 55 | //Handy operators for comparison and assignment 56 | bool operator ==(UNIQUE_ID &src) const { return (id[0] == src.id[0]) && (id[1] == src.id[1]); }; 57 | bool operator !=(UNIQUE_ID &src) const { return (id[0] != src.id[0]) || (id[1] != src.id[1]); }; 58 | bool operator ==(long src) const { return (id[0] == src) && (id[1] == src); }; 59 | bool operator !=(long src) const { return (id[0] != src) || (id[1] != src); }; 60 | void operator =(const UNIQUE_ID src) { memcpy(&id, &src.id, sizeof(id)); }; 61 | 62 | } UNIQUE_ID, *LPUNIQUE_ID; 63 | 64 | #endif // FFQUNIQUEID_H 65 | -------------------------------------------------------------------------------- /version.h: -------------------------------------------------------------------------------- 1 | #ifndef VERSION_H 2 | #define VERSION_H 3 | 4 | namespace AutoVersion{ 5 | 6 | //Date Version Types 7 | static const char DATE[] = "23"; 8 | static const char MONTH[] = "10"; 9 | static const char YEAR[] = "2025"; 10 | static const char UBUNTU_VERSION_STYLE[] = "25.10"; 11 | 12 | //Software Status 13 | static const char STATUS[] = "Alpha"; 14 | static const char STATUS_SHORT[] = "a"; 15 | 16 | //Standard Version Type 17 | static const long MAJOR = 1; 18 | static const long MINOR = 7; 19 | static const long BUILD = 70; 20 | static const long REVISION = 345; 21 | 22 | //Miscellaneous Version Types 23 | static const long BUILDS_COUNT = 1850; 24 | #define RC_FILEVERSION 1,7,70,345 25 | #define RC_FILEVERSION_STRING "1, 7, 70, 345\0" 26 | static const char FULLVERSION_STRING [] = "1.7.70.345"; 27 | 28 | //These values are to keep track of your versioning state, don't modify them. 29 | static const long BUILD_HISTORY = 0; 30 | 31 | } 32 | #endif //VERSION_H 33 | -------------------------------------------------------------------------------- /wx_pch.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | * * 3 | * Copyright (c) 2014 Torben Bruchhaus * 4 | * http://ffqueue.bruchhaus.dk/ * 5 | * File: wx_pch.h * 6 | * * 7 | * This file is part of FFQueue. * 8 | * * 9 | * FFQueue is free software: you can redistribute it and/or modify * 10 | * it under the terms of the GNU General Public License as published by * 11 | * the Free Software Foundation, either version 3 of the License, or * 12 | * (at your option) any later version. * 13 | * * 14 | * FFQueue is distributed in the hope that it will be useful, * 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 17 | * GNU General Public License for more details. * 18 | * * 19 | * You should have received a copy of the GNU General Public License * 20 | * along with FFQueue. If not, see . * 21 | * * 22 | *************************************************************************/ 23 | 24 | #ifndef WX_PCH_H_INCLUDED 25 | #define WX_PCH_H_INCLUDED 26 | 27 | // basic wxWidgets headers 28 | #include 29 | 30 | #ifdef __BORLANDC__ 31 | #pragma hdrstop 32 | #endif 33 | 34 | #ifndef WX_PRECOMP 35 | #include 36 | #endif 37 | 38 | #ifdef WX_PRECOMP 39 | // put here all your rarely-changing header files 40 | #endif // WX_PRECOMP 41 | 42 | #endif // WX_PCH_H_INCLUDED 43 | -------------------------------------------------------------------------------- /wxsmith/FFQFilterEdit.wxs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Video filter 5 | 0 6 | 7 | 1 8 | 4 9 | 10 | 11 | 12 | wxVERTICAL 13 | 14 | wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 15 | 5 16 | 17 | 18 | 19 | 20 | 21 | wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 22 | 5 23 | 24 | 25 | 26 | wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 27 | 5 28 | 29 | 30 | 31 | 32 | 33 | 1 34 | OKButton->SetLabel(FFQS(SID__COMMON__OK)); 35 | 36 | 37 | wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 38 | 5 39 | 40 | 41 | 42 | 43 | 44 | CancelButton->SetLabel(FFQS(SID__COMMON__CANCEL)); FilterContainer->GetStaticBox()->SetLabel(FFQS(SID__FILTER__DEFINE__PROPERTIES)); 45 | 46 | 47 | wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 48 | 5 49 | 50 | 51 | 52 | wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 53 | 5 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /wxsmith/FFQPresetPanel.wxs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 6 | 2 7 | 1 8 | 0 9 | 0 10 | 11 | 12 | wxALL|wxEXPAND 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 21 | 3 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /wxsmith/FFQShowText.wxs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 6 | 7 | 8 | 9 | 450,550 10 | 11 | 12 | wxEXPAND 13 | 5 14 | 15 | 16 | 17 | 18 | 19 | --------------------------------------------------------------------------------