On 07/01/2024 10:42, Takashi Yano via Cygwin-apps wrote:
SVT-AV1 is video encoder/decoder for av1, which has
very fast encoder compared with aom. Fedora has this
package.https://src.fedoraproject.org/rpms/svt-av1
I would like to enable svt-av1 encoding in ffmpeg via
this package.
Thanks in advance.
svt-av1.cygport
NAME="svt-av1"
VERSION=1.8.0
RELEASE=1
LICENSE="BSD-3-Clause"
CATEGORY="Video"
SUMMARY="Scalable Video Technology for AV1 (Encoer and Decoder)"
Typo: "Encoder"
DESCRIPTION="The Scalable Video Technology for AV1 (SVT-AV1 Encoder and Decoder) is
an AV1-compliant software encoder/decoder library. The work on the SVT-AV1 encoder
targets the development of a production-quality AV1-encoder with performance levels
applicable to a wide range of applications, from premium VOD to real-time and live
encoding/transcoding. The SVT-AV1 decoder implementation targets future codec research
activities."
HOMEPAGE="https://gitlab.com/AOMediaCodec/SVT-AV1"
inherit cmake
SRC_URI="https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v${VERSION}/SVT-AV1-v${VERSION}.tar.bz2"
SRC_DIR="SVT-AV1-v${VERSION}"
PKG_NAMES="
svt-av1
libsvtav1
libsvtav1-devel
libsvtav1-doc
"
svt_av1_CONTENTS="usr/bin/*.exe"
libsvtav1_CONTENTS="usr/bin/*.dll"
libsvtav1_devel_CONTENTS="usr/include usr/lib"
libsvtav1_doc_CONTENTS="usr/share/doc"
DIFF_EXCLUDES="libSvtAv1Dec.dll.a libSvtAv1Enc.dll.a"
BUILD_REQUIRES="cmake ninja yasm"
svt-av1-1.8.0-1.src.patch
--- origsrc/SVT-AV1-v1.8.0/CMakeLists.txt 2023-12-14 21:33:03.000000000
+0900
+++ src/SVT-AV1-v1.8.0/CMakeLists.txt 2023-12-29 18:52:22.597806200 +0900
@@ -220,7 +220,7 @@ if(UNIX)
set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c
<TARGET>")
endif()
else()
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack -z
relro -z now")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}
-Wa,--noexecstack")
endif()
endif()
--- origsrc/SVT-AV1-v1.8.0/Source/App/EncApp/EbAppConfig.c 2023-12-14 21:33:03.000000000 +0900
+++ src/SVT-AV1-v1.8.0/Source/App/EncApp/EbAppConfig.c 2023-12-29
18:52:22.602058200 +0900
@@ -275,7 +275,7 @@ static Bool fopen_and_lock(FILE **file,
return FALSE;
const char *mode = write ? "wb" : "rb";
- FOPEN(*file, name, mode);
+ SVT_FOPEN(*file, name, mode);
if (!*file)
return FALSE;
@@ -304,7 +304,7 @@ static EbErrorType open_file(FILE **file
}
FILE *f;
- FOPEN(f, name, mode);
+ SVT_FOPEN(f, name, mode);
if (!f)
return validate_error(EB_ErrorBadParameter, token, name);
@@ -330,7 +330,7 @@ static EbErrorType set_cfg_input_file(Eb
cfg->input_file = stdin;
cfg->input_file_is_fifo = TRUE;
} else
- FOPEN(cfg->input_file, value, "rb");
+ SVT_FOPEN(cfg->input_file, value, "rb");
if (cfg->input_file == NULL) {
return validate_error(EB_ErrorBadParameter, token, value);
@@ -1548,7 +1548,7 @@ static EbErrorType read_config_file(EbCo
FILE *config_file;
// Open the config file
- FOPEN(config_file, config_path, "rb");
+ SVT_FOPEN(config_file, config_path, "rb");
if (!config_file) {
fprintf(stderr, "Error channel %u: Couldn't open Config File: %s\n",
instance_idx + 1, config_path);
return EB_ErrorBadParameter;
--- origsrc/SVT-AV1-v1.8.0/Source/App/EncApp/EbAppConfig.h 2023-12-14
21:33:03.000000000 +0900
+++ src/SVT-AV1-v1.8.0/Source/App/EncApp/EbAppConfig.h 2023-12-29
18:52:22.639768700 +0900
@@ -52,9 +52,9 @@ typedef enum EncPass {
#define MAX_NUM_TOKENS 210
#ifdef _WIN32
-#define FOPEN(f, s, m) fopen_s(&f, s, m)
+#define SVT_FOPEN(f, s, m) fopen_s(&f, s, m)
#else
-#define FOPEN(f, s, m) f = fopen(s, m)
+#define SVT_FOPEN(f, s, m) f = fopen(s, m)
This provokes my curiosity. Is there some reason for renaming this macro?
(In general, feel free to provide commentary at the start of the patch
file on why it's doing what it's doing :))
Otherwise, all looks good. I added this to your packages.