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 + + 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 ***