├── .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
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 |
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 |
--------------------------------------------------------------------------------