commit f448dc27a59980c341ee4a6daad322fa49b0a57e
Author: Jan Rękorajski <[email protected]>
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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to