[vlc-commits] [Git][videolan/vlc][master] 15 commits: contrib: sam3: build if not found

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Fri May 8 14:12:00 UTC 2026



Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
4946c94d by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: sam3: build if not found

It's not a huge library.

- - - - -
1680ccd1 by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: ggml: install the pkg-config file in the right place

- - - - -
a0f52da1 by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: ggml: add missing link libraries in pkgconfig file

Otherwise it doesn't link properly.

- - - - -
a17a5abd by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: ggml: disable openmp

Until it's properly linked via pkg-config.

- - - - -
501b29a3 by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: ggml: disable build on iOS as long as we target iOS 9

- - - - -
766f701a by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: ggml: disable build on tvOS as long as we target tvOS 11.0

- - - - -
3d2abc00 by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: ggml: disable build on macOS as long as we target macOS 10.13

- - - - -
ae061397 by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: ggml: use LoadPackagedLibrary in UWP

Plugins could be loaded in the app package but we can't use system ones.

- - - - -
60a164e8 by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: ggml: update to 0.11.0

- - - - -
6ee4d2f0 by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: opencv4: downgrade to 4.4 which BSD 3-clause licensed

So we can always build it in tree.

It switched to Apache 2.0 in 4.5.0 [^1].

[^1]: https://opencv.org/opencv-is-to-change-the-license-to-apache-2/

- - - - -
98cceeca by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: opencv4: fix dependencies

OpenCV doesn't use sam3 at all. It does use zlib, jpeg and png by default.

- - - - -
0ab59a8f by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: opencv4: don't build internal protobuf

- - - - -
4c1089c2 by Steve Lhomme at 2026-05-08T15:39:08+02:00
contrib: opencv4: install pkgconfig file

It's not installed by default and it's not clear how to force it.

- - - - -
d12f35b9 by Steve Lhomme at 2026-05-08T15:39:08+02:00
meson: add opencv_example plugin

- - - - -
16f074a0 by Steve Lhomme at 2026-05-08T15:39:08+02:00
meson: add opencv_wrapper plugin

- - - - -


7 changed files:

- + contrib/src/ggml/0001-Use-LoadPackagedLibrary-in-UWP-builds.patch
- contrib/src/ggml/SHA512SUMS
- contrib/src/ggml/rules.mak
- contrib/src/opencv4/SHA512SUMS
- contrib/src/opencv4/rules.mak
- contrib/src/sam3/rules.mak
- modules/video_filter/meson.build


Changes:

=====================================
contrib/src/ggml/0001-Use-LoadPackagedLibrary-in-UWP-builds.patch
=====================================
@@ -0,0 +1,28 @@
+From ed727ec6a420f48e44e8d91fec2889a96aa96e18 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 7 May 2026 15:02:05 +0200
+Subject: [PATCH] Use LoadPackagedLibrary() in UWP builds
+
+---
+ src/ggml-backend-dl.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/ggml-backend-dl.cpp b/src/ggml-backend-dl.cpp
+index a65cf009..fedc97f4 100644
+--- a/src/ggml-backend-dl.cpp
++++ b/src/ggml-backend-dl.cpp
+@@ -7,7 +7,11 @@ dl_handle * dl_load_library(const fs::path & path) {
+     DWORD old_mode = SetErrorMode(SEM_FAILCRITICALERRORS);
+     SetErrorMode(old_mode | SEM_FAILCRITICALERRORS);
+ 
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+     HMODULE handle = LoadLibraryW(path.wstring().c_str());
++#else
++    HMODULE handle = LoadPackagedLibrary(path.wstring().c_str(), 0);
++#endif
+ 
+     SetErrorMode(old_mode);
+ 
+-- 
+2.52.0.windows.1
+


=====================================
contrib/src/ggml/SHA512SUMS
=====================================
@@ -1 +1 @@
-41f0aa3a0b6c5d449812c2d311cd5798748c3339a638fe7d6bc35b2d2ec471dcc88bf76bf092382728b353d3a18bfdae2458bc8c6ff330b2ef6e2870ebfb5eb3  ggml-0.10.0.tar.gz
+c49b6498101f50a5ebde158f5707237f6df3af0182e819651003ec5f418144f9ca68cc8434189f2a658ea705269fad2d263cfe4931c12b369883aa5a66182ed9  ggml-0.11.0.tar.gz


=====================================
contrib/src/ggml/rules.mak
=====================================
@@ -1,6 +1,6 @@
 # ggml
 
-GGML_VERSION := 0.10.0
+GGML_VERSION := 0.11.0
 GGML_URL := $(GITHUB)/ggml-org/ggml/archive/refs/tags/v$(GGML_VERSION).tar.gz
 
 ifeq ($(call need_pkg,"ggml"),)
@@ -14,9 +14,15 @@ $(TARBALLS)/ggml-$(GGML_VERSION).tar.gz:
 
 ggml: ggml-$(GGML_VERSION).tar.gz .sum-ggml
 	$(UNPACK)
+	# fix path to install ggml.pc
+	sed -i.orig 's,DESTINATION share/pkgconfig,DESTINATION $${CMAKE_INSTALL_LIBDIR}/pkgconfig,' $(UNPACK_DIR)/CMakeLists.txt
+	# add missing libraries
+	sed -i.orig 's, -lggml$$, -lggml -lggml-base -lggml-cpu,' $(UNPACK_DIR)/ggml.pc.in
+	$(APPLY) $(SRC)/ggml/0001-Use-LoadPackagedLibrary-in-UWP-builds.patch
 	$(MOVE)
 
 GGML_CONF := \
+	-DGGML_OPENMP=OFF \
 	-DGGML_BUILD_TESTS=OFF \
 	-DGGML_BUILD_EXAMPLES=OFF
 


=====================================
contrib/src/opencv4/SHA512SUMS
=====================================
@@ -1 +1 @@
-b4f7248f89f1cd146dbbae7860a17131cd29bd3cb81db1e678abfcfbf2d8fa4a7633bfd0edbf50afae7b838c8700e8c0d0bb05828139d5cb5662df6bbf3eb92c  opencv-4.10.0.tar.gz
+ce4bada7b57c1a00439eca02abcba262732d5eabfd26090f6f83642d747a9a1a7908230bcd01a2b999c509e0c43c8b0dcb2b93ac824518b79cffe533f22652bb  opencv-4.4.0.tar.gz


=====================================
contrib/src/opencv4/rules.mak
=====================================
@@ -1,18 +1,16 @@
 # OpenCV 4
 
-OPENCV4_VERSION := 4.10.0
+OPENCV4_VERSION := 4.4.0
 OPENCV4_URL := $(GITHUB)/opencv/opencv/archive/$(OPENCV4_VERSION).tar.gz
 
-ifdef GNUV3
 ifneq ($(findstring opencv4,$(PKGS_ENABLE)),)
 PKGS += opencv4
 ifeq ($(call need_pkg,"opencv4 >= 4.0.0"),)
 PKGS_FOUND += opencv4
 endif
 endif
-endif
 
-DEPS_opencv4 = sam3 $(DEPS_sam3)
+DEPS_opencv4 = zlib $(DEPS_zlib) jpeg $(DEPS_jpeg) png $(DEPS_png)
 
 $(TARBALLS)/opencv-$(OPENCV4_VERSION).tar.gz:
 	$(call download_pkg,$(OPENCV4_URL),opencv4)
@@ -21,9 +19,6 @@ $(TARBALLS)/opencv-$(OPENCV4_VERSION).tar.gz:
 
 opencv4: opencv-$(OPENCV4_VERSION).tar.gz .sum-opencv4
 	$(UNPACK)
-# macosx_conversions.mm uses macOS-only API. Guard so it's not used on other Apple platforms
-	sed -i.orig '1s/^/#include <TargetConditionals.h>\n#if TARGET_OS_OSX\n/' $(UNPACK_DIR)/modules/imgcodecs/src/macosx_conversions.mm
-	echo '#endif /* TARGET_OS_OSX */' >> $(UNPACK_DIR)/modules/imgcodecs/src/macosx_conversions.mm
 	$(MOVE)
 
 # only enable necessary pkgs
@@ -53,7 +48,8 @@ OPENCV4_CONF := \
 	-DWITH_OPENJPEG=OFF \
 	-DWITH_JASPER=OFF \
 	-DWITH_TIFF=OFF \
-	-DWITH_COCOA=OFF
+	-DWITH_COCOA=OFF \
+	-DBUILD_PROTOBUF=OFF
 
 # NEON mandatory on aarch64
 ifneq ($(findstring aarch64,$(HOST)),)
@@ -69,9 +65,9 @@ OPENCV4_CONF += -DCV_ENABLE_INTRINSICS=OFF
 endif
 
 .opencv4: opencv4 toolchain.cmake
-	$(REQUIRE_GNUV3)
 	$(CMAKECLEAN)
 	$(HOSTVARS_CMAKE) $(CMAKE) $(OPENCV4_CONF)
 	+$(CMAKEBUILD)
 	$(CMAKEINSTALL)
+	install $(BUILD_DIR)/unix-install/opencv4.pc $(PREFIX)/lib/pkgconfig
 	touch $@
\ No newline at end of file


=====================================
contrib/src/sam3/rules.mak
=====================================
@@ -3,6 +3,13 @@
 SAM3_VERSION := 1.0.0
 SAM3_URL := $(GITHUB)/PABannier/sam3.cpp/archive/refs/tags/v$(SAM3_VERSION).tar.gz
 
+ifndef HAVE_IOS    # ggml missing clock_gettime() when targeting iOS 9.0
+ifndef HAVE_TVOS   # ggml missing std::filesystem::path when targeting tvOS 11.0
+ifndef HAVE_MACOSX # ggml missing std::filesystem::path when targeting tvOS 10.13
+PKGS += sam3
+endif
+endif
+endif
 ifeq ($(call need_pkg,"sam3"),)
 PKGS_FOUND += sam3
 endif


=====================================
modules/video_filter/meson.build
=====================================
@@ -407,6 +407,20 @@ opencv_dep = dependency('opencv4',
                         required: false,
                         version: '>=4.0.0')
 
+vlc_modules += {
+    'name' : 'opencv_wrapper',
+    'sources' : files('opencv_wrapper.c'),
+    'dependencies' : [m_lib, opencv_dep],
+    'enabled' : opencv_dep.found()
+}
+
+vlc_modules += {
+    'name' : 'opencv_example',
+    'sources' : files('opencv_example.cpp'),
+    'dependencies' : [m_lib, opencv_dep],
+    'enabled' : opencv_dep.found()
+}
+
 sam3_dep = dependency('sam3',
                       required: get_option('sam3'))
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c85a5164193481f16d117c27b3f2310c4ac289aa...16f074a05ab7f01e801827c466277a16940e98a0

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c85a5164193481f16d117c27b3f2310c4ac289aa...16f074a05ab7f01e801827c466277a16940e98a0
You're receiving this email because of your account on code.videolan.org.




More information about the vlc-commits mailing list