Commit Graph

8688 Commits

Author SHA1 Message Date
odrling 6e216d60c5
force dependency on libresrc 2024-05-31 16:56:15 +02:00
odrling bdd2d0f578
don't delay audio on matroska files 2024-05-31 16:56:15 +02:00
odrling d73de0cdb4
add option to disable tests 2024-05-31 16:56:15 +02:00
odrling 155416e870
fix vfr nonzero start time test 2024-05-31 16:56:14 +02:00
odrling 8ce9372d15
[style] increase default font size 2024-05-31 16:56:14 +02:00
odrling 31a2548e73
[Karaoke] disable drag timing
disables "Left-click drag moves end marker"
2024-05-31 16:56:14 +02:00
odrling 330b98b582
[style] change default style 2024-05-31 16:56:14 +02:00
odrling 1ffef83f26
[Karaoke] Autocommit and autofocus 2024-05-31 16:56:14 +02:00
Vincent Wong 6e262080b1
Audio/timing: minor style, comment
A bit more clarification of code logic. Follow predominant if/else style
2024-05-31 16:56:14 +02:00
Vincent Wong 1185084edc
Audio/Timing: implement tap-to-time
Tap-to-time provides the user the ability to tap to the lyrics/syllables
of the song in order to time lines or karaoke. It consists of these
extra UI interactions:

- **Indicator**: tap marker: a designated marker that can be moved to
  the current audio position; indicated in:
  - the audio display by a green arrow underneath a marker
  - the karaoke display by a green-colored syllable
- **Control**: tap marker: the tap marker can be changed by selecting
  syllables on audio display in karaoke mode, or clicking the markers on
  audio display in dialogue mode
- **Control**: ctrl-right-click audio display: starts playing the audio
  from that exact position until the end of the file
- **Option**: Timing/Tap To Time: enables the tap marker indicator and
  commands
- **Button**: time_opt_tap_to_time: toggles the Timing/Tap To Time option
- **Button**: time_tap_connect (hotkey I): a command that:
  - moves the tap marker's position to the current playing audio
    position
  - sets the next marker to be the tap marker
  - if the tap marker is already the last marker AND BOTH autocommit AND
    next-line-on-commit is ON, will move onto the next line
  - if moved on to the next line, also sets the start marker to the current
    audio position, so the two lines are connected, and moves to the
    next tap marker (essentially reinvoking time_tap_connect once)
- **Button**: time_tap_no_connect (hotkey O): similar to
  time_tap_connect, except it will not set the next line's start
  position even if moved to the next line

Expected workflow:
1) User loads song lyrics
2) User splits each line into syllables
3) User turns on tap-to-time, autocommit, and next-line-on-commit
4) User plays audio from beginning, tapping time_tap_connect to each
syllable, occasionally tapping time_tap_no_connect when a break between
lines is desired
5) If user messes up a line, they can set the tap marker to where they
want to restart from, and ctrl-right-click to start the audio a few
seconds before it
6) Syllables can be split/merged at will, and adjustments to timing can
be done using normal karaoke timing controls
2024-05-31 16:56:14 +02:00
Vincent Wong 1eca2fe2f5
AudioTimingControllerKaraoke: move timing correction above MoveMarker
Having the timing correction in MoveMarker is extremely surprising
behavior if any other part of the code uses MoveMarker expecting it to
work correctly as advertised
2024-05-31 16:56:14 +02:00
Vincent Wong 3179ce418b
audio_timing: add missing param comment for OnLeftClick
Missing the alt_click param in comment
2024-05-31 16:56:13 +02:00
odrling a9ac267c1d
normalize timecodes for every formats except matroska 2024-05-31 16:56:13 +02:00
odrling d3830c7de6
shift video instead of subtitles
This is probably wrong in some cases. This is probably what we want with
matroska files.
2024-05-31 16:56:13 +02:00
odrling 9847de8ab9
fix mks file parsing 2024-05-31 16:56:13 +02:00
odrling 5bd5dc917b
fix sub timing in mkv files with video delay
Some matroska files have audio start at timestamp 0 and video later.
In this case mkvtoolnix seems to use the first block of the first
cluster to the audio track (I would assume this is only an
implementation detail and not really from the matroska specs. And also
could happen in other cases without the video being delayed, but that's
not the point). Aegisub used to read this first block and use its
timestamp as the starting point of the video track.

With this commit, Aegisub tries to read all the blocks until it can read
the first timestamp of the video track and use it for the subtitles'
timestamps. Audio tracks don't seem to be impacted by these changes.
2024-05-31 16:56:13 +02:00
Pierre Jeanjean 06706bb166
Fix charset detection and conversion issues 2024-05-31 16:56:09 +02:00
arch1t3cht 80491bacbf Merge branch 'bugfixes' into feature 2024-05-31 00:08:05 +02:00
arch1t3cht b7af9bd0d3 ci: Bump even more action versions 2024-05-31 00:07:49 +02:00
arch1t3cht b4da179146 Merge branches 'bugfixes' and 'bestsource' into feature 2024-05-30 23:17:17 +02:00
arch1t3cht eff71c27a4 Merge branch 'workarounds' into feature 2024-05-30 23:17:12 +02:00
arch1t3cht b8f0906906 bestsource: Don't set any prefer_static argument
This should no longer be needed at all
2024-05-30 23:12:28 +02:00
0tkl 0a01ecf9ce bestsource: Bump to R4 2024-05-30 23:01:09 +02:00
arch1t3cht 0c53a99b71 Fix windows compilation with c++17 2024-05-30 22:40:20 +02:00
Ryan Lucia 3dd4e637f6 Bump boost to 1.83 2024-05-30 22:32:37 +02:00
arch1t3cht 7475425dcb osx: Remove bless -openfolder
This was deprecated for a while now and removed on aarch64.
The dmg build works without it now.
2024-05-30 22:31:30 +02:00
arch1t3cht f7448a9920 Merge branches 'workarounds' and 'bestsource' into feature 2024-05-30 21:58:03 +02:00
arch1t3cht e6da4e8e10 bestsource: Remove string_view defines
These are no longer necessary after switching to c++17.
2024-05-30 21:57:12 +02:00
arch1t3cht 0e44a3488e Merge branch 'bugfixes' into feature 2024-05-21 14:02:10 +02:00
arch1t3cht d1916fc6f9 ci: Pin macos to macos-13 for now
macos-latest now runs on Apple Silicon, which fails one test
and probably still needs extra work for the packaging to work.
Until that's figured out, run on macos-13.
2024-05-21 14:01:17 +02:00
arch1t3cht a067187537 Switch to C++17
I was originally planning to eventually rebase the various feature
branches on top of TypesettingTools/Aegisub's master, which switched
to C++20 and added various bigger refactors, but that turned out to
be even more involved than expected (due to the various
interdependencies between branches and the additional commits on feature
complicating rebases). ICU now requires C++17 and BestSource was already
pinned to an old version since newer versions need C++17, so let's just
bump the standard and put off the actual rebasing for later...
2024-05-20 16:55:34 +02:00
arch1t3cht 246dbd7670 ci: Update github actions versions yet again 2024-05-20 14:30:55 +02:00
arch1t3cht a89158b5c2 ci: Try to work around yet another gh actions bug 2024-05-20 13:49:20 +02:00
arch1t3cht 628f1306ef ci: Make libdav1d a required dependency
This used to be enforced by patching the ffmpeg wrap,
but after upstream changes to the wrap this method is simpler.
2024-05-20 01:34:31 +02:00
arch1t3cht a6ba1720db Merge branch 'workarounds' into feature 2024-05-20 01:33:04 +02:00
arch1t3cht b31c2c3267 Remove patches to ffmpeg wraps
Equivalent functionality (allowing dependencies to be meson subprojects
and fixing the zlib HAVE_UNISTD_H issue) was merged upstream now
(thanks kasper), so this is no longer necessary. dav1d is now
enabled using -Dffmpeg:libdav1d=enabled.
2024-05-20 01:31:47 +02:00
arch1t3cht 49feee6b0b Merge branch 'vapoursynth' into feature 2024-05-19 21:31:48 +02:00
arch1t3cht 9b0fef1c38 vapoursynth: Fix division by zero in aegisub_vs.py progress indicator 2024-05-19 21:31:28 +02:00
arch1t3cht 1c22bb3e4e Merge branch 'bugfixes' into feature 2024-05-12 19:22:04 +02:00
arch1t3cht 551d4ff2e8 Point libass wrap to upstream libass
The meson PR was merged there now.
2024-05-12 19:21:26 +02:00
arch1t3cht fad027f026 Merge branch 'workarounds' into feature 2024-05-12 00:44:02 +02:00
arch1t3cht 972e8dd4ba Point ffms2 wrap to upstream again
My pull request with multiple seeking fixes was merged there.
2024-05-12 00:43:52 +02:00
arch1t3cht 91b198d12d Merge branches 'bugfixes', 'bestsource' and 'vapoursynth' into feature 2024-04-18 16:11:10 +02:00
arch1t3cht 6ccf67359d ci: Fix meson configure call 2024-04-18 16:10:59 +02:00
arch1t3cht 2fdd7c70aa meson: Add freetype2 wrap
This wrap file used to be part of the libass wrap but was removed
there now.
2024-04-18 15:27:54 +02:00
arch1t3cht 39314072f9 bestsource: Fix switched 'audio' and 'video' strings 2024-04-18 15:21:02 +02:00
0tkl 9683959f2e bestsource: Bump to R2
Update DLL path for win installer
2024-04-18 14:30:52 +02:00
arch1t3cht 2f300ab1d3 Merge branch 'vapoursynth' into feature 2024-04-04 12:49:52 +02:00
arch1t3cht 8bbaf75e03 vapoursynth: Update outdated comment in default script 2024-04-04 12:47:11 +02:00
arch1t3cht 9c5ba15ce9 Update some dependencies in README 2024-04-04 12:46:15 +02:00