[packages/obs-studio] - up to 31.0.0
baggins
baggins at pld-linux.org
Thu Dec 26 13:00:43 CET 2024
commit f448dc27a59980c341ee4a6daad322fa49b0a57e
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Thu Dec 26 13:05:36 2024 +0100
- up to 31.0.0
disable-missing-plugins.patch | 127 +++++++++++++-----------------------------
luajit-lua52.patch | 11 ++++
obs-studio.spec | 41 ++++++++------
sign-compare.patch | 11 ++++
size_t.patch | 8 +--
x11-linkage.patch | 31 +++++++++++
x32.patch | 12 ++--
7 files changed, 126 insertions(+), 115 deletions(-)
---
diff --git a/obs-studio.spec b/obs-studio.spec
index 262d393..a5cac5e 100644
--- a/obs-studio.spec
+++ b/obs-studio.spec
@@ -4,6 +4,7 @@
%bcond_with aja # AJA NTV2 support
%bcond_without jack # JACK support
%bcond_with qt5 # Qt 5 instead of Qt 6
+%bcond_with webrtc # Build WebRTC output plugin (R: LibDataChannel)
%ifnarch %{x8664}
# plugins/aja/cmake/legacy.cmake: "aja support not enabled (32-bit not supported)."
@@ -12,17 +13,19 @@
Summary: OBS Studio - live streaming and screen recording software
Summary(pl.UTF-8): OBS Studio - oprogramowanie do przesyłania strumieni na żywo i nagrywania ekranu
Name: obs-studio
-Version: 29.1.3
-Release: 3
+Version: 31.0.0
+Release: 1
License: GPL v2+
-%define obs_vst_gitref 8ad3f64e702ac4f1799b209a511620eb1d096a01
Group: X11/Applications/Multimedia
#Source0Download: https://github.com/obsproject/obs-studio/releases
Source0: https://github.com/jp9000/obs-studio/archive/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 5597636f9c66342566f47d68aa4c6693
+# Source0-md5: 7dd7edb0c4e159b1c78c5ce24a3d746b
Patch0: disable-missing-plugins.patch
Patch1: size_t.patch
Patch2: x32.patch
+Patch3: sign-compare.patch
+Patch4: x11-linkage.patch
+Patch5: luajit-lua52.patch
URL: https://obsproject.com/
BuildRequires: ImageMagick-devel
BuildRequires: OpenGL-GLX-devel
@@ -43,6 +46,7 @@ BuildRequires: librist-devel
BuildRequires: libstdc++-devel >= 6:4.7
BuildRequires: libv4l-devel
BuildRequires: libva-devel
+BuildRequires: libvpl-devel
BuildRequires: libx264-devel
# xcb xcb-composite xcb-randr xcb-shm xcb-xfixes xcb-xinerama
BuildRequires: libxcb-devel
@@ -60,6 +64,7 @@ BuildRequires: speexdsp-devel
BuildRequires: srt-devel
BuildRequires: swig-python >= 2
BuildRequires: udev-devel
+BuildRequires: uthash-devel
BuildRequires: vlc-devel
# wayland-client
BuildRequires: wayland-devel
@@ -114,11 +119,12 @@ Pliki nagłówkowe OBS Studio.
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
-%ifarch x32
-%patch2 -p1
-%endif
+%patch -P 0 -p1
+%patch -P 1 -p1
+%patch -P 2 -p1
+%patch -P 3 -p1
+%patch -P 4 -p1
+%patch -P 5 -p1
%build
export OBS_MULTIARCH_SUFFIX="%(echo "%{_lib}" | sed -e 's/^lib//')"
@@ -136,6 +142,7 @@ export OBS_MULTIARCH_SUFFIX="%(echo "%{_lib}" | sed -e 's/^lib//')"
%ifarch x32
-DENABLE_SCRIPTING_LUA=OFF \
%endif
+ %{!?with_webrtc:-DENABLE_WEBRTC=OFF} \
-DOBS_VERSION_OVERRIDE=%{version} \
-DQT_VERSION=%{?with_qt5:5}%{!?with_qt5:6} \
-DUNIX_STRUCTURE=1
@@ -184,14 +191,13 @@ rm -rf $RPM_BUILD_ROOT
%doc AUTHORS README.rst
%attr(755,root,root) %{_bindir}/obs
%attr(755,root,root) %{_bindir}/obs-ffmpeg-mux
-%attr(755,root,root) %{_libdir}/libobs-frontend-api.so.29
+%attr(755,root,root) %{_bindir}/obs-nvenc-test
+%attr(755,root,root) %{_libdir}/libobs-frontend-api.so.30
%attr(755,root,root) %ghost %{_libdir}/libobs-frontend-api.so.0
-%attr(755,root,root) %{_libdir}/libobs-opengl.so.29
-%attr(755,root,root) %ghost %{_libdir}/libobs-opengl.so.1
-%attr(755,root,root) %{_libdir}/libobs.so.29
+%attr(755,root,root) %{_libdir}/libobs-opengl.so.30
+%attr(755,root,root) %{_libdir}/libobs.so.30
%attr(755,root,root) %ghost %{_libdir}/libobs.so.0
-%attr(755,root,root) %{_libdir}/libobs-scripting.so.29
-%attr(755,root,root) %ghost %{_libdir}/libobs-scripting.so.1
+%attr(755,root,root) %{_libdir}/libobs-scripting.so.30
%dir %{_libdir}/obs-plugins
%attr(755,root,root) %{_libdir}/obs-plugins/decklink-captions.so
@@ -209,7 +215,9 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_libdir}/obs-plugins/linux-v4l2.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-ffmpeg.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-filters.so
+%attr(755,root,root) %{_libdir}/obs-plugins/obs-nvenc.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-outputs.so
+%attr(755,root,root) %{_libdir}/obs-plugins/obs-qsv11.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-transitions.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-vst.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-x264.so
@@ -223,7 +231,7 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_libdir}/obs-scripting/_obspython.so
%attr(755,root,root) %{_libdir}/obs-scripting/obspython.py
-%{_datadir}/metainfo/com.obsproject.Studio.appdata.xml
+%{_datadir}/metainfo/com.obsproject.Studio.metainfo.xml
%{_desktopdir}/com.obsproject.Studio.desktop
%{_iconsdir}/hicolor/*x*/apps/com.obsproject.Studio.png
%{_iconsdir}/hicolor/scalable/apps/com.obsproject.Studio.svg
@@ -311,5 +319,6 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_libdir}/libobs-scripting.so
%{_includedir}/obs
%{_pkgconfigdir}/libobs.pc
+%{_pkgconfigdir}/obs-frontend-api.pc
%{_libdir}/cmake/libobs
%{_libdir}/cmake/obs-frontend-api
diff --git a/disable-missing-plugins.patch b/disable-missing-plugins.patch
index e5e9160..4412b4f 100644
--- a/disable-missing-plugins.patch
+++ b/disable-missing-plugins.patch
@@ -1,99 +1,48 @@
---- obs-studio-29.1.3/plugins/CMakeLists.txt~ 2023-06-19 00:05:22.000000000 +0200
-+++ obs-studio-29.1.3/plugins/CMakeLists.txt 2023-11-04 23:10:07.465701088 +0100
-@@ -11,28 +11,6 @@
+--- obs-studio-31.0.0/plugins/CMakeLists.txt.orig 2024-12-07 00:21:55.000000000 +0100
++++ obs-studio-31.0.0/plugins/CMakeLists.txt 2024-12-26 12:09:59.606665425 +0100
+@@ -9,27 +9,6 @@
- set_property(GLOBAL APPEND PROPERTY OBS_FEATURES_ENABLED "Plugin Support")
+ set_property(GLOBAL APPEND PROPERTY OBS_FEATURES_ENABLED "Plugin Support")
-- macro(check_obs_browser)
-- if(NOT (OS_WINDOWS AND NOT CMAKE_GENERATOR_PLATFORM MATCHES "(Win32|x64)"))
-- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/cmake/macos/Info.plist.in")
-- add_subdirectory(obs-browser)
-- elseif(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt")
-- message(FATAL_ERROR "Required submodule 'obs-browser' not available.")
-- endif()
+-macro(check_obs_browser)
+- if((OS_WINDOWS AND CMAKE_VS_PLATFORM_NAME MATCHES "(Win32|x64)") OR OS_MACOS OR OS_LINUX)
+- if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt")
+- message(FATAL_ERROR "Required submodule 'obs-browser' not available.")
+- else()
+- add_subdirectory(obs-browser)
- endif()
-- endmacro()
--
-- macro(check_obs_websocket)
-- if(OS_WINDOWS
-- OR OS_MACOS
-- OR OS_LINUX)
-- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-websocket/cmake/macos/Info.plist.in")
-- add_subdirectory(obs-websocket)
-- elseif(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-websocket/CMakeLists.txt")
-- message(FATAL_ERROR "Required submodule 'obs-websocket' not available.")
-- endif()
-- endif()
-- endmacro()
+- else()
+- add_custom_target(obs-browser)
+- target_disable(obs-browser)
+- endif()
+-endmacro()
-
- # Add plugins in alphabetical order to retain order in IDE projects
- add_subdirectory(aja)
- if(OS_WINDOWS OR OS_MACOS)
-@@ -62,7 +40,6 @@
- add_subdirectory(mac-videotoolbox)
- add_subdirectory(mac-virtualcam)
- endif()
-- check_obs_browser()
- add_subdirectory(obs-ffmpeg)
- add_subdirectory(obs-filters)
- add_subdirectory(obs-outputs)
-@@ -76,7 +53,6 @@
- OR OS_LINUX)
- add_subdirectory(obs-vst)
- endif()
-- check_obs_websocket()
- add_subdirectory(obs-x264)
- add_subdirectory(rtmp-services)
- if(OS_LINUX)
-@@ -101,14 +77,6 @@
- return()
- endif()
-
--function(check_obs_browser)
-- if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt)
-- add_subdirectory(obs-browser)
+-macro(check_obs_websocket)
+- if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-websocket/CMakeLists.txt")
+- message(FATAL_ERROR "Required submodule 'obs-websocket' not available.")
- else()
-- obs_status(FATAL_ERROR "obs-browser submodule not available.")
+- add_subdirectory(obs-websocket)
- endif()
--endfunction()
+-endmacro()
-
- # APPLE/WIN32/UNIX are soft-deprecated: https://discourse.cmake.org/t/platform-id-vs-win32-vs-cmake-system-name/1226/2
- if(OS_WINDOWS)
- add_subdirectory(coreaudio-encoder)
-@@ -127,7 +95,6 @@
- obs_status(WARNING "enc-amf plugin not found.")
- endif()
-
-- check_obs_browser()
- elseif(OS_MACOS)
- add_subdirectory(coreaudio-encoder)
- add_subdirectory(mac-avcapture)
-@@ -140,7 +107,6 @@
- add_subdirectory(linux-jack)
- add_subdirectory(obs-vst)
+ # Add plugins in alphabetical order to retain order in IDE projects
+ add_obs_plugin(
+ aja
+@@ -56,8 +35,6 @@
+ add_obs_plugin(mac-virtualcam PLATFORMS MACOS)
+ add_obs_plugin(nv-filters PLATFORMS WINDOWS)
-- check_obs_browser()
- elseif(OS_LINUX)
- add_subdirectory(linux-capture)
- add_subdirectory(linux-pulseaudio)
-@@ -153,7 +119,6 @@
- add_subdirectory(sndio)
- add_subdirectory(obs-vst)
-
-- check_obs_browser()
- elseif(OS_FREEBSD)
- add_subdirectory(linux-capture)
- add_subdirectory(linux-pipewire)
-@@ -175,12 +140,6 @@
- obs_status(STATUS "obs-vst plugin not available.")
- endif()
+-check_obs_browser()
+-
+ add_obs_plugin(obs-ffmpeg)
+ add_obs_plugin(obs-filters)
+ add_obs_plugin(obs-libfdk)
+@@ -77,8 +54,6 @@
+ )
+ add_obs_plugin(obs-webrtc)
--if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/obs-websocket/CMakeLists.txt)
-- add_subdirectory(obs-websocket)
--else()
-- obs_status(FATAL_ERROR "obs-websocket submodule not available.")
--endif()
+-check_obs_websocket()
-
- add_subdirectory(image-source)
- add_subdirectory(obs-x264)
- add_subdirectory(obs-libfdk)
+ add_obs_plugin(obs-x264)
+ add_obs_plugin(oss-audio PLATFORMS FREEBSD OPENBSD)
+ add_obs_plugin(rtmp-services)
diff --git a/luajit-lua52.patch b/luajit-lua52.patch
new file mode 100644
index 0000000..5bdadc9
--- /dev/null
+++ b/luajit-lua52.patch
@@ -0,0 +1,11 @@
+--- obs-studio-31.0.0/cmake/finders/FindLuajit.cmake~ 2024-12-07 00:21:55.000000000 +0100
++++ obs-studio-31.0.0/cmake/finders/FindLuajit.cmake 2024-12-26 12:51:07.859998781 +0100
+@@ -94,7 +94,7 @@
+
+ find_library(
+ Luajit_LIBRARY
+- NAMES luajit-5.1 luajit-51 luajit lua51
++ NAMES luajit-5.2 luajit-5.1 luajit-51 luajit
+ HINTS ${PC_Luajit_LIBRARY_DIRS}
+ PATHS /usr/lib /usr/local/lib
+ DOC "Luajit location"
diff --git a/sign-compare.patch b/sign-compare.patch
new file mode 100644
index 0000000..5ca2bed
--- /dev/null
+++ b/sign-compare.patch
@@ -0,0 +1,11 @@
+--- obs-studio-31.0.0/plugins/obs-qsv11/QSV_Encoder_Internal.cpp~ 2024-12-07 00:21:55.000000000 +0100
++++ obs-studio-31.0.0/plugins/obs-qsv11/QSV_Encoder_Internal.cpp 2024-12-26 12:22:23.613332074 +0100
+@@ -347,7 +347,7 @@
+
+ constexpr uint32_t pixelcount_4k = 3840 * 2160;
+ /* If size is 4K+, set tile columns per frame to 2. */
+- if (codec == QSV_CODEC_AV1 && (pParams->nWidth * pParams->nHeight) >= pixelcount_4k) {
++ if (codec == QSV_CODEC_AV1 && static_cast<uint32_t>(pParams->nWidth * pParams->nHeight) >= pixelcount_4k) {
+ memset(&m_ExtAv1TileParam, 0, sizeof(m_ExtAv1TileParam));
+ m_ExtAv1TileParam.Header.BufferId = MFX_EXTBUFF_AV1_TILE_PARAM;
+ m_ExtAv1TileParam.Header.BufferSz = sizeof(m_ExtAv1TileParam);
diff --git a/size_t.patch b/size_t.patch
index 1acd8eb..53c748e 100644
--- a/size_t.patch
+++ b/size_t.patch
@@ -1,8 +1,8 @@
--- obs-studio-29.1.3/libobs/obs.c~ 2023-06-19 00:05:22.000000000 +0200
+++ obs-studio-29.1.3/libobs/obs.c 2023-11-05 00:28:11.859696298 +0100
@@ -873,7 +873,11 @@
- obs->video.mixes.array[i] = NULL;
}
+ da_free(obs->video.mixes);
if (num_views > 0)
+#ifdef __ILP32__
+ blog(LOG_WARNING, "Number of remaining views: %d", num_views);
@@ -15,11 +15,11 @@
--- obs-studio-29.1.3/libobs-opengl/gl-egl-common.c~ 2023-06-19 00:05:22.000000000 +0200
+++ obs-studio-29.1.3/libobs-opengl/gl-egl-common.c 2023-11-05 00:30:13.543492738 +0100
@@ -373,7 +373,7 @@
+ blog(LOG_ERROR, "Unable to load eglQueryDmaBufModifiersEXT");
return false;
}
- if (!query_dmabuf_modifiers(egl_display, drm_format, modifiers,
-- n_modifiers)) {
-+ (EGLuint64KHR *)n_modifiers)) {
+- if (!query_dmabuf_modifiers(egl_display, drm_format, modifiers, n_modifiers)) {
++ if (!query_dmabuf_modifiers(egl_display, drm_format, modifiers, (EGLuint64KHR *)n_modifiers)) {
*n_modifiers = 0;
*modifiers = NULL;
return false;
diff --git a/x11-linkage.patch b/x11-linkage.patch
new file mode 100644
index 0000000..3121592
--- /dev/null
+++ b/x11-linkage.patch
@@ -0,0 +1,31 @@
+--- obs-studio-31.0.0/libobs-opengl/CMakeLists.txt~ 2024-12-07 00:21:55.000000000 +0100
++++ obs-studio-31.0.0/libobs-opengl/CMakeLists.txt 2024-12-26 12:44:37.833332079 +0100
+@@ -56,6 +56,7 @@
+ "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,IOSurface.framework>>"
+ $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:xcb::xcb>
+ $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::x11-xcb>
++ $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::X11>
+ $<$<AND:$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>,$<BOOL:${ENABLE_WAYLAND}>>:OpenGL::EGL>
+ $<$<AND:$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>,$<BOOL:${ENABLE_WAYLAND}>>:Wayland::EGL>
+ )
+--- obs-studio-31.0.0/libobs/CMakeLists.txt~ 2024-12-07 00:21:55.000000000 +0100
++++ obs-studio-31.0.0/libobs/CMakeLists.txt 2024-12-26 12:47:01.733332089 +0100
+@@ -7,6 +7,10 @@
+ return()
+ endif()
+
++if(OS_LINUX OR OS_FREEBSD OR OS_OPENBSD)
++ find_package(X11 REQUIRED)
++endif()
++
+ find_package(Threads REQUIRED)
+
+ find_package(FFmpeg 6.1 REQUIRED avformat avutil swscale swresample OPTIONAL_COMPONENTS avcodec)
+@@ -260,6 +264,7 @@
+ jansson::jansson
+ Uthash::Uthash
+ ZLIB::ZLIB
++ $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::X11>
+ PUBLIC Threads::Threads
+ )
+
diff --git a/x32.patch b/x32.patch
index a6c04e7..75f70b1 100644
--- a/x32.patch
+++ b/x32.patch
@@ -1,14 +1,14 @@
--- obs-studio-29.1.3/plugins/linux-v4l2/v4l2-input.c~ 2023-06-19 00:05:22.000000000 +0200
+++ obs-studio-29.1.3/plugins/linux-v4l2/v4l2-input.c 2023-11-05 00:32:37.108931868 +0100
@@ -259,7 +259,11 @@
+ break;
}
- blog(LOG_DEBUG,
-+#ifdef __ILP32__
-+ "%s: ts: %06lld buf id #%d, flags 0x%08X, seq #%d, len %d, used %d",
++#if defined(__x86_64__) && defined(__ILP32__)
++ blog(LOG_DEBUG, "%s: ts: %0al6ld buf id #%d, flags 0x%08X, seq #%d, len %d, used %d", data->device_id,
+#else
- "%s: ts: %06ld buf id #%d, flags 0x%08X, seq #%d, len %d, used %d",
+ blog(LOG_DEBUG, "%s: ts: %06ld buf id #%d, flags 0x%08X, seq #%d, len %d, used %d", data->device_id,
+#endif
- data->device_id, buf.timestamp.tv_usec, buf.index,
- buf.flags, buf.sequence, buf.length, buf.bytesused);
+ buf.timestamp.tv_usec, buf.index, buf.flags, buf.sequence, buf.length, buf.bytesused);
+ out.timestamp = timeval2ns(buf.timestamp);
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/obs-studio.git/commitdiff/f448dc27a59980c341ee4a6daad322fa49b0a57e
More information about the pld-cvs-commit
mailing list