diff --git a/net/freerdp3/Makefile b/net/freerdp3/Makefile index ecb3f5fb776c..d466a5b3409f 100644 --- a/net/freerdp3/Makefile +++ b/net/freerdp3/Makefile @@ -1,5 +1,5 @@ PORTNAME= freerdp -DISTVERSION= 3.12.0 +DISTVERSION= 3.13.0 CATEGORIES= net comms MASTER_SITES= https://pub.freerdp.com/releases/ \ https://github.com/FreeRDP/FreeRDP/releases/download/${DISTVERSION}/ @@ -39,15 +39,17 @@ CMAKE_OFF= CHANNEL_TSMF WITH_DSP_EXPERIMENTAL WITH_FUSE WITH_GPROF \ PLIST_SUB+= PATCHVERSION="${DISTVERSION}" PLIST_SUB+= MAJORVERSION="${DISTVERSION:R:R}" -OPTIONS_DEFINE= ALSA BROKENFOCUS CUPS FAAC FAAD FDKAAC FFMPEG GSM ICU \ - JPEG LAME MANPAGES OPENH264 OPUS PCSC PKCS11 \ - PULSEAUDIO RDPECAM SDL2 SDL3 SOXR URIPARSER WAYLAND X11 +OPTIONS_DEFINE= ALSA BROKENFOCUS CUPS FAAC FAAD FDKAAC FFMPEG \ + GSM ICU JPEG LAME MANPAGES OPENH264 OPUS PCSC \ + PKCS11 PULSEAUDIO RDPECAM SDL2 SDL3 SOXR \ + URIPARSER WAYLAND X11 OPTIONS_DEFINE_aarch64= SIMD OPTIONS_DEFINE_amd64= SIMD OPTIONS_DEFINE_armv7= SIMD OPTIONS_DEFINE_i386= SIMD -OPTIONS_DEFAULT= AAD CUPS GSSAPI_HEIMDAL ICU JSON_C KEYBOARD_LAYOUT \ - MANPAGES SDL2 SDL3 SWSCALE TIMEZONE_FILE WAYLAND WEBKIT X11 +OPTIONS_DEFAULT= AAD CUPS GSSAPI_HEIMDAL ICU JSON_C \ + KEYBOARD_LAYOUT MANPAGES RDPECAM SDL2 SDL3 \ + SWSCALE TIMEZONE_FILE WAYLAND WEBKIT X11 OPTIONS_DEFAULT_aarch64= SIMD OPTIONS_DEFAULT_amd64= SIMD OPTIONS_DEFAULT_armv7= SIMD @@ -72,7 +74,7 @@ KEYBOARD_LAYOUT_DESC= Use keyboard definitions from JSON file OPENH264_DESC= H.264 video codec support via OpenH264 PCSC_DESC= Smart card support (smart card device redirection) PKCS11_DESC= Use security/pkcs11-helper -RDPECAM_DESC= RDP webcam redirection (experimental) +RDPECAM_DESC= RDP webcam redirection REQUIRE_JSON_DESC= Options that require JSON SDL2_DESC= Build FreeRDP SDL 2 client SDL3_DESC= Build FreeRDP SDL 3 client @@ -160,7 +162,8 @@ PNG_CMAKE_BOOL= WINPR_UTILS_IMAGE_PNG PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= WITH_PULSE -RDPECAM_BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev.h:multimedia/v4l_compat +RDPECAM_BUILD_DEPENDS= ${LOCALBASE}/include/linux/uvcvideo.h:multimedia/v4l_compat \ + ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat RDPECAM_LIB_DEPENDS= libv4l2.so:multimedia/libv4l \ libv4lconvert.so:multimedia/libv4l RDPECAM_CMAKE_BOOL= CHANNEL_RDPECAM_CLIENT diff --git a/net/freerdp3/distinfo b/net/freerdp3/distinfo index aabb91050cff..3507d5170a2f 100644 --- a/net/freerdp3/distinfo +++ b/net/freerdp3/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1739573323 -SHA256 (freerdp-3.12.0.tar.gz) = b08c1bfe867cde0feb3e51f72f32ee3fa3a37acbd20d6fdeb5a0f614b549f5cb -SIZE (freerdp-3.12.0.tar.gz) = 10385447 +TIMESTAMP = 1741342654 +SHA256 (freerdp-3.13.0.tar.gz) = e66c25780ba8abc0f3d43bdc2e73bd47a0a28fba1dca6f09096cbc320c6622bf +SIZE (freerdp-3.13.0.tar.gz) = 10422976 diff --git a/net/freerdp3/files/patch-channels_rdpecam_client_v4l_uvc__h264.c b/net/freerdp3/files/patch-channels_rdpecam_client_v4l_uvc__h264.c deleted file mode 100644 index e1659fa80cde..000000000000 --- a/net/freerdp3/files/patch-channels_rdpecam_client_v4l_uvc__h264.c +++ /dev/null @@ -1,114 +0,0 @@ ---- channels/rdpecam/client/v4l/uvc_h264.c.orig 2025-02-14 08:49:47 UTC -+++ channels/rdpecam/client/v4l/uvc_h264.c -@@ -25,9 +25,111 @@ - - #include - -+#ifndef __FreeBSD__ -+ - #include - #include - #include -+ -+#else // __FreeBSD__ -+ -+#include -+#include -+#include -+#include -+ -+/* -+ * Dynamic controls -+ */ -+ -+/* Data types for UVC control data */ -+#define UVC_CTRL_DATA_TYPE_RAW 0 -+#define UVC_CTRL_DATA_TYPE_SIGNED 1 -+#define UVC_CTRL_DATA_TYPE_UNSIGNED 2 -+#define UVC_CTRL_DATA_TYPE_BOOLEAN 3 -+#define UVC_CTRL_DATA_TYPE_ENUM 4 -+#define UVC_CTRL_DATA_TYPE_BITMASK 5 -+ -+/* Control flags */ -+#define UVC_CTRL_FLAG_SET_CUR (1 << 0) -+#define UVC_CTRL_FLAG_GET_CUR (1 << 1) -+#define UVC_CTRL_FLAG_GET_MIN (1 << 2) -+#define UVC_CTRL_FLAG_GET_MAX (1 << 3) -+#define UVC_CTRL_FLAG_GET_RES (1 << 4) -+#define UVC_CTRL_FLAG_GET_DEF (1 << 5) -+/* Control should be saved at suspend and restored at resume. */ -+#define UVC_CTRL_FLAG_RESTORE (1 << 6) -+/* Control can be updated by the camera. */ -+#define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7) -+/* Control supports asynchronous reporting */ -+#define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8) -+ -+#define UVC_CTRL_FLAG_GET_RANGE \ -+ (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \ -+ UVC_CTRL_FLAG_GET_MAX | UVC_CTRL_FLAG_GET_RES | \ -+ UVC_CTRL_FLAG_GET_DEF) -+ -+struct uvc_menu_info { -+ uint32_t value; -+ uint8_t name[32]; -+}; -+ -+struct uvc_xu_control_mapping { -+ uint32_t id; -+ uint8_t name[32]; -+ uint8_t entity[16]; -+ uint8_t selector; -+ -+ uint8_t size; -+ uint8_t offset; -+ uint32_t v4l2_type; -+ uint32_t data_type; -+ -+ struct uvc_menu_info *menu_info; -+ uint32_t menu_count; -+ -+ uint32_t reserved[4]; -+}; -+ -+struct uvc_xu_control_query { -+ uint8_t unit; -+ uint8_t selector; -+ uint8_t query; /* Video Class-Specific Request Code, */ -+ /* defined in linux/usb/video.h A.8. */ -+ uint16_t size; -+ uint8_t *data; -+}; -+ -+#define UVCIOC_CTRL_MAP _IOWR('u', 0x20, struct uvc_xu_control_mapping) -+#define UVCIOC_CTRL_QUERY _IOWR('u', 0x21, struct uvc_xu_control_query) -+ -+/* -+ * Metadata node -+ */ -+ -+/** -+ * struct uvc_meta_buf - metadata buffer building block -+ * @ns: system timestamp of the payload in nanoseconds -+ * @sof: USB Frame Number -+ * @length: length of the payload header -+ * @flags: payload header flags -+ * @buf: optional device-specific header data -+ * -+ * UVC metadata nodes fill buffers with possibly multiple instances of this -+ * struct. The first two fields are added by the driver, they can be used for -+ * clock synchronisation. The rest is an exact copy of a UVC payload header. -+ * Only complete objects with complete buffers are included. Therefore it's -+ * always sizeof(meta->ts) + sizeof(meta->sof) + meta->length bytes large. -+ */ -+struct uvc_meta_buf { -+ uint64_t ns; -+ uint16_t sof; -+ uint8_t length; -+ uint8_t flags; -+ uint8_t buf[]; -+} __packed; -+ -+#endif // __FreeBSD__ - - #include "uvc_h264.h" -