* [ITP] svt-av1
@ 2024-01-07 10:42 Takashi Yano
2024-01-13 15:40 ` Takashi Yano
2024-01-13 16:06 ` Jon Turney
0 siblings, 2 replies; 6+ messages in thread
From: Takashi Yano @ 2024-01-07 10:42 UTC (permalink / raw)
To: cygwin-apps
[-- Attachment #1: Type: text/plain, Size: 291 bytes --]
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.
--
Takashi Yano <takashi.yano@nifty.ne.jp>
[-- Attachment #2: svt-av1.cygport --]
[-- Type: text/plain, Size: 1081 bytes --]
NAME="svt-av1"
VERSION=1.8.0
RELEASE=1
LICENSE="BSD-3-Clause"
CATEGORY="Video"
SUMMARY="Scalable Video Technology for AV1 (Encoer and Decoder)"
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"
[-- Attachment #3: svt-av1-1.8.0-1.src.patch --]
[-- Type: text/plain, Size: 3512 bytes --]
--- 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)
#endif
typedef struct EbPerformanceContext {
--- origsrc/SVT-AV1-v1.8.0/Source/Lib/Common/ASM_AVX2/dav1d_x86inc.asm 2023-12-14 21:33:03.000000000 +0900
+++ src/SVT-AV1-v1.8.0/Source/Lib/Common/ASM_AVX2/dav1d_x86inc.asm 2023-12-29 19:00:25.994706400 +0900
@@ -61,7 +61,7 @@
%elifidn __OUTPUT_FORMAT__,x64
%define WIN64 1
%else
- %define UNIX64 1
+ %define WIN64 1
%endif
%endif
--- origsrc/SVT-AV1-v1.8.0/Source/Lib/Common/ASM_SSE2/x64inc.asm 2023-12-14 21:33:03.000000000 +0900
+++ src/SVT-AV1-v1.8.0/Source/Lib/Common/ASM_SSE2/x64inc.asm 2023-12-29 18:52:22.642767800 +0900
@@ -18,7 +18,7 @@
%elifidn __OUTPUT_FORMAT__,x64
%define WIN64 1
%else
- %define UNIX64 1
+ %define WIN64 1
%endif
%undef FORMAT_ELF
--- origsrc/SVT-AV1-v1.8.0/Source/Lib/Common/ASM_SSE2/x86inc.asm 2023-12-14 21:33:03.000000000 +0900
+++ src/SVT-AV1-v1.8.0/Source/Lib/Common/ASM_SSE2/x86inc.asm 2023-12-29 18:52:22.645765800 +0900
@@ -133,7 +133,7 @@ HAVE_WXWIDGETS equ 0
%elifidn __OUTPUT_FORMAT__,x64
%define WIN64 1
%else
- %define UNIX64 1
+ %define WIN64 1
%endif
%endif
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ITP] svt-av1
2024-01-07 10:42 [ITP] svt-av1 Takashi Yano
@ 2024-01-13 15:40 ` Takashi Yano
2024-01-13 16:06 ` Jon Turney
1 sibling, 0 replies; 6+ messages in thread
From: Takashi Yano @ 2024-01-13 15:40 UTC (permalink / raw)
To: cygwin-apps
On Sun, 7 Jan 2024 19:42:45 +0900
Takashi Yano 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.
Any comments or advices?
--
Takashi Yano <takashi.yano@nifty.ne.jp>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ITP] svt-av1
2024-01-07 10:42 [ITP] svt-av1 Takashi Yano
2024-01-13 15:40 ` Takashi Yano
@ 2024-01-13 16:06 ` Jon Turney
2024-01-14 15:20 ` Takashi Yano
1 sibling, 1 reply; 6+ messages in thread
From: Jon Turney @ 2024-01-13 16:06 UTC (permalink / raw)
To: Takashi Yano; +Cc: cygwin-apps
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.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ITP] svt-av1
2024-01-13 16:06 ` Jon Turney
@ 2024-01-14 15:20 ` Takashi Yano
2024-01-14 18:59 ` Jon Turney
0 siblings, 1 reply; 6+ messages in thread
From: Takashi Yano @ 2024-01-14 15:20 UTC (permalink / raw)
To: cygwin-apps
Hi Jon,
Thanks for reviewing.
On Sat, 13 Jan 2024 16:06:45 +0000
Jon Turney wrote:
> 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"
Oops!
> > --- 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 :))
This is because FOPEN macro conflicts with the same name macro in
cygwin's /usr/include/sys/_default_fcntl.h.
I'll add comment. Thanks!
--
Takashi Yano <takashi.yano@nifty.ne.jp>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ITP] svt-av1
2024-01-14 15:20 ` Takashi Yano
@ 2024-01-14 18:59 ` Jon Turney
2024-01-15 3:14 ` Takashi Yano
0 siblings, 1 reply; 6+ messages in thread
From: Jon Turney @ 2024-01-14 18:59 UTC (permalink / raw)
To: Takashi Yano; +Cc: cygwin-apps
On 14/01/2024 15:20, Takashi Yano via Cygwin-apps wrote:
> Thanks for reviewing.
No problem!
> On Sat, 13 Jan 2024 16:06:45 +0000
> Jon Turney wrote:
>> On 07/01/2024 10:42, Takashi Yano via Cygwin-apps wrote:
>>> #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 :))
>
> This is because FOPEN macro conflicts with the same name macro in
> cygwin's /usr/include/sys/_default_fcntl.h.
>
> I'll add comment. Thanks!
Hmm... go ahead.
How interesting. It seems like that might be also fixed by defining an
appropriate feature test macro e.g. _XOPEN_SOURCE, which turns off those
definitions in that header?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ITP] svt-av1
2024-01-14 18:59 ` Jon Turney
@ 2024-01-15 3:14 ` Takashi Yano
0 siblings, 0 replies; 6+ messages in thread
From: Takashi Yano @ 2024-01-15 3:14 UTC (permalink / raw)
To: cygwin-apps
On Sun, 14 Jan 2024 18:59:19 +0000
Jon Turney wrote:
> On 14/01/2024 15:20, Takashi Yano via Cygwin-apps wrote:
> > This is because FOPEN macro conflicts with the same name macro in
> > cygwin's /usr/include/sys/_default_fcntl.h.
> >
> > I'll add comment. Thanks!
>
> Hmm... go ahead.
>
> How interesting. It seems like that might be also fixed by defining an
> appropriate feature test macro e.g. _XOPEN_SOURCE, which turns off those
> definitions in that header?
Yeah, that might be better. Thanks!
--
Takashi Yano <takashi.yano@nifty.ne.jp>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-01-15 3:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-07 10:42 [ITP] svt-av1 Takashi Yano
2024-01-13 15:40 ` Takashi Yano
2024-01-13 16:06 ` Jon Turney
2024-01-14 15:20 ` Takashi Yano
2024-01-14 18:59 ` Jon Turney
2024-01-15 3:14 ` Takashi Yano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).