Commit 9fb3cdfc authored by Alex S's avatar Alex S Committed by Yuri Victorovich
Browse files

multimedia/obs-studio: bring back NVENC

PR:		291889
parent bb824738
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
PORTNAME=	obs-studio
DISTVERSION=	32.0.4
PORTREVISION=	1
PORTREVISION=	2
CATEGORIES=	multimedia
MASTER_SITES=	https://github.com/obsproject/obs-studio/releases/download/${DISTVERSION}/
DISTFILES=	OBS-Studio-${DISTVERSION}-Sources${EXTRACT_SUFX}
@@ -76,10 +76,8 @@ LDFLAGS+= -fPIC # pending https://github.com/obsproject/obs-studio/issues/3436

WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}-sources

WITH_DEBUG=		yes # workaround for https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292376#c6

OPTIONS_DEFINE=		BROWSER PIPEWIRE VLC VST WAYLAND
OPTIONS_DEFAULT=	PIPEWIRE VLC VST WAYLAND
OPTIONS_DEFINE=		BROWSER NVENC PIPEWIRE VLC VST WAYLAND
OPTIONS_DEFAULT=	NVENC PIPEWIRE VLC VST WAYLAND
OPTIONS_MULTI=		AUDIO
OPTIONS_MULTI_AUDIO=	JACK PULSEAUDIO SNDIO
OPTIONS_DEFAULT+=	${OPTIONS_MULTI_AUDIO}
@@ -94,6 +92,10 @@ JACK_LIB_DEPENDS= libjack.so:audio/jack
JACK_CMAKE_ON=		-DENABLE_JACK=TRUE
JACK_CMAKE_OFF=		-DDISABLE_JACK=TRUE

NVENC_DESC=		NVIDIA Hardware Encoder Plugin
NVENC_BUILD_DEPENDS=	ffnvcodec-headers>=13.0.19.0:multimedia/ffnvcodec-headers
NVENC_CMAKE_BOOL=	ENABLE_NVENC

PIPEWIRE_DESC=		Screen capture via PipeWire
PIPEWIRE_LIB_DEPENDS=	libpipewire-0.3.so:multimedia/pipewire
PIPEWIRE_CMAKE_BOOL=	ENABLE_PIPEWIRE
+10 −1
Original line number Diff line number Diff line
--- plugins/CMakeLists.txt.orig	2025-08-01 04:15:57 UTC
--- plugins/CMakeLists.txt.orig	2025-09-26 21:04:14 UTC
+++ plugins/CMakeLists.txt
@@ -61,7 +61,7 @@ add_obs_plugin(obs-libfdk)
 add_obs_plugin(obs-ffmpeg)
 add_obs_plugin(obs-filters)
 add_obs_plugin(obs-libfdk)
-add_obs_plugin(obs-nvenc PLATFORMS WINDOWS LINUX ARCHITECTURES x64 x86_64)
+add_obs_plugin(obs-nvenc PLATFORMS WINDOWS LINUX FREEBSD ARCHITECTURES x64 x86_64)
 add_obs_plugin(obs-outputs)
 add_obs_plugin(
     obs-qsv11
@@ -72,7 +72,7 @@ add_obs_plugin(
 add_obs_plugin(obs-transitions)
 add_obs_plugin(
+29 −0
Original line number Diff line number Diff line
--- plugins/obs-nvenc/CMakeLists.txt.orig	2025-09-27 00:04:14.000000000 +0300
+++ plugins/obs-nvenc/CMakeLists.txt	2025-12-23 07:49:06.708408000 +0300
@@ -14,7 +14,7 @@
   add_subdirectory("${CMAKE_SOURCE_DIR}/shared/opts-parser" "${CMAKE_BINARY_DIR}/shared/opts-parser")
 endif()
 
-if(OS_LINUX AND NOT TARGET OBS::glad)
+if((OS_LINUX OR OS_FREEBSD) AND NOT TARGET OBS::glad)
   add_subdirectory("${CMAKE_SOURCE_DIR}/deps/glad" "${CMAKE_BINARY_DIR}/deps/glad")
 endif()
 
@@ -28,7 +28,7 @@
 target_sources(
   obs-nvenc
   PRIVATE
-    $<$<PLATFORM_ID:Linux>:nvenc-opengl.c>
+    $<$<PLATFORM_ID:Linux,FreeBSD>:nvenc-opengl.c>
     $<$<PLATFORM_ID:Windows>:nvenc-d3d11.c>
     cuda-helpers.c
     cuda-helpers.h
@@ -46,7 +46,7 @@
 
 target_link_libraries(
   obs-nvenc
-  PRIVATE OBS::libobs OBS::opts-parser FFnvcodec::FFnvcodec $<$<PLATFORM_ID:Linux>:OBS::glad>
+  PRIVATE OBS::libobs OBS::opts-parser FFnvcodec::FFnvcodec $<$<PLATFORM_ID:Linux,FreeBSD>:OBS::glad>
 )
 
 target_compile_definitions(obs-nvenc PRIVATE $<$<BOOL:${ENABLE_NVENC_FFMPEG_IDS}>:REGISTER_FFMPEG_IDS>)
+10 −0
Original line number Diff line number Diff line
--- plugins/obs-nvenc/obs-nvenc-test/CMakeLists.txt.orig	2025-09-26 21:04:14 UTC
+++ plugins/obs-nvenc/obs-nvenc-test/CMakeLists.txt
@@ -5,6 +5,6 @@ target_sources(obs-nvenc-test PRIVATE obs-nvenc-test.c
 add_executable(obs-nvenc-test)
 
 target_sources(obs-nvenc-test PRIVATE obs-nvenc-test.cpp)
-target_link_libraries(obs-nvenc-test FFnvcodec::FFnvcodec)
+target_link_libraries(obs-nvenc-test FFnvcodec::FFnvcodec Threads::Threads)
 
 set_target_properties_obs(obs-nvenc-test PROPERTIES FOLDER plugins/obs-nvenc)
+50 −0
Original line number Diff line number Diff line
bin/obs
bin/obs-ffmpeg-mux
%%NVENC%%bin/obs-nvenc-test
include/obs/callback/calldata.h
include/obs/callback/decl.h
include/obs/callback/proc.h
@@ -117,6 +118,7 @@ lib/obs-plugins/linux-capture.so
lib/obs-plugins/linux-v4l2.so
lib/obs-plugins/obs-ffmpeg.so
lib/obs-plugins/obs-filters.so
%%NVENC%%lib/obs-plugins/obs-nvenc.so
lib/obs-plugins/obs-outputs.so
lib/obs-plugins/obs-transitions.so
%%VST%%lib/obs-plugins/obs-vst.so
@@ -838,6 +840,54 @@ share/obs/obs-plugins/obs-filters/luma_key_filter_v2.effect
share/obs/obs-plugins/obs-filters/mask_alpha_filter.effect
share/obs/obs-plugins/obs-filters/mask_color_filter.effect
share/obs/obs-plugins/obs-filters/sharpness.effect
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/ar-SA.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/be-BY.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/bg-BG.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/ca-ES.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/cs-CZ.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/da-DK.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/de-DE.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/el-GR.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/en-GB.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/en-US.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/es-ES.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/et-EE.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/fa-IR.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/fi-FI.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/fr-FR.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/gl-ES.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/he-IL.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/hi-IN.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/hr-HR.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/hu-HU.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/id-ID.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/is-IS.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/it-IT.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/ja-JP.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/ka-GE.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/kaa.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/kmr-TR.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/ko-KR.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/ms-MY.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/nb-NO.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/nl-NL.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/nn-NO.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/pl-PL.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/pt-BR.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/pt-PT.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/ro-RO.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/ru-RU.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/sk-SK.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/sr-SP.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/sv-SE.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/th-TH.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/tr-TR.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/tt-RU.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/ug-CN.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/uk-UA.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/vi-VN.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/zh-CN.ini
%%NVENC%%share/obs/obs-plugins/obs-nvenc/locale/zh-TW.ini
share/obs/obs-plugins/obs-outputs/locale/af-ZA.ini
share/obs/obs-plugins/obs-outputs/locale/ar-SA.ini
share/obs/obs-plugins/obs-outputs/locale/ba-RU.ini