public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [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).