[gstreamer-plugins-bad/f31] merge with -free from Fedora
by Dominik Mierzejewski
commit 9198652c32b938898355fed2dbf75f6bcb153a15
Author: Dominik 'Rathann' Mierzejewski <dominik(a)greysector.net>
Date: Fri Sep 4 16:32:02 2020 +0200
merge with -free from Fedora
0001-fix-faad2-version-check.patch | 18 ++
...rabin-Fix-spelling-error-in-debug-logging.patch | 26 ++
...Specify-directory-when-including-stdafx.h.patch | 29 +++
...Sanity-check-width-height-before-using-it.patch | 50 ++++
...dd-a-camerabin_create_view_finder_caps-he.patch | 121 ++++++++++
...nsure-codec_data-has-the-required-size-wh.patch | 28 +++
...dd-gst_camerabin_get_video_source_propert.patch | 97 ++++++++
...et-src_filter-and-zoom_src_filter-caps-wh.patch | 74 ++++++
0005-geometrictransform-crash-fix1.patch | 37 +++
0006-geometrictransform-crash-fix2.patch | 36 +++
...ugins-bad-0.10.23-drop-vpx-compat-defines.patch | 27 +++
gst-plugins-bad-0.10.23-timidity2.diff | 12 +
gstreamer-plugins-bad.spec | 265 ++++++++++++++++++---
vp8enc-bitrate-fix.patch | 23 ++
14 files changed, 805 insertions(+), 38 deletions(-)
---
diff --git a/0001-fix-faad2-version-check.patch b/0001-fix-faad2-version-check.patch
index ba92546..d725372 100644
--- a/0001-fix-faad2-version-check.patch
+++ b/0001-fix-faad2-version-check.patch
@@ -30,6 +30,24 @@ index 29b10a6..ceaf31f 100644
], [
faad2_minor_version=$minor
])
+diff --git a/configure b/configure
+index 29b10a6..ceaf31f 100644
+--- a/configure
++++ b/configure
+@@ -34232,11 +34942,11 @@
+ /* end confdefs.h. */
+
+ #include <$faad_hdr>
+- GST_CHECK_FAAD_VERSION FAAD2_VERSION
++ FAAD2_VERSION
+
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+- $EGREP "GST_CHECK_FAAD_VERSION \"2\.$minor\"" >/dev/null 2>&1; then :
++ $EGREP "\"2\.$minor\"$" >/dev/null 2>&1; then :
+
+ faad2_minor_version=$minor
+
--
cgit v0.10.2
diff --git a/0001-gstcamerabin-Fix-spelling-error-in-debug-logging.patch b/0001-gstcamerabin-Fix-spelling-error-in-debug-logging.patch
new file mode 100644
index 0000000..f98e03a
--- /dev/null
+++ b/0001-gstcamerabin-Fix-spelling-error-in-debug-logging.patch
@@ -0,0 +1,26 @@
+From 62c58f011e7069aa45e980930cdfa2d937920a77 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Fri, 8 Jun 2012 10:57:54 +0200
+Subject: [PATCH 1/4] gstcamerabin: Fix spelling error in debug logging
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ gst/camerabin/gstcamerabin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gst/camerabin/gstcamerabin.c b/gst/camerabin/gstcamerabin.c
+index a17e02c..8a36970 100644
+--- a/gst/camerabin/gstcamerabin.c
++++ b/gst/camerabin/gstcamerabin.c
+@@ -1517,7 +1517,7 @@ gst_camerabin_set_capsfilter_caps (GstCameraBin * camera, GstCaps * new_caps)
+ if (camera->src_zoom_filter)
+ g_object_set (G_OBJECT (camera->src_zoom_filter), "caps", new_caps, NULL);
+ gst_camerabin_update_aspect_filter (camera, new_caps);
+- GST_INFO_OBJECT (camera, "udpated");
++ GST_INFO_OBJECT (camera, "updated");
+ }
+
+ /*
+--
+1.7.10.2
+
diff --git a/0001-modplug-Specify-directory-when-including-stdafx.h.patch b/0001-modplug-Specify-directory-when-including-stdafx.h.patch
new file mode 100644
index 0000000..86d69ea
--- /dev/null
+++ b/0001-modplug-Specify-directory-when-including-stdafx.h.patch
@@ -0,0 +1,29 @@
+From fd4cb22ae42b146e327b12aa0507b59520ba1db2 Mon Sep 17 00:00:00 2001
+From: Iain Lane <iain.lane(a)canonical.com>
+Date: Tue, 10 Sep 2013 08:48:32 +0000
+Subject: [PATCH] modplug: Specify directory when including stdafx.h
+
+modplug stopped exposing their directory in their pcfile, meaining
+consumers accessing the headers directly fail to build.
+
+http://sourceforge.net/p/modplug-xmms/git/ci/75e9b166982ed637b59ef7cbc1835a09f768923e/
+---
+ ext/modplug/gstmodplug.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/modplug/gstmodplug.cc b/ext/modplug/gstmodplug.cc
+index 47154cf..a968c4a 100644
+--- a/ext/modplug/gstmodplug.cc
++++ b/ext/modplug/gstmodplug.cc
+@@ -54,7 +54,7 @@
+ #define WORDS_BIGENDIAN 0
+ #endif
+
+-#include <stdafx.h>
++#include <libmodplug/stdafx.h>
+ #include <libmodplug/sndfile.h>
+
+ #include "gstmodplug.h"
+--
+1.8.5.3
+
diff --git a/0001-vmncdec-Sanity-check-width-height-before-using-it.patch b/0001-vmncdec-Sanity-check-width-height-before-using-it.patch
new file mode 100644
index 0000000..c7e2f32
--- /dev/null
+++ b/0001-vmncdec-Sanity-check-width-height-before-using-it.patch
@@ -0,0 +1,50 @@
+From 26f4b2c203d6d0ef0c8204a48dba504870c2cfdf Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans(a)redhat.com>
+Date: Tue, 6 Dec 2016 10:24:03 +0100
+Subject: [PATCH 1/2] vmncdec: Sanity-check width/height before using it
+
+We will allocate a screen area of width*height*bpp bytes, however this
+calculation can easily overflow if too high width or height are given
+inside the stream. Nonetheless we would just assume that enough memory
+was allocated, try to fill it and overwrite as much memory as wanted.
+
+Also allocate the screen area filled with zeroes to ensure that we start
+with full-black and not any random (or not so random) data.
+
+https://scarybeastsecurity.blogspot.gr/2016/11/0day-poc-risky-design-decisions-in.html
+
+Ideally we should just remove this plugin in favour of the one in
+gst-libav, which generally seems to be of better code quality.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=774533
+---
+ gst/vmnc/vmncdec.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/gst/vmnc/vmncdec.c b/gst/vmnc/vmncdec.c
+index 08085b5..c83e315 100644
+--- a/gst/vmnc/vmncdec.c
++++ b/gst/vmnc/vmncdec.c
+@@ -370,7 +370,7 @@ vmnc_handle_wmvi_rectangle (GstVMncDec * dec, struct RfbRectangle *rect,
+
+ if (dec->imagedata)
+ g_free (dec->imagedata);
+- dec->imagedata = g_malloc (dec->format.width * dec->format.height *
++ dec->imagedata = g_malloc0 (dec->format.width * dec->format.height *
+ dec->format.bytes_per_pixel);
+ GST_DEBUG_OBJECT (dec, "Allocated image data at %p", dec->imagedata);
+
+@@ -901,6 +901,10 @@ vmnc_handle_packet (GstVMncDec * dec, const guint8 * data, int len,
+ GST_WARNING_OBJECT (dec, "Rectangle out of range, type %d", r.type);
+ return ERROR_INVALID;
+ }
++ } else if (r.width > 16384 || r.height > 16384) {
++ GST_WARNING_OBJECT (dec, "Width or height too high: %ux%u", r.width,
++ r.height);
++ return ERROR_INVALID;
+ }
+
+ switch (r.type) {
+--
+2.9.3
+
diff --git a/0002-camerabin-Add-a-camerabin_create_view_finder_caps-he.patch b/0002-camerabin-Add-a-camerabin_create_view_finder_caps-he.patch
new file mode 100644
index 0000000..3edb6ec
--- /dev/null
+++ b/0002-camerabin-Add-a-camerabin_create_view_finder_caps-he.patch
@@ -0,0 +1,121 @@
+From a07a1138a8cf8ad1029845dfe4cfdf5a0a36e670 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Fri, 8 Jun 2012 11:31:05 +0200
+Subject: [PATCH 2/4] camerabin: Add a camerabin_create_view_finder_caps()
+ helper function
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ gst/camerabin/gstcamerabin.c | 72 +++++++++++++++++++++++-------------------
+ 1 file changed, 40 insertions(+), 32 deletions(-)
+
+diff --git a/gst/camerabin/gstcamerabin.c b/gst/camerabin/gstcamerabin.c
+index 8a36970..3f87ff9 100644
+--- a/gst/camerabin/gstcamerabin.c
++++ b/gst/camerabin/gstcamerabin.c
+@@ -505,22 +505,15 @@ GST_BOILERPLATE_FULL (GstCameraBin, gst_camerabin, GstPipeline,
+ */
+
+ /*
+- * camerabin_setup_src_elements:
++ * camerabin_create_view_finder_caps:
+ * @camera: camerabin object
+ *
+- * This function updates camerabin capsfilters according
+- * to fps, resolution and zoom that have been configured
+- * to camerabin.
++ * This function creates new view_finder_caps, according to
++ * fps and resolution that have been configured to camerabin.
+ */
+-static void
+-camerabin_setup_src_elements (GstCameraBin * camera)
++static GstCaps *camerabin_create_view_finder_caps (GstCameraBin * camera)
+ {
+ GstStructure *st;
+- GstCaps *new_caps;
+- gboolean detect_framerate = FALSE;
+-
+- /* clear video update status */
+- camera->video_capture_caps_update = FALSE;
+
+ if (!camera->view_finder_caps) {
+ st = gst_structure_from_string (CAMERABIN_DEFAULT_VF_CAPS, NULL);
+@@ -529,39 +522,54 @@ camerabin_setup_src_elements (GstCameraBin * camera)
+ 0));
+ }
+
+- gst_camerabin_monitor_video_source_properties (camera);
+-
+ if (camera->app_width > 0 && camera->app_height > 0) {
+ gst_structure_set (st,
+ "width", G_TYPE_INT, camera->app_width,
+ "height", G_TYPE_INT, camera->app_height, NULL);
+ }
+
+- if (camera->app_fps_n > 0 && camera->app_fps_d > 0) {
+- if (camera->night_mode) {
+- GST_INFO_OBJECT (camera, "night mode, lowest allowed fps will be forced");
+- camera->pre_night_fps_n = camera->app_fps_n;
+- camera->pre_night_fps_d = camera->app_fps_d;
+- detect_framerate = TRUE;
+- } else {
+- gst_structure_set (st,
+- "framerate", GST_TYPE_FRACTION, camera->app_fps_n,
+- camera->app_fps_d, NULL);
+- new_caps = gst_caps_new_full (st, NULL);
+- }
++ if (!camera->night_mode && camera->app_fps_n > 0 && camera->app_fps_d > 0) {
++ gst_structure_set (st,
++ "framerate", GST_TYPE_FRACTION, camera->app_fps_n,
++ camera->app_fps_d, NULL);
+ } else {
+- GST_DEBUG_OBJECT (camera, "no framerate specified");
+- detect_framerate = TRUE;
+- }
+-
+- if (detect_framerate) {
+- GST_DEBUG_OBJECT (camera, "detecting allowed framerate");
+ /* Remove old framerate if any */
+ if (gst_structure_has_field (st, "framerate")) {
+ gst_structure_remove_field (st, "framerate");
+ }
+- new_caps = gst_caps_new_full (st, NULL);
++ }
++
++ /* The returned caps take ownership of the structure st */
++ return gst_caps_new_full (st, NULL);
++}
+
++/*
++ * camerabin_setup_src_elements:
++ * @camera: camerabin object
++ *
++ * This function updates camerabin capsfilters according
++ * to fps, resolution and zoom that have been configured
++ * to camerabin.
++ */
++static void
++camerabin_setup_src_elements (GstCameraBin * camera)
++{
++ GstCaps *new_caps;
++
++ /* clear video update status */
++ camera->video_capture_caps_update = FALSE;
++
++ gst_camerabin_monitor_video_source_properties (camera);
++
++ new_caps = camerabin_create_view_finder_caps (camera);
++
++ if (camera->night_mode || camera->app_fps_n <= 0 || camera->app_fps_d <= 0) {
++ if (camera->night_mode) {
++ GST_INFO_OBJECT (camera, "night mode, lowest allowed fps will be forced");
++ camera->pre_night_fps_n = camera->app_fps_n;
++ camera->pre_night_fps_d = camera->app_fps_d;
++ }
++ GST_DEBUG_OBJECT (camera, "detecting allowed framerate");
+ /* Set allowed framerate for the resolution */
+ gst_camerabin_set_allowed_framerate (camera, new_caps);
+ }
+--
+1.7.10.2
+
diff --git a/0002-h264parse-Ensure-codec_data-has-the-required-size-wh.patch b/0002-h264parse-Ensure-codec_data-has-the-required-size-wh.patch
new file mode 100644
index 0000000..1028b01
--- /dev/null
+++ b/0002-h264parse-Ensure-codec_data-has-the-required-size-wh.patch
@@ -0,0 +1,28 @@
+From 3003cbe1624cc6daa416caba9c1dce0180f3837c Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans(a)redhat.com>
+Date: Wed, 7 Dec 2016 09:37:10 +0100
+Subject: [PATCH 2/2] h264parse: Ensure codec_data has the required size when
+ reading number of SPS
+
+https://bugzilla.gnome.org/show_bug.cgi?id=774896
+---
+ gst/videoparsers/gsth264parse.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c
+index cf81657..4c14f2b 100644
+--- a/gst/videoparsers/gsth264parse.c
++++ b/gst/videoparsers/gsth264parse.c
+@@ -1605,6 +1605,9 @@ gst_h264_parse_set_caps (GstBaseParse * parse, GstCaps * caps)
+ off = nalu.offset + nalu.size;
+ }
+
++ if (off >= size) {
++ goto avcc_too_small;
++ }
+ num_pps = data[off];
+ off++;
+
+--
+2.9.3
+
diff --git a/0003-camerabin-Add-gst_camerabin_get_video_source_propert.patch b/0003-camerabin-Add-gst_camerabin_get_video_source_propert.patch
new file mode 100644
index 0000000..3950bb7
--- /dev/null
+++ b/0003-camerabin-Add-gst_camerabin_get_video_source_propert.patch
@@ -0,0 +1,97 @@
+From 1ef6977002ef18631f81646f198ef6a667ef8f73 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Fri, 8 Jun 2012 11:41:17 +0200
+Subject: [PATCH 3/4] camerabin: Add
+ gst_camerabin_get_video_source_properties() helper
+ function
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ gst/camerabin/gstcamerabin.c | 31 +++++++++++++++++++++++++------
+ 1 file changed, 25 insertions(+), 6 deletions(-)
+
+diff --git a/gst/camerabin/gstcamerabin.c b/gst/camerabin/gstcamerabin.c
+index 3f87ff9..a36d5b5 100644
+--- a/gst/camerabin/gstcamerabin.c
++++ b/gst/camerabin/gstcamerabin.c
+@@ -347,6 +347,7 @@ static void gst_camerabin_scene_mode_notify_cb (GObject * video_source,
+ GParamSpec * pspec, gpointer user_data);
+ static void gst_camerabin_zoom_notify_cb (GObject * video_source,
+ GParamSpec * pspec, gpointer user_data);
++static void gst_camerabin_get_video_source_properties (GstCameraBin * camera);
+ static void gst_camerabin_monitor_video_source_properties (GstCameraBin *
+ camera);
+ static void gst_camerabin_configure_format (GstCameraBin * camera,
+@@ -528,6 +529,8 @@ static GstCaps *camerabin_create_view_finder_caps (GstCameraBin * camera)
+ "height", G_TYPE_INT, camera->app_height, NULL);
+ }
+
++ gst_camerabin_get_video_source_properties (camera);
++
+ if (!camera->night_mode && camera->app_fps_n > 0 && camera->app_fps_d > 0) {
+ gst_structure_set (st,
+ "framerate", GST_TYPE_FRACTION, camera->app_fps_n,
+@@ -559,8 +562,6 @@ camerabin_setup_src_elements (GstCameraBin * camera)
+ /* clear video update status */
+ camera->video_capture_caps_update = FALSE;
+
+- gst_camerabin_monitor_video_source_properties (camera);
+-
+ new_caps = camerabin_create_view_finder_caps (camera);
+
+ if (camera->night_mode || camera->app_fps_n <= 0 || camera->app_fps_d <= 0) {
+@@ -574,6 +575,8 @@ camerabin_setup_src_elements (GstCameraBin * camera)
+ gst_camerabin_set_allowed_framerate (camera, new_caps);
+ }
+
++ gst_camerabin_monitor_video_source_properties (camera);
++
+ /* Set default zoom method */
+ if (camera->src_zoom_scale) {
+ g_object_set (camera->src_zoom_scale, "method",
+@@ -2660,6 +2663,26 @@ gst_camerabin_zoom_notify_cb (GObject * video_source, GParamSpec * pspec,
+ }
+
+ /*
++ * gst_camerabin_monitor_get_video_source_properties:
++ * @camera: camerabin object
++ *
++ * Get properties from video source photography interface property scene mode.
++ *
++ */
++static void
++gst_camerabin_get_video_source_properties (GstCameraBin * camera)
++{
++ if (GST_IS_ELEMENT (camera->src_vid_src) &&
++ gst_element_implements_interface (camera->src_vid_src,
++ GST_TYPE_PHOTOGRAPHY)) {
++ gint scene_mode;
++ g_object_get (G_OBJECT (camera->src_vid_src), "scene-mode", &scene_mode,
++ NULL);
++ camera->night_mode = scene_mode == GST_PHOTOGRAPHY_SCENE_MODE_NIGHT;
++ }
++}
++
++/*
+ * gst_camerabin_monitor_video_source_properties:
+ * @camera: camerabin object
+ *
+@@ -2674,15 +2697,11 @@ gst_camerabin_monitor_video_source_properties (GstCameraBin * camera)
+ if (GST_IS_ELEMENT (camera->src_vid_src) &&
+ gst_element_implements_interface (camera->src_vid_src,
+ GST_TYPE_PHOTOGRAPHY)) {
+- gint scene_mode;
+ GST_DEBUG_OBJECT (camera,
+ "connecting to %" GST_PTR_FORMAT " - notify::scene-mode",
+ camera->src_vid_src);
+ g_signal_connect (G_OBJECT (camera->src_vid_src), "notify::scene-mode",
+ (GCallback) gst_camerabin_scene_mode_notify_cb, camera);
+- g_object_get (G_OBJECT (camera->src_vid_src), "scene-mode", &scene_mode,
+- NULL);
+- camera->night_mode = scene_mode == GST_PHOTOGRAPHY_SCENE_MODE_NIGHT;
+
+ GST_DEBUG_OBJECT (camera,
+ "connecting to %" GST_PTR_FORMAT " - notify::zoom",
+--
+1.7.10.2
+
diff --git a/0004-camerabin-Set-src_filter-and-zoom_src_filter-caps-wh.patch b/0004-camerabin-Set-src_filter-and-zoom_src_filter-caps-wh.patch
new file mode 100644
index 0000000..ade66be
--- /dev/null
+++ b/0004-camerabin-Set-src_filter-and-zoom_src_filter-caps-wh.patch
@@ -0,0 +1,74 @@
+From 9ea00bf5e7043cab7da93abcb345b2f5c65285de Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Fri, 8 Jun 2012 13:39:37 +0200
+Subject: [PATCH 4/4] camerabin: Set src_filter and zoom_src_filter caps while
+ creating the pipeline
+
+We (Fedora) have been receiving bug reports for cheese, about cheese
+taking 30-60 seconds before showing video, and pausing the same amount of
+time when changing the resolution for example.
+
+I've managed to reproduce this with a Logitech Webcam Pro 9000, which
+supports a large list of resolutions at about 5 different framerates /
+resolution, in my case with an unmodified gst-plugins-bad-0.10.23, the
+camerabin_create_src_elements function takes approx 7 seconds.
+
+Running under gdb and interrupting the execution during these 7 seconds
+consistenly points to gst_caps_intersect_full.
+
+Part of the problem is cheese setting the
+GST_CAMERABIN_FLAG_SOURCE_COLOR_CONVERSION flag, which means that after
+the first ffmpegcsp element in the pipe the total number of caps is
+x resolutions * y framerates * z formats, where both x (due to the camera)
+and z (due to ffmpegcsp) being large. intersecting this with the capabilities
+of other parts of the pipeline simply leads to an explosion of combinations
+which pegs my core i5 CPU @3.1GHz for 7 seconds!
+
+This patch fixes this issue by setting up the capsfilter elements in the pipe
+with an initial filter, greatly reducing the number of combinations when doing
+cap intersecting.
+
+This reduces the time spend in camerabin_create_src_elements from approx 7
+to 0.2 seconds. And when patching cheese to use the default camerabin flags,
+(so removing the first ffmpegcsp element) from approx 0.7 to 0.04 seconds
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ gst/camerabin/gstcamerabin.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/gst/camerabin/gstcamerabin.c b/gst/camerabin/gstcamerabin.c
+index a36d5b5..6d7d30f 100644
+--- a/gst/camerabin/gstcamerabin.c
++++ b/gst/camerabin/gstcamerabin.c
+@@ -606,6 +606,7 @@ camerabin_create_src_elements (GstCameraBin * camera)
+ gboolean ret = FALSE;
+ GstBin *cbin = GST_BIN (camera);
+ gchar *driver_name = NULL;
++ GstCaps *filter_caps;
+
+ /* Add application set or default video src element */
+ if (!(camera->src_vid_src = gst_camerabin_setup_default_element (cbin,
+@@ -625,6 +626,10 @@ camerabin_create_src_elements (GstCameraBin * camera)
+ gst_camerabin_create_and_add_element (cbin, "capsfilter",
+ "src-capsfilter")))
+ goto done;
++
++ filter_caps = camerabin_create_view_finder_caps (camera);
++ g_object_set (G_OBJECT (camera->src_filter), "caps", filter_caps, NULL);
++
+ if (camera->flags & GST_CAMERABIN_FLAG_SOURCE_RESIZE) {
+ if (!(camera->src_zoom_crop =
+ gst_camerabin_create_and_add_element (cbin, "videocrop",
+@@ -638,6 +643,8 @@ camerabin_create_src_elements (GstCameraBin * camera)
+ gst_camerabin_create_and_add_element (cbin, "capsfilter",
+ "src-resize-capsfilter")))
+ goto done;
++ g_object_set (G_OBJECT (camera->src_zoom_filter), "caps", filter_caps,
++ NULL);
+ }
+ if (camera->app_video_filter) {
+ if (!gst_camerabin_add_element (cbin, camera->app_video_filter)) {
+--
+1.7.10.2
+
diff --git a/0005-geometrictransform-crash-fix1.patch b/0005-geometrictransform-crash-fix1.patch
new file mode 100644
index 0000000..ba71862
--- /dev/null
+++ b/0005-geometrictransform-crash-fix1.patch
@@ -0,0 +1,37 @@
+From 4e7edb2778f85a5475ffe9c782c91d86a7b902ca Mon Sep 17 00:00:00 2001
+From: Oleksij Rempel (Alexey Fisher) <bug-track(a)fisher-privat.net>
+Date: Mon, 12 Mar 2012 14:42:04 +0000
+Subject: geometrictransform: make sure gt->map not freed twice
+
+current cheese can create situation where gt->map is freed twice.
+This patch set map to null to avoid it.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=671910
+
+diff --git a/gst/geometrictransform/gstgeometrictransform.c b/gst/geometrictransform/gstgeometrictransform.c
+index 8e78de7..274d483 100644
+--- a/gst/geometrictransform/gstgeometrictransform.c
++++ b/gst/geometrictransform/gstgeometrictransform.c
+@@ -143,9 +143,10 @@ gst_geometric_transform_generate_map (GstGeometricTransform * gt)
+ }
+
+ end:
+- if (!ret)
++ if (!ret) {
+ g_free (gt->map);
+- else
++ gt->map = NULL;
++ } else
+ gt->needs_remap = FALSE;
+ return ret;
+ }
+@@ -348,6 +349,7 @@ gst_geometric_transform_stop (GstBaseTransform * trans)
+ GstGeometricTransform *gt = GST_GEOMETRIC_TRANSFORM_CAST (trans);
+
+ g_free (gt->map);
++ gt->map = NULL;
+
+ return TRUE;
+ }
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/0006-geometrictransform-crash-fix2.patch b/0006-geometrictransform-crash-fix2.patch
new file mode 100644
index 0000000..d9552b4
--- /dev/null
+++ b/0006-geometrictransform-crash-fix2.patch
@@ -0,0 +1,36 @@
+From 7dd5b2002abf516ebdf92696c57a9a7692c166e9 Mon Sep 17 00:00:00 2001
+From: Thiago Santos <thiago.sousa.santos(a)collabora.com>
+Date: Tue, 20 Mar 2012 23:07:11 +0000
+Subject: geometrictransform: Prevent access to the transform map when it is null
+
+Check if the map doesn't exist when receiving a new caps and create
+a new one. This prevents that the transform functions try to access
+the map when it doesn't exist.
+
+diff --git a/gst/geometrictransform/gstgeometrictransform.c b/gst/geometrictransform/gstgeometrictransform.c
+index be651a4..a1ec3ab 100644
+--- a/gst/geometrictransform/gstgeometrictransform.c
++++ b/gst/geometrictransform/gstgeometrictransform.c
+@@ -178,8 +178,8 @@ gst_geometric_transform_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
+
+ /* regenerate the map */
+ GST_OBJECT_LOCK (gt);
+- if (old_width == 0 || old_height == 0 || gt->width != old_width ||
+- gt->height != old_height) {
++ if (gt->map == NULL || old_width == 0 || old_height == 0
++ || gt->width != old_width || gt->height != old_height) {
+ if (klass->prepare_func)
+ if (!klass->prepare_func (gt)) {
+ GST_OBJECT_UNLOCK (gt);
+@@ -352,6 +352,9 @@ gst_geometric_transform_stop (GstBaseTransform * trans)
+ {
+ GstGeometricTransform *gt = GST_GEOMETRIC_TRANSFORM_CAST (trans);
+
++ gt->width = 0;
++ gt->height = 0;
++
+ g_free (gt->map);
+ gt->map = NULL;
+
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/gst-plugins-bad-0.10.23-drop-vpx-compat-defines.patch b/gst-plugins-bad-0.10.23-drop-vpx-compat-defines.patch
new file mode 100644
index 0000000..599ec08
--- /dev/null
+++ b/gst-plugins-bad-0.10.23-drop-vpx-compat-defines.patch
@@ -0,0 +1,27 @@
+diff -up gst-plugins-bad-0.10.23/ext/vp8/gstvp8utils.h.drop-compat-defines gst-plugins-bad-0.10.23/ext/vp8/gstvp8utils.h
+--- gst-plugins-bad-0.10.23/ext/vp8/gstvp8utils.h.drop-compat-defines 2015-04-07 09:28:01.637679239 -0400
++++ gst-plugins-bad-0.10.23/ext/vp8/gstvp8utils.h 2015-04-07 09:28:10.397622550 -0400
+@@ -25,23 +25,6 @@
+
+ G_BEGIN_DECLS
+
+-/* Some compatibility defines for older libvpx versions */
+-#ifndef VPX_IMG_FMT_I420
+-#define VPX_IMG_FMT_I420 IMG_FMT_I420
+-#endif
+-
+-#ifndef VPX_PLANE_Y
+-#define VPX_PLANE_Y PLANE_Y
+-#endif
+-
+-#ifndef VPX_PLANE_U
+-#define VPX_PLANE_U PLANE_U
+-#endif
+-
+-#ifndef VPX_PLANE_V
+-#define VPX_PLANE_V PLANE_V
+-#endif
+-
+ const char * gst_vpx_error_name (vpx_codec_err_t status);
+
+ G_END_DECLS
diff --git a/gst-plugins-bad-0.10.23-timidity2.diff b/gst-plugins-bad-0.10.23-timidity2.diff
new file mode 100644
index 0000000..c91e3e3
--- /dev/null
+++ b/gst-plugins-bad-0.10.23-timidity2.diff
@@ -0,0 +1,12 @@
+diff -uNr gst-plugins-bad-0.10.23/ext/timidity/gsttimidity.c gst-plugins-bad-0.10.23.timidity/ext/timidity/gsttimidity.c
+--- gst-plugins-bad-0.10.23/ext/timidity/gsttimidity.c 2011-12-30 19:24:28.000000000 +0100
++++ gst-plugins-bad-0.10.23.timidity/ext/timidity/gsttimidity.c 2016-10-06 10:37:54.076801395 +0200
+@@ -615,7 +615,7 @@
+ GST_DEBUG_OBJECT (timidity, "Parsing song");
+
+ stream =
+- mid_istream_open_mem (timidity->mididata, timidity->mididata_size, 0);
++ mid_istream_open_mem (timidity->mididata, timidity->mididata_size);
+
+ timidity->song = mid_song_load (stream, timidity->song_options);
+ mid_istream_close (stream);
diff --git a/gstreamer-plugins-bad.spec b/gstreamer-plugins-bad.spec
index e508bb9..c1050b8 100644
--- a/gstreamer-plugins-bad.spec
+++ b/gstreamer-plugins-bad.spec
@@ -1,36 +1,64 @@
%define majorminor 0.10
%define gstreamer gstreamer
-%define gst_minver 0.10.33
-%define gstpb_minver 0.10.33
-
-# which plugins to actually build and install
-%ifarch %{ix86} x86_64
-%define gstdirs gst/dvdspu gst/real gst/siren
-%else
-%define gstdirs gst/dvdspu gst/siren
-%endif
-%define extdirs ext/dts ext/faad ext/libmms ext/mimic ext/mpeg2enc ext/mplex ext/rtmp ext/voamrwbenc ext/xvid
+%define gst_minver 0.10.36
+%define gstpb_minver %{gst_minver}
Summary: GStreamer streaming media framework "bad" plug-ins
Name: gstreamer-plugins-bad
Version: 0.10.23
-Release: 13%{?dist}
-License: LGPLv2+
-Group: Applications/Multimedia
+Release: 14%{?dist}
+# The freeze and nfs plugins are LGPLv2 (only)
+License: LGPLv2+ and LGPLv2
URL: https://gstreamer.freedesktop.org/
Source: https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-%{v...
-Patch1: 0001-fix-faad2-version-check.patch
+# Based on upstream 04909e2c50e68
+Patch0: vp8enc-bitrate-fix.patch
+# https://bugzilla.gnome.org/show_bug.cgi?id=677698 / rhbz#797188
+Patch1: 0001-gstcamerabin-Fix-spelling-error-in-debug-logging.patch
+Patch2: 0002-camerabin-Add-a-camerabin_create_view_finder_caps-he.patch
+Patch3: 0003-camerabin-Add-gst_camerabin_get_video_source_propert.patch
+Patch4: 0004-camerabin-Set-src_filter-and-zoom_src_filter-caps-wh.patch
+# Cherry picked from upstream git for rhbz#820959
+Patch5: 0005-geometrictransform-crash-fix1.patch
+Patch6: 0006-geometrictransform-crash-fix2.patch
+Patch8: 0001-modplug-Specify-directory-when-including-stdafx.h.patch
+# No longer needed, actually break build if we have them now.
+Patch9: gst-plugins-bad-0.10.23-drop-vpx-compat-defines.patch
+# Fix for libtimidity-0.2.x
+Patch11: gst-plugins-bad-0.10.23-timidity2.diff
+Patch12: 0001-vmncdec-Sanity-check-width-height-before-using-it.patch
+Patch13: 0002-h264parse-Ensure-codec_data-has-the-required-size-wh.patch
+Patch14: 0001-fix-faad2-version-check.patch
+
Requires: %{gstreamer} >= %{gst_minver}
-# Drag in the free plugins which are in Fedora now, for upgrade path
-Requires: gstreamer-plugins-bad-free >= %{version}
BuildRequires: %{gstreamer}-devel >= %{gst_minver}
BuildRequires: %{gstreamer}-plugins-base-devel >= %{gstpb_minver}
BuildRequires: gcc-c++
BuildRequires: check
BuildRequires: gettext-devel
BuildRequires: libXt-devel
-BuildRequireS: gtk-doc
+BuildRequires: bzip2-devel
+BuildRequires: exempi-devel
+BuildRequires: gsm-devel
+BuildRequires: jasper-devel
+BuildRequires: ladspa-devel
+BuildRequires: libdvdnav-devel
+BuildRequires: libexif-devel
+BuildRequires: libiptcdata-devel
+BuildRequires: libmpcdec-devel
+BuildRequires: libofa-devel
+BuildRequires: liboil-devel
+BuildRequires: librsvg2-devel
+BuildRequires: libsndfile-devel
+BuildRequires: libvpx-devel
+BuildRequires: mesa-libGLU-devel
+BuildRequires: orc-devel
+Buildrequires: wavpack-devel
+BuildRequires: chrpath
+
+BuildRequires: opus-devel
+BuildRequires: soundtouch-devel
BuildRequires: liboil-devel
BuildRequires: libdca-devel
BuildRequires: faad2-devel
@@ -41,77 +69,238 @@ BuildRequires: twolame-devel
BuildRequires: libmimic-devel
BuildRequires: librtmp-devel
BuildRequires: vo-amrwbenc-devel
-# For autoreconf
-BuildRequires: libtool
+BuildRequires: libass-devel
+BuildRequires: libcdaudio-devel
+BuildRequires: libcurl-devel
+BuildRequires: libdc1394-devel
+BuildRequires: libkate-devel
+BuildRequires: libmodplug-devel
+BuildRequires: libtimidity-devel
+BuildRequires: libvdpau-devel
+BuildRequires: opencv-devel
+BuildRequires: schroedinger-devel
+BuildRequires: SDL-devel
+BuildRequires: slv2-devel
+BuildRequires: wildmidi-devel
+BuildRequires: zbar-devel
+BuildRequires: zvbi-devel
%description
GStreamer is a streaming media framework, based on graphs of elements which
operate on media data.
-This package contains plug-ins that have licensing issues, aren't tested
+This package contains plug-ins that aren't tested
well enough, or the code is not of good enough quality.
+%package devel
+Summary: Development files for the GStreamer media framework "bad" plug-ins
+Requires: %{name} = %{version}-%{release}
+Requires: gstreamer-plugins-base-devel
+
+%description devel
+GStreamer is a streaming media framework, based on graphs of elements which
+operate on media data.
+
+This package contains the development files for the plug-ins that
+aren't tested well enough, or the code is not of good enough quality.
+
+
%prep
-%setup -q -n gst-plugins-bad-%{version}
-%patch1 -p1
-# For patch1
-autoreconf -ivf
+%autosetup -n gst-plugins-bad-%{version} -p1
%build
-# Note we don't bother with disabling everything which is in Fedora, that
-# is unmaintainable, instead we selectively run make in subdirs
%configure \
--with-package-name="gst-plugins-bad rpmfusion rpm" \
--with-package-origin="http://rpmfusion.org/" \
- --enable-debug --disable-static --enable-experimental
+ --enable-debug --disable-static --disable-gtk-doc --enable-experimental \
+ --disable-nsf --disable-apexsink \
+
# Don't use rpath!
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
-for i in %{gstdirs} %{extdirs}; do
- pushd $i
- make %{?_smp_mflags} V=2
- popd
-done
+%make_build
%install
-for i in %{gstdirs} %{extdirs}; do
- pushd $i
- make install V=2 DESTDIR=$RPM_BUILD_ROOT
- popd
-done
+%make_install
+%find_lang gst-plugins-bad-%{majorminor}
+
+# Some of the plugins somehow get an rpath embedded ??
+chrpath --delete %{buildroot}%{_libdir}/gstreamer-%{majorminor}/*.so
# Clean out files that should not be part of the rpm.
rm %{buildroot}%{_libdir}/gstreamer-%{majorminor}/*.la
+rm %{buildroot}%{_libdir}/*.la
+rm -r %{buildroot}%{_datadir}/gtk-doc
-%files
+%files -f gst-plugins-bad-%{majorminor}.lang
%doc AUTHORS COPYING README REQUIREMENTS
# Take the whole dir for proper dir ownership (shared with other plugin pkgs)
%{_datadir}/gstreamer-0.10
+%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so.*
+%{_libdir}/libgstbasevideo-%{majorminor}.so.*
+%{_libdir}/libgstcodecparsers-%{majorminor}.so.*
+%{_libdir}/libgstphotography-%{majorminor}.so.*
+%{_libdir}/libgstsignalprocessor-%{majorminor}.so.*
+%{_libdir}/libgstvdp-%{majorminor}.so.*
# Plugins without external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstadpcmdec.so
+%{_libdir}/gstreamer-%{majorminor}/libgstadpcmenc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstaiff.so
+%{_libdir}/gstreamer-%{majorminor}/libgstasfmux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstaudiovisualizers.so
+%{_libdir}/gstreamer-%{majorminor}/libgstautoconvert.so
+%{_libdir}/gstreamer-%{majorminor}/libgstbayer.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcamerabin.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcamerabin2.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcdxaparse.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcog.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcoloreffects.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcolorspace.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdataurisrc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdccp.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so
%{_libdir}/gstreamer-%{majorminor}/libgstdvdspu.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfaceoverlay.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfestival.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfieldanalysis.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfragmented.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfreeverb.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfreeze.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfrei0r.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgaudieffects.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgeometrictransform.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgsettingselements.so
+%{_libdir}/gstreamer-%{majorminor}/libgsth264parse.so
+%{_libdir}/gstreamer-%{majorminor}/libgsthdvparse.so
+%{_libdir}/gstreamer-%{majorminor}/libgstid3tag.so
+%{_libdir}/gstreamer-%{majorminor}/libgstinter.so
+%{_libdir}/gstreamer-%{majorminor}/libgstinterlace.so
+%{_libdir}/gstreamer-%{majorminor}/libgstivfparse.so
+%{_libdir}/gstreamer-%{majorminor}/libgstjpegformat.so
+%{_libdir}/gstreamer-%{majorminor}/libgstjp2kdecimator.so
+%{_libdir}/gstreamer-%{majorminor}/libgstlegacyresample.so
+%{_libdir}/gstreamer-%{majorminor}/libgstliveadder.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpegdemux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpegpsmux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsdemux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsmux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpegvideoparse.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmve.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmxf.so
+%{_libdir}/gstreamer-%{majorminor}/libgstnuvdemux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstpatchdetect.so
+%{_libdir}/gstreamer-%{majorminor}/libgstpcapparse.so
+%{_libdir}/gstreamer-%{majorminor}/libgstpnm.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrawparse.so
%ifarch %{ix86} x86_64
%{_libdir}/gstreamer-%{majorminor}/libgstreal.so
%endif
+%{_libdir}/gstreamer-%{majorminor}/libgstremovesilence.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrfbsrc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrtpmux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrtpvp8.so
+%{_libdir}/gstreamer-%{majorminor}/libgstscaletempoplugin.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsdi.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsdpelem.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsegmentclip.so
+%{_libdir}/gstreamer-%{majorminor}/libgstshm.so
%{_libdir}/gstreamer-%{majorminor}/libgstsiren.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsmooth.so
+%{_libdir}/gstreamer-%{majorminor}/libgstspeed.so
+%{_libdir}/gstreamer-%{majorminor}/libgststereo.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsubenc.so
+%{_libdir}/gstreamer-%{majorminor}/libgsttta.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvideofiltersbad.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvideosignal.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvideomaxrate.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvideomeasure.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvideoparsersbad.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvmnc.so
+%{_libdir}/gstreamer-%{majorminor}/libgsty4mdec.so
+
+# System (Linux) specific plugins
+%{_libdir}/gstreamer-%{majorminor}/libgstdvb.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdvbsuboverlay.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvcdsrc.so
# Plugins with external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstbz2.so
%{_libdir}/gstreamer-%{majorminor}/libgstdtsdec.so
%{_libdir}/gstreamer-%{majorminor}/libgstfaad.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgsm.so
+%{_libdir}/gstreamer-%{majorminor}/libgstjp2k.so
+%{_libdir}/gstreamer-%{majorminor}/libgstladspa.so
%{_libdir}/gstreamer-%{majorminor}/libgstmms.so
%{_libdir}/gstreamer-%{majorminor}/libgstmimic.so
%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2enc.so
%{_libdir}/gstreamer-%{majorminor}/libgstmplex.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmusepack.so
+%{_libdir}/gstreamer-%{majorminor}/libgstofa.so
+%{_libdir}/gstreamer-%{majorminor}/libgstopus.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrsvg.so
%{_libdir}/gstreamer-%{majorminor}/libgstrtmp.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsndfile.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsoundtouch.so
%{_libdir}/gstreamer-%{majorminor}/libgstvoamrwbenc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvp8.so
%{_libdir}/gstreamer-%{majorminor}/libgstxvid.so
+%{_libdir}/gstreamer-%{majorminor}/libresindvd.so
+
+#debugging plugin
+%{_libdir}/gstreamer-%{majorminor}/libgstdebugutilsbad.so
+
+#data for plugins
+%{_datadir}/glib-2.0/schemas/org.freedesktop.gstreamer-%{majorminor}.default-elements.gschema.xml
+
+# Plugins with external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstassrender.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcdaudio.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcurl.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdc1394.so
+%{_libdir}/gstreamer-%{majorminor}/libgstkate.so
+%{_libdir}/gstreamer-%{majorminor}/libgstlv2.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmodplug.so
+%{_libdir}/gstreamer-%{majorminor}/libgstschro.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsdl.so
+%{_libdir}/gstreamer-%{majorminor}/libgstteletextdec.so
+%{_libdir}/gstreamer-%{majorminor}/libgsttimidity.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvdpau.so
+%{_libdir}/gstreamer-%{majorminor}/libgstwildmidi.so
+%{_libdir}/gstreamer-%{majorminor}/libgstzbar.so
+# Linux specific plugins
+%{_libdir}/gstreamer-%{majorminor}/libgstdecklink.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfbdevsink.so
+%{_libdir}/gstreamer-%{majorminor}/libgstlinsys.so
+
+%files devel
+%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so
+%{_libdir}/libgstbasevideo-%{majorminor}.so
+%{_libdir}/libgstcodecparsers-%{majorminor}.so
+%{_libdir}/libgstphotography-%{majorminor}.so
+%{_libdir}/libgstsignalprocessor-%{majorminor}.so
+%{_libdir}/libgstvdp-%{majorminor}.so
+%{_includedir}/gstreamer-%{majorminor}/gst/basecamerabinsrc
+%{_includedir}/gstreamer-%{majorminor}/gst/codecparsers
+%{_includedir}/gstreamer-%{majorminor}/gst/interfaces/photography*
+%{_includedir}/gstreamer-%{majorminor}/gst/signalprocessor
+%{_includedir}/gstreamer-%{majorminor}/gst/video
+%{_includedir}/gstreamer-%{majorminor}/gst/vdpau
+
+# pkg-config files
+%{_libdir}/pkgconfig/gstreamer-basevideo-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-codecparsers-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-plugins-bad-%{majorminor}.pc
%changelog
+* Fri Sep 04 2020 Dominik Mierzejewski <rpm(a)greysector.net> - 0.10.23-14
+- merge with -free from Fedora
+
* Fri Aug 09 2019 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 0.10.23-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
diff --git a/vp8enc-bitrate-fix.patch b/vp8enc-bitrate-fix.patch
new file mode 100644
index 0000000..671424e
--- /dev/null
+++ b/vp8enc-bitrate-fix.patch
@@ -0,0 +1,23 @@
+diff -ru gst-plugins-bad-0.10.23.orign/ext/vp8/gstvp8enc.c gst-plugins-bad-0.10.23/ext/vp8/gstvp8enc.c
+--- gst-plugins-bad-0.10.23.orign/ext/vp8/gstvp8enc.c 2012-01-25 18:10:21.000000000 +0100
++++ gst-plugins-bad-0.10.23/ext/vp8/gstvp8enc.c 2012-05-28 14:21:16.552995768 +0200
+@@ -732,6 +732,11 @@
+ return FALSE;
+ }
+
++ /* Scale default bitrate to our size */
++ cfg.rc_target_bitrate = gst_util_uint64_scale (cfg.rc_target_bitrate,
++ state->width * state->height,
++ cfg.g_w * cfg.g_h);
++
+ cfg.g_w = state->width;
+ cfg.g_h = state->height;
+ cfg.g_timebase.num = state->fps_d;
+@@ -755,7 +760,6 @@
+ } else {
+ cfg.rc_min_quantizer = (gint) (63 - encoder->quality * 6.2);
+ cfg.rc_max_quantizer = (gint) (63 - encoder->quality * 6.2);
+- cfg.rc_target_bitrate = encoder->bitrate;
+ }
+ cfg.rc_dropframe_thresh = encoder->drop_frame;
+ cfg.rc_resize_allowed = encoder->resize_allowed;
4 years, 2 months
[gstreamer-plugins-bad] (4 commits) ...fix build with make 4.3
by Dominik Mierzejewski
Summary of changes:
eab6a8c... Resurrect for legacy repo. (*)
f9e000d... use https in URLs (*)
9198652... merge with -free from Fedora (*)
83807fa... fix build with make 4.3 (*)
(*) This commit already existed in another branch; no separate mail sent
4 years, 2 months
[gstreamer-plugins-bad/f33] (4 commits) ...fix build with make 4.3
by Dominik Mierzejewski
Summary of changes:
eab6a8c... Resurrect for legacy repo. (*)
f9e000d... use https in URLs (*)
9198652... merge with -free from Fedora (*)
83807fa... fix build with make 4.3
(*) This commit already existed in another branch; no separate mail sent
4 years, 2 months
[gstreamer-plugins-bad/f31] Resurrect for legacy repo.
by Dominik Mierzejewski
commit eab6a8cef7f3c30f5784810e5c47cb9a22c90abf
Author: Dominik 'Rathann' Mierzejewski <dominik(a)greysector.net>
Date: Mon Jun 29 12:59:39 2020 +0200
Resurrect for legacy repo.
Revert "Fedora has dropped gstreamer from the f31 repo"
This reverts commit 4405cf25725fb29c847ac677484f479a3e44a73f.
.gitignore | 1 +
0001-fix-faad2-version-check.patch | 35 +++
dead.package | 1 -
gstreamer-plugins-bad.spec | 450 +++++++++++++++++++++++++++++++++++++
sources | 1 +
5 files changed, 487 insertions(+), 1 deletion(-)
---
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2d4185f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+gst-plugins-bad-0.10.23.tar.bz2
diff --git a/0001-fix-faad2-version-check.patch b/0001-fix-faad2-version-check.patch
new file mode 100644
index 0000000..ba92546
--- /dev/null
+++ b/0001-fix-faad2-version-check.patch
@@ -0,0 +1,35 @@
+From ea2cf4aae775c36793b31fa2726fa084c426d0cf Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans(a)redhat.com>
+Date: Wed, 13 May 2015 16:23:26 +0200
+Subject: fix faad2 version check
+
+On fedora 22, the output of cpp inserts extra debug comments, which
+makes our regexp for the faad2 version check fail. This in turn causes
+it to compile with the wrong arguments passed which then causes stack
+corruption and crashes.
+
+Fix this by only checking for the version (which should be by itself on
+a single line). This is potentially less safe, it might be possible that
+a similar string would appear in a later version in the header file.
+
+Fixes https://bugzilla.gnome.org/show_bug.cgi?id=748571
+
+diff --git a/configure.ac b/configure.ac
+index 29b10a6..ceaf31f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1132,9 +1132,9 @@ AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
+ AC_MSG_CHECKING([Checking FAAD2 version in $faad_hdr])
+ for minor in 10 9 8 7 6 5 0; do
+ if test x$faad2_minor_version = "x"; then
+- AC_EGREP_CPP([GST_CHECK_FAAD_VERSION \"2\.$minor\"], [
++ AC_EGREP_CPP([\"2\.$minor\"$], [
+ #include <$faad_hdr>
+- GST_CHECK_FAAD_VERSION FAAD2_VERSION
++ FAAD2_VERSION
+ ], [
+ faad2_minor_version=$minor
+ ])
+--
+cgit v0.10.2
+
diff --git a/gstreamer-plugins-bad.spec b/gstreamer-plugins-bad.spec
new file mode 100644
index 0000000..78812d3
--- /dev/null
+++ b/gstreamer-plugins-bad.spec
@@ -0,0 +1,450 @@
+%define majorminor 0.10
+%define gstreamer gstreamer
+
+%define gst_minver 0.10.33
+%define gstpb_minver 0.10.33
+
+# which plugins to actually build and install
+%ifarch %{ix86} x86_64
+%define gstdirs gst/dvdspu gst/real gst/siren
+%else
+%define gstdirs gst/dvdspu gst/siren
+%endif
+%define extdirs ext/dts ext/faad ext/libmms ext/mimic ext/mpeg2enc ext/mplex ext/rtmp ext/voamrwbenc ext/xvid
+
+Summary: GStreamer streaming media framework "bad" plug-ins
+Name: gstreamer-plugins-bad
+Version: 0.10.23
+Release: 13%{?dist}
+License: LGPLv2+
+Group: Applications/Multimedia
+URL: http://gstreamer.freedesktop.org/
+Source: http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-%{ve...
+Patch1: 0001-fix-faad2-version-check.patch
+Requires: %{gstreamer} >= %{gst_minver}
+# Drag in the free plugins which are in Fedora now, for upgrade path
+Requires: gstreamer-plugins-bad-free >= %{version}
+BuildRequires: %{gstreamer}-devel >= %{gst_minver}
+BuildRequires: %{gstreamer}-plugins-base-devel >= %{gstpb_minver}
+BuildRequires: gcc-c++
+BuildRequires: check
+BuildRequires: gettext-devel
+BuildRequires: libXt-devel
+BuildRequireS: gtk-doc
+BuildRequires: liboil-devel
+BuildRequires: libdca-devel
+BuildRequires: faad2-devel
+BuildRequires: xvidcore-devel
+BuildRequires: libmms-devel
+BuildRequires: mjpegtools-devel >= 2.0.0
+BuildRequires: twolame-devel
+BuildRequires: libmimic-devel
+BuildRequires: librtmp-devel
+BuildRequires: vo-amrwbenc-devel
+# For autoreconf
+BuildRequires: libtool
+
+%description
+GStreamer is a streaming media framework, based on graphs of elements which
+operate on media data.
+
+This package contains plug-ins that have licensing issues, aren't tested
+well enough, or the code is not of good enough quality.
+
+
+%prep
+%setup -q -n gst-plugins-bad-%{version}
+%patch1 -p1
+# For patch1
+autoreconf -ivf
+
+
+%build
+# Note we don't bother with disabling everything which is in Fedora, that
+# is unmaintainable, instead we selectively run make in subdirs
+%configure \
+ --with-package-name="gst-plugins-bad rpmfusion rpm" \
+ --with-package-origin="http://rpmfusion.org/" \
+ --enable-debug --disable-static --enable-experimental
+# Don't use rpath!
+sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+for i in %{gstdirs} %{extdirs}; do
+ pushd $i
+ make %{?_smp_mflags} V=2
+ popd
+done
+
+
+%install
+for i in %{gstdirs} %{extdirs}; do
+ pushd $i
+ make install V=2 DESTDIR=$RPM_BUILD_ROOT
+ popd
+done
+
+# Clean out files that should not be part of the rpm.
+rm %{buildroot}%{_libdir}/gstreamer-%{majorminor}/*.la
+
+
+%files
+%doc AUTHORS COPYING README REQUIREMENTS
+# Take the whole dir for proper dir ownership (shared with other plugin pkgs)
+%{_datadir}/gstreamer-0.10
+
+# Plugins without external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstdvdspu.so
+%ifarch %{ix86} x86_64
+%{_libdir}/gstreamer-%{majorminor}/libgstreal.so
+%endif
+%{_libdir}/gstreamer-%{majorminor}/libgstsiren.so
+
+# Plugins with external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstdtsdec.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfaad.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmms.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmimic.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2enc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmplex.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrtmp.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvoamrwbenc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstxvid.so
+
+
+%changelog
+* Fri Aug 09 2019 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 0.10.23-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Mon Mar 04 2019 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 0.10.23-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Thu Jul 26 2018 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 0.10.23-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Thu Mar 01 2018 RPM Fusion Release Engineering <leigh123linux(a)googlemail.com> - 0.10.23-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Aug 31 2017 RPM Fusion Release Engineering <kwizart(a)rpmfusion.org> - 0.10.23-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Sun Mar 19 2017 RPM Fusion Release Engineering <kwizart(a)rpmfusion.org> - 0.10.23-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Wed May 27 2015 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.10.23-7
+- Add a patch from upstream fixing a faad2 crash (rf3664)
+
+* Mon Sep 01 2014 Sérgio Basto <sergio(a)serjux.com> - 0.10.23-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Tue Jan 07 2014 Nicolas Chauvet <kwizart(a)gmail.com> - 0.10.23-5
+- Rebuilt for librtmp
+
+* Sun Nov 10 2013 Nicolas Chauvet <kwizart(a)gmail.com> - 0.10.23-4
+- Rebuilt for mjpegtools update to 2.1.0
+
+* Sat Mar 2 2013 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.10.23-3
+- Drop no longer needed PyXML BuildRequires (rf#2572)
+
+* Sat Nov 10 2012 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.10.23-2
+- Add/enable vo-amrwbenc plugin
+
+* Thu Jul 12 2012 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.10.23-1
+- New upstream release 0.10.23 (rf#2377)
+
+* Fri Mar 02 2012 Nicolas Chauvet <kwizart(a)gmail.com> - 0.10.22-4
+- Rebuilt for c++ ABI breakage
+
+* Wed Feb 08 2012 Nicolas Chauvet <kwizart(a)gmail.com> - 0.10.22-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Aug 2 2011 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.10.22-2
+- Rebuild for new mjpegtools-2.0.0 (rf#1841)
+
+* Tue May 17 2011 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.10.22-1
+- New upstream release 0.10.22
+
+* Thu Apr 21 2011 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.10.21-3
+- Rebuild for proper package kit magic provides (rhbz#695730)
+
+* Tue Mar 08 2011 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.10.21-2
+- Enable rtmp plugin (rf#1651)
+
+* Fri Jan 28 2011 Hans de Goede <j.w.r.degoede(a)hhs.nl> - 0.10.21-1
+- New upstream release 0.10.21
+
+* Thu Jan 20 2011 Hans de Goede <j.w.r.degoede(a)hhs.nl> - 0.10.20-3
+- Drop mux-es (moved to Fedora's gstreamer-plugins-bad-free)
+
+* Fri Oct 15 2010 Nicolas Chauvet <kwizart(a)gmail.com> - 0.10.20-2
+- Rebuilt for gcc bug
+
+* Sun Sep 12 2010 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.20-1
+- New upstream release 0.10.20
+
+* Sun Jun 13 2010 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.19-1
+- New upstream release 0.10.19
+
+* Sun Mar 14 2010 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.18-1
+- New upstream release 0.10.18
+
+* Thu Feb 4 2010 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.17-4
+- Require new gstreamer-plugins-bad-free which is now in Fedora
+- Drop all files found in gstreamer-plugins-bad-free
+- Drop all subpackages (all subpackages of gstreamer-plugins-bad-free now)
+
+* Sat Dec 19 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.17-3
+- Disable muscbrainz / trm plugin (#1001)
+
+* Fri Dec 4 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.17-2
+- Enable LADSPA plugins (#992)
+
+* Wed Nov 18 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.17-1
+- New upstream release 0.10.17
+
+* Sat Nov 7 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.16-1
+- New upstream release 0.10.16
+
+* Sun Oct 25 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.13-10
+- Disable faac AAC (MPEG 2 / 4 audio) encode plugin as faac was moved to
+ non free (rf 898)
+
+* Tue Oct 20 2009 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 0.10.13-9
+- disable libgstneonhttpsrc
+
+* Tue Oct 20 2009 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 0.10.13-8
+- rebuilt
+
+* Mon Aug 31 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.13-7
+- Rebuild for new libass
+
+* Tue Aug 11 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.13-6
+- Enable mimic plugin now that we have libmimic in RPM Fusion
+
+* Thu Aug 6 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.13-5
+- Re-enable siren as it also has not been added to gst-plugins-good (#749)
+
+* Tue Jul 07 2009 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 0.10.13-4
+- rebuild for new directfb
+
+* Sat Jun 27 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.13-3
+- Disable rtpmanager as it also has been added to gstreamer-plugins-good (#689)
+
+* Tue Jun 23 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.13-2
+- Disable farsight plugins again, they have been added to Fedora's
+ gstreamer-plugins-good package
+
+* Fri Jun 19 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.13-1
+- New upstream release 0.10.13
+- Disable input-selector plugin as it has been added to Fedora's
+ gstreamer-plugins-base as rythmbox needs it
+- Enable plugins moved from farsight into -bad, as rawhide now
+ has a new gstreamer-plugins-farsight, which no longer contains them
+
+* Wed Jun 17 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.12-2
+- Rebuild for changes in the gstreamer provides script
+
+* Sun May 31 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.12-1
+- New upstream release 0.10.12
+- Resolves rf 622, rf 592
+
+* Wed Apr 15 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.11-4
+- Rebuild for new mjpegtools
+
+* Fri Apr 3 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.11-3
+- Disable mpegdemux plugin as it conflicts with
+ gstreamer-plugins-flumpegdemux (rf 474)
+
+* Sun Mar 29 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.11-2
+- Rebuild for new faad2 and x264
+- Enable libass plugin
+- Move the midi plugins to the -extras package, so that people who do not
+ need / want midi playback support do not have to download 200 MB of
+ wavetable instruments. For people who do want this the automatic gstreamer
+ plugin install should take care of installing them.
+
+* Sun Mar 22 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.11-1
+- New upstream release 0.10.11
+- Enable celt plugin (rf 380)
+- Fix broken libBPM dep (rf 412)
+- Rebuild for new soundtouch (rf 457)
+- Disable plugins moved from gst-plugins-farsight for now, until a new
+ gst-plugins-farsight release solving the conflicts is available
+- Bring back -devel and -devel-doc subdirs for new libgstphotography
+
+* Wed Jan 21 2009 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.10-1
+- New upstream release 0.10.10
+- Drop -devel and -devel-docs subpackages now that libgstapp has moved to
+ the base plugins
+- Disable gtk-doc now that we no longer have a -devel subpackage
+- This release fixes the file conflicts with the new gstreamer-0.10.22 release
+
+* Sat Dec 27 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.9-3
+- Put devel docs in seperate subpackage to avoid multilib conflict (rf 276)
+
+* Wed Dec 17 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.9-2
+- Rebuild for new x264 (using patch from Rathann)
+
+* Sun Oct 26 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.9-1
+- New upstream release 0.10.9
+- Rebuild for new directfb
+
+* Sun Sep 14 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.8-4
+- Rebuild for new x264 and to generate new magic gstreamer provides
+
+* Sat Aug 16 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.8-3
+- Enable DVD navigation plugin
+
+* Fri Aug 1 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.8-2
+- Release bump to keep rpmfusion version higher then livna
+
+* Fri Aug 1 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.8-1
+- New upstream release 0.10.8
+- Merge changes from latest freshrpms package: enable ofa and dirac plugins
+
+* Fri Jun 27 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.7-2
+- Rebuild for new x264
+
+* Thu Apr 24 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.7-1
+- New upstream release 0.10.7
+- Drop many upstreamed patches
+
+* Sun Mar 9 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.6-3
+- Rebuild for new x264
+
+* Tue Feb 26 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.6-2
+- Enable dc1394 plugin
+
+* Sun Feb 24 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.6-1
+- New upstream release 0.10.6-1
+- Drop many upstreamed patches
+- Fixes conflict with the latest gstreamer-plugins-good (livna 1884)
+
+* Tue Feb 5 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-15
+- Fix compilation with gcc 4.3
+
+* Tue Feb 5 2008 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-14
+- Add flv demuxer from CVS (livna bug 1846)
+
+* Sun Dec 9 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-13
+- Add patch fixing compilation with mjpegtools 1.9.0rc3
+
+* Sun Dec 9 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-12
+- Add patch from upstream vcs which makes mms honor your connection speed
+ settings
+- Add (painstakingly self written) patch adding support for mms / mmsh seeking!
+
+* Tue Nov 13 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-11
+- Rebuild for new faad2
+
+* Sun Nov 4 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-10
+- Rebuild for new libdca
+
+* Thu Oct 18 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-9
+- Rebuild for new (old) faad2 (livna bug 1679)
+
+* Sat Sep 29 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-8
+- Update mythtvsrc code to CVS version (livna bug 1660)
+
+* Thu Sep 27 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-7
+- No libgstreal.so on ppc / ppc64
+
+* Thu Sep 27 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-6
+- Fix detection of libdts with current livna libtds, this might need to be
+ changed back again for rpmfusion, depending on how libdts will look there
+
+* Sat Sep 22 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-5
+- Add mythtvsrc plugin (livna 1646)
+- Put some less often used plugins, which bring in also usually not installed
+ deps in a -extras package
+
+* Sat Sep 15 2007 Hans de Goede <j.w.r.degoede(a)hhs.nl> 0.10.5-4
+- Merge livna spec bugfixes into freshrpms spec for rpmfusion:
+- Set release to 4 to be higher as both livna and freshrpms latest release
+- Set package name and origin to rpmfusion
+- Make mpeg2enc plugin compile with current mjpegtools
+- Make the real plugins search for the RealPlayer .so files in various
+ known possible locations instead of using only one hardcoded path to them
+- Make the wildmidi plugin work with the default Fedora timidity patch set
+- Add a couple of missing modtracker mimetypes to the modplug plugin
+- Use the system version of libmodplug
+- Fix building of the neonsrc plugin with the latest (rawhide) neon
+- Disable the ladspa plugin as this has been added to Fedora's rawhide
+ gstreamer-plugins-good
+- Don't put an rpath in the .so's on x86_64
+- Re-enable gtk-doc now that we have a -devel package again
+- Enable libtimidity plugin
+- Fix detection of (and linking with) libdca for the dtsdec plugin
+
+* Tue Aug 21 2007 Matthias Saou <http://freshrpms.net/> 0.10.5-1
+- Update to 0.10.5.
+- Update faad2 patch : Some fixes went in, but faad2.h still produces an error.
+- Remove libgstqtdemux, libgstvideocrop and libgstwavpack, all are in good now.
+- Enable new nas, x264, wildmidi and libsndfile plugins.
+- Re-add devel package now that we have a main shared lib and header files.
+- Add check build requirement.
+
+* Fri Mar 30 2007 Matthias Saou <http://freshrpms.net/> 0.10.4-1
+- Update to 0.10.4 for F7.
+- Disable swfdec... does anything/anyone even use it here? Once it stabilizes
+ somewhat more, maybe then it'll be worth re-enabling.
+- Re-enable wavpack, it works again now.
+- Enable libcdaudio support.
+- Enable jack support.
+- Enable ladspa support.
+- Enable mpeg2enc (mjpegtools) support.
+- Remove no longer present libgstvideo4linux2.so and add all new plugins.
+- Remove all gtk-doc references (all gone...?) and devel package too.
+
+* Tue Jan 9 2007 Matthias Saou <http://freshrpms.net/> 0.10.3-3
+- Update faad2 patch to also update the plugin sources, not just configure.
+
+* Mon Dec 18 2006 Matthias Saou <http://freshrpms.net/> 0.10.3-2
+- Try to rebuild against new wavpack 4.40 from Extras : Fails.
+- Try to update to 0.10.3.2 pre-release : Fails, it needs a more recent gst.
+- Try to include patch to update wavpack plugin source from 0.10.3.2
+ pre-release : Fails to find wavpack/md5.h.
+- Give up and disable wavpack support for now, sorry! Patches welcome.
+- Include patch to fix faad2 2.5 detection.
+- Add soundtouch support.
+
+* Thu Jun 1 2006 Matthias Saou <http://freshrpms.net/> 0.10.3-1
+- Update to 0.10.3.
+- Add new translations.
+- Add libgstmodplug.so, libgstvideo4linux2.so and libgstxingheader.so.
+- Add new libmusicbrainz support.
+
+* Thu Mar 23 2006 Matthias Saou <http://freshrpms.net/> 0.10.1-2
+- Add libmms support, thanks to Daniel S. Rogers.
+
+* Wed Feb 22 2006 Matthias Saou <http://freshrpms.net/> 0.10.1-1
+- Update to 0.10.1.
+- Add libgstcdxaparse.so and libgstfreeze.so.
+- Enable libgstbz2.so, libgstglimagesink.so and libgstneonhttpsrc.so.
+
+* Wed Jan 25 2006 Matthias Saou <http://freshrpms.net/> 0.10.0.1-1
+- Update to 0.10.0.1, add new plugins.
+- Spec file cleanup and rebuild for FC5.
+
+* Mon Dec 05 2005 Thomas Vander Stichele <thomas at apestaart dot org>
+- 0.10.0-0.gst.1
+- new release
+
+* Thu Dec 01 2005 Thomas Vander Stichele <thomas at apestaart dot org>
+- 0.9.7-0.gst.1
+- new release with 0.10 major/minor
+
+* Sat Nov 12 2005 Thomas Vander Stichele <thomas at apestaart dot org>
+- new release
+- remove tta patch
+- don't check for languages, no translations yet
+- added gtk-doc
+
+* Wed Oct 26 2005 Thomas Vander Stichele <thomas at apestaart dot org>
+- 0.9.4-0.gst.1
+- new release
+- added speed plugin
+
+* Mon Oct 03 2005 Thomas Vander Stichele <thomas at apestaart dot org>
+- 0.9.3-0.gst.1
+- new release
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..01fe7bd
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+fcb09798114461955260e4d940db5987 gst-plugins-bad-0.10.23.tar.bz2
4 years, 2 months
[VirtualBox] Revert kernel-5.8 fixes
by Sérgio M. Basto
commit 100a587e6c6cc02a82ebe419de0bde2c5ec03fd3
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Sat Sep 5 10:36:51 2020 +0100
Revert kernel-5.8 fixes
088da92603cb4f1175ed6d0c452b049af3372c1e.patch | 65 -------
3c981196de564d78aa8c653496f7fefe303bf7b6.patch | 47 -----
521d08e75cb85b0dad89643d2a9de39dfb6f8832.patch | 160 ----------------
6370c9d7c7908f7072b654f9794ed6c5d562768b.patch | 41 -----
6cbdb672039c33018cf766ec010cb5631b3be1e1.patch | 25 ---
842e5679b0904a80c7f065ad50417d82af265395.patch | 27 ---
9f9e3db9d80be17d6fc9be48b6d8745c971fca99.patch | 241 -------------------------
VirtualBox.spec | 16 --
b0f29563e5a7e5d4af8585ee0fffe208d3f528d2.patch | 27 ---
9 files changed, 649 deletions(-)
---
diff --git a/VirtualBox.spec b/VirtualBox.spec
index f783d1b..dc28f94 100644
--- a/VirtualBox.spec
+++ b/VirtualBox.spec
@@ -95,14 +95,6 @@ Patch70: vbox-python-detection.diff
Patch80: VirtualBox-6.1.4-gcc10.patch
Patch86: VirtualBox-6.1.0-VBoxRem.patch
-Patch87: 3c981196de564d78aa8c653496f7fefe303bf7b6.patch
-Patch88: 521d08e75cb85b0dad89643d2a9de39dfb6f8832.patch
-Patch89: 9f9e3db9d80be17d6fc9be48b6d8745c971fca99.patch
-Patch90: 6370c9d7c7908f7072b654f9794ed6c5d562768b.patch
-Patch91: 088da92603cb4f1175ed6d0c452b049af3372c1e.patch
-Patch92: b0f29563e5a7e5d4af8585ee0fffe208d3f528d2.patch
-Patch93: 842e5679b0904a80c7f065ad50417d82af265395.patch
-Patch94: 6cbdb672039c33018cf766ec010cb5631b3be1e1.patch
BuildRequires: kBuild >= 0.1.9998.r3093
@@ -349,14 +341,6 @@ rm -r src/libs/zlib-1.2.*/
%patch70 -p1 -b .python-detection
%patch80 -p1 -b .gcc10
%patch86 -p1 -b .vboxrem
-%patch87 -p2 -b .kernel-5.8
-%patch88 -p2 -b .kernel-5.8
-%patch89 -p2 -b .kernel-5.8
-%patch90 -p2 -b .kernel-5.8
-%patch91 -p2 -b .kernel-5.8
-%patch92 -p2 -b .kernel-5.8
-%patch93 -p2 -b .kernel-5.8
-%patch94 -p2 -b .kernel-5.8
%build
4 years, 2 months
[openmw] Fix unit test issues on non-x86 architectures.
by Ben Rosser
commit ff1d5697a8d62caaf5fe9750209e7487624a1c95
Author: Ben Rosser <rosser.bjr(a)gmail.com>
Date: Thu Sep 3 23:33:52 2020 -0400
Fix unit test issues on non-x86 architectures.
ddab86d94046eab0c0713371990deb04b3f423cc.patch | 593 +++++++++++++++++++++++++
openmw-recastmesh-extra-test-epsilon.patch | 17 +
openmw.spec | 7 +
3 files changed, 617 insertions(+)
---
diff --git a/ddab86d94046eab0c0713371990deb04b3f423cc.patch b/ddab86d94046eab0c0713371990deb04b3f423cc.patch
new file mode 100644
index 0000000..8da7740
--- /dev/null
+++ b/ddab86d94046eab0c0713371990deb04b3f423cc.patch
@@ -0,0 +1,593 @@
+From ddab86d94046eab0c0713371990deb04b3f423cc Mon Sep 17 00:00:00 2001
+From: Alexey Sokolov <sokolov(a)google.com>
+Date: Sun, 16 Feb 2020 01:26:23 +0000
+Subject: [PATCH] Use approximate comparison for floating point in test
+
+This fixes test suite on my machine
+---
+ .../detournavigator/navigator.cpp | 452 +++++++++---------
+ .../detournavigator/recastmeshbuilder.cpp | 9 +-
+ 2 files changed, 234 insertions(+), 227 deletions(-)
+
+diff --git a/apps/openmw_test_suite/detournavigator/navigator.cpp b/apps/openmw_test_suite/detournavigator/navigator.cpp
+index df8be3781..51370c8e0 100644
+--- a/apps/openmw_test_suite/detournavigator/navigator.cpp
++++ b/apps/openmw_test_suite/detournavigator/navigator.cpp
+@@ -11,10 +11,16 @@
+ #include <boost/optional/optional_io.hpp>
+
+ #include <gtest/gtest.h>
++#include <gmock/gmock.h>
+
+ #include <iterator>
+ #include <deque>
+
++MATCHER_P3(Vec3fEq, x, y, z, "")
++{
++ return std::abs(arg.x() - x) < 1e-4 && std::abs(arg.y() - y) < 1e-4 && std::abs(arg.z() - z) < 1e-4;
++}
++
+ namespace
+ {
+ using namespace testing;
+@@ -113,31 +119,31 @@ namespace
+
+ EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_walk, mOut), Status::Success);
+
+- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+- osg::Vec3f(-215, 215, 1.85963428020477294921875),
+- osg::Vec3f(-194.9653167724609375, 194.9653167724609375, -6.57602214813232421875),
+- osg::Vec3f(-174.930633544921875, 174.930633544921875, -15.01167774200439453125),
+- osg::Vec3f(-154.8959503173828125, 154.8959503173828125, -23.4473361968994140625),
+- osg::Vec3f(-134.86126708984375, 134.86126708984375, -31.8829936981201171875),
+- osg::Vec3f(-114.82657623291015625, 114.82657623291015625, -40.3186492919921875),
+- osg::Vec3f(-94.7918853759765625, 94.7918853759765625, -47.3990631103515625),
+- osg::Vec3f(-74.75719451904296875, 74.75719451904296875, -53.7258148193359375),
+- osg::Vec3f(-54.722499847412109375, 54.722499847412109375, -60.052555084228515625),
+- osg::Vec3f(-34.68780517578125, 34.68780517578125, -66.37931060791015625),
+- osg::Vec3f(-14.6531162261962890625, 14.6531162261962890625, -72.70604705810546875),
+- osg::Vec3f(5.3815765380859375, -5.3815765380859375, -75.35065460205078125),
+- osg::Vec3f(25.41626739501953125, -25.41626739501953125, -67.9694671630859375),
+- osg::Vec3f(45.450958251953125, -45.450958251953125, -60.5882568359375),
+- osg::Vec3f(65.48564910888671875, -65.48564910888671875, -53.20705413818359375),
+- osg::Vec3f(85.5203399658203125, -85.5203399658203125, -45.8258514404296875),
+- osg::Vec3f(105.55503082275390625, -105.55503082275390625, -38.44464874267578125),
+- osg::Vec3f(125.5897216796875, -125.5897216796875, -31.063449859619140625),
+- osg::Vec3f(145.6244049072265625, -145.6244049072265625, -23.6822509765625),
+- osg::Vec3f(165.659088134765625, -165.659088134765625, -16.3010501861572265625),
+- osg::Vec3f(185.6937713623046875, -185.6937713623046875, -8.91985416412353515625),
+- osg::Vec3f(205.7284698486328125, -205.7284698486328125, -1.5386505126953125),
+- osg::Vec3f(215, -215, 1.87718021869659423828125),
+- })) << mPath;
++ EXPECT_THAT(mPath, ElementsAre(
++ Vec3fEq(-215, 215, 1.85963428020477294921875),
++ Vec3fEq(-194.9653167724609375, 194.9653167724609375, -6.57602214813232421875),
++ Vec3fEq(-174.930633544921875, 174.930633544921875, -15.01167774200439453125),
++ Vec3fEq(-154.8959503173828125, 154.8959503173828125, -23.4473361968994140625),
++ Vec3fEq(-134.86126708984375, 134.86126708984375, -31.8829936981201171875),
++ Vec3fEq(-114.82657623291015625, 114.82657623291015625, -40.3186492919921875),
++ Vec3fEq(-94.7918853759765625, 94.7918853759765625, -47.3990631103515625),
++ Vec3fEq(-74.75719451904296875, 74.75719451904296875, -53.7258148193359375),
++ Vec3fEq(-54.722499847412109375, 54.722499847412109375, -60.052555084228515625),
++ Vec3fEq(-34.68780517578125, 34.68780517578125, -66.37931060791015625),
++ Vec3fEq(-14.6531162261962890625, 14.6531162261962890625, -72.70604705810546875),
++ Vec3fEq(5.3815765380859375, -5.3815765380859375, -75.35065460205078125),
++ Vec3fEq(25.41626739501953125, -25.41626739501953125, -67.9694671630859375),
++ Vec3fEq(45.450958251953125, -45.450958251953125, -60.5882568359375),
++ Vec3fEq(65.48564910888671875, -65.48564910888671875, -53.20705413818359375),
++ Vec3fEq(85.5203399658203125, -85.5203399658203125, -45.8258514404296875),
++ Vec3fEq(105.55503082275390625, -105.55503082275390625, -38.44464874267578125),
++ Vec3fEq(125.5897216796875, -125.5897216796875, -31.063449859619140625),
++ Vec3fEq(145.6244049072265625, -145.6244049072265625, -23.6822509765625),
++ Vec3fEq(165.659088134765625, -165.659088134765625, -16.3010501861572265625),
++ Vec3fEq(185.6937713623046875, -185.6937713623046875, -8.91985416412353515625),
++ Vec3fEq(205.7284698486328125, -205.7284698486328125, -1.5386505126953125),
++ Vec3fEq(215, -215, 1.87718021869659423828125)
++ ));
+ }
+
+ TEST_F(DetourNavigatorNavigatorTest, add_object_should_change_navmesh)
+@@ -163,31 +169,31 @@ namespace
+
+ EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_walk, mOut), Status::Success);
+
+- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+- osg::Vec3f(-215, 215, 1.85963428020477294921875),
+- osg::Vec3f(-194.9653167724609375, 194.9653167724609375, -6.57602214813232421875),
+- osg::Vec3f(-174.930633544921875, 174.930633544921875, -15.01167774200439453125),
+- osg::Vec3f(-154.8959503173828125, 154.8959503173828125, -23.4473361968994140625),
+- osg::Vec3f(-134.86126708984375, 134.86126708984375, -31.8829936981201171875),
+- osg::Vec3f(-114.82657623291015625, 114.82657623291015625, -40.3186492919921875),
+- osg::Vec3f(-94.7918853759765625, 94.7918853759765625, -47.3990631103515625),
+- osg::Vec3f(-74.75719451904296875, 74.75719451904296875, -53.7258148193359375),
+- osg::Vec3f(-54.722499847412109375, 54.722499847412109375, -60.052555084228515625),
+- osg::Vec3f(-34.68780517578125, 34.68780517578125, -66.37931060791015625),
+- osg::Vec3f(-14.6531162261962890625, 14.6531162261962890625, -72.70604705810546875),
+- osg::Vec3f(5.3815765380859375, -5.3815765380859375, -75.35065460205078125),
+- osg::Vec3f(25.41626739501953125, -25.41626739501953125, -67.9694671630859375),
+- osg::Vec3f(45.450958251953125, -45.450958251953125, -60.5882568359375),
+- osg::Vec3f(65.48564910888671875, -65.48564910888671875, -53.20705413818359375),
+- osg::Vec3f(85.5203399658203125, -85.5203399658203125, -45.8258514404296875),
+- osg::Vec3f(105.55503082275390625, -105.55503082275390625, -38.44464874267578125),
+- osg::Vec3f(125.5897216796875, -125.5897216796875, -31.063449859619140625),
+- osg::Vec3f(145.6244049072265625, -145.6244049072265625, -23.6822509765625),
+- osg::Vec3f(165.659088134765625, -165.659088134765625, -16.3010501861572265625),
+- osg::Vec3f(185.6937713623046875, -185.6937713623046875, -8.91985416412353515625),
+- osg::Vec3f(205.7284698486328125, -205.7284698486328125, -1.5386505126953125),
+- osg::Vec3f(215, -215, 1.87718021869659423828125),
+- })) << mPath;
++ EXPECT_THAT(mPath, ElementsAre(
++ Vec3fEq(-215, 215, 1.85963428020477294921875),
++ Vec3fEq(-194.9653167724609375, 194.9653167724609375, -6.57602214813232421875),
++ Vec3fEq(-174.930633544921875, 174.930633544921875, -15.01167774200439453125),
++ Vec3fEq(-154.8959503173828125, 154.8959503173828125, -23.4473361968994140625),
++ Vec3fEq(-134.86126708984375, 134.86126708984375, -31.8829936981201171875),
++ Vec3fEq(-114.82657623291015625, 114.82657623291015625, -40.3186492919921875),
++ Vec3fEq(-94.7918853759765625, 94.7918853759765625, -47.3990631103515625),
++ Vec3fEq(-74.75719451904296875, 74.75719451904296875, -53.7258148193359375),
++ Vec3fEq(-54.722499847412109375, 54.722499847412109375, -60.052555084228515625),
++ Vec3fEq(-34.68780517578125, 34.68780517578125, -66.37931060791015625),
++ Vec3fEq(-14.6531162261962890625, 14.6531162261962890625, -72.70604705810546875),
++ Vec3fEq(5.3815765380859375, -5.3815765380859375, -75.35065460205078125),
++ Vec3fEq(25.41626739501953125, -25.41626739501953125, -67.9694671630859375),
++ Vec3fEq(45.450958251953125, -45.450958251953125, -60.5882568359375),
++ Vec3fEq(65.48564910888671875, -65.48564910888671875, -53.20705413818359375),
++ Vec3fEq(85.5203399658203125, -85.5203399658203125, -45.8258514404296875),
++ Vec3fEq(105.55503082275390625, -105.55503082275390625, -38.44464874267578125),
++ Vec3fEq(125.5897216796875, -125.5897216796875, -31.063449859619140625),
++ Vec3fEq(145.6244049072265625, -145.6244049072265625, -23.6822509765625),
++ Vec3fEq(165.659088134765625, -165.659088134765625, -16.3010501861572265625),
++ Vec3fEq(185.6937713623046875, -185.6937713623046875, -8.91985416412353515625),
++ Vec3fEq(205.7284698486328125, -205.7284698486328125, -1.5386505126953125),
++ Vec3fEq(215, -215, 1.87718021869659423828125)
++ ));
+
+ mNavigator->addObject(ObjectId(&compoundShape), compoundShape, btTransform::getIdentity());
+ mNavigator->update(mPlayerPosition);
+@@ -197,31 +203,31 @@ namespace
+ mOut = std::back_inserter(mPath);
+ EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_walk, mOut), Status::Success);
+
+- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+- osg::Vec3f(-215, 215, 1.87826788425445556640625),
+- osg::Vec3f(-199.7968292236328125, 191.09100341796875, -3.54876613616943359375),
+- osg::Vec3f(-184.5936431884765625, 167.1819915771484375, -8.97847843170166015625),
+- osg::Vec3f(-169.3904571533203125, 143.2729949951171875, -14.408184051513671875),
+- osg::Vec3f(-154.1872711181640625, 119.36397552490234375, -19.837890625),
+- osg::Vec3f(-138.9840850830078125, 95.45496368408203125, -25.2675991058349609375),
+- osg::Vec3f(-123.78090667724609375, 71.54595184326171875, -30.6973056793212890625),
+- osg::Vec3f(-108.57772064208984375, 47.636936187744140625, -36.12701416015625),
+- osg::Vec3f(-93.3745269775390625, 23.7279262542724609375, -40.754688262939453125),
+- osg::Vec3f(-78.17134857177734375, -0.18108306825160980224609375, -37.128787994384765625),
+- osg::Vec3f(-62.968158721923828125, -24.0900936126708984375, -33.50289154052734375),
+- osg::Vec3f(-47.764972686767578125, -47.999103546142578125, -30.797946929931640625),
+- osg::Vec3f(-23.852447509765625, -63.196765899658203125, -33.97112274169921875),
+- osg::Vec3f(0.0600789971649646759033203125, -78.39443206787109375, -37.14543914794921875),
+- osg::Vec3f(23.97260284423828125, -93.5920867919921875, -40.774089813232421875),
+- osg::Vec3f(47.885128021240234375, -108.78974151611328125, -36.05129241943359375),
+- osg::Vec3f(71.7976531982421875, -123.98740386962890625, -30.6235561370849609375),
+- osg::Vec3f(95.71018218994140625, -139.18505859375, -25.1958255767822265625),
+- osg::Vec3f(119.6226959228515625, -154.382720947265625, -19.7680912017822265625),
+- osg::Vec3f(143.53521728515625, -169.58038330078125, -14.34035205841064453125),
+- osg::Vec3f(167.4477386474609375, -184.778045654296875, -8.9126186370849609375),
+- osg::Vec3f(191.360260009765625, -199.9757080078125, -3.4848802089691162109375),
+- osg::Vec3f(215, -215, 1.87826788425445556640625),
+- })) << mPath;
++ EXPECT_THAT(mPath, ElementsAre(
++ Vec3fEq(-215, 215, 1.87826788425445556640625),
++ Vec3fEq(-199.7968292236328125, 191.09100341796875, -3.54876613616943359375),
++ Vec3fEq(-184.5936431884765625, 167.1819915771484375, -8.97847843170166015625),
++ Vec3fEq(-169.3904571533203125, 143.2729949951171875, -14.408184051513671875),
++ Vec3fEq(-154.1872711181640625, 119.36397552490234375, -19.837890625),
++ Vec3fEq(-138.9840850830078125, 95.45496368408203125, -25.2675991058349609375),
++ Vec3fEq(-123.78090667724609375, 71.54595184326171875, -30.6973056793212890625),
++ Vec3fEq(-108.57772064208984375, 47.636936187744140625, -36.12701416015625),
++ Vec3fEq(-93.3745269775390625, 23.7279262542724609375, -40.754688262939453125),
++ Vec3fEq(-78.17134857177734375, -0.18108306825160980224609375, -37.128787994384765625),
++ Vec3fEq(-62.968158721923828125, -24.0900936126708984375, -33.50289154052734375),
++ Vec3fEq(-47.764972686767578125, -47.999103546142578125, -30.797946929931640625),
++ Vec3fEq(-23.852447509765625, -63.196765899658203125, -33.97112274169921875),
++ Vec3fEq(0.0600789971649646759033203125, -78.39443206787109375, -37.14543914794921875),
++ Vec3fEq(23.97260284423828125, -93.5920867919921875, -40.774089813232421875),
++ Vec3fEq(47.885128021240234375, -108.78974151611328125, -36.05129241943359375),
++ Vec3fEq(71.7976531982421875, -123.98740386962890625, -30.6235561370849609375),
++ Vec3fEq(95.71018218994140625, -139.18505859375, -25.1958255767822265625),
++ Vec3fEq(119.6226959228515625, -154.382720947265625, -19.7680912017822265625),
++ Vec3fEq(143.53521728515625, -169.58038330078125, -14.34035205841064453125),
++ Vec3fEq(167.4477386474609375, -184.778045654296875, -8.9126186370849609375),
++ Vec3fEq(191.360260009765625, -199.9757080078125, -3.4848802089691162109375),
++ Vec3fEq(215, -215, 1.87826788425445556640625)
++ ));
+ }
+
+ TEST_F(DetourNavigatorNavigatorTest, update_changed_object_should_change_navmesh)
+@@ -248,31 +254,31 @@ namespace
+
+ EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_walk, mOut), Status::Success);
+
+- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+- osg::Vec3f(-215, 215, 1.87826788425445556640625),
+- osg::Vec3f(-199.7968292236328125, 191.09100341796875, -3.54876613616943359375),
+- osg::Vec3f(-184.5936431884765625, 167.1819915771484375, -8.97847843170166015625),
+- osg::Vec3f(-169.3904571533203125, 143.2729949951171875, -14.408184051513671875),
+- osg::Vec3f(-154.1872711181640625, 119.36397552490234375, -19.837890625),
+- osg::Vec3f(-138.9840850830078125, 95.45496368408203125, -25.2675991058349609375),
+- osg::Vec3f(-123.78090667724609375, 71.54595184326171875, -30.6973056793212890625),
+- osg::Vec3f(-108.57772064208984375, 47.636936187744140625, -36.12701416015625),
+- osg::Vec3f(-93.3745269775390625, 23.7279262542724609375, -40.754688262939453125),
+- osg::Vec3f(-78.17134857177734375, -0.18108306825160980224609375, -37.128787994384765625),
+- osg::Vec3f(-62.968158721923828125, -24.0900936126708984375, -33.50289154052734375),
+- osg::Vec3f(-47.764972686767578125, -47.999103546142578125, -30.797946929931640625),
+- osg::Vec3f(-23.852447509765625, -63.196765899658203125, -33.97112274169921875),
+- osg::Vec3f(0.0600789971649646759033203125, -78.39443206787109375, -37.14543914794921875),
+- osg::Vec3f(23.97260284423828125, -93.5920867919921875, -40.774089813232421875),
+- osg::Vec3f(47.885128021240234375, -108.78974151611328125, -36.05129241943359375),
+- osg::Vec3f(71.7976531982421875, -123.98740386962890625, -30.6235561370849609375),
+- osg::Vec3f(95.71018218994140625, -139.18505859375, -25.1958255767822265625),
+- osg::Vec3f(119.6226959228515625, -154.382720947265625, -19.7680912017822265625),
+- osg::Vec3f(143.53521728515625, -169.58038330078125, -14.34035205841064453125),
+- osg::Vec3f(167.4477386474609375, -184.778045654296875, -8.9126186370849609375),
+- osg::Vec3f(191.360260009765625, -199.9757080078125, -3.4848802089691162109375),
+- osg::Vec3f(215, -215, 1.87826788425445556640625),
+- })) << mPath;
++ EXPECT_THAT(mPath, ElementsAre(
++ Vec3fEq(-215, 215, 1.87826788425445556640625),
++ Vec3fEq(-199.7968292236328125, 191.09100341796875, -3.54876613616943359375),
++ Vec3fEq(-184.5936431884765625, 167.1819915771484375, -8.97847843170166015625),
++ Vec3fEq(-169.3904571533203125, 143.2729949951171875, -14.408184051513671875),
++ Vec3fEq(-154.1872711181640625, 119.36397552490234375, -19.837890625),
++ Vec3fEq(-138.9840850830078125, 95.45496368408203125, -25.2675991058349609375),
++ Vec3fEq(-123.78090667724609375, 71.54595184326171875, -30.6973056793212890625),
++ Vec3fEq(-108.57772064208984375, 47.636936187744140625, -36.12701416015625),
++ Vec3fEq(-93.3745269775390625, 23.7279262542724609375, -40.754688262939453125),
++ Vec3fEq(-78.17134857177734375, -0.18108306825160980224609375, -37.128787994384765625),
++ Vec3fEq(-62.968158721923828125, -24.0900936126708984375, -33.50289154052734375),
++ Vec3fEq(-47.764972686767578125, -47.999103546142578125, -30.797946929931640625),
++ Vec3fEq(-23.852447509765625, -63.196765899658203125, -33.97112274169921875),
++ Vec3fEq(0.0600789971649646759033203125, -78.39443206787109375, -37.14543914794921875),
++ Vec3fEq(23.97260284423828125, -93.5920867919921875, -40.774089813232421875),
++ Vec3fEq(47.885128021240234375, -108.78974151611328125, -36.05129241943359375),
++ Vec3fEq(71.7976531982421875, -123.98740386962890625, -30.6235561370849609375),
++ Vec3fEq(95.71018218994140625, -139.18505859375, -25.1958255767822265625),
++ Vec3fEq(119.6226959228515625, -154.382720947265625, -19.7680912017822265625),
++ Vec3fEq(143.53521728515625, -169.58038330078125, -14.34035205841064453125),
++ Vec3fEq(167.4477386474609375, -184.778045654296875, -8.9126186370849609375),
++ Vec3fEq(191.360260009765625, -199.9757080078125, -3.4848802089691162109375),
++ Vec3fEq(215, -215, 1.87826788425445556640625)
++ ));
+
+ compoundShape.updateChildTransform(0, btTransform(btMatrix3x3::getIdentity(), btVector3(1000, 0, 0)));
+
+@@ -284,31 +290,31 @@ namespace
+ mOut = std::back_inserter(mPath);
+ EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_walk, mOut), Status::Success);
+
+- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+- osg::Vec3f(-215, 215, 1.85963428020477294921875),
+- osg::Vec3f(-194.9653167724609375, 194.9653167724609375, -6.57602214813232421875),
+- osg::Vec3f(-174.930633544921875, 174.930633544921875, -15.01167774200439453125),
+- osg::Vec3f(-154.8959503173828125, 154.8959503173828125, -23.4473361968994140625),
+- osg::Vec3f(-134.86126708984375, 134.86126708984375, -31.8829936981201171875),
+- osg::Vec3f(-114.82657623291015625, 114.82657623291015625, -40.3186492919921875),
+- osg::Vec3f(-94.7918853759765625, 94.7918853759765625, -47.3990631103515625),
+- osg::Vec3f(-74.75719451904296875, 74.75719451904296875, -53.7258148193359375),
+- osg::Vec3f(-54.722499847412109375, 54.722499847412109375, -60.052555084228515625),
+- osg::Vec3f(-34.68780517578125, 34.68780517578125, -66.37931060791015625),
+- osg::Vec3f(-14.6531162261962890625, 14.6531162261962890625, -72.70604705810546875),
+- osg::Vec3f(5.3815765380859375, -5.3815765380859375, -75.35065460205078125),
+- osg::Vec3f(25.41626739501953125, -25.41626739501953125, -67.9694671630859375),
+- osg::Vec3f(45.450958251953125, -45.450958251953125, -60.5882568359375),
+- osg::Vec3f(65.48564910888671875, -65.48564910888671875, -53.20705413818359375),
+- osg::Vec3f(85.5203399658203125, -85.5203399658203125, -45.8258514404296875),
+- osg::Vec3f(105.55503082275390625, -105.55503082275390625, -38.44464874267578125),
+- osg::Vec3f(125.5897216796875, -125.5897216796875, -31.063449859619140625),
+- osg::Vec3f(145.6244049072265625, -145.6244049072265625, -23.6822509765625),
+- osg::Vec3f(165.659088134765625, -165.659088134765625, -16.3010501861572265625),
+- osg::Vec3f(185.6937713623046875, -185.6937713623046875, -8.91985416412353515625),
+- osg::Vec3f(205.7284698486328125, -205.7284698486328125, -1.5386505126953125),
+- osg::Vec3f(215, -215, 1.87718021869659423828125),
+- })) << mPath;
++ EXPECT_THAT(mPath, ElementsAre(
++ Vec3fEq(-215, 215, 1.85963428020477294921875),
++ Vec3fEq(-194.9653167724609375, 194.9653167724609375, -6.57602214813232421875),
++ Vec3fEq(-174.930633544921875, 174.930633544921875, -15.01167774200439453125),
++ Vec3fEq(-154.8959503173828125, 154.8959503173828125, -23.4473361968994140625),
++ Vec3fEq(-134.86126708984375, 134.86126708984375, -31.8829936981201171875),
++ Vec3fEq(-114.82657623291015625, 114.82657623291015625, -40.3186492919921875),
++ Vec3fEq(-94.7918853759765625, 94.7918853759765625, -47.3990631103515625),
++ Vec3fEq(-74.75719451904296875, 74.75719451904296875, -53.7258148193359375),
++ Vec3fEq(-54.722499847412109375, 54.722499847412109375, -60.052555084228515625),
++ Vec3fEq(-34.68780517578125, 34.68780517578125, -66.37931060791015625),
++ Vec3fEq(-14.6531162261962890625, 14.6531162261962890625, -72.70604705810546875),
++ Vec3fEq(5.3815765380859375, -5.3815765380859375, -75.35065460205078125),
++ Vec3fEq(25.41626739501953125, -25.41626739501953125, -67.9694671630859375),
++ Vec3fEq(45.450958251953125, -45.450958251953125, -60.5882568359375),
++ Vec3fEq(65.48564910888671875, -65.48564910888671875, -53.20705413818359375),
++ Vec3fEq(85.5203399658203125, -85.5203399658203125, -45.8258514404296875),
++ Vec3fEq(105.55503082275390625, -105.55503082275390625, -38.44464874267578125),
++ Vec3fEq(125.5897216796875, -125.5897216796875, -31.063449859619140625),
++ Vec3fEq(145.6244049072265625, -145.6244049072265625, -23.6822509765625),
++ Vec3fEq(165.659088134765625, -165.659088134765625, -16.3010501861572265625),
++ Vec3fEq(185.6937713623046875, -185.6937713623046875, -8.91985416412353515625),
++ Vec3fEq(205.7284698486328125, -205.7284698486328125, -1.5386505126953125),
++ Vec3fEq(215, -215, 1.87718021869659423828125)
++ ));
+ }
+
+ TEST_F(DetourNavigatorNavigatorTest, for_overlapping_heightfields_should_use_higher)
+@@ -341,31 +347,31 @@ namespace
+
+ EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_walk, mOut), Status::Success);
+
+- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+- osg::Vec3f(-215, 215, 1.96328866481781005859375),
+- osg::Vec3f(-194.9653167724609375, 194.9653167724609375, -0.242215454578399658203125),
+- osg::Vec3f(-174.930633544921875, 174.930633544921875, -2.447719097137451171875),
+- osg::Vec3f(-154.8959503173828125, 154.8959503173828125, -4.65322399139404296875),
+- osg::Vec3f(-134.86126708984375, 134.86126708984375, -6.858726978302001953125),
+- osg::Vec3f(-114.82657623291015625, 114.82657623291015625, -9.06423282623291015625),
+- osg::Vec3f(-94.7918853759765625, 94.7918853759765625, -11.26973628997802734375),
+- osg::Vec3f(-74.75719451904296875, 74.75719451904296875, -13.26497173309326171875),
+- osg::Vec3f(-54.722499847412109375, 54.722499847412109375, -15.24860477447509765625),
+- osg::Vec3f(-34.68780517578125, 34.68780517578125, -17.23223876953125),
+- osg::Vec3f(-14.6531162261962890625, 14.6531162261962890625, -19.215869903564453125),
+- osg::Vec3f(5.3815765380859375, -5.3815765380859375, -20.1338443756103515625),
+- osg::Vec3f(25.41626739501953125, -25.41626739501953125, -18.1502132415771484375),
+- osg::Vec3f(45.450958251953125, -45.450958251953125, -16.1665802001953125),
+- osg::Vec3f(65.48564910888671875, -65.48564910888671875, -14.18294620513916015625),
+- osg::Vec3f(85.5203399658203125, -85.5203399658203125, -12.199314117431640625),
+- osg::Vec3f(105.55503082275390625, -105.55503082275390625, -10.08488368988037109375),
+- osg::Vec3f(125.5897216796875, -125.5897216796875, -7.87938022613525390625),
+- osg::Vec3f(145.6244049072265625, -145.6244049072265625, -5.673875331878662109375),
+- osg::Vec3f(165.659088134765625, -165.659088134765625, -3.468370914459228515625),
+- osg::Vec3f(185.6937713623046875, -185.6937713623046875, -1.26286637783050537109375),
+- osg::Vec3f(205.7284698486328125, -205.7284698486328125, 0.942641556262969970703125),
+- osg::Vec3f(215, -215, 1.96328866481781005859375),
+- })) << mPath;
++ EXPECT_THAT(mPath, ElementsAre(
++ Vec3fEq(-215, 215, 1.96328866481781005859375),
++ Vec3fEq(-194.9653167724609375, 194.9653167724609375, -0.242215454578399658203125),
++ Vec3fEq(-174.930633544921875, 174.930633544921875, -2.447719097137451171875),
++ Vec3fEq(-154.8959503173828125, 154.8959503173828125, -4.65322399139404296875),
++ Vec3fEq(-134.86126708984375, 134.86126708984375, -6.858726978302001953125),
++ Vec3fEq(-114.82657623291015625, 114.82657623291015625, -9.06423282623291015625),
++ Vec3fEq(-94.7918853759765625, 94.7918853759765625, -11.26973628997802734375),
++ Vec3fEq(-74.75719451904296875, 74.75719451904296875, -13.26497173309326171875),
++ Vec3fEq(-54.722499847412109375, 54.722499847412109375, -15.24860477447509765625),
++ Vec3fEq(-34.68780517578125, 34.68780517578125, -17.23223876953125),
++ Vec3fEq(-14.6531162261962890625, 14.6531162261962890625, -19.215869903564453125),
++ Vec3fEq(5.3815765380859375, -5.3815765380859375, -20.1338443756103515625),
++ Vec3fEq(25.41626739501953125, -25.41626739501953125, -18.1502132415771484375),
++ Vec3fEq(45.450958251953125, -45.450958251953125, -16.1665802001953125),
++ Vec3fEq(65.48564910888671875, -65.48564910888671875, -14.18294620513916015625),
++ Vec3fEq(85.5203399658203125, -85.5203399658203125, -12.199314117431640625),
++ Vec3fEq(105.55503082275390625, -105.55503082275390625, -10.08488368988037109375),
++ Vec3fEq(125.5897216796875, -125.5897216796875, -7.87938022613525390625),
++ Vec3fEq(145.6244049072265625, -145.6244049072265625, -5.673875331878662109375),
++ Vec3fEq(165.659088134765625, -165.659088134765625, -3.468370914459228515625),
++ Vec3fEq(185.6937713623046875, -185.6937713623046875, -1.26286637783050537109375),
++ Vec3fEq(205.7284698486328125, -205.7284698486328125, 0.942641556262969970703125),
++ Vec3fEq(215, -215, 1.96328866481781005859375)
++ ));
+ }
+
+ TEST_F(DetourNavigatorNavigatorTest, path_should_be_around_avoid_shape)
+@@ -397,32 +403,32 @@ namespace
+
+ EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_walk, mOut), Status::Success);
+
+- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+- osg::Vec3f(-215, 215, 1.9393787384033203125),
+- osg::Vec3f(-200.8159637451171875, 190.47265625, -0.639537751674652099609375),
+- osg::Vec3f(-186.6319427490234375, 165.9453125, -3.2184507846832275390625),
+- osg::Vec3f(-172.447906494140625, 141.41796875, -5.797363758087158203125),
+- osg::Vec3f(-158.263885498046875, 116.8906097412109375, -8.37627696990966796875),
+- osg::Vec3f(-144.079864501953125, 92.3632659912109375, -10.9551906585693359375),
+- osg::Vec3f(-129.89581298828125, 67.83591461181640625, -13.53410625457763671875),
+- osg::Vec3f(-115.7117919921875, 43.308563232421875, -16.1130199432373046875),
+- osg::Vec3f(-101.5277557373046875, 18.7812137603759765625, -18.6919345855712890625),
+- osg::Vec3f(-87.34372711181640625, -5.7461376190185546875, -20.4680538177490234375),
+- osg::Vec3f(-67.02922821044921875, -25.4970550537109375, -20.514247894287109375),
+- osg::Vec3f(-46.714717864990234375, -45.2479705810546875, -20.560443878173828125),
+- osg::Vec3f(-26.40021514892578125, -64.99889373779296875, -20.6066417694091796875),
+- osg::Vec3f(-6.085712432861328125, -84.74980926513671875, -20.652835845947265625),
+- osg::Vec3f(14.22879505157470703125, -104.50072479248046875, -18.151397705078125),
+- osg::Vec3f(39.05098724365234375, -118.16222381591796875, -15.66748714447021484375),
+- osg::Vec3f(63.87317657470703125, -131.82373046875, -13.18358135223388671875),
+- osg::Vec3f(88.69537353515625, -145.4852142333984375, -10.699672698974609375),
+- osg::Vec3f(113.51757049560546875, -159.146697998046875, -8.21576786041259765625),
+- osg::Vec3f(138.3397674560546875, -172.808197021484375, -5.731859683990478515625),
+- osg::Vec3f(163.1619720458984375, -186.469696044921875, -3.2479507923126220703125),
+- osg::Vec3f(187.984161376953125, -200.1311798095703125, -0.764044821262359619140625),
+- osg::Vec3f(212.8063507080078125, -213.7926788330078125, 1.719865322113037109375),
+- osg::Vec3f(215, -215, 1.9393787384033203125),
+- })) << mPath;
++ EXPECT_THAT(mPath, ElementsAre(
++ Vec3fEq(-215, 215, 1.9393787384033203125),
++ Vec3fEq(-200.8159637451171875, 190.47265625, -0.639537751674652099609375),
++ Vec3fEq(-186.6319427490234375, 165.9453125, -3.2184507846832275390625),
++ Vec3fEq(-172.447906494140625, 141.41796875, -5.797363758087158203125),
++ Vec3fEq(-158.263885498046875, 116.8906097412109375, -8.37627696990966796875),
++ Vec3fEq(-144.079864501953125, 92.3632659912109375, -10.9551906585693359375),
++ Vec3fEq(-129.89581298828125, 67.83591461181640625, -13.53410625457763671875),
++ Vec3fEq(-115.7117919921875, 43.308563232421875, -16.1130199432373046875),
++ Vec3fEq(-101.5277557373046875, 18.7812137603759765625, -18.6919345855712890625),
++ Vec3fEq(-87.34372711181640625, -5.7461376190185546875, -20.4680538177490234375),
++ Vec3fEq(-67.02922821044921875, -25.4970550537109375, -20.514247894287109375),
++ Vec3fEq(-46.714717864990234375, -45.2479705810546875, -20.560443878173828125),
++ Vec3fEq(-26.40021514892578125, -64.99889373779296875, -20.6066417694091796875),
++ Vec3fEq(-6.085712432861328125, -84.74980926513671875, -20.652835845947265625),
++ Vec3fEq(14.22879505157470703125, -104.50072479248046875, -18.151397705078125),
++ Vec3fEq(39.05098724365234375, -118.16222381591796875, -15.66748714447021484375),
++ Vec3fEq(63.87317657470703125, -131.82373046875, -13.18358135223388671875),
++ Vec3fEq(88.69537353515625, -145.4852142333984375, -10.699672698974609375),
++ Vec3fEq(113.51757049560546875, -159.146697998046875, -8.21576786041259765625),
++ Vec3fEq(138.3397674560546875, -172.808197021484375, -5.731859683990478515625),
++ Vec3fEq(163.1619720458984375, -186.469696044921875, -3.2479507923126220703125),
++ Vec3fEq(187.984161376953125, -200.1311798095703125, -0.764044821262359619140625),
++ Vec3fEq(212.8063507080078125, -213.7926788330078125, 1.719865322113037109375),
++ Vec3fEq(215, -215, 1.9393787384033203125)
++ ));
+ }
+
+ TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_water_ground_lower_than_water_with_only_swim_flag)
+@@ -590,26 +596,26 @@ namespace
+
+ EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_walk, mOut), Status::Success);
+
+- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+- osg::Vec3f(0, 215, -94.75363922119140625),
+- osg::Vec3f(9.8083515167236328125, 188.4185333251953125, -105.199951171875),
+- osg::Vec3f(19.6167049407958984375, 161.837066650390625, -114.25495147705078125),
+- osg::Vec3f(29.42505645751953125, 135.255615234375, -123.309967041015625),
+- osg::Vec3f(39.23340606689453125, 108.674163818359375, -132.3649749755859375),
+- osg::Vec3f(49.04175567626953125, 82.09270477294921875, -137.2874755859375),
+- osg::Vec3f(58.8501129150390625, 55.5112457275390625, -139.2451171875),
+- osg::Vec3f(68.6584625244140625, 28.9297885894775390625, -141.2027740478515625),
+- osg::Vec3f(78.4668121337890625, 2.3483295440673828125, -143.1604156494140625),
+- osg::Vec3f(88.27516937255859375, -24.233127593994140625, -141.3894805908203125),
+- osg::Vec3f(83.73651885986328125, -52.2005767822265625, -142.3761444091796875),
+- osg::Vec3f(79.19786834716796875, -80.16802978515625, -143.114837646484375),
+- osg::Vec3f(64.8477935791015625, -104.598602294921875, -137.840911865234375),
+- osg::Vec3f(50.497714996337890625, -129.0291748046875, -131.45831298828125),
+- osg::Vec3f(36.147632598876953125, -153.459747314453125, -121.42321014404296875),
+- osg::Vec3f(21.7975559234619140625, -177.8903350830078125, -111.38811492919921875),
+- osg::Vec3f(7.44747829437255859375, -202.3209075927734375, -101.19382476806640625),
+- osg::Vec3f(0, -215, -94.75363922119140625),
+- })) << mPath;
++ EXPECT_THAT(mPath, ElementsAre(
++ Vec3fEq(0, 215, -94.75363922119140625),
++ Vec3fEq(9.8083515167236328125, 188.4185333251953125, -105.199951171875),
++ Vec3fEq(19.6167049407958984375, 161.837066650390625, -114.25495147705078125),
++ Vec3fEq(29.42505645751953125, 135.255615234375, -123.309967041015625),
++ Vec3fEq(39.23340606689453125, 108.674163818359375, -132.3649749755859375),
++ Vec3fEq(49.04175567626953125, 82.09270477294921875, -137.2874755859375),
++ Vec3fEq(58.8501129150390625, 55.5112457275390625, -139.2451171875),
++ Vec3fEq(68.6584625244140625, 28.9297885894775390625, -141.2027740478515625),
++ Vec3fEq(78.4668121337890625, 2.3483295440673828125, -143.1604156494140625),
++ Vec3fEq(88.27516937255859375, -24.233127593994140625, -141.3894805908203125),
++ Vec3fEq(83.73651885986328125, -52.2005767822265625, -142.3761444091796875),
++ Vec3fEq(79.19786834716796875, -80.16802978515625, -143.114837646484375),
++ Vec3fEq(64.8477935791015625, -104.598602294921875, -137.840911865234375),
++ Vec3fEq(50.497714996337890625, -129.0291748046875, -131.45831298828125),
++ Vec3fEq(36.147632598876953125, -153.459747314453125, -121.42321014404296875),
++ Vec3fEq(21.7975559234619140625, -177.8903350830078125, -111.38811492919921875),
++ Vec3fEq(7.44747829437255859375, -202.3209075927734375, -101.19382476806640625),
++ Vec3fEq(0, -215, -94.75363922119140625)
++ ));
+ }
+
+ TEST_F(DetourNavigatorNavigatorTest, update_remove_and_update_then_find_path_should_return_path)
+@@ -639,31 +645,31 @@ namespace
+
+ EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_walk, mOut), Status::Success);
+
+- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
+- osg::Vec3f(-215, 215, 1.85963428020477294921875),
+- osg::Vec3f(-194.9653167724609375, 194.9653167724609375, -6.57602214813232421875),
+- osg::Vec3f(-174.930633544921875, 174.930633544921875, -15.01167774200439453125),
+- osg::Vec3f(-154.8959503173828125, 154.8959503173828125, -23.4473361968994140625),
+- osg::Vec3f(-134.86126708984375, 134.86126708984375, -31.8829936981201171875),
+- osg::Vec3f(-114.82657623291015625, 114.82657623291015625, -40.3186492919921875),
+- osg::Vec3f(-94.7918853759765625, 94.7918853759765625, -47.3990631103515625),
+- osg::Vec3f(-74.75719451904296875, 74.75719451904296875, -53.7258148193359375),
+- osg::Vec3f(-54.722499847412109375, 54.722499847412109375, -60.052555084228515625),
+- osg::Vec3f(-34.68780517578125, 34.68780517578125, -66.37931060791015625),
+- osg::Vec3f(-14.6531162261962890625, 14.6531162261962890625, -72.70604705810546875),
+- osg::Vec3f(5.3815765380859375, -5.3815765380859375, -75.35065460205078125),
+- osg::Vec3f(25.41626739501953125, -25.41626739501953125, -67.9694671630859375),
+- osg::Vec3f(45.450958251953125, -45.450958251953125, -60.5882568359375),
+- osg::Vec3f(65.48564910888671875, -65.48564910888671875, -53.20705413818359375),
+- osg::Vec3f(85.5203399658203125, -85.5203399658203125, -45.8258514404296875),
+- osg::Vec3f(105.55503082275390625, -105.55503082275390625, -38.44464874267578125),
+- osg::Vec3f(125.5897216796875, -125.5897216796875, -31.063449859619140625),
+- osg::Vec3f(145.6244049072265625, -145.6244049072265625, -23.6822509765625),
+- osg::Vec3f(165.659088134765625, -165.659088134765625, -16.3010501861572265625),
+- osg::Vec3f(185.6937713623046875, -185.6937713623046875, -8.91985416412353515625),
+- osg::Vec3f(205.7284698486328125, -205.7284698486328125, -1.5386505126953125),
+- osg::Vec3f(215, -215, 1.87718021869659423828125),
+- })) << mPath;
++ EXPECT_THAT(mPath, ElementsAre(
++ Vec3fEq(-215, 215, 1.85963428020477294921875),
++ Vec3fEq(-194.9653167724609375, 194.9653167724609375, -6.57602214813232421875),
++ Vec3fEq(-174.930633544921875, 174.930633544921875, -15.01167774200439453125),
++ Vec3fEq(-154.8959503173828125, 154.8959503173828125, -23.4473361968994140625),
++ Vec3fEq(-134.86126708984375, 134.86126708984375, -31.8829936981201171875),
++ Vec3fEq(-114.82657623291015625, 114.82657623291015625, -40.3186492919921875),
++ Vec3fEq(-94.7918853759765625, 94.7918853759765625, -47.3990631103515625),
++ Vec3fEq(-74.75719451904296875, 74.75719451904296875, -53.7258148193359375),
++ Vec3fEq(-54.722499847412109375, 54.722499847412109375, -60.052555084228515625),
++ Vec3fEq(-34.68780517578125, 34.68780517578125, -66.37931060791015625),
++ Vec3fEq(-14.6531162261962890625, 14.6531162261962890625, -72.70604705810546875),
++ Vec3fEq(5.3815765380859375, -5.3815765380859375, -75.35065460205078125),
++ Vec3fEq(25.41626739501953125, -25.41626739501953125, -67.9694671630859375),
++ Vec3fEq(45.450958251953125, -45.450958251953125, -60.5882568359375),
++ Vec3fEq(65.48564910888671875, -65.48564910888671875, -53.20705413818359375),
++ Vec3fEq(85.5203399658203125, -85.5203399658203125, -45.8258514404296875),
++ Vec3fEq(105.55503082275390625, -105.55503082275390625, -38.44464874267578125),
++ Vec3fEq(125.5897216796875, -125.5897216796875, -31.063449859619140625),
++ Vec3fEq(145.6244049072265625, -145.6244049072265625, -23.6822509765625),
++ Vec3fEq(165.659088134765625, -165.659088134765625, -16.3010501861572265625),
++ Vec3fEq(185.6937713623046875, -185.6937713623046875, -8.91985416412353515625),
++ Vec3fEq(205.7284698486328125, -205.7284698486328125, -1.5386505126953125),
++ Vec3fEq(215, -215, 1.87718021869659423828125)
++ ));
+ }
+
+ TEST_F(DetourNavigatorNavigatorTest, update_then_find_random_point_around_circle_should_return_position)
+@@ -687,10 +693,10 @@ namespace
+
+ const auto result = mNavigator->findRandomPointAroundCircle(mAgentHalfExtents, mStart, 100.0, Flag_walk);
+
+- ASSERT_EQ(result, boost::optional<osg::Vec3f>(osg::Vec3f(-209.95985412597656, 129.89768981933594, -0.26253718137741089)));
++ ASSERT_THAT(result, Optional(Vec3fEq(-209.95985412597656, 129.89768981933594, -0.26253718137741089)));
+
+ const auto distance = (*result - mStart).length();
+
+- EXPECT_EQ(distance, 85.260780334472656) << distance;
++ EXPECT_FLOAT_EQ(distance, 85.260780334472656);
+ }
+ }
+diff --git a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
+index af6797cf0..6c474765d 100644
+--- a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
++++ b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
+@@ -12,6 +12,7 @@
+ #include <BulletCollision/CollisionShapes/btCompoundShape.h>
+
+ #include <gtest/gtest.h>
++#include <gmock/gmock.h>
+
+ namespace DetourNavigator
+ {
+@@ -312,11 +313,11 @@ namespace
+ AreaType_ground
+ );
+ const auto recastMesh = builder.create(mGeneration, mRevision);
+- EXPECT_EQ(recastMesh->getVertices(), std::vector<float>({
++ EXPECT_THAT(recastMesh->getVertices(), Pointwise(FloatNear(1e-5), std::vector<float>({
+ 0, -0.70710659027099609375, -3.535533905029296875,
+ 0, 0.707107067108154296875, -3.535533905029296875,
+ 0, 2.384185791015625e-07, -4.24264049530029296875,
+- }));
++ })));
+ EXPECT_EQ(recastMesh->getIndices(), std::vector<int>({0, 1, 2}));
+ EXPECT_EQ(recastMesh->getAreaTypes(), std::vector<AreaType>({AreaType_ground}));
+ }
+@@ -337,11 +338,11 @@ namespace
+ AreaType_ground
+ );
+ const auto recastMesh = builder.create(mGeneration, mRevision);
+- EXPECT_EQ(recastMesh->getVertices(), std::vector<float>({
++ EXPECT_THAT(recastMesh->getVertices(), Pointwise(FloatNear(1e-5), std::vector<float>({
+ -3.535533905029296875, -0.70710659027099609375, 0,
+ -3.535533905029296875, 0.707107067108154296875, 0,
+ -4.24264049530029296875, 2.384185791015625e-07, 0,
+- }));
++ })));
+ EXPECT_EQ(recastMesh->getIndices(), std::vector<int>({0, 1, 2}));
+ EXPECT_EQ(recastMesh->getAreaTypes(), std::vector<AreaType>({AreaType_ground}));
+ }
+--
+GitLab
+
diff --git a/openmw-recastmesh-extra-test-epsilon.patch b/openmw-recastmesh-extra-test-epsilon.patch
new file mode 100644
index 0000000..d06be62
--- /dev/null
+++ b/openmw-recastmesh-extra-test-epsilon.patch
@@ -0,0 +1,17 @@
+diff -rupN openmw-openmw-0.46.0/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp openmw-openmw-0.46.0-patched/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
+--- openmw-openmw-0.46.0/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp 2020-06-08 05:11:24.000000000 -0400
++++ openmw-openmw-0.46.0-patched/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp 2020-09-03 15:46:02.690189048 -0400
+@@ -362,11 +362,11 @@ namespace
+ AreaType_ground
+ );
+ const auto recastMesh = builder.create(mGeneration, mRevision);
+- EXPECT_EQ(recastMesh->getVertices(), std::vector<float>({
++ EXPECT_THAT(recastMesh->getVertices(), Pointwise(FloatNear(1e-5), std::vector<float>({
+ 1.41421353816986083984375, 0, 1.1920928955078125e-07,
+ -1.41421353816986083984375, 0, -1.1920928955078125e-07,
+ 1.1920928955078125e-07, 0, -1.41421353816986083984375,
+- }));
++ })));
+ EXPECT_EQ(recastMesh->getIndices(), std::vector<int>({0, 1, 2}));
+ EXPECT_EQ(recastMesh->getAreaTypes(), std::vector<AreaType>({AreaType_ground}));
+ }
diff --git a/openmw.spec b/openmw.spec
index 2e9f269..94c4d08 100644
--- a/openmw.spec
+++ b/openmw.spec
@@ -27,6 +27,11 @@ Patch2: openmw-foreach-offmeshconnectionsmanager.patch
# https://gitlab.com/OpenMW/openmw/-/commit/208a50340db5506dded60c05272ce96...
Patch3: https://gitlab.com/OpenMW/openmw/-/commit/208a50340db5506dded60c05272ce96...
+# Apply patch to try and fix test failures on aarch64, ppc64le.
+Patch4: https://gitlab.com/OpenMW/openmw/-/commit/ddab86d94046eab0c0713371990deb0...
+# There's at least one additional test broken, fix it.
+Patch5: openmw-recastmesh-extra-test-epsilon.patch
+
# Openmw has problems with big indian cpu
ExcludeArch: ppc64
@@ -95,6 +100,8 @@ rm -rf files/launcher/icons/
# These can probably be replaced with autosetup?
%patch3 -p1
+%patch4 -p1
+%patch5 -p1
%build
rm -rf build
4 years, 2 months