summaryrefslogtreecommitdiffstats
path: root/multimedia/aegisub
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/aegisub')
-rw-r--r--multimedia/aegisub/README4
-rw-r--r--multimedia/aegisub/aegisub.SlackBuild30
-rw-r--r--multimedia/aegisub/aegisub.info10
-rw-r--r--multimedia/aegisub/boost-1.81.0.patch56
-rw-r--r--multimedia/aegisub/patches/boost.patch34
-rw-r--r--multimedia/aegisub/patches/ffms2.patch387
-rw-r--r--multimedia/aegisub/patches/icu.patch11
-rw-r--r--multimedia/aegisub/patches/make-4.3.patch23
-rw-r--r--multimedia/aegisub/slack-desc4
9 files changed, 76 insertions, 483 deletions
diff --git a/multimedia/aegisub/README b/multimedia/aegisub/README
index 44843a8d81..267d701606 100644
--- a/multimedia/aegisub/README
+++ b/multimedia/aegisub/README
@@ -1,3 +1,3 @@
-A general-purpose subtitle editor with ASS/SSA support
+A general-purpose subtitle editor
-Optional dependency: PortAudio
+Optional dependency: portaudio
diff --git a/multimedia/aegisub/aegisub.SlackBuild b/multimedia/aegisub/aegisub.SlackBuild
index 53b5ed8c55..333ac97d46 100644
--- a/multimedia/aegisub/aegisub.SlackBuild
+++ b/multimedia/aegisub/aegisub.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2014-2021 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
+# Copyright 2014-2023 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,13 +23,12 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=aegisub
-VERSION=${VERSION:-3.2.2}
-BUILD=${BUILD:-3}
+SRCNAM=Aegisub
+VERSION=${VERSION:-3.3.3}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-MVER=3.2
-
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i586 ;;
@@ -66,9 +65,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
-cd $PRGNAM-$VERSION
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -76,14 +75,15 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
-for i in $CWD/patches/* ; do patch -p1 < $i ; done
-sed 's|gil/gil_all.hpp|gil.hpp|g' -i src/*.cpp # boost 1.69
-sed 's/$(LIBS_BOOST) $(LIBS_ICU)/$(LIBS_BOOST) $(LIBS_ICU) -pthread/' -i tools/Makefile # missing link flag
+# Patch for current
+patch -p1 < $CWD/boost-1.81.0.patch
+autoreconf -fiv
LDFLAGS="$LDFLAGS -lz" \
CFLAGS="$SLKCFLAGS" \
CPPFLAGS+=' -DU_USING_ICU_NAMESPACE=1' \
CXXFLAGS="$SLKCFLAGS" \
+FORCE_GIT_VERSION="TRUE" \
./configure \
--prefix=/usr \
--docdir=/usr/doc/$PRGNAM-$VERSION \
@@ -92,17 +92,9 @@ CXXFLAGS="$SLKCFLAGS" \
make
make install DESTDIR=$PKG
-ln -s $PRGNAM-$MVER $PKG/usr/bin/$PRGNAM
-
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-rm -f $PKG/usr/bin/aegisub
-(
- cd $PKG/usr/bin
- ln -s aegisub-$MVER aegisub
-)
-
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README.md LICENCE $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/multimedia/aegisub/aegisub.info b/multimedia/aegisub/aegisub.info
index 249abeaab7..2f11f77bec 100644
--- a/multimedia/aegisub/aegisub.info
+++ b/multimedia/aegisub/aegisub.info
@@ -1,10 +1,10 @@
PRGNAM="aegisub"
-VERSION="3.2.2"
-HOMEPAGE="https://github.com/Aegisub/Aegisub"
-DOWNLOAD="https://github.com/Aegisub/Aegisub/releases/download/v3.2.2/aegisub-3.2.2.tar.xz"
-MD5SUM="d80e852c34811add358c06d77f5cd40d"
+VERSION="3.3.3"
+HOMEPAGE="https://github.com/wangqr/Aegisub/"
+DOWNLOAD="https://github.com/wangqr/Aegisub/archive/v3.3.3/Aegisub-3.3.3.tar.gz"
+MD5SUM="08d7750b8b7732b790e9756ca3195baf"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="libass lua ffms2 wxGTK3"
+REQUIRES="libass lua ffms2 wxGTK3 libuchardet"
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/multimedia/aegisub/boost-1.81.0.patch b/multimedia/aegisub/boost-1.81.0.patch
new file mode 100644
index 0000000000..ac264bc706
--- /dev/null
+++ b/multimedia/aegisub/boost-1.81.0.patch
@@ -0,0 +1,56 @@
+diff --git a/libaegisub/include/libaegisub/lua/utils.h b/libaegisub/include/libaegisub/lua/utils.h
+index c5a65d6e4..f4921d582 100644
+--- a/libaegisub/include/libaegisub/lua/utils.h
++++ b/libaegisub/include/libaegisub/lua/utils.h
+@@ -87,7 +87,10 @@ int exception_wrapper(lua_State *L) {
+
+ template<typename T>
+ void set_field(lua_State *L, const char *name, T value) {
+- push_value(L, value);
++ if constexpr(std::is_convertible<T, std::string>::value)
++ push_value(L, static_cast<std::string>(value));
++ else
++ push_value(L, value);
+ lua_setfield(L, -2, name);
+ }
+
+diff --git a/src/auto4_lua.cpp b/src/auto4_lua.cpp
+index 245689679..6d479b2c3 100644
+--- a/src/auto4_lua.cpp
++++ b/src/auto4_lua.cpp
+@@ -115,7 +115,8 @@ namespace {
+ int get_translation(lua_State *L)
+ {
+ wxString str(check_wxstring(L, 1));
+- push_value(L, _(str).utf8_str());
++ const char* val = static_cast<const char*>( _(str).utf8_str());
++ push_value(L, val);
+ return 1;
+ }
+
+diff --git a/src/command/video.cpp b/src/command/video.cpp
+index fb2bcb0ba..77e3e9ca7 100644
+--- a/src/command/video.cpp
++++ b/src/command/video.cpp
+@@ -475,7 +475,7 @@ static void save_snapshot(agi::Context *c, bool raw) {
+ // If where ever that is isn't defined, we can't save there
+ if ((basepath == "\\") || (basepath == "/")) {
+ // So save to the current user's home dir instead
+- basepath = wxGetHomeDir().c_str();
++ basepath = static_cast<const char*>(wxGetHomeDir().c_str());
+ }
+ }
+ // Actual fixed (possibly relative) path, decode it
+diff --git a/src/dialog_attachments.cpp b/src/dialog_attachments.cpp
+index 38ff53027..e30339f81 100644
+--- a/src/dialog_attachments.cpp
++++ b/src/dialog_attachments.cpp
+@@ -161,7 +161,7 @@ void DialogAttachments::OnExtract(wxCommandEvent &) {
+
+ // Multiple or single?
+ if (listView->GetNextSelected(i) != -1)
+- path = wxDirSelector(_("Select the path to save the files to:"), to_wx(OPT_GET("Path/Fonts Collector Destination")->GetString())).c_str();
++ path = static_cast<const char*>(wxDirSelector(_("Select the path to save the files to:"), to_wx(OPT_GET("Path/Fonts Collector Destination")->GetString())).c_str());
+ else {
+ path = SaveFileSelector(
+ _("Select the path to save the file to:"),
diff --git a/multimedia/aegisub/patches/boost.patch b/multimedia/aegisub/patches/boost.patch
deleted file mode 100644
index 5d917f607e..0000000000
--- a/multimedia/aegisub/patches/boost.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From d8336d2fed73c72d1227b343d6acfb991bc1651b Mon Sep 17 00:00:00 2001
-From: Jan Beich <jbeich@FreeBSD.org>
-Date: Mon, 9 Jul 2018 20:15:29 +0000
-Subject: [PATCH] Keep using std::distance after Boost 1.68
-
-src/search_replace_engine.cpp:256:14: error: call to
- 'distance' is ambiguous
- count += distance(
- ^~~~~~~~
-/usr/include/c++/v1/iterator:511:1: note: candidate function [with _InputIter =
- boost::u32regex_iterator<std::__1::__wrap_iter<const char *> >]
-distance(_InputIter __first, _InputIter __last)
-^
-/usr/local/include/boost/iterator/distance.hpp:49:9: note: candidate function [with SinglePassIterator =
- boost::u32regex_iterator<std::__1::__wrap_iter<const char *> >]
- distance(SinglePassIterator first, SinglePassIterator last)
- ^
----
- src/search_replace_engine.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/search_replace_engine.cpp b/src/search_replace_engine.cpp
-index 594c21e5e..14c71680d 100644
---- a/src/search_replace_engine.cpp
-+++ b/src/search_replace_engine.cpp
-@@ -253,7 +253,7 @@ bool SearchReplaceEngine::ReplaceAll() {
- if (MatchState ms = matches(&diag, 0)) {
- auto& diag_field = diag.*get_dialogue_field(settings.field);
- std::string const& text = diag_field.get();
-- count += distance(
-+ count += std::distance(
- boost::u32regex_iterator<std::string::const_iterator>(begin(text), end(text), *ms.re),
- boost::u32regex_iterator<std::string::const_iterator>());
- diag_field = u32regex_replace(text, *ms.re, settings.replace_with);
diff --git a/multimedia/aegisub/patches/ffms2.patch b/multimedia/aegisub/patches/ffms2.patch
deleted file mode 100644
index ed40181e14..0000000000
--- a/multimedia/aegisub/patches/ffms2.patch
+++ /dev/null
@@ -1,387 +0,0 @@
-From 1aa9215e7fc360de05da9b7ec2cd68f1940af8b2 Mon Sep 17 00:00:00 2001
-From: Thomas Goyne <plorkyeran@aegisub.org>
-Date: Wed, 6 Apr 2016 11:24:21 -0700
-Subject: [PATCH] Use FFMS_DoIndexing2 when using a recent version of ffms2
-
-And clean up the audio track selection logic a bit.
----
- src/audio_provider_ffmpegsource.cpp | 40 ++++++++------------------
- src/ffmpegsource_common.cpp | 44 +++++++++++++++++++++--------
- src/ffmpegsource_common.h | 25 +++++-----------
- src/video_provider_ffmpegsource.cpp | 12 ++++----
- 4 files changed, 56 insertions(+), 65 deletions(-)
-
-diff --git a/src/audio_provider_ffmpegsource.cpp b/src/audio_provider_ffmpegsource.cpp
-index 4e44b1d29..606d5b415 100644
---- a/src/audio_provider_ffmpegsource.cpp
-+++ b/src/audio_provider_ffmpegsource.cpp
-@@ -91,18 +91,20 @@ void FFmpegSourceAudioProvider::LoadAudio(agi::fs::path const& filename) {
- }
-
- std::map<int, std::string> TrackList = GetTracksOfType(Indexer, FFMS_TYPE_AUDIO);
-- if (TrackList.empty())
-- throw agi::AudioDataNotFound("no audio tracks found");
-
- // initialize the track number to an invalid value so we can detect later on
- // whether the user actually had to choose a track or not
- int TrackNumber = -1;
- if (TrackList.size() > 1) {
-- TrackNumber = AskForTrackSelection(TrackList, FFMS_TYPE_AUDIO);
-- // if it's still -1 here, user pressed cancel
-- if (TrackNumber == -1)
-+ auto Selection = AskForTrackSelection(TrackList, FFMS_TYPE_AUDIO);
-+ if (Selection == TrackSelection::None)
- throw agi::UserCancelException("audio loading canceled by user");
-+ TrackNumber = static_cast<int>(Selection);
- }
-+ else if (TrackList.size() == 1)
-+ TrackNumber = TrackList.begin()->first;
-+ else
-+ throw agi::AudioDataNotFound("no audio tracks found");
-
- // generate a name for the cache file
- agi::fs::path CacheName = GetCacheFilename(filename);
-@@ -114,24 +116,13 @@ void FFmpegSourceAudioProvider::LoadAudio(agi::fs::path const& filename) {
- if (Index && FFMS_IndexBelongsToFile(Index, filename.string().c_str(), &ErrInfo))
- Index = nullptr;
-
-- // index valid but track number still not set?
- if (Index) {
-- // track number not set? just grab the first track
-- if (TrackNumber < 0)
-- TrackNumber = FFMS_GetFirstTrackOfType(Index, FFMS_TYPE_AUDIO, &ErrInfo);
-- if (TrackNumber < 0)
-- throw agi::AudioDataNotFound(std::string("Couldn't find any audio tracks: ") + ErrInfo.Buffer);
--
-- // index is valid and track number is now set,
-- // but do we have indexing info for the desired audio track?
-+ // we already have an index, but the desired track may not have been
-+ // indexed, and if it wasn't we need to reindex
- FFMS_Track *TempTrackData = FFMS_GetTrackFromIndex(Index, TrackNumber);
- if (FFMS_GetNumFrames(TempTrackData) <= 0)
- Index = nullptr;
- }
-- // no valid index exists and the file only has one audio track, index it
-- else if (TrackNumber < 0)
-- TrackNumber = FFMS_TRACKMASK_ALL;
-- // else: do nothing (keep track mask as it is)
-
- // reindex if the error handling mode has changed
- FFMS_IndexErrorHandling ErrorHandling = GetErrorHandlingMode();
-@@ -142,17 +133,10 @@ void FFmpegSourceAudioProvider::LoadAudio(agi::fs::path const& filename) {
-
- // moment of truth
- if (!Index) {
-- int TrackMask;
-- if (OPT_GET("Provider/FFmpegSource/Index All Tracks")->GetBool() || TrackNumber == FFMS_TRACKMASK_ALL)
-- TrackMask = FFMS_TRACKMASK_ALL;
-- else
-- TrackMask = (1 << TrackNumber);
--
-+ TrackSelection TrackMask = static_cast<TrackSelection>(TrackNumber);
-+ if (OPT_GET("Provider/FFmpegSource/Index All Tracks")->GetBool())
-+ TrackMask = TrackSelection::All;
- Index = DoIndexing(Indexer, CacheName, TrackMask, ErrorHandling);
--
-- // if tracknumber still isn't set we need to set it now
-- if (TrackNumber == FFMS_TRACKMASK_ALL)
-- TrackNumber = FFMS_GetFirstTrackOfType(Index, FFMS_TYPE_AUDIO, &ErrInfo);
- }
- else
- FFMS_CancelIndexing(Indexer);
-diff --git a/src/ffmpegsource_common.cpp b/src/ffmpegsource_common.cpp
-index 60a7e91e6..d66be0222 100644
---- a/src/ffmpegsource_common.cpp
-+++ b/src/ffmpegsource_common.cpp
-@@ -60,7 +60,10 @@ FFmpegSourceProvider::FFmpegSourceProvider(agi::BackgroundRunner *br)
- /// @param Indexer A pointer to the indexer object representing the file to be indexed
- /// @param CacheName The filename of the output index file
- /// @param Trackmask A binary mask of the track numbers to index
--FFMS_Index *FFmpegSourceProvider::DoIndexing(FFMS_Indexer *Indexer, agi::fs::path const& CacheName, int Trackmask, FFMS_IndexErrorHandling IndexEH) {
-+FFMS_Index *FFmpegSourceProvider::DoIndexing(FFMS_Indexer *Indexer,
-+ agi::fs::path const& CacheName,
-+ TrackSelection Track,
-+ FFMS_IndexErrorHandling IndexEH) {
- char FFMSErrMsg[1024];
- FFMS_ErrorInfo ErrInfo;
- ErrInfo.Buffer = FFMSErrMsg;
-@@ -78,8 +81,22 @@ FFMS_Index *FFmpegSourceProvider::DoIndexing(FFMS_Indexer *Indexer, agi::fs::pat
- ps->SetProgress(Current, Total);
- return ps->IsCancelled();
- };
-- Index = FFMS_DoIndexing(Indexer, Trackmask, FFMS_TRACKMASK_NONE,
-+#if FFMS_VERSION >= ((2 << 24) | (21 << 16) | (0 << 8) | 0)
-+ if (Track == TrackSelection::All)
-+ FFMS_TrackTypeIndexSettings(Indexer, FFMS_TYPE_AUDIO, 1, 0);
-+ else if (Track != TrackSelection::None)
-+ FFMS_TrackIndexSettings(Indexer, static_cast<int>(Track), 1, 0);
-+ FFMS_SetProgressCallback(Indexer, callback, ps);
-+ Index = FFMS_DoIndexing2(Indexer, IndexEH, &ErrInfo);
-+#else
-+ int Trackmask = 0;
-+ if (Track == TrackSelection::All)
-+ Trackmask = std::numeric_limits<int>::max();
-+ else if (Track != TrackSelection::None)
-+ Trackmask = 1 << static_cast<int>(Track);
-+ Index = FFMS_DoIndexing(Indexer, Trackmask, 0,
- nullptr, nullptr, IndexEH, callback, ps, &ErrInfo);
-+#endif
- });
-
- if (Index == nullptr)
-@@ -99,21 +116,24 @@ std::map<int, std::string> FFmpegSourceProvider::GetTracksOfType(FFMS_Indexer *I
- std::map<int,std::string> TrackList;
- int NumTracks = FFMS_GetNumTracksI(Indexer);
-
-+ // older versions of ffms2 can't index audio tracks past 31
-+#if FFMS_VERSION < ((2 << 24) | (21 << 16) | (0 << 8) | 0)
-+ if (Type == FFMS_TYPE_AUDIO)
-+ NumTracks = std::min(NumTracks, std::numeric_limits<int>::digits);
-+#endif
-+
- for (int i=0; i<NumTracks; i++) {
- if (FFMS_GetTrackTypeI(Indexer, i) == Type) {
-- const char *CodecName = FFMS_GetCodecNameI(Indexer, i);
-- if (CodecName)
-- TrackList.insert(std::pair<int,std::string>(i, CodecName));
-+ if (auto CodecName = FFMS_GetCodecNameI(Indexer, i))
-+ TrackList[i] = CodecName;
- }
- }
- return TrackList;
- }
-
--/// @brief Ask user for which track he wants to load
--/// @param TrackList A std::map with the track numbers as keys and codec names as values
--/// @param Type The track type to ask about
--/// @return Returns the track number chosen (an integer >= 0) on success, or a negative integer if the user cancelled.
--int FFmpegSourceProvider::AskForTrackSelection(const std::map<int, std::string> &TrackList, FFMS_TrackType Type) {
-+FFmpegSourceProvider::TrackSelection
-+FFmpegSourceProvider::AskForTrackSelection(const std::map<int, std::string> &TrackList,
-+ FFMS_TrackType Type) {
- std::vector<int> TrackNumbers;
- wxArrayString Choices;
-
-@@ -128,8 +148,8 @@ int FFmpegSourceProvider::AskForTrackSelection(const std::map<int, std::string>
- Choices);
-
- if (Choice < 0)
-- return Choice;
-- return TrackNumbers[Choice];
-+ return TrackSelection::None;
-+ return static_cast<TrackSelection>(TrackNumbers[Choice]);
- }
-
- /// @brief Set ffms2 log level according to setting in config.dat
-diff --git a/src/ffmpegsource_common.h b/src/ffmpegsource_common.h
-index 8cb7f33f6..5f6df7cfa 100644
---- a/src/ffmpegsource_common.h
-+++ b/src/ffmpegsource_common.h
-@@ -42,11 +42,6 @@
-
- namespace agi { class BackgroundRunner; }
-
--/// Index all tracks
--#define FFMS_TRACKMASK_ALL -1
--/// Index no tracks
--#define FFMS_TRACKMASK_NONE 0
--
- /// @class FFmpegSourceProvider
- /// @brief Base class for FFMS2 source providers; contains common functions etc
- class FFmpegSourceProvider {
-@@ -56,24 +51,18 @@ class FFmpegSourceProvider {
- public:
- FFmpegSourceProvider(agi::BackgroundRunner *br);
-
-- /// Logging level constants from avutil/log.h
-- enum FFMS_LogLevel {
-- /// nothing printed
-- FFMS_LOG_QUIET = -8,
-- FFMS_LOG_PANIC = 0,
-- FFMS_LOG_FATAL = 8,
-- FFMS_LOG_ERROR = 16,
-- FFMS_LOG_WARNING = 24,
-- FFMS_LOG_INFO = 32,
-- FFMS_LOG_VERBOSE = 40,
-- FFMS_LOG_DEBUG = 48,
-+ enum class TrackSelection : int {
-+ None = -1,
-+ All = -2
- };
-
- void CleanCache();
-
-- FFMS_Index *DoIndexing(FFMS_Indexer *Indexer, agi::fs::path const& Cachename, int Trackmask, FFMS_IndexErrorHandling IndexEH);
-+ FFMS_Index *DoIndexing(FFMS_Indexer *Indexer, agi::fs::path const& Cachename,
-+ TrackSelection Track,
-+ FFMS_IndexErrorHandling IndexEH);
- std::map<int, std::string> GetTracksOfType(FFMS_Indexer *Indexer, FFMS_TrackType Type);
-- int AskForTrackSelection(const std::map<int, std::string>& TrackList, FFMS_TrackType Type);
-+ TrackSelection AskForTrackSelection(const std::map<int, std::string>& TrackList, FFMS_TrackType Type);
- agi::fs::path GetCacheFilename(agi::fs::path const& filename);
- void SetLogLevel();
- FFMS_IndexErrorHandling GetErrorHandlingMode();
-diff --git a/src/video_provider_ffmpegsource.cpp b/src/video_provider_ffmpegsource.cpp
-index 5fd14f69c..8bd68fbbf 100644
---- a/src/video_provider_ffmpegsource.cpp
-+++ b/src/video_provider_ffmpegsource.cpp
-@@ -149,14 +149,12 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st
- if (TrackList.size() <= 0)
- throw VideoNotSupported("no video tracks found");
-
-- // initialize the track number to an invalid value so we can detect later on
-- // whether the user actually had to choose a track or not
- int TrackNumber = -1;
- if (TrackList.size() > 1) {
-- TrackNumber = AskForTrackSelection(TrackList, FFMS_TYPE_VIDEO);
-- // if it's still -1 here, user pressed cancel
-- if (TrackNumber == -1)
-+ auto Selection = AskForTrackSelection(TrackList, FFMS_TYPE_VIDEO);
-+ if (Selection == TrackSelection::None)
- throw agi::UserCancelException("video loading cancelled by user");
-+ TrackNumber = static_cast<int>(Selection);
- }
-
- // generate a name for the cache file
-@@ -180,9 +178,9 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st
-
- // moment of truth
- if (!Index) {
-- int TrackMask = FFMS_TRACKMASK_NONE;
-+ auto TrackMask = TrackSelection::None;
- if (OPT_GET("Provider/FFmpegSource/Index All Tracks")->GetBool() || OPT_GET("Video/Open Audio")->GetBool())
-- TrackMask = FFMS_TRACKMASK_ALL;
-+ TrackMask = TrackSelection::All;
- Index = DoIndexing(Indexer, CacheName, TrackMask, GetErrorHandlingMode());
- }
- else {
-
-From 7a6da26be6a830f4e1255091952cc0a1326a4520 Mon Sep 17 00:00:00 2001
-From: Thomas Goyne <plorkyeran@aegisub.org>
-Date: Fri, 8 Apr 2016 12:14:28 -0700
-Subject: [PATCH] Fix compilation on X11-using platforms
-
----
- src/ffmpegsource_common.h | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/ffmpegsource_common.h b/src/ffmpegsource_common.h
-index 5f6df7cfa..383d5baa2 100644
---- a/src/ffmpegsource_common.h
-+++ b/src/ffmpegsource_common.h
-@@ -51,6 +51,9 @@ class FFmpegSourceProvider {
- public:
- FFmpegSourceProvider(agi::BackgroundRunner *br);
-
-+ // X11 is wonderful
-+#undef None
-+
- enum class TrackSelection : int {
- None = -1,
- All = -2
-commit 89c4e8d34ab77c3322f097b91fd9de22cbea7a37
-Author: Thomas Goyne <plorkyeran@aegisub.org>
-Date: Wed Nov 21 16:41:05 2018 -0800
-
- Update ffmpeg and ffms2
-
-diff --git a/src/video_provider_ffmpegsource.cpp b/src/video_provider_ffmpegsource.cpp
-index 8bd68fbbf..f4ed6a2f2 100644
---- a/src/video_provider_ffmpegsource.cpp
-+++ b/src/video_provider_ffmpegsource.cpp
-@@ -44,6 +44,23 @@
- #include <libaegisub/make_unique.h>
-
- namespace {
-+typedef enum AGI_ColorSpaces {
-+ AGI_CS_RGB = 0,
-+ AGI_CS_BT709 = 1,
-+ AGI_CS_UNSPECIFIED = 2,
-+ AGI_CS_FCC = 4,
-+ AGI_CS_BT470BG = 5,
-+ AGI_CS_SMPTE170M = 6,
-+ AGI_CS_SMPTE240M = 7,
-+ AGI_CS_YCOCG = 8,
-+ AGI_CS_BT2020_NCL = 9,
-+ AGI_CS_BT2020_CL = 10,
-+ AGI_CS_SMPTE2085 = 11,
-+ AGI_CS_CHROMATICITY_DERIVED_NCL = 12,
-+ AGI_CS_CHROMATICITY_DERIVED_CL = 13,
-+ AGI_CS_ICTCP = 14
-+} AGI_ColorSpaces;
-+
- /// @class FFmpegSourceVideoProvider
- /// @brief Implements video loading through the FFMS library.
- class FFmpegSourceVideoProvider final : public VideoProvider, FFmpegSourceProvider {
-@@ -78,7 +95,7 @@ public:
- if (matrix == RealColorSpace)
- FFMS_SetInputFormatV(VideoSource, CS, CR, FFMS_GetPixFmt(""), nullptr);
- else if (matrix == "TV.601")
-- FFMS_SetInputFormatV(VideoSource, FFMS_CS_BT470BG, CR, FFMS_GetPixFmt(""), nullptr);
-+ FFMS_SetInputFormatV(VideoSource, AGI_CS_BT470BG, CR, FFMS_GetPixFmt(""), nullptr);
- else
- return;
- ColorSpace = matrix;
-@@ -103,16 +120,16 @@ std::string colormatrix_description(int cs, int cr) {
- std::string str = cr == FFMS_CR_JPEG ? "PC" : "TV";
-
- switch (cs) {
-- case FFMS_CS_RGB:
-+ case AGI_CS_RGB:
- return "None";
-- case FFMS_CS_BT709:
-+ case AGI_CS_BT709:
- return str + ".709";
-- case FFMS_CS_FCC:
-+ case AGI_CS_FCC:
- return str + ".FCC";
-- case FFMS_CS_BT470BG:
-- case FFMS_CS_SMPTE170M:
-+ case AGI_CS_BT470BG:
-+ case AGI_CS_SMPTE170M:
- return str + ".601";
-- case FFMS_CS_SMPTE240M:
-+ case AGI_CS_SMPTE240M:
- return str + ".240M";
- default:
- throw VideoOpenError("Unknown video color space");
-@@ -206,8 +223,10 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st
-
- // set thread count
- int Threads = OPT_GET("Provider/Video/FFmpegSource/Decoding Threads")->GetInt();
-+#if FFMS_VERSION < ((2 << 24) | (30 << 16) | (0 << 8) | 0)
- if (FFMS_GetVersion() < ((2 << 24) | (17 << 16) | (2 << 8) | 1) && FFMS_GetSourceType(Index) == FFMS_SOURCE_LAVF)
- Threads = 1;
-+#endif
-
- // set seekmode
- // TODO: give this its own option?
-@@ -235,18 +254,22 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st
- else
- DAR = double(Width) / Height;
-
-- CS = TempFrame->ColorSpace;
-+ int VideoCS = CS = TempFrame->ColorSpace;
- CR = TempFrame->ColorRange;
-
-- if (CS == FFMS_CS_UNSPECIFIED)
-- CS = Width > 1024 || Height >= 600 ? FFMS_CS_BT709 : FFMS_CS_BT470BG;
-+ if (CS == AGI_CS_UNSPECIFIED)
-+ CS = Width > 1024 || Height >= 600 ? AGI_CS_BT709 : AGI_CS_BT470BG;
- RealColorSpace = ColorSpace = colormatrix_description(CS, CR);
-
- #if FFMS_VERSION >= ((2 << 24) | (17 << 16) | (1 << 8) | 0)
-- if (CS != FFMS_CS_RGB && CS != FFMS_CS_BT470BG && ColorSpace != colormatrix && (colormatrix == "TV.601" || OPT_GET("Video/Force BT.601")->GetBool())) {
-- if (FFMS_SetInputFormatV(VideoSource, FFMS_CS_BT470BG, CR, FFMS_GetPixFmt(""), &ErrInfo))
-+ if (CS != AGI_CS_RGB && CS != AGI_CS_BT470BG && ColorSpace != colormatrix && (colormatrix == "TV.601" || OPT_GET("Video/Force BT.601")->GetBool())) {
-+ CS = AGI_CS_BT470BG;
-+ ColorSpace = colormatrix_description(AGI_CS_BT470BG, CR);
-+ }
-+
-+ if (CS != VideoCS) {
-+ if (FFMS_SetInputFormatV(VideoSource, CS, CR, FFMS_GetPixFmt(""), &ErrInfo))
- throw VideoOpenError(std::string("Failed to set input format: ") + ErrInfo.Buffer);
-- ColorSpace = colormatrix_description(FFMS_CS_BT470BG, CR);
- }
- #endif
-
diff --git a/multimedia/aegisub/patches/icu.patch b/multimedia/aegisub/patches/icu.patch
deleted file mode 100644
index 2145140ed0..0000000000
--- a/multimedia/aegisub/patches/icu.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -upr aegisub-3.2.2.orig/src/utils.cpp aegisub-3.2.2/src/utils.cpp
---- aegisub-3.2.2.orig/src/utils.cpp 2014-12-08 02:07:09.000000000 +0200
-+++ aegisub-3.2.2/src/utils.cpp 2017-04-26 11:11:15.438239182 +0300
-@@ -44,6 +44,7 @@
- #include <boost/filesystem/path.hpp>
- #include <map>
- #include <unicode/locid.h>
-+#include <unicode/unistr.h>
- #include <wx/clipbrd.h>
- #include <wx/filedlg.h>
- #include <wx/stdpaths.h>
diff --git a/multimedia/aegisub/patches/make-4.3.patch b/multimedia/aegisub/patches/make-4.3.patch
deleted file mode 100644
index 6edb8c3b5e..0000000000
--- a/multimedia/aegisub/patches/make-4.3.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From f4cc905c69ca69c68cb95674cefce4abc37ce046 Mon Sep 17 00:00:00 2001
-From: wangqr <wangqr@wangqr.tk>
-Date: Mon, 17 Feb 2020 14:42:07 +0800
-Subject: [PATCH] Use target name without directory in $*_OBJ macro
-
-Fix Aegisub/Aegisub#171
----
- Makefile.target | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.target b/Makefile.target
-index 516ef3c24..5c4c5d259 100644
---- a/Makefile.target
-+++ b/Makefile.target
-@@ -112,7 +112,7 @@ POST_FLAGS = $($@_FLAGS) -c -o $@ $<
- # Libraries contain all object files they depend on (but they may depend on other files)
- # Not using libtool on OS X because it has an unsilenceable warning about a
- # compatibility issue with BSD 4.3 (wtf)
--lib%.a: $$($$*_OBJ)
-+lib%.a: $$($$(*F)_OBJ)
- @$(BIN_MKDIR_P) $(dir $@)
- $(BIN_AR) cru $@ $(filter %.o,$^)
- $(BIN_RANLIB) $@
diff --git a/multimedia/aegisub/slack-desc b/multimedia/aegisub/slack-desc
index 053d304d0a..a29184e5ba 100644
--- a/multimedia/aegisub/slack-desc
+++ b/multimedia/aegisub/slack-desc
@@ -8,10 +8,10 @@
|-----handy-ruler------------------------------------------------------|
aegisub: aegisub (General-purpose subtitle editor)
aegisub:
-aegisub: A general-purpose subtitle editor with ASS/SSA support
+aegisub: A general-purpose subtitle editor
aegisub:
aegisub:
-aegisub: Project Site: https://code.google.com/p/aegisub/
+aegisub: Project Site: https://github.com/wangqr/Aegisub
aegisub:
aegisub:
aegisub: