Commit graph

893 commits

Author SHA1 Message Date
arch1t3cht
2ee6f6e904 Fix overscan mask being half as thick as it should be
The percent values used for the overscan masks follow the BBC's
guidelines, as in
https://en.wikipedia.org/wiki/Overscan#Overscan_amounts .
However, these measure the per-side width as opposed to the total
percentage of width/height being cut off. Thus, they should not be
divided by two when drawing the mask.
2022-11-02 21:57:57 +01:00
arch1t3cht
04ccc15fd4 Fix overscan mask with DPI scaling 2022-11-02 21:57:57 +01:00
arch1t3cht
3583e57ddc vapoursynth: use exact fraction for frame rate 2022-11-02 02:18:52 +01:00
arch1t3cht
962295cf1e vapoursynth: Fix offset in audio block's first frame 2022-11-02 02:18:52 +01:00
arch1t3cht
a5aa4eca29 vapoursynth: Properly pass through script errors 2022-11-02 02:18:52 +01:00
arch1t3cht
2bcf0c7555 Merge branch 'video_panning_option' into feature 2022-10-11 18:55:11 +02:00
arch1t3cht
b38493ee68 video zoom: Fix crash on windows when making detached video too small 2022-10-11 18:54:55 +02:00
arch1t3cht
0e89f32cfb video zoom: Fix detached video with DPI scaling 2022-10-11 18:31:46 +02:00
arch1t3cht
17831ca0f4 video zoom: Fix visual tools with DPI scaling 2022-10-11 15:15:40 +02:00
arch1t3cht
b8b85eb580 Merge branch 'wangqr_gui' into feature 2022-10-10 01:43:27 +02:00
IbarakiKasen
049c1c08d1 Fix wxFlexGridSizer flex grow
Fix wangqr/Aegisub#143
2022-10-10 01:17:35 +02:00
wangqr
e69c4e9a86 Expand all widgets in SubsEditBox to get a consistent height 2022-10-10 01:17:35 +02:00
wangqr
53cc316e6f Expand layer SpinCtrl a little
to compensate wxMac bug with GetSizeFromText
2022-10-10 01:17:35 +02:00
wangqr
d55922d3cf Don't shrink the size of layer SpinCtrl on GTK3 2022-10-10 01:17:35 +02:00
wangqr
7fe4382d38 Remove hardcoded height of the slider
Before this the slider is only partially displayed
2022-10-10 01:17:35 +02:00
wangqr
ed15252d69 Add workaround for wrong initial wxTextCtrl size in about dialog
See https://trac.wxwidgets.org/ticket/18507

Fix wangqr/Aegisub#19
2022-10-10 01:17:35 +02:00
wangqr
af7cbb7730 Set the height of sub box to the same as secondary_editor
The secondary_editor is a wxTextCtrl, whose height is calculated from 2 rows of text. Using this height gives better consistency on screens with different DPIs, instead of using hard coded value like 50px
2022-10-10 01:17:35 +02:00
wangqr
0e0e04c943 Set the height of sub box back to 50px
Revert the change made in ad15c53fb1.
As a temporary solution for wangqr/Aegisub#4.
2022-10-10 01:17:35 +02:00
wangqr
6cb1a49943 Fix High DPI issue on GTK
* Use icon size in the config
2022-10-10 01:17:35 +02:00
wangqr
5f3757525a Add DPI awareness
* Removed most hard coded wxSize
* Sub edit box now have DPI aware icons

Co-authored-by: sepro <4618135+seproDev@users.noreply.github.com>
2022-10-10 01:17:34 +02:00
sepro
e2ef1eb77f windows: enable DPI awareness in manifest 2022-10-10 01:17:34 +02:00
arch1t3cht
cc9d13d21a fix 2022-10-10 01:17:34 +02:00
sepro
1469f1499b meson: apply custom manifest on windows
Co-authored-by: arch1t3cht <arch1t3cht@gmail.com>
2022-10-09 01:30:39 +02:00
arch1t3cht
ccc5f44a5f Merge branches 'info', 'bugfixes', 'workarounds', 'fixes', 'folding', 'bestsource', 'avisynth' and 'vapoursynth' into feature 2022-09-27 23:37:18 +02:00
arch1t3cht
40a9344d44 vapoursynth: Check if file exists before creating provider
Since FileNotFound exceptions don't abort the provider search, opening
an invalid path would show errors such as "vapoursynth not found" when
VapourSynth wasn't installed, even if VapourSynth wasn't selected as the
default video provider.
2022-09-27 23:17:54 +02:00
arch1t3cht
febce3ecdc vapoursynth: Add configurable default script
This default script will be executed to load any file whose file name
extension is not .py or .vpy .

The gui code for setting the default script is still a bit wonky as it
doesn't fit the rest of the preferences pages nicely, but it works for
now.
2022-09-27 23:14:30 +02:00
arch1t3cht
fe77a1a0b8 avisynth: Check if file exists before creating provider
Since FileNotFound exceptions don't abort the provider search, opening
an invalid path would show errors such as "avisynth not found" when
Avisynth wasn't installed, even if Avisynth wasn't selected as the video
provider.
2022-09-27 22:59:01 +02:00
arch1t3cht
38efde92e3 folding: Fix selections jumping around 2022-09-14 11:31:50 +02:00
arch1t3cht
a394aefd1a Fix crash when cancelling automation scripts
When cancelling an automation macro from the progress dialog, the dialog
throws a UserCancelException. If the macro still runs to the end
afterwards (instead of calling aegisub.cancel or causing an exception),
the two return values are left on the stack. This causes assertion errors
due to check_stack when those are enabled.
2022-09-13 22:41:18 +02:00
arch1t3cht
7ea1d650a9 bestsource: Fixes to fps and colorspace conversion
Some of these got lost in the process before.
For now, default to 709 if the colorspace is unkown. More detailed
colorspace guessing can be added in the future.
2022-08-29 11:11:05 +02:00
arch1t3cht
3fedc88641 Include strings.rc as resource file on Windows
This was included here:
6f546951b4/build/Aegisub/Aegisub.vcxproj.filters (L1094)
in the MSVC build.
2022-08-28 01:38:41 +02:00
arch1t3cht
bb16cdf7fe Merge branches 'folding', 'misc' and 'bestsource' into feature 2022-08-23 20:16:55 +02:00
arch1t3cht
9ea7808a30 bestsource: Mark video provider as slow
Looks like this wasn't clear enough, so let's make it clear to users
that BestVideoSource should only be used if absolutely necessary.
2022-08-23 20:13:45 +02:00
arch1t3cht
6b43e643cb Merge branch 'wangqr_time_video' into feature 2022-08-23 19:59:24 +02:00
arch1t3cht
c7c874acc4 Add commands to reload audio or video
This is mostly useful for reloading Avisyth or VapourSynth scripts.
2022-08-23 19:53:40 +02:00
arch1t3cht
b2fbc84335 AlignToVideo: Reexport the new icon files
Some metadata of these files was triggering the assertion errors in #6 .
Reexporting the icons using ffmpeg fixed this.

Fixes #6 .
2022-08-23 19:30:41 +02:00
arch1t3cht
c8d4df1355 Add option to sort subtitles by text 2022-08-23 16:11:23 +02:00
arch1t3cht
9b920c7892 folding: Always write fold data to file 2022-08-23 15:55:26 +02:00
arch1t3cht
2e78b9cfde Merge branch 'video_panning_option' into feature 2022-08-23 04:51:41 +02:00
arch1t3cht
98d476102e video zoom: Fix aspect ratio forcing
Do this by partially reverting the changes to UpdateSize in favor of
just multiplying by videoZoomValue *after* setting all the window sizes.
2022-08-23 04:48:33 +02:00
arch1t3cht
1dbd3b3cc7 Merge branches 'fixes' and 'ffmpeg_build' into feature 2022-08-22 02:26:03 +02:00
arch1t3cht
5a0bfdd775 Remove unnecessary flags in SelectedChoices dialog
These alignment flags would cause an assertion error
"Horizontal alignment flags are ignored in horizontal sizers"
when opening the dialog (mainly when importing styles from another
script).
As the assertion error says, the flags are ignored anyway, so they're
safe to remove.
2022-08-21 02:31:33 +02:00
arch1t3cht
7f7f5c8385 Merge branch 'misc' into feature 2022-08-19 21:18:48 +02:00
arch1t3cht
732c5c7654 Copy subitles: Fix wxBitmap usage
UseAlpha turned out to be unnecessary and doesn't even exist in some
wxWidgets ports.
2022-08-19 21:17:29 +02:00
arch1t3cht
3b8cc6deb1 Merge branches 'misc', 'xa2-ds' and 'info' into feature 2022-08-19 02:31:59 +02:00
arch1t3cht
aadf6b32b9 Add option to copy or save subtitles with transparent background 2022-08-19 01:46:19 +02:00
arch1t3cht
819d90e9b0 Stereo playback on Linux audio players
After the audio provider rework, adjust the audio players to not
use the int16 mono downmixed audio unless necessary. Furthermore,
the pulseaudio-based player now controls the volume directly through
pulseaudio instead of by modifying the buffer. This also reduces latency
when changing the volume.

The entire set of GetAudio functions is quite messy now. After wangqr's
audio rework, it was split into GetAudio and GetInt16MonoAudio
functions, but now volume scaling is also necessary. Really, this should
go back to a type constructor based system with audio players being
allowed to choose what properties out of mono / 16 bytes / int samples /
volume they need.
2022-08-18 22:48:40 +02:00
arch1t3cht
8169f0c6dc Merge branch 'xa2-ds' into feature 2022-08-18 18:10:26 +02:00
arch1t3cht
144860eb59 Remove format assertion after audio rework 2022-08-18 18:09:32 +02:00
arch1t3cht
e7e87f5584 Merge branch 'xa2-ds' into feature 2022-08-16 21:04:44 +02:00
arch1t3cht
0b8f5ad8fa XAudio PR: Revert some changes and fix on linux
Mostly synchronizing with the updates made to the ffmpeg audio provider
and removing the CMakeLists.txt
2022-08-16 21:03:59 +02:00
arch1t3cht
17d827c88a Merge branch 'misc_dc' into feature 2022-08-16 19:59:42 +02:00
arch1t3cht
6cdf360e76 Add downmix option on OSX
This fixes wangqr's commit dabd9f that adds an option to enable or
disable downmixing
2022-08-16 19:58:11 +02:00
arch1t3cht
24ac0647ac Merge branch 'vapoursynth' into feature 2022-08-16 19:57:22 +02:00
arch1t3cht
ff43f3d601 vapoursynth: Add audio source 2022-08-16 19:22:54 +02:00
arch1t3cht
4a5a212f35 bestsource: Switch to GetPackedAudio()
After vapoursynth/bestsource#7 , BestSource now has a function to
get the packed audio instead, so we just use that directly.
2022-08-16 19:22:54 +02:00
arch1t3cht
3f298bf03a Add vapoursynth video provider 2022-08-16 19:22:54 +02:00
arch1t3cht
6af0b41f47 bestsource: Add audio provider 2022-08-16 19:22:54 +02:00
arch1t3cht
70fd08aabe bestsource: Expose some options 2022-08-16 19:22:54 +02:00
arch1t3cht
e41647c78c bestsource: Detect audio and color space 2022-08-16 19:22:54 +02:00
arch1t3cht
4c6e3527d4 bestsource: Switch to manual sws_scale
This was to work with ffmpeg 4.4, but it also saves one frame copy
operation. It does, however, lose the slice threading.
2022-08-16 19:22:54 +02:00
arch1t3cht
33b9a6e395 Add bestsource video provider
Co-authored-by: Asada shinon <joshwoo71@gmail.com>
2022-08-16 19:22:54 +02:00
arch1t3cht
44888d9b70 Merge branch 'color_picker_fix2' into feature 2022-08-16 16:09:13 +02:00
arch1t3cht
25bd040494 Fix color picker option 2022-08-16 16:07:25 +02:00
arch1t3cht
64ecc490be Merge branch 'fixes' into feature 2022-08-16 15:51:37 +02:00
wangqr
d75e49653a Fix syntax error in e2ea84541f 2022-08-15 21:01:09 +02:00
Oneric
57841a0a34 AlignToVideo: Handle tolerance = 0 correctly
Checking if the diff is '>' instead of '>=' will always fail if
tolerance=0, even if the colours are identical. This will cause the line
to get a startime greter than its end time, which is not desireable.

Rounding errors and limits of floating type precision might still affect
the comparison. An additional sanity check before calculation is added
to ensure the selected position and colour match within tolerance.
This allows us to refactor the search code to never check the starting
frame and guanrantees valid timings with start<end even with
rounding errors.
2022-08-15 21:01:09 +02:00
Oneric
f1cfd480c4 AlignToVideo: Improve rgb->lab precision 2022-08-15 21:01:09 +02:00
Oneric
2300988613 dialog_align: Remove point at the end of the tooltips
No other tooltips end with points, even if they're a sentence.These
ones aren't even sentences.
Also updates all *.po files accordingly, with an hacked in
POT-Creation-Date due to issues with make_pot.sh.
2022-08-15 21:01:09 +02:00
wangqr
b2ba1feb28 Submit "align to video" on double click
Fix wangqr/Aegisub#34
2022-08-15 21:01:09 +02:00
wangqr
60dcc35830 Remove the trailing period in help text of time/align
Fix wangqr/Aegisub#7
2022-08-15 21:01:09 +02:00
wangqr
2b3df72c75 Fix missing config option for Align on macOS 2022-08-15 21:01:09 +02:00
wangqr
37380658bb Fix errors in AlignToVideo
* Call TimeAtFrame with correct parameter
* Fix syntax error
2022-08-15 21:01:09 +02:00
Charlie Jiang
cc8e857849 Merge remote-tracking branch 'origind-dev/master'
Add align to video function
2022-08-15 21:01:09 +02:00
arch1t3cht
9ebe154964 Fix width of lua float edits
Float edits with a spinner are by default sized to fit their full
min-max range of possible values, so this makes min and max default to 0
and 100 (like it'd done internally in wx) instead of -DOUBLE_MAX and
DOUBLE_MAX.

Note that this does change the behavior of lua dialogs, but does not
contradict existing documentation or specification. It should only
affect scripts who either disobey the specification by specifying only
one value out of max/min, or scripts displaying these large float edits
by specifing a step, but no max or min.
2022-08-14 16:24:50 +02:00
arch1t3cht
53466be0ca Merge branch 'avisynth' into feature 2022-08-13 23:03:33 +02:00
arch1t3cht
ad443dd118 avisynth: Properly destruct the IScriptEnvironment
Starting with AVISYNTH_INTERFACE_VERSION=5, this is how script
environments should be deleted. The previous code was causing crashes
when unloading AviSynth in certain scenarios, such as when failing to
open a file due to an incorrect path.
2022-08-13 22:53:58 +02:00
arch1t3cht
ce1b3a0158 avisynth: Validate downmix option
Because... let's maybe not let users make Aegisub call arbitrary
symbols in avisynth.dll/so just by editing the config.json.
2022-08-13 01:06:24 +02:00
arch1t3cht
fe285678a3 avisynth: Allow compilation on Linux
Co-authored-by: wangqr <wangqr@wangqr.tk>
2022-08-13 01:06:24 +02:00
Ristellise
6906b6e5d7 [Shinon] Enable Directsound2 player to use more than 1 channel audio.
- DS2 Player has a similar structure to XAudio, so I don't see any reason why not to enable 1 channel+ audio.
 - Haven't tried with 5.1 channel sources but I believe it should be the same as 2 channel (As in, Directsound will downmix the audio to 2 channel)
 - Moved the volume setting to using the player directly and from some quick audio tests, -10000 is too soft. I tried with -5000 instead which seems to be alright.
2022-08-11 12:28:35 +08:00
Ristellise
994e50048a Finish up XAudio with a round of bugfixes 2022-08-10 21:23:56 +08:00
Ristellise
fd28458ed8 Implement wangqr Audio Changes:
- To allow for XAudio2 to work properly, we need to rework how does provider work since they only are used to be able to take in mono audio.
 - Other providers have been dumbed down to accept single channel audio since originally aegisub only accepted 1 channel audio.
 - meson.build has been modified to accommodate for xaudio, as we currently don't accept redistributable forms of xaudio, we need to work around the WinNT version.
 - There has been 1 more fix to res.rc to allow for compiling on non tagged releases.
2022-08-10 21:09:41 +08:00
Ristellise
3dfea0c315 Add XAudio2 2022-08-10 16:31:02 +08:00
arch1t3cht
80e8ad0103 Merge branch 'folding' into feature 2022-08-08 16:40:24 +02:00
arch1t3cht
663112ba03 folding: Don't drop folds starting at the very first line 2022-08-08 16:38:43 +02:00
arch1t3cht
17d50d49ef Merge branch 'lua_api' into feature 2022-08-08 02:19:40 +02:00
wangqr
e2a49b3313 Avisynth audio provider: add option to allow no downmix 2022-08-08 01:38:20 +02:00
wangqr
691ab820b8 Handle exceptions from AviSynthWrapper ctor 2022-08-08 01:38:01 +02:00
sepro
8e1cc6228e Add automation function to get frame 2022-08-08 01:30:15 +02:00
arch1t3cht
bde149fd30 lua: Function returning if the file is modified 2022-08-08 01:00:08 +02:00
arch1t3cht
e8493975e2 Merge branch 'lua_api' into feature 2022-08-01 23:24:16 +02:00
arch1t3cht
69d79ac0cf Merge branch 'wangqr_time_video' into feature 2022-08-01 22:09:29 +02:00
arch1t3cht
84d90ce80b Merge branch 'video_panning_option' into feature 2022-08-01 21:56:24 +02:00
wangqr
c232ef6bb6 Fix syntax error in e2ea84541f 2022-08-01 21:43:26 +02:00
Oneric
61c6303a14 AlignToVideo: Handle tolerance = 0 correctly
Checking if the diff is '>' instead of '>=' will always fail if
tolerance=0, even if the colours are identical. This will cause the line
to get a startime greter than its end time, which is not desireable.

Rounding errors and limits of floating type precision might still affect
the comparison. An additional sanity check before calculation is added
to ensure the selected position and colour match within tolerance.
This allows us to refactor the search code to never check the starting
frame and guanrantees valid timings with start<end even with
rounding errors.
2022-08-01 21:43:26 +02:00
Oneric
7a729532b4 AlignToVideo: Improve rgb->lab precision 2022-08-01 21:43:26 +02:00
Oneric
e098342f54 dialog_align: Remove point at the end of the tooltips
No other tooltips end with points, even if they're a sentence.These
ones aren't even sentences.
Also updates all *.po files accordingly, with an hacked in
POT-Creation-Date due to issues with make_pot.sh.
2022-08-01 21:43:24 +02:00
wangqr
b5e7bbc5ad Submit "align to video" on double click
Fix wangqr/Aegisub#34
2022-08-01 21:43:17 +02:00
wangqr
42248eabad Remove the trailing period in help text of time/align
Fix wangqr/Aegisub#7
2022-08-01 21:43:17 +02:00
wangqr
68166c7581 Fix missing config option for Align on macOS 2022-08-01 21:43:17 +02:00