Date: Thu, 15 Jan 2026 17:55:46 +0000 From: Olivier Cochard <olivier@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 2f969e9395a3 - main - multimedia/gpac: merge sub-ports and update to 2.4.0 Message-ID: <69692a22.3d28d.43bdb050@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by olivier: URL: https://cgit.FreeBSD.org/ports/commit/?id=2f969e9395a30eb5a95880ca254da9f86b548a4e commit 2f969e9395a30eb5a95880ca254da9f86b548a4e Author: Olivier Cochard <olivier@FreeBSD.org> AuthorDate: 2026-01-15 15:16:58 +0000 Commit: Olivier Cochard <olivier@FreeBSD.org> CommitDate: 2026-01-15 17:54:42 +0000 multimedia/gpac: merge sub-ports and update to 2.4.0 Consolidate gpac, mp4box and library into a single port as the upstream build system does not easily support splitting applications from the library. Sponsored by: Netflix --- MOVED | 1 + multimedia/Makefile | 3 +- multimedia/gpac-libgpac/Makefile | 65 ---- multimedia/gpac-libgpac/distinfo | 3 - .../files/patch-modules_x11__out_x11__out.c | 17 -- .../files/patch-src-utils-os_config_init.c | 36 --- .../gpac-libgpac/files/patch-src-utils-os_divers.c | 126 -------- .../gpac-libgpac/files/patch-src_evg_raster__yuv.c | 11 - .../gpac-libgpac/files/patch-src_quickjs_quickjs.c | 29 -- multimedia/gpac-libgpac/pkg-descr | 1 - multimedia/gpac-libgpac/pkg-plist | 98 ------ multimedia/gpac-mp4box/Makefile | 38 --- multimedia/gpac-mp4box/distinfo | 3 - multimedia/gpac-mp4box/pkg-descr | 4 - multimedia/gpac/Makefile | 67 +++++ multimedia/gpac/distinfo | 3 + multimedia/gpac/files/patch-Makefile | 61 ++++ multimedia/gpac/files/patch-configure | 11 + multimedia/gpac/files/patch-src_filters_ff__avf.c | 17 ++ multimedia/gpac/files/patch-src_filters_ff__dec.c | 16 + multimedia/gpac/files/patch-src_filters_ff__dmx.c | 18 ++ multimedia/gpac/files/patch-src_filters_ff__enc.c | 37 +++ multimedia/gpac/files/patch-src_filters_ff__mx.c | 77 +++++ .../gpac/files/patch-src_utils_os__config__init.c | 38 +++ multimedia/gpac/files/patch-src_utils_os__divers.c | 12 + multimedia/gpac/files/patch-src_utils_os__net.c | 12 + multimedia/gpac/pkg-descr | 3 + multimedia/gpac/pkg-plist | 331 +++++++++++++++++++++ 28 files changed, 705 insertions(+), 433 deletions(-) diff --git a/MOVED b/MOVED index 532afebbef8a..e3fe8443affc 100644 --- a/MOVED +++ b/MOVED @@ -5079,3 +5079,4 @@ devel/py-confusable_homoglyphs|devel/py-confusable-homoglyphs|2026-01-15|Rename devel/py-pyyaml_env_tag|devel/py-pyyaml-env-tag|2026-01-15|Rename to match upstream naming www/py-aiohttp_cors|www/py-aiohttp-cors|2026-01-15|Rename to match upstream naming lang/cython3|lang/cython|2026-01-15|Remove obsoleted port. Use lang/cython instead +multimedia/gpac-mp4box|multimedia/gpac|2026-01-15|Merge mp4box and libgpac and add gpac diff --git a/multimedia/Makefile b/multimedia/Makefile index 27c7b7f903e9..26c022841c01 100644 --- a/multimedia/Makefile +++ b/multimedia/Makefile @@ -71,8 +71,7 @@ SUBDIR += get_iplayer SUBDIR += gmmlib SUBDIR += gmp-api - SUBDIR += gpac-libgpac - SUBDIR += gpac-mp4box + SUBDIR += gpac SUBDIR += gpodder SUBDIR += gst123 SUBDIR += gstreamer1 diff --git a/multimedia/gpac-libgpac/Makefile b/multimedia/gpac-libgpac/Makefile deleted file mode 100644 index bc8453bdd3c9..000000000000 --- a/multimedia/gpac-libgpac/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -PORTNAME= gpac -DISTVERSIONPREFIX= v -DISTVERSION= 1.0.0 -PORTREVISION= 3 -PORTEPOCH= 1 -CATEGORIES= multimedia -PKGNAMESUFFIX= -libgpac - -MAINTAINER= olivier@FreeBSD.org -COMMENT= Gpac MPEG-4 Systems library and headers -WWW= https://gpac.sourceforge.net/ - -LICENSE= LGPL21 - -BUILD_DEPENDS= bash:shells/bash - -ALL_TARGET= lib -INSTALL_TARGET= install-lib -USES= cpe gmake dos2unix shebangfix -SHEBANG_FILES= check_revision.sh -bash_OLD_CMD+= /bin/sh -USE_GITHUB= yes -HAS_CONFIGURE= yes -USE_LDCONFIG= yes -DOS2UNIX_FILES= src/utils/os_config_init.c - -OPTIONS_DEFINE= IPV6 JPEG OPENGL SSL PNG XVIDEO -OPTIONS_DEFAULT= JPEG SSL PNG - -CFLAGS+= -I${WRKSRC}/include -I${LOCALBASE}/include -LDFLAGS+= -L${LOCALBASE}/lib - -CONFIGURE_ARGS= --prefix="${PREFIX}" --cc="${CC}" --X11-path="${LOCALBASE}" \ - --extra-cflags="${CFLAGS}" --extra-ldflags="${LDFLAGS}" \ - --static-modules \ - --enable-pic \ - --disable-wx \ - --use-js=no --use-a52=no --use-faad=no --use-ffmpeg=no \ - --use-ft=no --use-mad=no --use-ogg=no --use-xvid=no \ - --use-openjpeg=no --use-theora=no --use-vorbis=no - -SSL_USES= ssl -SSL_CONFIGURE_ENABLE= ssl -OPENGL_USES= gl -OPENGL_USE= GL=gl GL=glu -OPENGL_CONFIGURE_ENABLE=3d -XVIDEO_LIB_DEPENDS= libXv.so:x11/libXv -XVIDEO_CONFIGURE_OFF= --disable-x11-xv --disable-x11-shm -IPV6_CONFIGURE_ENABLE= ipv6 -JPEG_USES= jpeg -JPEG_CONFIGURE_ON= --use-jpeg=local -JPEG_CONFIGURE_OFF= --use-jpeg=no -PNG_LIB_DEPENDS= libpng.so:graphics/png -PNG_CONFIGURE_ON= --use-png=local -PNG_CONFIGURE_OFF= --use-png=no - -post-patch: - ${REINPLACE_CMD} -e 's|s/\.\*\\(\[0-9\]\\)\\+\$$/\\1/|s/^[^0-9]*//| ;\ - /CFLAGS=/s/-O3// ; s/-export-dynamic/-Wl,--export-dynamic/' \ - ${WRKSRC}/configure - -post-install: - ${INSTALL_DATA} ${WRKSRC}/gpac.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig - -.include <bsd.port.mk> diff --git a/multimedia/gpac-libgpac/distinfo b/multimedia/gpac-libgpac/distinfo deleted file mode 100644 index 81e63cd04359..000000000000 --- a/multimedia/gpac-libgpac/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1595078627 -SHA256 (gpac-gpac-v1.0.0_GH0.tar.gz) = ebcca41993e51706c891dba4e9fe03b59bc671c41910bc6c303ba3feeb7f1b20 -SIZE (gpac-gpac-v1.0.0_GH0.tar.gz) = 10289999 diff --git a/multimedia/gpac-libgpac/files/patch-modules_x11__out_x11__out.c b/multimedia/gpac-libgpac/files/patch-modules_x11__out_x11__out.c deleted file mode 100644 index 41bfd949b251..000000000000 --- a/multimedia/gpac-libgpac/files/patch-modules_x11__out_x11__out.c +++ /dev/null @@ -1,17 +0,0 @@ ---- modules/x11_out/x11_out.c.orig 2020-06-16 16:17:17 UTC -+++ modules/x11_out/x11_out.c -@@ -975,10 +975,14 @@ GF_Err X11_ProcessEvent (struct _video_out * vout, GF_ - case GF_EVENT_SET_GL: - if (!xWindow->output_3d) return GF_OK; - -+#ifdef GPAC_HAS_OPENGL - if ( ! glXMakeCurrent(xWindow->display, xWindow->fullscreen ? xWindow->full_wnd : xWindow->wnd, xWindow->glx_context) ) { - GF_LOG(GF_LOG_ERROR, GF_LOG_MMIO, ("[X11] Cannot make context current\n")); - return GF_IO_ERR; - } -+#else -+ return GF_NOT_SUPPORTED; -+#endif - break; - } - } else { diff --git a/multimedia/gpac-libgpac/files/patch-src-utils-os_config_init.c b/multimedia/gpac-libgpac/files/patch-src-utils-os_config_init.c deleted file mode 100644 index 66e0901421fa..000000000000 --- a/multimedia/gpac-libgpac/files/patch-src-utils-os_config_init.c +++ /dev/null @@ -1,36 +0,0 @@ ---- src/utils/os_config_init.c.orig 2020-06-16 16:17:17 UTC -+++ src/utils/os_config_init.c -@@ -58,6 +58,9 @@ - #else - #ifdef GPAC_CONFIG_LINUX - #include <unistd.h> -+#elif defined GPAC_CONFIG_FREEBSD -+#include <sys/types.h> -+#include <sys/sysctl.h> - #endif - #ifdef GPAC_CONFIG_ANDROID - #define DEFAULT_ANDROID_PATH_APP "/data/data/com.gpac.Osmo4" -@@ -294,6 +297,8 @@ static Bool get_default_install_path(char *file_path, - char *sep; - #if (defined(__DARWIN__) || defined(__APPLE__) || defined(GPAC_CONFIG_LINUX)) - u32 size; -+#elif defined(GPAC_CONFIG_FREEBSD) -+ size_t size = GF_MAX_PATH; - #endif - - /*on OSX, Linux & co, user home is where we store the cfg file*/ -@@ -369,6 +374,14 @@ static Bool get_default_install_path(char *file_path, - if (sep) { - strcpy(file_path, sep); - } -+ return 1; -+ } -+#elif defined(GPAC_CONFIG_FREEBSD) -+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; -+ sysctl(mib, 4, file_path, &size, NULL, 0); -+ if (size>0) { -+ char *sep = strrchr(file_path, '/'); -+ if (sep) sep[0] = 0; - return 1; - } - #endif diff --git a/multimedia/gpac-libgpac/files/patch-src-utils-os_divers.c b/multimedia/gpac-libgpac/files/patch-src-utils-os_divers.c deleted file mode 100644 index 9f1e47a90965..000000000000 --- a/multimedia/gpac-libgpac/files/patch-src-utils-os_divers.c +++ /dev/null @@ -1,126 +0,0 @@ ---- src/utils/os_divers.c.orig 2020-06-16 16:17:17 UTC -+++ src/utils/os_divers.c -@@ -1680,6 +1680,123 @@ Bool gf_sys_get_rti_os(u32 refresh_time_ms, GF_SystemR - return 1; - } - -+#elif defined GPAC_CONFIG_FREEBSD -+ -+#include <sys/types.h> -+#include <sys/sysctl.h> -+#include <sys/time.h> -+#include <sys/user.h> -+ -+#define GETSYSCTL(name, var) getsysctl(name, &(var), sizeof(var)) -+int getsysctl(const char *name, void *ptr, size_t len) { -+ size_t nlen = len; -+ if (sysctlbyname(name, ptr, &nlen, NULL, 0) == -1) { -+ GF_LOG(GF_LOG_ERROR, GF_LOG_CORE, ("[RTI] sysctl(%s...) failed: %s\n", name, strerror(errno))); -+ return -1; -+ } -+ if (nlen != len) { -+ GF_LOG(GF_LOG_ERROR, GF_LOG_CORE, ("[RTI] sysctl(%s...) expected %lu, got %lu\n", -+ name, (unsigned long)len, (unsigned long)nlen)); -+ return -1; -+ } -+ return 0; -+} -+ -+static int stathz = 128; -+ -+Bool gf_sys_get_rti_os(u32 refresh_time_ms, GF_SystemRTInfo *rti, u32 flags) -+{ -+ size_t length; -+ u32 entry_time; -+ struct kinfo_proc kinfo; -+ unsigned long result; -+ u32 u_k_time = 0, idle_time = 0; -+ u64 process_u_k_time = 0; -+ long cp_time[CPUSTATES]; -+ struct clockinfo clockinfo; -+ -+ entry_time = gf_sys_clock(); -+ if (last_update_time && (entry_time - last_update_time < refresh_time_ms)) { -+ memcpy(rti, &the_rti, sizeof(GF_SystemRTInfo)); -+ return 0; -+ } -+ -+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, the_rti.pid }; -+ length = sizeof(kinfo); -+ -+ if (sysctl(mib, 4, &kinfo, &length, NULL, 0) == 0) { -+ process_u_k_time = (u64)(kinfo.ki_rusage.ru_utime.tv_usec + kinfo.ki_rusage.ru_stime.tv_usec) + -+ (u64)(kinfo.ki_rusage.ru_utime.tv_sec + kinfo.ki_rusage.ru_stime.tv_sec) * (u64)1000000; -+ } -+ -+ if (GETSYSCTL("kern.cp_time", cp_time) == 0) { -+ u_k_time = cp_time[CP_USER] + cp_time[CP_NICE] + cp_time[CP_SYS] + cp_time[CP_INTR]; -+ idle_time = cp_time[CP_IDLE]; -+ } -+ -+ the_rti.physical_memory = the_rti.physical_memory_avail = 0; -+ if (GETSYSCTL("hw.physmem", result) == 0) { -+ the_rti.physical_memory = result; -+ } -+ -+ if (GETSYSCTL("hw.usermem", result) == 0) { -+ the_rti.physical_memory_avail = result; -+ } -+ -+ the_rti.sampling_instant = last_update_time; -+ -+ if (last_update_time) { -+ the_rti.sampling_period_duration = (entry_time - last_update_time); -+ the_rti.process_cpu_time_diff = (process_u_k_time - last_process_k_u_time) / 1000; -+ -+ /*oops, we have no choice but to assume 100% cpu usage during this period*/ -+ if (!u_k_time) { -+ the_rti.total_cpu_time_diff = the_rti.sampling_period_duration; -+ u_k_time = last_cpu_u_k_time + the_rti.sampling_period_duration; -+ the_rti.cpu_idle_time = 0; -+ the_rti.total_cpu_usage = 100; -+ if (!the_rti.process_cpu_time_diff) the_rti.process_cpu_time_diff = the_rti.total_cpu_time_diff; -+ the_rti.process_cpu_usage = (u32) ( 100 * the_rti.process_cpu_time_diff / the_rti.sampling_period_duration); -+ } else { -+ u64 samp_sys_time, cpu_idle_time; -+ /*move to ms (kern.cp_time gives times in 1/stathz unit*/ -+ the_rti.total_cpu_time_diff = (u_k_time - last_cpu_u_k_time) * 1000 / stathz; -+ -+ /*we're not that accurate....*/ -+ if (the_rti.total_cpu_time_diff > the_rti.sampling_period_duration) -+ the_rti.sampling_period_duration = the_rti.total_cpu_time_diff; -+ -+ if (!idle_time) idle_time = (the_rti.sampling_period_duration - the_rti.total_cpu_time_diff) * stathz / 1000; -+ samp_sys_time = u_k_time - last_cpu_u_k_time; -+ cpu_idle_time = idle_time - last_cpu_idle_time; -+ the_rti.total_cpu_usage = (u32) ( 100 * samp_sys_time / (cpu_idle_time + samp_sys_time ) ); -+ /*move to ms (kern.cp_time gives times in 1/stathz unit*/ -+ the_rti.cpu_idle_time = cpu_idle_time * 1000 / stathz; -+ if (!the_rti.process_cpu_time_diff) the_rti.process_cpu_time_diff = the_rti.total_cpu_time_diff; -+ the_rti.process_cpu_usage = (u32) ( stathz * the_rti.process_cpu_time_diff / (cpu_idle_time + samp_sys_time) / 10 ); -+ } -+ } else { -+ mem_at_startup = the_rti.physical_memory_avail; -+ if (GETSYSCTL("kern.clockrate", clockinfo) == 0) { -+ if (clockinfo.stathz > 0) { -+ stathz = clockinfo.stathz; -+ } -+ } -+ } -+ the_rti.process_memory = mem_at_startup - the_rti.physical_memory_avail; -+ -+#ifdef GPAC_MEMORY_TRACKING -+ the_rti.gpac_memory = gpac_allocated_memory; -+#endif -+ -+ last_process_k_u_time = process_u_k_time; -+ last_cpu_idle_time = idle_time; -+ last_cpu_u_k_time = u_k_time; -+ last_update_time = entry_time; -+ memcpy(rti, &the_rti, sizeof(GF_SystemRTInfo)); -+ return 1; -+} -+ - //linux - #else - diff --git a/multimedia/gpac-libgpac/files/patch-src_evg_raster__yuv.c b/multimedia/gpac-libgpac/files/patch-src_evg_raster__yuv.c deleted file mode 100644 index 1df26219359e..000000000000 --- a/multimedia/gpac-libgpac/files/patch-src_evg_raster__yuv.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/evg/raster_yuv.c.orig 2022-12-08 16:12:27 UTC -+++ src/evg/raster_yuv.c -@@ -1291,7 +1291,7 @@ GF_Err evg_surface_clear_yuyv(GF_EVGSurface *_surf, GF - #define set_u16_le(_ptr, val) { ((u8 *)_ptr)[0] = (val>>8)&0xFF; ((u8 *)_ptr)[1] = (val&0xFF); } - #define set_u16_be(_ptr, val) { *(u16 *) _ptr = (u16) val; } - --#define get_u16_le(val, _ptr) { val = ((u32) (*(u8 *) ptr+1)<< 8) | *(u8 *) ptr; } -+#define get_u16_le(val, _ptr) { val = ((u32) (*(u8 *) _ptr+1)<< 8) | *(u8 *) _ptr; } - #define get_u16_be(val, _ptr) { val = *(u16 *) (_ptr); } - - #else diff --git a/multimedia/gpac-libgpac/files/patch-src_quickjs_quickjs.c b/multimedia/gpac-libgpac/files/patch-src_quickjs_quickjs.c deleted file mode 100644 index 54e016d9ce30..000000000000 --- a/multimedia/gpac-libgpac/files/patch-src_quickjs_quickjs.c +++ /dev/null @@ -1,29 +0,0 @@ ---- src/quickjs/quickjs.c.orig 2020-06-16 16:17:17 UTC -+++ src/quickjs/quickjs.c -@@ -38,6 +38,8 @@ - #include <malloc/malloc.h> - #elif defined(__linux__) || defined(__NX__) - #include <malloc.h> -+#elif defined(__FreeBSD__) -+#include <malloc_np.h> - #endif - - #include "cutils.h" -@@ -1515,7 +1517,7 @@ static inline size_t js_def_malloc_usable_size(void *p - return _msize(ptr); - #elif defined(EMSCRIPTEN) - return 0; --#elif defined(__linux__) || defined(__NX__) -+#elif defined(__linux__) || defined(__NX__) || defined(__FreeBSD__) - return malloc_usable_size(ptr); - #else - /* change this to `return 0;` if compilation fails */ -@@ -1589,7 +1591,7 @@ static const JSMallocFunctions def_malloc_funcs = { - (size_t (*)(const void *))_msize, - #elif defined(EMSCRIPTEN) - NULL, --#elif defined(__linux__) || defined(__NX__) -+#elif defined(__linux__) || defined(__NX__) || defined(__FreeBSD__) - (size_t (*)(const void *))malloc_usable_size, - #else - /* change this to `NULL,` if compilation fails */ diff --git a/multimedia/gpac-libgpac/pkg-descr b/multimedia/gpac-libgpac/pkg-descr deleted file mode 100644 index 34bc1b4a1224..000000000000 --- a/multimedia/gpac-libgpac/pkg-descr +++ /dev/null @@ -1 +0,0 @@ -Gpac MPEG-4 Systems library and headers diff --git a/multimedia/gpac-libgpac/pkg-plist b/multimedia/gpac-libgpac/pkg-plist deleted file mode 100644 index f7f50878be54..000000000000 --- a/multimedia/gpac-libgpac/pkg-plist +++ /dev/null @@ -1,98 +0,0 @@ -include/gpac/00_doxy.h -include/gpac/Remotery.h -include/gpac/ait.h -include/gpac/atsc.h -include/gpac/avparse.h -include/gpac/base_coding.h -include/gpac/bifs.h -include/gpac/bitstream.h -include/gpac/cache.h -include/gpac/color.h -include/gpac/compositor.h -include/gpac/config_file.h -include/gpac/configuration.h -include/gpac/constants.h -include/gpac/crypt.h -include/gpac/crypt_tools.h -include/gpac/dash.h -include/gpac/download.h -include/gpac/dsmcc.h -include/gpac/dvb_mpe.h -include/gpac/events.h -include/gpac/events_constants.h -include/gpac/evg.h -include/gpac/filters.h -include/gpac/html5_media.h -include/gpac/html5_mse.h -include/gpac/ietf.h -include/gpac/internal/avilib.h -include/gpac/internal/bifs_dev.h -include/gpac/internal/bifs_tables.h -include/gpac/internal/camera.h -include/gpac/internal/compositor_dev.h -include/gpac/internal/crypt_dev.h -include/gpac/internal/dvb_mpe_dev.h -include/gpac/internal/ietf_dev.h -include/gpac/internal/isomedia_dev.h -include/gpac/internal/laser_dev.h -include/gpac/internal/m3u8.h -include/gpac/internal/media_dev.h -include/gpac/internal/mesh.h -include/gpac/internal/odf_dev.h -include/gpac/internal/odf_parse_common.h -include/gpac/internal/ogg.h -include/gpac/internal/reedsolomon.h -include/gpac/internal/scenegraph_dev.h -include/gpac/internal/swf_dev.h -include/gpac/internal/vobsub.h -include/gpac/ismacryp.h -include/gpac/iso639.h -include/gpac/isomedia.h -include/gpac/laser.h -include/gpac/list.h -include/gpac/main.h -include/gpac/maths.h -include/gpac/media_tools.h -include/gpac/mediaobject.h -include/gpac/module.h -include/gpac/modules/audio_out.h -include/gpac/modules/codec.h -include/gpac/modules/compositor_ext.h -include/gpac/modules/font.h -include/gpac/modules/hardcoded_proto.h -include/gpac/modules/ipmp.h -include/gpac/modules/video_out.h -include/gpac/mpd.h -include/gpac/mpeg4_odf.h -include/gpac/mpegts.h -include/gpac/network.h -include/gpac/nodes_mpeg4.h -include/gpac/nodes_svg.h -include/gpac/nodes_x3d.h -include/gpac/options.h -include/gpac/path2d.h -include/gpac/revision.h -include/gpac/rtp_streamer.h -include/gpac/scene_engine.h -include/gpac/scene_manager.h -include/gpac/scenegraph.h -include/gpac/scenegraph_svg.h -include/gpac/scenegraph_vrml.h -include/gpac/setup.h -include/gpac/svg_types.h -include/gpac/sync_layer.h -include/gpac/term_info.h -include/gpac/terminal.h -include/gpac/thread.h -include/gpac/token.h -include/gpac/tools.h -include/gpac/user.h -include/gpac/utf.h -include/gpac/version.h -include/gpac/webvtt.h -include/gpac/xml.h -lib/libgpac.so -lib/libgpac.so.10 -lib/libgpac.so.10.0.0 -lib/libgpac_static.a -libdata/pkgconfig/gpac.pc diff --git a/multimedia/gpac-mp4box/Makefile b/multimedia/gpac-mp4box/Makefile deleted file mode 100644 index 5b6ffe229b4e..000000000000 --- a/multimedia/gpac-mp4box/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -PORTNAME= mp4box -DISTVERSIONPREFIX= v -DISTVERSION= 1.0.0 -PORTREVISION= 1 -CATEGORIES= multimedia -PKGNAMEPREFIX= gpac- - -MAINTAINER= olivier@FreeBSD.org -COMMENT= Tool for merge mpg4 from Gpac -WWW= https://gpac.sourceforge.net/ - -LICENSE= LGPL21 - -LIB_DEPENDS= libgpac.so:multimedia/gpac-libgpac - -USES= cpe localbase:ldflags - -CPE_VENDOR= gpac - -USE_GITHUB= yes -GH_ACCOUNT= gpac -GH_PROJECT= gpac - -LDFLAGS+= -lgpac - -WRKSRC_SUBDIR= applications/mp4box -PLIST_FILES= bin/mp4box share/man/man1/mp4box.1.gz - -do-build: - cd ${WRKSRC} && ${CC} ${CFLAGS} ${LDFLAGS} -o mp4box \ - filedump.c fileimport.c live.c main.c - -do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/mp4box ${STAGEDIR}${PREFIX}/bin/mp4box - ${INSTALL_MAN} ${WRKSRC}/../../share/doc/man/mp4box.1 \ - ${STAGEDIR}${PREFIX}/share/man/man1/mp4box.1 - -.include <bsd.port.mk> diff --git a/multimedia/gpac-mp4box/distinfo b/multimedia/gpac-mp4box/distinfo deleted file mode 100644 index 81e63cd04359..000000000000 --- a/multimedia/gpac-mp4box/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1595078627 -SHA256 (gpac-gpac-v1.0.0_GH0.tar.gz) = ebcca41993e51706c891dba4e9fe03b59bc671c41910bc6c303ba3feeb7f1b20 -SIZE (gpac-gpac-v1.0.0_GH0.tar.gz) = 10289999 diff --git a/multimedia/gpac-mp4box/pkg-descr b/multimedia/gpac-mp4box/pkg-descr deleted file mode 100644 index 3ce363b3787a..000000000000 --- a/multimedia/gpac-mp4box/pkg-descr +++ /dev/null @@ -1,4 +0,0 @@ -mp4box is a mp4 container merge tool from gpac. - -Documentation here: -http://gpac.sourceforge.net/doc_mp4box.php diff --git a/multimedia/gpac/Makefile b/multimedia/gpac/Makefile new file mode 100644 index 000000000000..e35c9c38f790 --- /dev/null +++ b/multimedia/gpac/Makefile @@ -0,0 +1,67 @@ +PORTNAME= gpac +DISTVERSIONPREFIX= v +DISTVERSION= 2.4.0 +CATEGORIES= multimedia + +MAINTAINER= olivier@FreeBSD.org +COMMENT= Framework for processing and streaming content +WWW= https://gpac.io/ + +LICENSE= LGPL21 + +USES= gmake pkgconfig ssl + +USE_GITHUB= yes +GH_ACCOUNT= gpac + +CFLAGS+= -I${WRKSRC}/include -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib + +HAS_CONFIGURE= yes +CONFIGURE_ARGS+= --prefix="${PREFIX}" --cc="${CC}" \ + --X11-path="${LOCALBASE}" \ + --extra-cflags="${CFLAGS}" --extra-ldflags="${LDFLAGS}" +MAKE_ENV+= VERSION=${DISTVERSION} +USE_LDCONFIG= yes +OPTIONS_DEFINE= A52 CACA FAAD FFMPEG FREETYPE JPEG MAD NGHTTP2 OGG \ + OPENGL PNG SDL2 THEORA VORBIS X11 XVID +OPTIONS_DEFAULT= JPEG PNG +OPTIONS_SUB= yes + +A52_LIB_DEPENDS= liba52.so:audio/liba52 +A52_CONFIGURE_OFF= --use-a52=no +CACA_LIB_DEPENDS= libcaca.so:graphics/libcaca +CACA_CONFIGURE_OFF= --use-libcaca=no +FAAD_LIB_DEPENDS= libfaad.so:audio/faad +FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg +FFMPEG_CONFIGURE_OFF= --use-ffmpeg=no +FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2 +FREETYPE_CONFIGURE_OFF= --use-freetype=no +JPEG_USES= jpeg +JPEG_CONFIGURE_ON= --use-jpeg=system --use-openjpeg=no +JPEG_CONFIGURE_OFF= --use-jpeg=no +MAD_LIB_DEPENDS= libmad.so:audio/libmad +MAD_CONFIGURE_OFF= --use-mad=no +NGHTTP2_DESC= nghttp2 support +NGHTTP2_LIB_DEPENDS= libnghttp2.so:www/libnghttp2 +NGHTTP2_CONFIGURE_OFF= --use-nghttp2=no +OGG_LIB_DEPENDS= libogg.so:audio/libogg +OGG_CONFIGURE_OFF= --use-ogg=no +OPENGL_USES= gl +OPENGL_USE= GL=gl,glu +PNG_LIB_DEPENDS= libpng.so:graphics/png +PNG_CONFIGURE_OFF= --use-png=no +SDL2_DESC= SDL2 support +SDL2_USES= sdl +SDL2_USE= SDL=sdl2 +THEORA_LIB_DEPENDS= libtheora.so:multimedia/libtheora +THEORA_CONFIGURE_OFF= --use-theora=no +VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis +VORBIS_CONFIGURE_OFF= --use-vorbis=no +X11_USES= xorg desktop-file-utils +X11_USE= XORG=x11,xv,xext +X11_CONFIGURE_OFF= --disable-x11 --disable-x11-shm --disable-x11-xv +XVID_LIB_DEPENDS= libxvidcore.so:multimedia/xvid +XVID_CONFIGURE_OFF= --use-xvid=no + +.include <bsd.port.mk> diff --git a/multimedia/gpac/distinfo b/multimedia/gpac/distinfo new file mode 100644 index 000000000000..39dede94c872 --- /dev/null +++ b/multimedia/gpac/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1767613128 +SHA256 (gpac-gpac-v2.4.0_GH0.tar.gz) = 99c8c994d5364b963d18eff24af2576b38d38b3460df27d451248982ea16157a +SIZE (gpac-gpac-v2.4.0_GH0.tar.gz) = 9914579 diff --git a/multimedia/gpac/files/patch-Makefile b/multimedia/gpac/files/patch-Makefile new file mode 100644 index 000000000000..6d79679d8090 --- /dev/null +++ b/multimedia/gpac/files/patch-Makefile @@ -0,0 +1,61 @@ +--- Makefile.orig 2026-01-10 11:12:25 UTC ++++ Makefile +@@ -139,15 +139,16 @@ endif + $(INSTALL) $(INSTFLAGS) -m 644 $(SRC_PATH)/share/doc/man/gpac-filters.1 $(DESTDIR)$(prefix)/$(man_dir)/man1/ + $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac" + $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/res" +- $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/gui" +- $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/gui/icons" +- $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/gui/extensions" + $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/shaders" + $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/scripts" + $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/python" + $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/vis" + $(INSTALL) $(INSTFLAGS) -m 644 $(SRC_PATH)/share/default.cfg $(DESTDIR)$(prefix)/share/gpac/ + ++ifeq ($(CONFIG_X11),yes) ++ $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/gui" ++ $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/gui/icons" ++ $(INSTALL) -d "$(DESTDIR)$(prefix)/share/gpac/gui/extensions" + ifneq ($(CONFIG_DARWIN),yes) + $(INSTALL) -d "$(DESTDIR)$(prefix)/share/icons/hicolor/128x128/apps" + $(INSTALL) -d "$(DESTDIR)$(prefix)/share/applications" +@@ -155,28 +156,32 @@ endif + $(INSTALL) $(INSTFLAGS) -m 644 $(SRC_PATH)/share/res/gpac.png "$(DESTDIR)$(prefix)/share/icons/hicolor/128x128/apps/" + $(INSTALL) $(INSTFLAGS) -m 644 $(SRC_PATH)/share/gpac.desktop "$(DESTDIR)$(prefix)/share/applications/" + endif +- + $(INSTALL) $(INSTFLAGS) -m 644 $(SRC_PATH)/share/gui/gui.bt "$(DESTDIR)$(prefix)/share/gpac/gui/" + $(INSTALL) $(INSTFLAGS) -m 644 $(SRC_PATH)/share/gui/gui.js "$(DESTDIR)$(prefix)/share/gpac/gui/" + $(INSTALL) $(INSTFLAGS) -m 644 $(SRC_PATH)/share/gui/gwlib.js "$(DESTDIR)$(prefix)/share/gpac/gui/" ++endif + + +-ifeq ($(CONFIG_DARWIN),yes) +- cp $(SRC_PATH)/share/gui/icons/* "$(DESTDIR)$(prefix)/share/gpac/gui/icons/" +- cp -R $(SRC_PATH)/share/gui/extensions/* "$(DESTDIR)$(prefix)/share/gpac/gui/extensions/" ++ifneq (,$(filter yes,$(CONFIG_DARWIN) $(CONFIG_FREEBSD))) + cp $(SRC_PATH)/share/shaders/* "$(DESTDIR)$(prefix)/share/gpac/shaders/" + cp -R $(SRC_PATH)/share/scripts/* "$(DESTDIR)$(prefix)/share/gpac/scripts/" + cp -R $(SRC_PATH)/share/python/* "$(DESTDIR)$(prefix)/share/gpac/python/" + cp $(SRC_PATH)/share/res/* "$(DESTDIR)$(prefix)/share/gpac/res/" + cp -R $(SRC_PATH)/share/vis/* "$(DESTDIR)$(prefix)/share/gpac/vis/" ++ifeq ($(CONFIG_X11),yes) ++ cp $(SRC_PATH)/share/gui/icons/* "$(DESTDIR)$(prefix)/share/gpac/gui/icons/" ++ cp -R $(SRC_PATH)/share/gui/extensions/* "$(DESTDIR)$(prefix)/share/gpac/gui/extensions/" ++endif + else +- cp --no-preserve=mode,ownership,timestamp $(SRC_PATH)/share/gui/icons/* $(DESTDIR)$(prefix)/share/gpac/gui/icons/ +- cp -R --no-preserve=mode,ownership,timestamp $(SRC_PATH)/share/gui/extensions/* $(DESTDIR)$(prefix)/share/gpac/gui/extensions/ + cp --no-preserve=mode,ownership,timestamp $(SRC_PATH)/share/shaders/* $(DESTDIR)$(prefix)/share/gpac/shaders/ + cp -R --no-preserve=mode,ownership,timestamp $(SRC_PATH)/share/scripts/* $(DESTDIR)$(prefix)/share/gpac/scripts/ + cp -R --no-preserve=mode,ownership,timestamp $(SRC_PATH)/share/python/* $(DESTDIR)$(prefix)/share/gpac/python/ + cp --no-preserve=mode,ownership,timestamp $(SRC_PATH)/share/res/* $(DESTDIR)$(prefix)/share/gpac/res/ + cp -R --no-preserve=mode,ownership,timestamp $(SRC_PATH)/share/vis/* $(DESTDIR)$(prefix)/share/gpac/vis/ ++ifeq ($(CONFIG_X11),yes) ++ cp --no-preserve=mode,ownership,timestamp $(SRC_PATH)/share/gui/icons/* $(DESTDIR)$(prefix)/share/gpac/gui/icons/ ++ cp -R --no-preserve=mode,ownership,timestamp $(SRC_PATH)/share/gui/extensions/* $(DESTDIR)$(prefix)/share/gpac/gui/extensions/ ++endif + endif + + lninstall: diff --git a/multimedia/gpac/files/patch-configure b/multimedia/gpac/files/patch-configure new file mode 100644 index 000000000000..ed25fb3395a5 --- /dev/null +++ b/multimedia/gpac/files/patch-configure @@ -0,0 +1,11 @@ +--- configure.orig 2026-01-10 11:12:40 UTC ++++ configure +@@ -942,7 +942,7 @@ EOF + + FreeBSD) + make="gmake" +- LDFLAGS="$LDFLAGS -export-dynamic" ++ LDFLAGS="$LDFLAGS -rdynamic" + PTHREAD_CFLAGS=-pthread + PTHREAD_LDFLAGS=-pthread + freebsd="yes" diff --git a/multimedia/gpac/files/patch-src_filters_ff__avf.c b/multimedia/gpac/files/patch-src_filters_ff__avf.c new file mode 100644 index 000000000000..2441ff4a4d3c --- /dev/null +++ b/multimedia/gpac/files/patch-src_filters_ff__avf.c @@ -0,0 +1,17 @@ +--- src/filters/ff_avf.c.orig 2024-04-17 17:18:21 UTC ++++ src/filters/ff_avf.c +@@ -722,9 +722,13 @@ static GF_Err ffavf_process(GF_Filter *filter) + memcpy(buffer + j*opid->stride, frame->data[3] + j*frame->linesize[3], opid->width*opid->bpp); + } + } ++#if (LIBAVFORMAT_VERSION_MAJOR < 62) + if (frame->interlaced_frame) + gf_filter_pck_set_interlaced(pck, frame->top_field_first ? 1 : 2); +- ++#else ++ if (frame->flags & AV_FRAME_FLAG_INTERLACED) ++ gf_filter_pck_set_interlaced(pck, frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST ? 1 : 2); ++#endif + gf_filter_pck_set_sap(pck, GF_FILTER_SAP_1); + gf_filter_pck_set_cts(pck, frame->pts * opid->tb_num); + gf_filter_pck_send(pck); diff --git a/multimedia/gpac/files/patch-src_filters_ff__dec.c b/multimedia/gpac/files/patch-src_filters_ff__dec.c new file mode 100644 index 000000000000..a4cea3d2ef1d --- /dev/null +++ b/multimedia/gpac/files/patch-src_filters_ff__dec.c @@ -0,0 +1,16 @@ +--- src/filters/ff_dec.c.orig 2024-04-17 17:18:21 UTC ++++ src/filters/ff_dec.c +@@ -535,8 +535,13 @@ restart: + + gf_filter_pck_set_seek_flag(dst_pck, GF_FALSE); + ++#if (LIBAVFORMAT_VERSION_MAJOR < 62) + if (frame->interlaced_frame) + gf_filter_pck_set_interlaced(dst_pck, frame->top_field_first ? 2 : 1); ++#else ++ if (frame->flags & AV_FRAME_FLAG_INTERLACED) ++ gf_filter_pck_set_interlaced(dst_pck, frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST ? 2 : 1); ++#endif + + gf_filter_pck_send(dst_pck); + diff --git a/multimedia/gpac/files/patch-src_filters_ff__dmx.c b/multimedia/gpac/files/patch-src_filters_ff__dmx.c new file mode 100644 index 000000000000..c3c011b6b945 --- /dev/null +++ b/multimedia/gpac/files/patch-src_filters_ff__dmx.c @@ -0,0 +1,18 @@ +--- src/filters/ff_dmx.c.orig 2024-04-17 17:18:21 UTC ++++ src/filters/ff_dmx.c +@@ -1255,9 +1255,15 @@ GF_Err ffdmx_init_common(GF_Filter *filter, GF_FFDemux + } + gf_filter_pid_set_property(pid, GF_PROP_PID_MUX_INDEX, &PROP_UINT(i+1)); + ++#if (LIBAVFORMAT_VERSION_MAJOR < 62) + for (j=0; j<(u32) stream->nb_side_data; j++) { + ffdmx_parse_side_data(&stream->side_data[j], pid); + } ++#else ++ for (j=0; j<(u32) stream->codecpar->nb_coded_side_data; j++) { ++ ffdmx_parse_side_data(&stream->codecpar->coded_side_data[j], pid); ++ } ++#endif + + if (ctx->demuxer->nb_chapters) { + GF_PropertyValue p; diff --git a/multimedia/gpac/files/patch-src_filters_ff__enc.c b/multimedia/gpac/files/patch-src_filters_ff__enc.c new file mode 100644 index 000000000000..d2ad49579a29 --- /dev/null +++ b/multimedia/gpac/files/patch-src_filters_ff__enc.c @@ -0,0 +1,37 @@ +--- src/filters/ff_enc.c.orig 2024-04-17 17:18:21 UTC ++++ src/filters/ff_enc.c +@@ -588,12 +588,25 @@ static GF_Err ffenc_process_video(GF_Filter *filter, s + } + if (pck) { + ilaced = gf_filter_pck_get_interlaced(pck); ++#if (LIBAVFORMAT_VERSION_MAJOR < 62) + if (!ilaced) { + ctx->frame->interlaced_frame = 0; + } else { + ctx->frame->interlaced_frame = 1; + ctx->frame->top_field_first = (ilaced==2) ? 1 : 0; + } ++#else ++ if (!ilaced) { ++ ctx->frame->flags &= ~AV_FRAME_FLAG_INTERLACED; ++ } else { ++ ctx->frame->flags |= AV_FRAME_FLAG_INTERLACED; ++ if (ilaced==2) { ++ ctx->frame->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST; ++ } else { ++ ctx->frame->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST; ++ } ++ } ++#endif + ctx->frame->pts = ffenc_get_cts(ctx, pck); + ctx->frame->_avf_dur = gf_filter_pck_get_duration(pck); + } +@@ -706,7 +719,7 @@ static GF_Err ffenc_process_video(GF_Filter *filter, s + ctx->reconfig_pending = GF_FALSE; + ctx->force_reconfig = GF_FALSE; + GF_LOG(GF_LOG_DEBUG, GF_LOG_CODEC, ("[FFEnc] codec flush done, triggering reconfiguration\n")); +- avcodec_close(ctx->encoder); ++ avcodec_free_context(&ctx->encoder); + ctx->encoder = NULL; + ctx->setup_failed = 0; + e = ffenc_configure_pid_ex(filter, ctx->in_pid, GF_FALSE, GF_TRUE); diff --git a/multimedia/gpac/files/patch-src_filters_ff__mx.c b/multimedia/gpac/files/patch-src_filters_ff__mx.c new file mode 100644 index 000000000000..a5ddd4da0de5 --- /dev/null +++ b/multimedia/gpac/files/patch-src_filters_ff__mx.c @@ -0,0 +1,77 @@ +--- src/filters/ff_mx.c.orig 2024-04-17 17:18:21 UTC ++++ src/filters/ff_mx.c +@@ -1330,7 +1330,14 @@ static GF_Err ffmx_configure_pid(GF_Filter *filter, GF + u8 *data = av_malloc(sizeof(u32) * 9); + if (data) { + memcpy(data, p->value.uint_list.vals, sizeof(u32)*9); ++#if (LIBAVFORMAT_VERSION_MAJOR < 62) + av_stream_add_side_data(st->stream, AV_PKT_DATA_DISPLAYMATRIX, data, 32*9); ++#else ++ av_packet_side_data_add(&st->stream->codecpar->coded_side_data, ++ &st->stream->codecpar->nb_coded_side_data, ++ AV_PKT_DATA_DISPLAYMATRIX, ++ data, 32 * 9, 0); ++#endif + } + } + #if (LIBAVCODEC_VERSION_MAJOR>58) +@@ -1340,7 +1347,14 @@ static GF_Err ffmx_configure_pid(GF_Filter *filter, GF + u8 *data = av_malloc(p->value.data.size); + if (data) { + memcpy(data, p->value.data.ptr, p->value.data.size); ++#if (LIBAVFORMAT_VERSION_MAJOR < 62) + av_stream_add_side_data(st->stream, AV_PKT_DATA_ICC_PROFILE, data, p->value.data.size); ++#else ++ av_packet_side_data_add(&st->stream->codecpar->coded_side_data, ++ &st->stream->codecpar->nb_coded_side_data, ++ AV_PKT_DATA_ICC_PROFILE, ++ data, p->value.data.size, 0); ++#endif + } + } + //clli +@@ -1351,7 +1365,14 @@ static GF_Err ffmx_configure_pid(GF_Filter *filter, GF + if (data) { + data->MaxCLL = gf_bs_read_u16(bs); + data->MaxFALL = gf_bs_read_u16(bs); ++#if (LIBAVFORMAT_VERSION_MAJOR < 62) + av_stream_add_side_data(st->stream, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, (u8*) data, sizeof(AVContentLightMetadata)); ++#else ++ av_packet_side_data_add(&st->stream->codecpar->coded_side_data, ++ &st->stream->codecpar->nb_coded_side_data, ++ AV_PKT_DATA_CONTENT_LIGHT_LEVEL, ++ (u8*) data, sizeof(AVContentLightMetadata), 0); ++#endif + } + gf_bs_del(bs); + } +@@ -1385,7 +1406,14 @@ static GF_Err ffmx_configure_pid(GF_Filter *filter, GF + data->max_luminance.den = luma_den; + data->min_luminance.num = gf_bs_read_u32(bs); + data->min_luminance.den = luma_den; ++#if (LIBAVFORMAT_VERSION_MAJOR < 62) + av_stream_add_side_data(st->stream, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, (u8*) data, sizeof(AVMasteringDisplayMetadata)); ++#else ++ av_packet_side_data_add(&st->stream->codecpar->coded_side_data, ++ &st->stream->codecpar->nb_coded_side_data, ++ AV_PKT_DATA_MASTERING_DISPLAY_METADATA, ++ (u8*) data, sizeof(AVMasteringDisplayMetadata), 0); ++#endif + } + gf_bs_del(bs); + } +@@ -1403,7 +1431,14 @@ static GF_Err ffmx_configure_pid(GF_Filter *filter, GF + data->el_present_flag = gf_bs_read_int(bs, 1); + data->bl_present_flag = gf_bs_read_int(bs, 1); + data->dv_bl_signal_compatibility_id = gf_bs_read_int(bs, 4); ++#if (LIBAVFORMAT_VERSION_MAJOR < 62) + av_stream_add_side_data(st->stream, AV_PKT_DATA_DOVI_CONF, (u8*) data, sizeof(Ref_FFAVDoviRecord)); ++#else ++ av_packet_side_data_add(&st->stream->codecpar->coded_side_data, ++ &st->stream->codecpar->nb_coded_side_data, ++ AV_PKT_DATA_DOVI_CONF, ++ (u8*) data, sizeof(Ref_FFAVDoviRecord), 0); ++#endif + } + gf_bs_del(bs); + } diff --git a/multimedia/gpac/files/patch-src_utils_os__config__init.c b/multimedia/gpac/files/patch-src_utils_os__config__init.c new file mode 100644 index 000000000000..08e7e4df83c5 --- /dev/null +++ b/multimedia/gpac/files/patch-src_utils_os__config__init.c @@ -0,0 +1,38 @@ +--- src/utils/os_config_init.c.orig 2026-01-10 11:13:13 UTC ++++ src/utils/os_config_init.c +@@ -335,7 +335,7 @@ static Bool get_default_install_path(char *file_path, + #else + + //dlinfo +-#if defined(__DARWIN__) || defined(__APPLE__) ++#if defined(__DARWIN__) || defined(__APPLE__) || defined(__FreeBSD__) + #include <dlfcn.h> + + typedef Dl_info _Dl_info; +@@ -357,7 +357,7 @@ static Bool get_default_install_path(char *file_path, + { + char app_path[GF_MAX_PATH]; + char *sep; +-#if (defined(__DARWIN__) || defined(__APPLE__) || defined(GPAC_CONFIG_LINUX)) ++#if (defined(__DARWIN__) || defined(__APPLE__) || defined(GPAC_CONFIG_LINUX) || defined(__FreeBSD__)) + u32 size; + #endif + +@@ -419,7 +419,7 @@ static Bool get_default_install_path(char *file_path, + return 1; + } + +-#elif defined(GPAC_CONFIG_LINUX) ++#elif defined(GPAC_CONFIG_LINUX) || defined(__FreeBSD__) + size = readlink("/proc/self/exe", file_path, GF_MAX_PATH-1); + if (size>0) { + file_path[size] = 0; +@@ -456,7 +456,7 @@ static Bool get_default_install_path(char *file_path, + } + + if (path_type==GF_PATH_LIB) { +-#if defined(__DARWIN__) || defined(__APPLE__) || defined(GPAC_CONFIG_LINUX) ++#if defined(__DARWIN__) || defined(__APPLE__) || defined(GPAC_CONFIG_LINUX) || defined(__FreeBSD__) + _Dl_info dl_info; + dl_info.dli_fname = NULL; + if (dladdr((void *)get_default_install_path, &dl_info) diff --git a/multimedia/gpac/files/patch-src_utils_os__divers.c b/multimedia/gpac/files/patch-src_utils_os__divers.c new file mode 100644 index 000000000000..852b8c643aa7 --- /dev/null +++ b/multimedia/gpac/files/patch-src_utils_os__divers.c @@ -0,0 +1,12 @@ +--- src/utils/os_divers.c.orig 2026-01-10 11:14:36 UTC ++++ src/utils/os_divers.c +@@ -2301,6 +2301,9 @@ Bool gf_sys_get_rti_os(u32 refresh_time_ms, GF_SystemR *** 373 LINES SKIPPED ***home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69692a22.3d28d.43bdb050>
