import gstreamer1-plugins-bad-free-1.18.4-5.el9

This commit is contained in:
CentOS Sources 2022-05-17 05:20:44 -04:00 committed by Stepan Oksanichenko
commit 0927ece82e
7 changed files with 1652 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/gst-plugins-bad-free-1.18.4.tar.xz

View File

@ -0,0 +1 @@
c8b36955ec53ee69e60c0e25d5340104f41e369b SOURCES/gst-plugins-bad-free-1.18.4.tar.xz

View File

@ -0,0 +1,27 @@
From 3e57512bea64ae9d231441caae96037a96aef2bf Mon Sep 17 00:00:00 2001
From: Troy Dawson <tdawson@redhat.com>
Date: Mon, 19 Oct 2020 14:09:32 -0700
Subject: [PATCH] No va test when va disabled
---
tests/examples/meson.build | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tests/examples/meson.build b/tests/examples/meson.build
index a41fc16..a73c81d 100644
--- a/tests/examples/meson.build
+++ b/tests/examples/meson.build
@@ -13,7 +13,9 @@ if not get_option('opencv').disabled()
subdir('opencv', if_found: opencv_dep)
endif
subdir('uvch264')
-subdir('va')
+if not get_option('va').disabled()
+ subdir('va')
+endif
subdir('waylandsink')
subdir('webrtc')
--
2.18.4

View File

@ -0,0 +1,32 @@
From 9815fd1e2ab13f765b75b39e3764fe1e860cb251 Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Thu, 10 Sep 2020 10:35:11 -0700
Subject: [PATCH] examples: only check opencv_dep if option is not disabled
(#1406)
We can't check opencv_dep if the option is disabled because it's
never initialized in that case, since 833a65cc .
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
tests/examples/meson.build | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tests/examples/meson.build b/tests/examples/meson.build
index 2eba1d47e..a41fc1679 100644
--- a/tests/examples/meson.build
+++ b/tests/examples/meson.build
@@ -9,7 +9,9 @@ subdir('mpegts')
subdir('msdk')
subdir('mxf')
subdir('nvcodec')
-subdir('opencv', if_found: opencv_dep)
+if not get_option('opencv').disabled()
+ subdir('opencv', if_found: opencv_dep)
+endif
subdir('uvch264')
subdir('va')
subdir('waylandsink')
--
2.28.0

View File

@ -0,0 +1,239 @@
From 3abf31c7cf5b38dc4425b79d30c8f582d325010b Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Wed, 31 Mar 2021 16:18:04 +0200
Subject: [PATCH] vulkan: provide a custom VK_DEFINE_NON_DISPATCHABLE_HANDLE
If the application did not define one yet, define our own
VK_DEFINE_NON_DISPATCHABLE_HANDLE that is independent of the
architecture.
Vulkan, by default, provides a define that depends on the architecture,
which causes the symbol type to be different. This causes an
architecture dependent .gir file, which then causes multilib
installation problems because the .gir files can't be shared.
Make it possible to override the format specifier and provide
a default one that is compatible with the default non dispatchable
handle.
Return VK_NULL_HANDLE from functions that return a non-dispatchable
handle.
Fixes #1566
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2130>
---
.../gst/vulkan/android/gstvkwindow_android.c | 4 ++--
gst-libs/gst/vulkan/cocoa/gstvkwindow_cocoa.m | 4 ++--
gst-libs/gst/vulkan/gstvkapi.h | 18 ++++++++++++++++++
gst-libs/gst/vulkan/gstvkhandle.h | 7 ++++---
gst-libs/gst/vulkan/ios/gstvkwindow_ios.m | 6 +++---
.../gst/vulkan/wayland/gstvkwindow_wayland.c | 4 ++--
gst-libs/gst/vulkan/win32/gstvkwindow_win32.c | 4 ++--
gst-libs/gst/vulkan/xcb/gstvkwindow_xcb.c | 4 ++--
sys/applemedia/videotexturecache-vulkan.mm | 4 ++--
9 files changed, 37 insertions(+), 18 deletions(-)
diff --git a/gst-libs/gst/vulkan/android/gstvkwindow_android.c b/gst-libs/gst/vulkan/android/gstvkwindow_android.c
index c1bd866ac..20a1c9cbe 100644
--- a/gst-libs/gst/vulkan/android/gstvkwindow_android.c
+++ b/gst-libs/gst/vulkan/android/gstvkwindow_android.c
@@ -163,14 +163,14 @@ gst_vulkan_window_android_get_surface (GstVulkanWindow * window,
if (!window_android->CreateAndroidSurface) {
g_set_error_literal (error, GST_VULKAN_ERROR, VK_ERROR_FEATURE_NOT_PRESENT,
"Could not retrieve \"vkCreateAndroidSurfaceKHR\" function pointer");
- return 0;
+ return VK_NULL_HANDLE;
}
err =
window_android->CreateAndroidSurface (window->display->instance->instance,
&info, NULL, &ret);
if (gst_vulkan_error_to_g_error (err, error, "vkCreateAndroidSurfaceKHR") < 0)
- return 0;
+ return VK_NULL_HANDLE;
return ret;
}
diff --git a/gst-libs/gst/vulkan/cocoa/gstvkwindow_cocoa.m b/gst-libs/gst/vulkan/cocoa/gstvkwindow_cocoa.m
index f00726267..e95da1278 100644
--- a/gst-libs/gst/vulkan/cocoa/gstvkwindow_cocoa.m
+++ b/gst-libs/gst/vulkan/cocoa/gstvkwindow_cocoa.m
@@ -226,14 +226,14 @@ gst_vulkan_window_cocoa_get_surface (GstVulkanWindow * window, GError ** error)
if (!window_cocoa->CreateMacOSSurface) {
g_set_error_literal (error, GST_VULKAN_ERROR, VK_ERROR_FEATURE_NOT_PRESENT,
"Could not retrieve \"vkCreateMacOSSurfaceMVK\" function pointer");
- return NULL;
+ return VK_NULL_HANDLE;
}
err =
window_cocoa->CreateMacOSSurface (window->display->instance->instance, &info,
NULL, &ret);
if (gst_vulkan_error_to_g_error (err, error, "vkCreateMacOSSurfaceMVK") < 0)
- return NULL;
+ return VK_NULL_HANDLE;
return ret;
}
diff --git a/gst-libs/gst/vulkan/gstvkapi.h b/gst-libs/gst/vulkan/gstvkapi.h
index 9d223201f..5889a7d2e 100644
--- a/gst-libs/gst/vulkan/gstvkapi.h
+++ b/gst-libs/gst/vulkan/gstvkapi.h
@@ -31,6 +31,24 @@
#include <gst/vulkan/vulkan_fwd.h>
#include <gst/vulkan/vulkan-enumtypes.h>
+/**
+ * VK_DEFINE_NON_DISPATCHABLE_HANDLE:
+ *
+ * Allow applications to override the VK_DEFINE_NON_DISPATCHABLE_HANDLE
+ * but provide our own version otherwise. The default vulkan define
+ * provides a different symbol type depending on the architecture and
+ * this causes multilib problems because the generated .gir files are
+ * different.
+ *
+ * Also make sure to provide a suitable GST_VULKAN_NON_DISPATCHABLE_HANDLE_FORMAT
+ * implementation when redefining VK_DEFINE_NON_DISPATCHABLE_HANDLE.
+ *
+ * Since: 1.20
+ */
+#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
+#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
+#endif
+
#include <vulkan/vulkan_core.h>
#endif /* __GST_VULKAN_API_H__ */
diff --git a/gst-libs/gst/vulkan/gstvkhandle.h b/gst-libs/gst/vulkan/gstvkhandle.h
index 885b4bc71..2aa6f01f7 100644
--- a/gst-libs/gst/vulkan/gstvkhandle.h
+++ b/gst-libs/gst/vulkan/gstvkhandle.h
@@ -54,11 +54,12 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(GstVulkanHandleTypedef)
*
* The printf format specifier for raw Vulkan non dispatchable handles.
*
+ * When redefining VK_DEFINE_NON_DISPATCHABLE_HANDLE, also make sure
+ * to redefine a suitable printf format specifier.
+ *
* Since: 1.18
*/
-#if GLIB_SIZEOF_VOID_P == 8
-# define GST_VULKAN_NON_DISPATCHABLE_HANDLE_FORMAT "p"
-#else
+#if !defined(GST_VULKAN_NON_DISPATCHABLE_HANDLE_FORMAT)
# define GST_VULKAN_NON_DISPATCHABLE_HANDLE_FORMAT G_GUINT64_FORMAT
#endif
diff --git a/gst-libs/gst/vulkan/ios/gstvkwindow_ios.m b/gst-libs/gst/vulkan/ios/gstvkwindow_ios.m
index 84fc33deb..3bc8e167d 100644
--- a/gst-libs/gst/vulkan/ios/gstvkwindow_ios.m
+++ b/gst-libs/gst/vulkan/ios/gstvkwindow_ios.m
@@ -203,7 +203,7 @@ gst_vulkan_window_ios_get_surface (GstVulkanWindow * window, GError ** error)
g_set_error_literal (error, GST_VULKAN_ERROR,
VK_ERROR_INITIALIZATION_FAILED,
"No layer to retrieve surface for. Has create_window() been called?");
- return 0;
+ return VK_NULL_HANDLE;
}
info.sType = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK;
@@ -218,14 +218,14 @@ gst_vulkan_window_ios_get_surface (GstVulkanWindow * window, GError ** error)
if (!window_ios->CreateIOSSurface) {
g_set_error_literal (error, GST_VULKAN_ERROR, VK_ERROR_FEATURE_NOT_PRESENT,
"Could not retrieve \"vkCreateIOSSurfaceMVK\" function pointer");
- return 0;
+ return VK_NULL_HANDLE;
}
err =
window_ios->CreateIOSSurface (window->display->instance->instance, &info,
NULL, &ret);
if (gst_vulkan_error_to_g_error (err, error, "vkCreateIOSSurfaceMVK") < 0)
- return 0;
+ return VK_NULL_HANDLE;
return ret;
}
diff --git a/gst-libs/gst/vulkan/wayland/gstvkwindow_wayland.c b/gst-libs/gst/vulkan/wayland/gstvkwindow_wayland.c
index eda063de9..c55bd3f8c 100644
--- a/gst-libs/gst/vulkan/wayland/gstvkwindow_wayland.c
+++ b/gst-libs/gst/vulkan/wayland/gstvkwindow_wayland.c
@@ -268,14 +268,14 @@ gst_vulkan_window_wayland_get_surface (GstVulkanWindow * window,
if (!window_wl->CreateWaylandSurface) {
g_set_error_literal (error, GST_VULKAN_ERROR, VK_ERROR_FEATURE_NOT_PRESENT,
"Could not retrieve \"vkCreateWaylandSurfaceKHR\" function pointer");
- return NULL;
+ return VK_NULL_HANDLE;
}
err =
window_wl->CreateWaylandSurface (window->display->instance->instance,
&info, NULL, &ret);
if (gst_vulkan_error_to_g_error (err, error, "vkCreateWaylandSurfaceKHR") < 0)
- return NULL;
+ return VK_NULL_HANDLE;
return ret;
}
diff --git a/gst-libs/gst/vulkan/win32/gstvkwindow_win32.c b/gst-libs/gst/vulkan/win32/gstvkwindow_win32.c
index 57e2c663f..dd8767155 100644
--- a/gst-libs/gst/vulkan/win32/gstvkwindow_win32.c
+++ b/gst-libs/gst/vulkan/win32/gstvkwindow_win32.c
@@ -393,7 +393,7 @@ gst_vulkan_window_win32_get_surface (GstVulkanWindow * window, GError ** error)
if (!window_win32->CreateWin32Surface) {
g_set_error_literal (error, GST_VULKAN_ERROR, VK_ERROR_FEATURE_NOT_PRESENT,
"Could not retrieve \"vkCreateWin32SurfaceKHR\" function pointer");
- return NULL;
+ return VK_NULL_HANDLE;
}
err =
@@ -401,7 +401,7 @@ gst_vulkan_window_win32_get_surface (GstVulkanWindow * window, GError ** error)
&info, NULL, &ret);
if (gst_vulkan_error_to_g_error (err, error, "vkCreateWin32SurfaceKHR") < 0)
- return NULL;
+ return VK_NULL_HANDLE;
return ret;
}
diff --git a/gst-libs/gst/vulkan/xcb/gstvkwindow_xcb.c b/gst-libs/gst/vulkan/xcb/gstvkwindow_xcb.c
index b0f1ab4d0..4021fe718 100644
--- a/gst-libs/gst/vulkan/xcb/gstvkwindow_xcb.c
+++ b/gst-libs/gst/vulkan/xcb/gstvkwindow_xcb.c
@@ -283,14 +283,14 @@ gst_vulkan_window_xcb_get_surface (GstVulkanWindow * window, GError ** error)
if (!window_xcb->CreateXcbSurface) {
g_set_error_literal (error, GST_VULKAN_ERROR, VK_ERROR_FEATURE_NOT_PRESENT,
"Could not retrieve \"vkCreateXcbSurfaceKHR\" function pointer");
- return NULL;
+ return VK_NULL_HANDLE;
}
err =
window_xcb->CreateXcbSurface (window->display->instance->instance, &info,
NULL, &ret);
if (gst_vulkan_error_to_g_error (err, error, "vkCreateXcbSurfaceKHR") < 0)
- return NULL;
+ return VK_NULL_HANDLE;
return ret;
}
diff --git a/sys/applemedia/videotexturecache-vulkan.mm b/sys/applemedia/videotexturecache-vulkan.mm
index ac0c1e712..6ea77d276 100644
--- a/sys/applemedia/videotexturecache-vulkan.mm
+++ b/sys/applemedia/videotexturecache-vulkan.mm
@@ -292,8 +292,8 @@ gst_io_surface_vulkan_memory_set_surface (GstIOSurfaceVulkanMemory * memory,
texture_data->texture = (__bridge_retained gpointer) texture;
VkResult err = vkSetMTLTextureMVK (memory->vulkan_mem.image, texture);
- GST_DEBUG ("bound texture %p to image %p: 0x%x", texture, memory->vulkan_mem.image,
- err);
+ GST_DEBUG ("bound texture %p to image %"GST_VULKAN_NON_DISPATCHABLE_HANDLE_FORMAT": 0x%x",
+ texture, memory->vulkan_mem.image, err);
vk_mem->user_data = texture_data;
vk_mem->notify = (GDestroyNotify) free_texture_wrapper;
--
2.31.1

195
SOURCES/gst-p-bad-cleanup.sh Executable file
View File

@ -0,0 +1,195 @@
#!/bin/sh
# Process a gst-plugins-bad tarball to remove
# unwanted GStreamer plugins.
#
# See https://bugzilla.redhat.com/show_bug.cgi?id=532470
# for details
#
# Bastien Nocera <bnocera@redhat.com> - 2010
#
SOURCE="$1"
NEW_SOURCE=`echo $SOURCE | sed 's/bad-/bad-free-/'`
DIRECTORY=`echo $SOURCE | sed 's/\.tar\.xz//'`
ALLOWED="
aacparse
accurip
adpcmdec
adpcmenc
aiff
aiffparse
amrparse
asfmux
audiobuffersplit
audiofxbad
audiolatency
audiomixer
audiomixmatrix
audioparsers
audiovisualizers
autoconvert
bayer
camerabin
camerabin2
cdxaparse
coloreffects
colorspace
compositor
dataurisrc
dccp
debugutils
dtmf
dvbsubenc
faceoverlay
festival
fieldanalysis
freeverb
freeze
frei0r
gaudieffects
gdp
geometrictransform
h264parse
hdvparse
hls
id3tag
inter
interlace
invtelecine
ivfparse
ivtc
jpegformat
jp2kdecimator
legacyresample
librfb
liveadder
midi
mve
mpegdemux
mpeg4videoparse
mpegpsmux
mpegtsdemux
mpegtsmux
mpegvideoparse
mxf
netsim
nsf
nuvdemux
onvif
patchdetect
pcapparse
pnm
proxy
qtmux
rawparse
removesilence
rist
rtmp2
rtp
rtpmux
rtpvp8
scaletempo
sdi
sdp
segmentclip
selector
smooth
speed
stereo
subenc
switchbin
timecode
transcode
tta
valve
videofilters
videoframe_audiolevel
videomaxrate
videomeasure
videoparsers
videosignal
vmnc
yadif
y4m
"
NOT_ALLOWED="
dvbsuboverlay
dvdspu
real
siren
"
error()
{
MESSAGE=$1
echo $MESSAGE
exit 1
}
check_allowed()
{
MODULE=$1
for i in $ALLOWED ; do
if test x$MODULE = x$i ; then
return 0;
fi
done
# Ignore errors coming from ext/ directory
# they require external libraries so are ineffective anyway
return 1;
}
check_not_allowed()
{
MODULE=$1
for i in $NOT_ALLOWED ; do
if test x$MODULE = x$i ; then
return 0;
fi
done
return 1;
}
rm -rf $DIRECTORY
tar xJf $SOURCE || error "Cannot unpack $SOURCE"
pushd $DIRECTORY > /dev/null || error "Cannot open directory \"$DIRECTORY\""
unknown=""
for subdir in gst ext sys; do
for dir in $subdir/* ; do
# Don't touch non-directories
if ! [ -d $dir ] ; then
continue;
fi
MODULE=`basename $dir`
if ( check_not_allowed $MODULE ) ; then
echo "**** Removing $MODULE ****"
echo "Removing directory $dir"
rm -r $dir || error "Cannot remove $dir"
echo
elif test $subdir = ext || test $subdir = sys; then
# Ignore library or system non-blacklisted plugins
continue;
elif ! ( check_allowed $MODULE ) ; then
echo "Unknown module in $dir"
unknown="$unknown $dir"
fi
done
done
echo
if test "x$unknown" != "x"; then
echo -n "Aborting due to unkown modules: "
echo "$unknown" | sed "s/ /\n /g"
exit 1
fi
popd > /dev/null
tar cJf $NEW_SOURCE $DIRECTORY
echo "$NEW_SOURCE is ready to use"

File diff suppressed because it is too large Load Diff