From 98e2d1025d02d8cd565a6f34ad4b7be3acf16c57 Mon Sep 17 00:00:00 2001 From: Gleb Popov Date: Wed, 5 Aug 2020 17:22:26 +0000 Subject: [PATCH] multimedia/gstreamer1-vaapi: Add a patch to fix a crash. PR: 245722 Submitted by: Oleg Sidorkin More context: https://github.com/FreeBSDDesktop/libudev-devd/issues/19 --- multimedia/gstreamer1-vaapi/Makefile | 1 + ...-gst-libs_gst_vaapi_gstvaapidisplay__drm.c | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 multimedia/gstreamer1-vaapi/files/patch-gst-libs_gst_vaapi_gstvaapidisplay__drm.c diff --git a/multimedia/gstreamer1-vaapi/Makefile b/multimedia/gstreamer1-vaapi/Makefile index 034870e0b633..52ec2326d4fc 100644 --- a/multimedia/gstreamer1-vaapi/Makefile +++ b/multimedia/gstreamer1-vaapi/Makefile @@ -3,6 +3,7 @@ PORTNAME= gstreamer1-vaapi PORTVERSION= 1.16.2 +PORTREVISION= 1 CATEGORIES= multimedia MASTER_SITES= https://gstreamer.freedesktop.org/src/gstreamer-vaapi/ DISTNAME= gstreamer-vaapi-${PORTVERSION} diff --git a/multimedia/gstreamer1-vaapi/files/patch-gst-libs_gst_vaapi_gstvaapidisplay__drm.c b/multimedia/gstreamer1-vaapi/files/patch-gst-libs_gst_vaapi_gstvaapidisplay__drm.c new file mode 100644 index 000000000000..270a6c20164d --- /dev/null +++ b/multimedia/gstreamer1-vaapi/files/patch-gst-libs_gst_vaapi_gstvaapidisplay__drm.c @@ -0,0 +1,22 @@ +Workaround for an incompatibility bug in our libudev-devd. +See https://github.com/FreeBSDDesktop/libudev-devd/issues/19 + +--- gst-libs/gst/vaapi/gstvaapidisplay_drm.c.orig 2019-12-02 20:09:01 UTC ++++ gst-libs/gst/vaapi/gstvaapidisplay_drm.c +@@ -108,6 +108,7 @@ get_default_device_path (GstVaapiDisplay * display) + udev_list_entry_foreach (l, udev_enumerate_get_list_entry (e)) { + syspath = udev_list_entry_get_name (l); + device = udev_device_new_from_syspath (udev, syspath); ++#ifdef __linux__ + parent = udev_device_get_parent (device); + + for (i = 0; allowed_subsystems[i] != NULL; i++) +@@ -119,7 +120,7 @@ get_default_device_path (GstVaapiDisplay * display) + udev_device_unref (device); + continue; + } +- ++#endif + devpath = udev_device_get_devnode (device); + fd = open (devpath, O_RDWR | O_CLOEXEC); + if (fd < 0) {