diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e891187 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/gst-plugins-bad-free-0.10.23.tar.xz diff --git a/.gstreamer-plugins-bad-free.metadata b/.gstreamer-plugins-bad-free.metadata new file mode 100644 index 0000000..50116bf --- /dev/null +++ b/.gstreamer-plugins-bad-free.metadata @@ -0,0 +1 @@ +23e79a4fa5c3937d63cc311718ec2eb52c851c30 SOURCES/gst-plugins-bad-free-0.10.23.tar.xz diff --git a/SOURCES/0001-Delete-unbuilt-plugins-from-the-docs.patch b/SOURCES/0001-Delete-unbuilt-plugins-from-the-docs.patch new file mode 100644 index 0000000..3699d9f --- /dev/null +++ b/SOURCES/0001-Delete-unbuilt-plugins-from-the-docs.patch @@ -0,0 +1,73 @@ +From 6bc5fda6d9914e7de31af84ccd9e843e0c1cb398 Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Thu, 2 May 2013 17:04:02 -0400 +Subject: [PATCH] Delete unbuilt plugins from the docs + +So the gtk-doc builds, and life can go on. +--- + docs/plugins/Makefile.am | 1 - + docs/plugins/gst-plugins-bad-plugins-docs.sgml | 2 -- + docs/plugins/gst-plugins-bad-plugins-sections.txt | 15 --------------- + 3 files changed, 0 insertions(+), 18 deletions(-) + +diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am +index 99f280d..e8c7434 100644 +--- a/docs/plugins/Makefile.am ++++ b/docs/plugins/Makefile.am +@@ -103,7 +103,6 @@ EXTRA_HFILES = \ + $(top_srcdir)/ext/timidity/gsttimidity.h \ + $(top_srcdir)/ext/timidity/gstwildmidi.h \ + $(top_srcdir)/ext/voaacenc/gstvoaacenc.h \ +- $(top_srcdir)/ext/voamrwbenc/gstvoamrwbenc.h \ + $(top_srcdir)/ext/vp8/gstvp8enc.h \ + $(top_srcdir)/ext/vp8/gstvp8dec.h \ + $(top_srcdir)/ext/zbar/gstzbar.h \ +diff --git a/docs/plugins/gst-plugins-bad-plugins-docs.sgml b/docs/plugins/gst-plugins-bad-plugins-docs.sgml +index 07fcdaa..10e7b5b 100644 +--- a/docs/plugins/gst-plugins-bad-plugins-docs.sgml ++++ b/docs/plugins/gst-plugins-bad-plugins-docs.sgml +@@ -127,7 +127,6 @@ + + + +- + + + +@@ -221,7 +220,6 @@ + + + +- + + + +diff --git a/docs/plugins/gst-plugins-bad-plugins-sections.txt b/docs/plugins/gst-plugins-bad-plugins-sections.txt +index d7fc96e..6ddc81d 100644 +--- a/docs/plugins/gst-plugins-bad-plugins-sections.txt ++++ b/docs/plugins/gst-plugins-bad-plugins-sections.txt +@@ -1667,21 +1667,6 @@ GST_TYPE_VOAACENC + gst_voaacenc_get_type + + +-
+-element-voamrwbenc +-voamrwbenc +-GstVoAmrwbEnc +- +-GstVoAmrwbEncClass +-GST_VOAMRWBENC +-GST_VOAMRWBENC_CLASS +-GST_IS_VOAMRWBENC +-GST_IS_VOAMRWBENC_CLASS +-GST_TYPE_VOAMRWBENC +-gst_voamrwbenc_get_type +-
+- +-
+ element-vp8dec + vp8dec + GstVP8Dec +-- +1.7.1 + diff --git a/SOURCES/0001-gstcamerabin-Fix-spelling-error-in-debug-logging.patch b/SOURCES/0001-gstcamerabin-Fix-spelling-error-in-debug-logging.patch new file mode 100644 index 0000000..f98e03a --- /dev/null +++ b/SOURCES/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 +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 +--- + 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/SOURCES/0001-h264parse-Ensure-codec_data-has-the-required-size-wh.patch b/SOURCES/0001-h264parse-Ensure-codec_data-has-the-required-size-wh.patch new file mode 100644 index 0000000..2bc93b8 --- /dev/null +++ b/SOURCES/0001-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 +Date: Wed, 7 Dec 2016 09:37:10 +0100 +Subject: [PATCH] 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/SOURCES/0001-vmncdec-Sanity-check-width-height-before-using-it.patch b/SOURCES/0001-vmncdec-Sanity-check-width-height-before-using-it.patch new file mode 100644 index 0000000..1543499 --- /dev/null +++ b/SOURCES/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 +Date: Tue, 6 Dec 2016 10:24:03 +0100 +Subject: [PATCH] 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/SOURCES/0002-camerabin-Add-a-camerabin_create_view_finder_caps-he.patch b/SOURCES/0002-camerabin-Add-a-camerabin_create_view_finder_caps-he.patch new file mode 100644 index 0000000..3edb6ec --- /dev/null +++ b/SOURCES/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 +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 +--- + 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/SOURCES/0003-camerabin-Add-gst_camerabin_get_video_source_propert.patch b/SOURCES/0003-camerabin-Add-gst_camerabin_get_video_source_propert.patch new file mode 100644 index 0000000..3950bb7 --- /dev/null +++ b/SOURCES/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 +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 +--- + 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/SOURCES/0004-camerabin-Set-src_filter-and-zoom_src_filter-caps-wh.patch b/SOURCES/0004-camerabin-Set-src_filter-and-zoom_src_filter-caps-wh.patch new file mode 100644 index 0000000..ade66be --- /dev/null +++ b/SOURCES/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 +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 +--- + 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/SOURCES/0005-geometrictransform-crash-fix1.patch b/SOURCES/0005-geometrictransform-crash-fix1.patch new file mode 100644 index 0000000..ba71862 --- /dev/null +++ b/SOURCES/0005-geometrictransform-crash-fix1.patch @@ -0,0 +1,37 @@ +From 4e7edb2778f85a5475ffe9c782c91d86a7b902ca Mon Sep 17 00:00:00 2001 +From: Oleksij Rempel (Alexey Fisher) +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/SOURCES/0006-geometrictransform-crash-fix2.patch b/SOURCES/0006-geometrictransform-crash-fix2.patch new file mode 100644 index 0000000..d9552b4 --- /dev/null +++ b/SOURCES/0006-geometrictransform-crash-fix2.patch @@ -0,0 +1,36 @@ +From 7dd5b2002abf516ebdf92696c57a9a7692c166e9 Mon Sep 17 00:00:00 2001 +From: Thiago Santos +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/SOURCES/gst-p-bad-cleanup.sh b/SOURCES/gst-p-bad-cleanup.sh new file mode 100755 index 0000000..ac8d44f --- /dev/null +++ b/SOURCES/gst-p-bad-cleanup.sh @@ -0,0 +1,189 @@ +#!/bin/sh + +# Process a gst-plugins-bad tarball to remove +# unwanted GStreamer plugins. +# +# See https://bugzilla.redhat.com/show_bug.cgi?id=532470 +# for details +# +# Bastien Nocera - 2010 +# + +SOURCE="$1" +NEW_SOURCE=`echo $SOURCE | sed 's/bad-/bad-free-/'` +DIRECTORY=`echo $SOURCE | sed 's/\.tar\.xz//'` + +ALLOWED=" +aacparse +adpcmdec +adpcmenc +aiff +aiffparse +amrparse +asfmux +audioparsers +audiovisualizers +autoconvert +bayer +camerabin +camerabin2 +cdxaparse +coloreffects +colorspace +dataurisrc +dccp +debugutils +dtmf +faceoverlay +festival +fieldanalysis +freeverb +freeze +frei0r +gaudieffects +geometrictransform +h264parse +hdvparse +hls +id3tag +inter +interlace +invtelecine +ivfparse +jpegformat +jp2kdecimator +legacyresample +librfb +liveadder +mve +mpegdemux +mpeg4videoparse +mpegpsmux +mpegtsdemux +mpegtsmux +mpegvideoparse +mxf +nsf +nuvdemux +patchdetect +pcapparse +pnm +qtmux +rawparse +removesilence +rtpmux +rtpvp8 +scaletempo +sdi +sdp +segmentclip +selector +smooth +speed +stereo +subenc +tta +valve +videofilters +videomaxrate +videomeasure +videoparsers +videosignal +vmnc +y4m +" + +NOT_ALLOWED=" +dvbsuboverlay +dvdspu +real +siren +" + +error() +{ + MESSAGE=$1 + echo $MESSAGE + exit 1 +} + +check_allowed() +{ + MODULE=$1 + for i in $ALLOWED ; do + if test x$MODULE = x$i ; then + return 0; + fi + done + # Ignore errors coming from ext/ directory + # they require external libraries so are ineffective anyway + return 1; +} + +check_not_allowed() +{ + MODULE=$1 + for i in $NOT_ALLOWED ; do + if test x$MODULE = x$i ; then + return 0; + fi + done + return 1; +} + +rm -rf $DIRECTORY +tar xJf $SOURCE || error "Cannot unpack $SOURCE" +pushd $DIRECTORY > /dev/null || error "Cannot open directory \"$DIRECTORY\"" + +unknown="" +for subdir in gst ext sys; do + for dir in $subdir/* ; do + # Don't touch non-directories + if ! [ -d $dir ] ; then + continue; + fi + MODULE=`basename $dir` + if ( check_not_allowed $MODULE ) ; then + echo "**** Removing $MODULE ****" + echo "Removing directory $dir" + rm -r $dir || error "Cannot remove $dir" + if grep -q "AG_GST_CHECK_PLUGIN($MODULE)" configure.ac ; then + echo "Removing element check for $MODULE" + grep -v "AG_GST_CHECK_PLUGIN($MODULE)" configure.ac > configure.ac.new && mv configure.ac.new configure.ac + fi + echo "Removing Makefile generation for $MODULE" + grep -v "$dir/Makefile" configure.ac > configure.ac.new && mv configure.ac.new configure.ac + # Urgh + if test $MODULE = real ; then + grep -v "AG_GST_DISABLE_PLUGIN(real)" configure.ac > configure.ac.new && mv configure.ac.new configure.ac + fi + echo "Removing documentation for $MODULE" + if grep -q "$MODULE" docs/plugins/Makefile.am ; then + grep -v $dir docs/plugins/Makefile.am > docs/plugins/Makefile.am.new && mv docs/plugins/Makefile.am.new docs/plugins/Makefile.am + fi + echo + elif test $subdir = ext || test $subdir = sys; then + # Ignore library or system non-blacklisted plugins + continue; + elif ! ( check_allowed $MODULE ) ; then + echo "Unknown module in $dir" + unknown="$unknown $dir" + fi + done +done + +echo + +if test "x$unknown" != "x"; then + echo -n "Aborting due to unkown modules: " + echo "$unknown" | sed "s/ /\n /g" + exit 1 +fi + +autoreconf + +popd > /dev/null + +tar cJf $NEW_SOURCE $DIRECTORY +echo "$NEW_SOURCE is ready to use" + diff --git a/SOURCES/vp8enc-bitrate-fix.patch b/SOURCES/vp8enc-bitrate-fix.patch new file mode 100644 index 0000000..671424e --- /dev/null +++ b/SOURCES/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; diff --git a/SPECS/gstreamer-plugins-bad-free.spec b/SPECS/gstreamer-plugins-bad-free.spec new file mode 100644 index 0000000..a734ea0 --- /dev/null +++ b/SPECS/gstreamer-plugins-bad-free.spec @@ -0,0 +1,582 @@ +%define majorminor 0.10 +%define gstreamer gstreamer + +%define gst_minver 0.10.36 +%define gstpb_minver %{gst_minver} + +# Turn of extras package on RHEL. +%if ! 0%{?rhel} +%bcond_without extras +%else +%bcond_with extras +%endif + +Summary: GStreamer streaming media framework "bad" plug-ins +Name: gstreamer-plugins-bad-free +Version: 0.10.23 +Release: 23%{?dist} +# The freeze and nfs plugins are LGPLv2 (only) +License: LGPLv2+ and LGPLv2 +Group: Applications/Multimedia +URL: http://gstreamer.freedesktop.org/ +# The source is: +# http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-%{version}.tar.xz +# modified with gst-p-bad-cleanup.sh from SOURCE1 +Source: gst-plugins-bad-free-%{version}.tar.xz +Source1: gst-p-bad-cleanup.sh +# 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 +Patch7: 0001-Delete-unbuilt-plugins-from-the-docs.patch +Patch8: 0001-vmncdec-Sanity-check-width-height-before-using-it.patch +Patch9: 0001-h264parse-Ensure-codec_data-has-the-required-size-wh.patch + +Requires: %{gstreamer} >= %{gst_minver} +BuildRequires: %{gstreamer}-devel >= %{gst_minver} +BuildRequires: %{gstreamer}-plugins-base-devel >= %{gstpb_minver} + +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: openssl-devel +BuildRequires: orc-devel +Buildrequires: wavpack-devel +BuildRequires: chrpath +BuildRequires: opus-devel +BuildRequires: soundtouch-devel + +%if %{with extras} +BuildRequires: celt-devel +BuildRequires: dirac-devel +BuildRequires: libass-devel +BuildRequires: libcdaudio-devel +BuildRequires: libcurl-devel +%ifnarch s390 s390x +BuildRequires: libdc1394-devel +%endif +BuildRequires: libkate-devel +BuildRequires: libmodplug-devel +BuildRequires: libmusicbrainz-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 +%endif + +Obsoletes: gstreamer-plugins-flumpegdemux < 0.10.15-9 +Provides: gstreamer-plugins-flumpegdemux = %{version}-%{release} +Obsoletes: gstreamer-plugins-schroedinger < 1.0.9 +Provides: gstreamer-plugins-schroedinger = %{version}-%{release} + +Provides: gstreamer-plugins-farsight = 0.12.12-1 +Obsoletes: gstreamer-plugins-farsight < 0.12.12 + +%description +GStreamer is a streaming media framework, based on graphs of elements which +operate on media data. + +This package contains plug-ins that aren't tested +well enough, or the code is not of good enough quality. + + +%if %{with extras} +%package extras +Summary: Extra GStreamer "bad" plugins (less often used "bad" plugins) +Group: Applications/Multimedia +Requires: %{name} = %{version}-%{release} +Obsoletes: gstreamer-plugins-bad-extras < %{version}-%{release} +Provides: gstreamer-plugins-bad-extras = %{version}-%{release} + +%description extras +GStreamer is a streaming media framework, based on graphs of elements which +operate on media data. + +gstreamer-plugins-bad contains plug-ins that aren't +tested well enough, or the code is not of good enough quality. + +This package (gstreamer-plugins-bad-extras) contains extra "bad" plugins for +sources (mythtv), sinks (fbdev) and effects (pitch) which are not used +very much and require additional libraries to be installed. +%endif + + +%package devel +Summary: Development files for the GStreamer media framework "bad" plug-ins +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: gstreamer-plugins-base-devel +Obsoletes: gstreamer-plugins-bad-devel < %{version}-%{release} +Provides: gstreamer-plugins-bad-devel = %{version}-%{release} + +%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. + + +%package devel-docs +Summary: Development documentation for the GStreamer "bad" plug-ins +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} +Obsoletes: gstreamer-plugins-bad-devel-docs < %{version}-%{release} +Provides: gstreamer-plugins-bad-devel-docs = %{version}-%{release} + +%description devel-docs +GStreamer is a streaming media framework, based on graphs of elements which +operate on media data. + +This package contains the development documentation 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} +%patch0 -p1 -b .vp8enc_bitrate +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +sed -i 's/opencv <= 2.3.1/opencv <= 2.4.3/g' configure + + +%build +%configure \ + --with-package-name="Fedora gstreamer-plugins-bad package" \ + --with-package-origin="http://download.fedora.redhat.com/fedora" \ + %{!?with_extras:--disable-fbdev --disable-decklink --disable-linsys} \ + --enable-debug --disable-static --enable-gtk-doc --enable-experimental \ + --disable-divx --disable-dts --disable-faac --disable-faad --disable-nas \ + --disable-mimic --disable-libmms --disable-mpeg2enc --disable-mplex \ + --disable-neon --disable-openal --disable-rtmp --disable-xvid --disable-nsf +make %{?_smp_mflags} + + +%install +make install DESTDIR="$RPM_BUILD_ROOT" +%find_lang gst-plugins-bad-%{majorminor} + +# Some of the plugins somehow get an rpath embedded ?? +chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.so + +# Clean out files that should not be part of the rpm. +rm $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.la +rm $RPM_BUILD_ROOT%{_libdir}/*.la + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + + +%files -f gst-plugins-bad-%{majorminor}.lang +%doc AUTHORS COPYING README REQUIREMENTS +#%{_datadir}/gstreamer-%{majorminor} +%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so.* +%{_libdir}/libgstbasevideo-%{majorminor}.so.* +%{_libdir}/libgstcodecparsers-%{majorminor}.so.* +%{_libdir}/libgstphotography-%{majorminor}.so.* +%{_libdir}/libgstsignalprocessor-%{majorminor}.so.* +%if %{with extras} +%{_libdir}/libgstvdp-%{majorminor}.so.* +%endif +# 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}/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 +%{_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}/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}/libgstvcdsrc.so + +# Plugins with external dependencies +%{_libdir}/gstreamer-%{majorminor}/libgstapexsink.so +%{_libdir}/gstreamer-%{majorminor}/libgstbz2.so +%{_libdir}/gstreamer-%{majorminor}/libgstgsm.so +%{_libdir}/gstreamer-%{majorminor}/libgstjp2k.so +%{_libdir}/gstreamer-%{majorminor}/libgstladspa.so +%{_libdir}/gstreamer-%{majorminor}/libgstmusepack.so +%{_libdir}/gstreamer-%{majorminor}/libgstofa.so +%{_libdir}/gstreamer-%{majorminor}/libresindvd.so +%{_libdir}/gstreamer-%{majorminor}/libgstrsvg.so +%{_libdir}/gstreamer-%{majorminor}/libgstsndfile.so +%{_libdir}/gstreamer-%{majorminor}/libgstsoundtouch.so +%{_libdir}/gstreamer-%{majorminor}/libgstvp8.so +%{_libdir}/gstreamer-%{majorminor}/libgstopus.so + +#debugging plugin +%{_libdir}/gstreamer-%{majorminor}/libgstdebugutilsbad.so + +#data for plugins +%{_datadir}/glib-2.0/schemas/org.freedesktop.gstreamer-%{majorminor}.default-elements.gschema.xml + +%if %{with extras} +%files extras +# Plugins with external dependencies +%{_libdir}/gstreamer-%{majorminor}/libgstassrender.so +%{_libdir}/gstreamer-%{majorminor}/libgstcdaudio.so +%{_libdir}/gstreamer-%{majorminor}/libgstcelt.so +%{_libdir}/gstreamer-%{majorminor}/libgstcurl.so +%ifnarch s390 s390x +%{_libdir}/gstreamer-%{majorminor}/libgstdc1394.so +%endif +%{_libdir}/gstreamer-%{majorminor}/libgstdirac.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}/libgsttrm.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 +%endif + +%files devel +%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so +%{_libdir}/libgstbasevideo-%{majorminor}.so +%{_libdir}/libgstcodecparsers-%{majorminor}.so +%{_libdir}/libgstphotography-%{majorminor}.so +%{_libdir}/libgstsignalprocessor-%{majorminor}.so +%if %{with extras} +%{_libdir}/libgstvdp-%{majorminor}.so +%endif +%{_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 +%if %{with extras} +%{_includedir}/gstreamer-%{majorminor}/gst/vdpau +%endif + +# pkg-config files +%{_libdir}/pkgconfig/gstreamer-basevideo-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-codecparsers-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-plugins-bad-%{majorminor}.pc + +%files devel-docs +%doc %{_datadir}/gtk-doc/html/gst-plugins-bad-plugins-%{majorminor} +%doc %{_datadir}/gtk-doc/html/gst-plugins-bad-libs-%{majorminor} + + +%changelog +* Tue Mar 07 2017 Wim Taymans - 0.10.23-23 +- Rebuild with hardened flags +Resolves: #1420764 + +* Wed Dec 07 2016 Wim Taymans - 0.10.23-22 +- h264parse: Ensure codec_data has the required size when reading number of SPS +Resolves: rhbz#1400839 + +* Tue Dec 06 2016 Wim Taymans - 0.10.23-21 +- Remove insecure NSF plugin +- vmncdec: Sanity-check width/height before using it +Resolves: rhbz#1400839 + +* Fri Jan 24 2014 Daniel Mach - 0.10.23-20 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 0.10.23-19 +- Mass rebuild 2013-12-27 + +* Sat May 04 2013 Colin Walters 0.10.23-18 +- Move soundtouch-devel BR to outside RHEL conditional, since + it is available there. + +* Thu May 02 2013 Colin Walters 0.10.23-17 +- Hack the gtk-doc to remove plugin docs that are not shipped +- Drop mythtv, opencv sources that are no longer buildable + +* Thu May 02 2013 Colin Walters 0.10.23-16 +- Drop PyXML BR (#914060) + +* Thu Mar 07 2013 Bastien Nocera 0.10.23-15 +- Remove gmyth plugin + +* Thu Feb 14 2013 Fedora Release Engineering - 0.10.23-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Dec 08 2012 Kalev Lember - 0.10.23-13 +- Fix the opencv sed magic for opencv 2.4.3 + +* Fri Nov 30 2012 Tom Callaway - 0.10.23-12 +- rebuild for opencv + +* Wed Sep 12 2012 Fabian Deutsch - 0.10.23-11 +- Add opus plugin + +* Fri Aug 03 2012 Adam Jackson 0.10.23-10 +- Fix the opencv sed magic to hit a pattern that actually exists +- Rebuild for new opencv + +* Thu Jul 19 2012 Fedora Release Engineering - 0.10.23-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jun 28 2012 Bastien Nocera 0.10.23-8 +- Move the soundtouch plugin to the main package (as Totem 3.5 will + depend on it) + +* Mon Jun 18 2012 Hans de Goede - 0.10.23-7 +- Cherry pick 2 patches from upstream fixing cheese crashing (rhbz#820959) + +* Fri Jun 08 2012 Hans de Goede - 0.10.23-6 +- Speedup camerabin pipeline element creation (rhbz#797188, gnome#677698) +- Re-enable building of -extras package accidentally disabled by the spec-file + re-organization done in 0.10.23-3 +- Add teletextdec and musicbrainz plugins to -extras +- Minor spec-file cleanups + +* Fri Jun 01 2012 Karsten Hopp 0.10.23-5 +- bump release and rebuild (linked with old libs on PPC) + +* Tue May 29 2012 Adel Gadllah 0.10.23-4 +- Backport upstream patch to fix vp8enc (GNOME #676653, #676245) + +* Tue Mar 05 2012 Benjamin Otte 0.10.23-3 +- Reorganize spec file to optionally build without extras package + +* Wed Feb 29 2012 Benjamin Otte 0.10.23-2 +- Enable libvdpau + +* Tue Feb 28 2012 Benjamin Otte 0.10.23-1 +- Update to 0.10.23 + +* Mon Jan 30 2012 Tom Callaway 0.10.22-5 +- rebuild for new libvpx + +* Fri Jan 13 2012 Fedora Release Engineering - 0.10.22-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Dec 05 2011 Adam Jackson 0.10.22-3 +- Rebuild for new libpng + +* Wed Aug 31 2011 Rex Dieter 0.10.22-2.1 +- rebuild (opencv), for real this time. :) + +* Sat Aug 27 2011 Hans de Goede 0.10.22-2 +- Rebuild for new opencv + +* Wed May 11 2011 Benjamin Otte 0.10.22-1 +- Update to 0.10.22 + +* Fri May 06 2011 Benjamin Otte 0.10.21.4-2 +- Enable opencv plugin + +* Tue May 03 2011 Benjamin Otte 0.10.21.4-1 +- Update prerelease + +* Tue Apr 19 2011 Benjamin Otte 0.10.21.2-1 +- Update to prerelease + +* Wed Mar 23 2011 Dan Horák - 0.10.21-5 +- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient) + +* Thu Mar 03 2011 Mamoru Tasaka - 0.10.21-4 +- Patch from the upstream to fix build with newer celt + (bug 681150, GNOME bug 643607) + + * Wed Feb 16 2011 Peter Robinson - 0.10.21-3 + - Rebuilt for new celt + +* Wed Feb 09 2011 Fedora Release Engineering - 0.10.21-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 26 2011 Benjamin Otte 0.10.21-1 +- Update to 0.10.21 + +* Wed Jan 12 2011 Benjamin Otte 0.10.20.3-1 +- Update to prerelease + +* Wed Sep 29 2010 jkeating - 0.10.20-4 +- Rebuilt for gcc bug 634757 + +* Wed Sep 15 2010 Hans de Goede 0.10.20-3 +- Rebuild for new wildmidi + +* Mon Sep 13 2010 Dan Horák 0.10.20-2 +- no Firewire on s390(x) + +* Mon Sep 06 2010 Benjamin Otte 0.10.20-1 +- Update to 0.10.20 +- Reenable celt + +* Fri Aug 06 2010 Benjamin Otte 0.10.19-6 +- Disable NAS now that it's obsolete + +* Thu Jul 04 2010 Benjamin Otte 0.10.19-5 +- Disable celt now that an update broke it + +* Thu Jun 17 2010 Benjamin Otte 0.10.19-4 +- Move zbar to -extras. It pulls in too many deps and is not really useful. + +* Tue Jun 01 2010 Benjamin Otte 0.10.19-3 +- Put back accidentally deleted make command + +* Tue Jun 1 2010 Ville Skyttä - 0.10.19-2 +- Rebuild. + +* Mon May 31 2010 Benjamin Otte 0.10.19-1 +- Update to 0.10.19 + +* Fri May 15 2010 Benjamin Otte 0.10.18.3-1 +- Update pre-release +- Add vp8 elements + +* Fri May 15 2010 Benjamin Otte 0.10.18.2-1 +- Update to pre-release + +* Thu Apr 15 2010 Benjamin Otte 0.10.18-2 +- Include cog plugin + +* Mon Mar 08 2010 Benjamin Otte 0.10.18-1 +- Update to 0.10.18 + +* Thu Mar 04 2010 Benjamin Otte 0.10.17.4-1 +- Update pre-release + +* Mon Mar 01 2010 Benjamin Otte 0.10.17.3-2 +- Fix Obsoletes and add Provides for extras/devel/docs + +* Thu Feb 25 2010 Benjamin Otte 0.10.17.3-1 +- Update to pre-release + +* Fri Feb 19 2010 Benjamin Otte 0.10.17.2-1 +- Update to prerelease + +* Sun Feb 14 2010 Benjamin Otte 0.10.17-7 +- Fix compilation problems with DSO linking (#565015) + +* Thu Feb 04 2010 Bastien Nocera 0.10.17-6 +- Obsolete third-party packages, for upgrade purposes + +* Tue Feb 02 2010 Bastien Nocera 0.10.17-5 +- Another try at obsolete problems with flumpegdemux and + schroedinger (#560987) + +* Mon Feb 01 2010 Bastien Nocera 0.10.17-4 +- Add versioned provides for flumpegdemux and schroedinger plugins + +* Wed Jan 27 2010 Bastien Nocera 0.10.17-3 +- Modify original sources with a script to remove problematic + elements, and remove those from the filelist + +* Fri Dec 04 2009 Bastien Nocera 0.10.17-2 +- Add LADSPA plugins + +* Tue Nov 17 2009 Bastien Nocera 0.10.17-1 +- Update to 0.10.17 + +* Tue Nov 10 2009 Bastien Nocera 0.10.16-2 +- Add schroedinger plugin (#530835) + +* Sat Nov 07 2009 Bastien Nocera 0.10.16-1 +- First version with -free name, updated to 0.10.16 +