summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-05 02:22:27 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-05 02:22:27 +0000
commitfb6b1e565e19d948dada9270c9b7aa6b3c93700a (patch)
tree3a5cb31908326677a6a60aef9562c6d447421660
parent29fa2f7f6cf5e2407aadc5b9446a6bdaf98e72a6 (diff)
automatic import of gstreamer1-plugins-bad-freeopeneuler24.03_LTS
-rw-r--r--.gitignore1
-rw-r--r--0001-mxfdemux-Fix-integer-overflow-causing-out-of-bounds-.patch114
-rw-r--r--0001-mxfdemux-Store-GstMXFDemuxEssenceTrack-in-their-own-.patch323
-rw-r--r--0002-codecparsers-av1-Clip-max-tile-rows-and-cols-values.patch65
-rw-r--r--0002-mxfdemux-Check-number-of-channels-for-AES3-audio.patch45
-rw-r--r--0003-av1parser-Fix-array-sizes-in-scalability-structure.patch66
-rw-r--r--0004-h265parser-Fix-possible-overflow-using-max_sub_layer.patch42
-rwxr-xr-xgst-p-bad-cleanup.sh195
-rw-r--r--gstreamer1-plugins-bad-free.spec1248
-rw-r--r--sources1
10 files changed, 2100 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..ee4eb8f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/gst-plugins-bad-free-1.22.1.tar.xz
diff --git a/0001-mxfdemux-Fix-integer-overflow-causing-out-of-bounds-.patch b/0001-mxfdemux-Fix-integer-overflow-causing-out-of-bounds-.patch
new file mode 100644
index 0000000..b9f0f61
--- /dev/null
+++ b/0001-mxfdemux-Fix-integer-overflow-causing-out-of-bounds-.patch
@@ -0,0 +1,114 @@
+From 27959a895db3949dee1c93cc05cb73465e2a1fbe Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
+Date: Thu, 10 Aug 2023 15:45:01 +0300
+Subject: [PATCH 1/4] mxfdemux: Fix integer overflow causing out of bounds
+ writes when handling invalid uncompressed video
+
+Check ahead of time when parsing the track information whether
+width, height and bpp are valid and usable without overflows.
+
+Fixes ZDI-CAN-21660, CVE-2023-40474
+
+Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2896
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5362>
+---
+ subprojects/gst-plugins-bad/gst/mxf/mxfup.c | 51 +++++++++++++++++----
+ 1 file changed, 43 insertions(+), 8 deletions(-)
+
+diff --git a/subprojects/gst-plugins-bad/gst/mxf/mxfup.c b/subprojects/gst-plugins-bad/gst/mxf/mxfup.c
+index d8b6664dab..ba86255f20 100644
+--- a/subprojects/gst-plugins-bad/gst/mxf/mxfup.c
++++ b/subprojects/gst-plugins-bad/gst/mxf/mxfup.c
+@@ -134,6 +134,8 @@ mxf_up_handle_essence_element (const MXFUL * key, GstBuffer * buffer,
+ gpointer mapping_data, GstBuffer ** outbuf)
+ {
+ MXFUPMappingData *data = mapping_data;
++ gsize expected_in_stride = 0, out_stride = 0;
++ gsize expected_in_size = 0, out_size = 0;
+
+ /* SMPTE 384M 7.1 */
+ if (key->u[12] != 0x15 || (key->u[14] != 0x01 && key->u[14] != 0x02
+@@ -162,22 +164,25 @@ mxf_up_handle_essence_element (const MXFUL * key, GstBuffer * buffer,
+ }
+ }
+
+- if (gst_buffer_get_size (buffer) != data->bpp * data->width * data->height) {
++ // Checked for overflows when parsing the descriptor
++ expected_in_stride = data->bpp * data->width;
++ out_stride = GST_ROUND_UP_4 (expected_in_stride);
++ expected_in_size = expected_in_stride * data->height;
++ out_size = out_stride * data->height;
++
++ if (gst_buffer_get_size (buffer) != expected_in_size) {
+ GST_ERROR ("Invalid buffer size");
+ gst_buffer_unref (buffer);
+ return GST_FLOW_ERROR;
+ }
+
+- if (data->bpp != 4
+- || GST_ROUND_UP_4 (data->width * data->bpp) != data->width * data->bpp) {
++ if (data->bpp != 4 || out_stride != expected_in_stride) {
+ guint y;
+ GstBuffer *ret;
+ GstMapInfo inmap, outmap;
+ guint8 *indata, *outdata;
+
+- ret =
+- gst_buffer_new_and_alloc (GST_ROUND_UP_4 (data->width * data->bpp) *
+- data->height);
++ ret = gst_buffer_new_and_alloc (out_size);
+ gst_buffer_map (buffer, &inmap, GST_MAP_READ);
+ gst_buffer_map (ret, &outmap, GST_MAP_WRITE);
+ indata = inmap.data;
+@@ -185,8 +190,8 @@ mxf_up_handle_essence_element (const MXFUL * key, GstBuffer * buffer,
+
+ for (y = 0; y < data->height; y++) {
+ memcpy (outdata, indata, data->width * data->bpp);
+- outdata += GST_ROUND_UP_4 (data->width * data->bpp);
+- indata += data->width * data->bpp;
++ outdata += out_stride;
++ indata += expected_in_stride;
+ }
+
+ gst_buffer_unmap (buffer, &inmap);
+@@ -394,6 +399,36 @@ mxf_up_create_caps (MXFMetadataTimelineTrack * track, GstTagList ** tags,
+ return NULL;
+ }
+
++ if (caps) {
++ MXFUPMappingData *data = *mapping_data;
++ gsize expected_in_stride = 0, out_stride = 0;
++ gsize expected_in_size = 0, out_size = 0;
++
++ // Do some checking of the parameters to see if they're valid and
++ // we can actually work with them.
++ if (data->image_start_offset > data->image_end_offset) {
++ GST_WARNING ("Invalid image start/end offset");
++ g_free (data);
++ *mapping_data = NULL;
++ gst_clear_caps (&caps);
++
++ return NULL;
++ }
++
++ if (!g_size_checked_mul (&expected_in_stride, data->bpp, data->width) ||
++ (out_stride = GST_ROUND_UP_4 (expected_in_stride)) < expected_in_stride
++ || !g_size_checked_mul (&expected_in_size, expected_in_stride,
++ data->height)
++ || !g_size_checked_mul (&out_size, out_stride, data->height)) {
++ GST_ERROR ("Invalid resolution or bit depth");
++ g_free (data);
++ *mapping_data = NULL;
++ gst_clear_caps (&caps);
++
++ return NULL;
++ }
++ }
++
+ return caps;
+ }
+
+--
+2.43.0
+
diff --git a/0001-mxfdemux-Store-GstMXFDemuxEssenceTrack-in-their-own-.patch b/0001-mxfdemux-Store-GstMXFDemuxEssenceTrack-in-their-own-.patch
new file mode 100644
index 0000000..9467b26
--- /dev/null
+++ b/0001-mxfdemux-Store-GstMXFDemuxEssenceTrack-in-their-own-.patch
@@ -0,0 +1,323 @@
+From db2e5ccfcf4db7fc3d199d885b07e5eb34770c19 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
+Date: Fri, 20 Oct 2023 00:09:57 +0300
+Subject: [PATCH 1/2] mxfdemux: Store GstMXFDemuxEssenceTrack in their own
+ fixed allocation
+
+Previously they were stored inline inside a GArray, but as references to
+the tracks were stored in various other places although the array could
+still be updated (and reallocated!), this could lead to dangling
+references in various places.
+
+Instead now store them in a GPtrArray in their own allocation so each
+track's memory position stays fixed.
+
+Fixes ZDI-CAN-22299
+
+Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3055
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5638>
+---
+ .../gst-plugins-bad/gst/mxf/mxfdemux.c | 116 ++++++++----------
+ .../gst-plugins-bad/gst/mxf/mxfdemux.h | 2 +-
+ 2 files changed, 50 insertions(+), 68 deletions(-)
+
+diff --git a/subprojects/gst-plugins-bad/gst/mxf/mxfdemux.c b/subprojects/gst-plugins-bad/gst/mxf/mxfdemux.c
+index d9eb9a5844..1b58989631 100644
+--- a/subprojects/gst-plugins-bad/gst/mxf/mxfdemux.c
++++ b/subprojects/gst-plugins-bad/gst/mxf/mxfdemux.c
+@@ -170,10 +170,25 @@ gst_mxf_demux_partition_free (GstMXFDemuxPartition * partition)
+ }
+
+ static void
+-gst_mxf_demux_reset_mxf_state (GstMXFDemux * demux)
++gst_mxf_demux_essence_track_free (GstMXFDemuxEssenceTrack * t)
+ {
+- guint i;
++ if (t->offsets)
++ g_array_free (t->offsets, TRUE);
++
++ g_free (t->mapping_data);
++
++ if (t->tags)
++ gst_tag_list_unref (t->tags);
++
++ if (t->caps)
++ gst_caps_unref (t->caps);
++
++ g_free (t);
++}
+
++static void
++gst_mxf_demux_reset_mxf_state (GstMXFDemux * demux)
++{
+ GST_DEBUG_OBJECT (demux, "Resetting MXF state");
+
+ g_list_foreach (demux->partitions, (GFunc) gst_mxf_demux_partition_free,
+@@ -182,23 +197,7 @@ gst_mxf_demux_reset_mxf_state (GstMXFDemux * demux)
+ demux->partitions = NULL;
+
+ demux->current_partition = NULL;
+-
+- for (i = 0; i < demux->essence_tracks->len; i++) {
+- GstMXFDemuxEssenceTrack *t =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
+-
+- if (t->offsets)
+- g_array_free (t->offsets, TRUE);
+-
+- g_free (t->mapping_data);
+-
+- if (t->tags)
+- gst_tag_list_unref (t->tags);
+-
+- if (t->caps)
+- gst_caps_unref (t->caps);
+- }
+- g_array_set_size (demux->essence_tracks, 0);
++ g_ptr_array_set_size (demux->essence_tracks, 0);
+ }
+
+ static void
+@@ -216,7 +215,7 @@ gst_mxf_demux_reset_linked_metadata (GstMXFDemux * demux)
+
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *track =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
++ g_ptr_array_index (demux->essence_tracks, i);
+
+ track->source_package = NULL;
+ track->delta_id = -1;
+@@ -419,7 +418,7 @@ gst_mxf_demux_partition_postcheck (GstMXFDemux * demux,
+
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *cand =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
++ g_ptr_array_index (demux->essence_tracks, i);
+
+ if (cand->body_sid != partition->partition.body_sid)
+ continue;
+@@ -866,8 +865,7 @@ gst_mxf_demux_update_essence_tracks (GstMXFDemux * demux)
+
+ for (k = 0; k < demux->essence_tracks->len; k++) {
+ GstMXFDemuxEssenceTrack *tmp =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack,
+- k);
++ g_ptr_array_index (demux->essence_tracks, k);
+
+ if (tmp->track_number == track->parent.track_number &&
+ tmp->body_sid == edata->body_sid) {
+@@ -885,24 +883,23 @@ gst_mxf_demux_update_essence_tracks (GstMXFDemux * demux)
+ }
+
+ if (!etrack) {
+- GstMXFDemuxEssenceTrack tmp;
++ GstMXFDemuxEssenceTrack *tmp = g_new0 (GstMXFDemuxEssenceTrack, 1);
+
+- memset (&tmp, 0, sizeof (tmp));
+- tmp.body_sid = edata->body_sid;
+- tmp.index_sid = edata->index_sid;
+- tmp.track_number = track->parent.track_number;
+- tmp.track_id = track->parent.track_id;
+- memcpy (&tmp.source_package_uid, &package->parent.package_uid, 32);
++ tmp->body_sid = edata->body_sid;
++ tmp->index_sid = edata->index_sid;
++ tmp->track_number = track->parent.track_number;
++ tmp->track_id = track->parent.track_id;
++ memcpy (&tmp->source_package_uid, &package->parent.package_uid, 32);
+
+ if (demux->current_partition->partition.body_sid == edata->body_sid &&
+ demux->current_partition->partition.body_offset == 0)
+- tmp.position = 0;
++ tmp->position = 0;
+ else
+- tmp.position = -1;
++ tmp->position = -1;
+
+- g_array_append_val (demux->essence_tracks, tmp);
++ g_ptr_array_add (demux->essence_tracks, tmp);
+ etrack =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack,
++ g_ptr_array_index (demux->essence_tracks,
+ demux->essence_tracks->len - 1);
+ new = TRUE;
+ }
+@@ -1050,13 +1047,7 @@ gst_mxf_demux_update_essence_tracks (GstMXFDemux * demux)
+
+ next:
+ if (new) {
+- g_free (etrack->mapping_data);
+- if (etrack->tags)
+- gst_tag_list_unref (etrack->tags);
+- if (etrack->caps)
+- gst_caps_unref (etrack->caps);
+-
+- g_array_remove_index (demux->essence_tracks,
++ g_ptr_array_remove_index (demux->essence_tracks,
+ demux->essence_tracks->len - 1);
+ }
+ }
+@@ -1069,7 +1060,7 @@ gst_mxf_demux_update_essence_tracks (GstMXFDemux * demux)
+
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *etrack =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
++ g_ptr_array_index (demux->essence_tracks, i);
+
+ if (!etrack->source_package || !etrack->source_track || !etrack->caps) {
+ GST_ERROR_OBJECT (demux, "Failed to update essence track %u", i);
+@@ -1438,7 +1429,7 @@ gst_mxf_demux_update_tracks (GstMXFDemux * demux)
+
+ for (k = 0; k < demux->essence_tracks->len; k++) {
+ GstMXFDemuxEssenceTrack *tmp =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, k);
++ g_ptr_array_index (demux->essence_tracks, k);
+
+ if (tmp->source_package == source_package &&
+ tmp->source_track == source_track) {
+@@ -1927,8 +1918,7 @@ gst_mxf_demux_pad_set_component (GstMXFDemux * demux, GstMXFDemuxPad * pad,
+ pad->current_essence_track = NULL;
+
+ for (k = 0; k < demux->essence_tracks->len; k++) {
+- GstMXFDemuxEssenceTrack *tmp =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, k);
++ GstMXFDemuxEssenceTrack *tmp = g_ptr_array_index (demux->essence_tracks, k);
+
+ if (tmp->source_package == source_package &&
+ tmp->source_track == source_track) {
+@@ -2712,7 +2702,7 @@ gst_mxf_demux_handle_generic_container_essence_element (GstMXFDemux * demux,
+ if (!etrack) {
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *tmp =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
++ g_ptr_array_index (demux->essence_tracks, i);
+
+ if (tmp->body_sid == demux->current_partition->partition.body_sid &&
+ (tmp->track_number == track_number || tmp->track_number == 0)) {
+@@ -3916,8 +3906,7 @@ from_track_offset:
+ gst_mxf_demux_set_partition_for_offset (demux, demux->offset);
+
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+- GstMXFDemuxEssenceTrack *t =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
++ GstMXFDemuxEssenceTrack *t = g_ptr_array_index (demux->essence_tracks, i);
+
+ if (index_start_position != -1 && t == etrack)
+ t->position = index_start_position;
+@@ -3941,8 +3930,7 @@ from_track_offset:
+ /* Handle EOS */
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *t =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack,
+- i);
++ g_ptr_array_index (demux->essence_tracks, i);
+
+ if (t->position > 0)
+ t->duration = t->position;
+@@ -4180,8 +4168,7 @@ gst_mxf_demux_pull_and_handle_klv_packet (GstMXFDemux * demux)
+ guint i;
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *etrack =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack,
+- i);
++ g_ptr_array_index (demux->essence_tracks, i);
+
+ if (etrack->body_sid != partition->partition.body_sid)
+ continue;
+@@ -4652,9 +4639,8 @@ gst_mxf_demux_pad_to_track_and_position (GstMXFDemux * demux,
+ /* Get the corresponding essence track for the given source package and stream id */
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *track =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
+- GST_LOG_OBJECT (pad,
+- "Looking at essence track body_sid:%d index_sid:%d",
++ g_ptr_array_index (demux->essence_tracks, i);
++ GST_LOG_OBJECT (pad, "Looking at essence track body_sid:%d index_sid:%d",
+ track->body_sid, track->index_sid);
+ if (clip->source_track_id == 0 || (track->track_id == clip->source_track_id
+ && mxf_umid_is_equal (&clip->source_package_id,
+@@ -4903,8 +4889,7 @@ gst_mxf_demux_seek_push (GstMXFDemux * demux, GstEvent * event)
+ }
+
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+- GstMXFDemuxEssenceTrack *t =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
++ GstMXFDemuxEssenceTrack *t = g_ptr_array_index (demux->essence_tracks, i);
+ t->position = -1;
+ }
+
+@@ -5342,8 +5327,7 @@ gst_mxf_demux_seek_pull (GstMXFDemux * demux, GstEvent * event)
+ }
+
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+- GstMXFDemuxEssenceTrack *t =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
++ GstMXFDemuxEssenceTrack *t = g_ptr_array_index (demux->essence_tracks, i);
+ t->position = -1;
+ }
+
+@@ -5642,7 +5626,7 @@ gst_mxf_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
+
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *t =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
++ g_ptr_array_index (demux->essence_tracks, i);
+
+ if (t->position > 0)
+ t->duration = t->position;
+@@ -5683,8 +5667,7 @@ gst_mxf_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
+
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *etrack =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack,
+- i);
++ g_ptr_array_index (demux->essence_tracks, i);
+ etrack->position = -1;
+ }
+ ret = TRUE;
+@@ -5708,8 +5691,7 @@ gst_mxf_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
+
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *t =
+- &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack,
+- i);
++ g_ptr_array_index (demux->essence_tracks, i);
+ t->position = -1;
+ }
+ demux->current_partition = NULL;
+@@ -5982,7 +5964,7 @@ gst_mxf_demux_finalize (GObject * object)
+
+ g_ptr_array_free (demux->src, TRUE);
+ demux->src = NULL;
+- g_array_free (demux->essence_tracks, TRUE);
++ g_ptr_array_free (demux->essence_tracks, TRUE);
+ demux->essence_tracks = NULL;
+
+ g_hash_table_destroy (demux->metadata);
+@@ -6059,8 +6041,8 @@ gst_mxf_demux_init (GstMXFDemux * demux)
+ g_rw_lock_init (&demux->metadata_lock);
+
+ demux->src = g_ptr_array_new ();
+- demux->essence_tracks =
+- g_array_new (FALSE, FALSE, sizeof (GstMXFDemuxEssenceTrack));
++ demux->essence_tracks = g_ptr_array_new_with_free_func ((GDestroyNotify)
++ gst_mxf_demux_essence_track_free);
+
+ gst_segment_init (&demux->segment, GST_FORMAT_TIME);
+
+diff --git a/subprojects/gst-plugins-bad/gst/mxf/mxfdemux.h b/subprojects/gst-plugins-bad/gst/mxf/mxfdemux.h
+index d079a1de1a..1dc8a4edb5 100644
+--- a/subprojects/gst-plugins-bad/gst/mxf/mxfdemux.h
++++ b/subprojects/gst-plugins-bad/gst/mxf/mxfdemux.h
+@@ -266,7 +266,7 @@ struct _GstMXFDemux
+ GList *partitions;
+ GstMXFDemuxPartition *current_partition;
+
+- GArray *essence_tracks;
++ GPtrArray *essence_tracks;
+
+ GList *pending_index_table_segments;
+ GList *index_tables; /* one per BodySID / IndexSID */
+--
+2.43.0
+
diff --git a/0002-codecparsers-av1-Clip-max-tile-rows-and-cols-values.patch b/0002-codecparsers-av1-Clip-max-tile-rows-and-cols-values.patch
new file mode 100644
index 0000000..bfd8e34
--- /dev/null
+++ b/0002-codecparsers-av1-Clip-max-tile-rows-and-cols-values.patch
@@ -0,0 +1,65 @@
+From 73f1409447033b8e3291a51893d5a027e2be15fc Mon Sep 17 00:00:00 2001
+From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
+Date: Tue, 21 Nov 2023 14:26:54 +0100
+Subject: [PATCH 2/2] codecparsers: av1: Clip max tile rows and cols values
+
+Clip tile rows and cols to 64 as describe in AV1 specification
+to avoid writing outside array range but preserve sb_cols
+and sb_rows value which are used to futher computation.
+
+Fixes ZDI-CAN-22226 / CVE-2023-44429
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5734>
+---
+ .../gst-libs/gst/codecparsers/gstav1parser.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gstav1parser.c b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gstav1parser.c
+index 22ffefd168..7ef583c7f5 100644
+--- a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gstav1parser.c
++++ b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gstav1parser.c
+@@ -2243,7 +2243,9 @@ gst_av1_parse_tile_info (GstAV1Parser * parser, GstBitReader * br,
+ tile_width_sb = (sb_cols + (1 << parser->state.tile_cols_log2) -
+ 1) >> parser->state.tile_cols_log2;
+ i = 0;
+- for (start_sb = 0; start_sb < sb_cols; start_sb += tile_width_sb) {
++ /* Fill mi_col_starts[] and make sure to not exceed array range */
++ for (start_sb = 0; start_sb < sb_cols && i < GST_AV1_MAX_TILE_COLS;
++ start_sb += tile_width_sb) {
+ parser->state.mi_col_starts[i] = start_sb << sb_shift;
+ i += 1;
+ }
+@@ -2272,7 +2274,9 @@ gst_av1_parse_tile_info (GstAV1Parser * parser, GstBitReader * br,
+ tile_height_sb = (sb_rows + (1 << parser->state.tile_rows_log2) -
+ 1) >> parser->state.tile_rows_log2;
+ i = 0;
+- for (start_sb = 0; start_sb < sb_rows; start_sb += tile_height_sb) {
++ /* Fill mi_row_starts[] and make sure to not exceed array range */
++ for (start_sb = 0; start_sb < sb_rows && i < GST_AV1_MAX_TILE_ROWS;
++ start_sb += tile_height_sb) {
+ parser->state.mi_row_starts[i] = start_sb << sb_shift;
+ i += 1;
+ }
+@@ -2287,7 +2291,8 @@ gst_av1_parse_tile_info (GstAV1Parser * parser, GstBitReader * br,
+ } else {
+ widest_tile_sb = 0;
+ start_sb = 0;
+- for (i = 0; start_sb < sb_cols; i++) {
++ /* Fill mi_col_starts[] and make sure to not exceed array range */
++ for (i = 0; start_sb < sb_cols && i < GST_AV1_MAX_TILE_COLS; i++) {
+ parser->state.mi_col_starts[i] = start_sb << sb_shift;
+ max_width = MIN (sb_cols - start_sb, max_tile_width_sb);
+ tile_info->width_in_sbs_minus_1[i] =
+@@ -2312,7 +2317,8 @@ gst_av1_parse_tile_info (GstAV1Parser * parser, GstBitReader * br,
+ max_tile_height_sb = MAX (max_tile_area_sb / widest_tile_sb, 1);
+
+ start_sb = 0;
+- for (i = 0; start_sb < sb_rows; i++) {
++ /* Fill mi_row_starts[] and make sure to not exceed array range */
++ for (i = 0; start_sb < sb_rows && i < GST_AV1_MAX_TILE_ROWS; i++) {
+ parser->state.mi_row_starts[i] = start_sb << sb_shift;
+ max_height = MIN (sb_rows - start_sb, max_tile_height_sb);
+ tile_info->height_in_sbs_minus_1[i] =
+--
+2.43.0
+
diff --git a/0002-mxfdemux-Check-number-of-channels-for-AES3-audio.patch b/0002-mxfdemux-Check-number-of-channels-for-AES3-audio.patch
new file mode 100644
index 0000000..3c55bb3
--- /dev/null
+++ b/0002-mxfdemux-Check-number-of-channels-for-AES3-audio.patch
@@ -0,0 +1,45 @@
+From cfccf4b36197359271c95f20bfcda854f6c812cc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
+Date: Thu, 10 Aug 2023 15:47:03 +0300
+Subject: [PATCH 2/4] mxfdemux: Check number of channels for AES3 audio
+
+Only up to 8 channels are allowed and using a higher number would cause
+integer overflows when copying the data, and lead to out of bound
+writes.
+
+Also check that each buffer is at least 4 bytes long to avoid another
+overflow.
+
+Fixes ZDI-CAN-21661, CVE-2023-40475
+
+Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2897
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5362>
+---
+ subprojects/gst-plugins-bad/gst/mxf/mxfd10.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/subprojects/gst-plugins-bad/gst/mxf/mxfd10.c b/subprojects/gst-plugins-bad/gst/mxf/mxfd10.c
+index 66c071372a..060d5a02de 100644
+--- a/subprojects/gst-plugins-bad/gst/mxf/mxfd10.c
++++ b/subprojects/gst-plugins-bad/gst/mxf/mxfd10.c
+@@ -119,7 +119,7 @@ mxf_d10_sound_handle_essence_element (const MXFUL * key, GstBuffer * buffer,
+ gst_buffer_map (buffer, &map, GST_MAP_READ);
+
+ /* Now transform raw AES3 into raw audio, see SMPTE 331M */
+- if ((map.size - 4) % 32 != 0) {
++ if (map.size < 4 || (map.size - 4) % 32 != 0) {
+ gst_buffer_unmap (buffer, &map);
+ GST_ERROR ("Invalid D10 sound essence buffer size");
+ return GST_FLOW_ERROR;
+@@ -219,6 +219,7 @@ mxf_d10_create_caps (MXFMetadataTimelineTrack * track, GstTagList ** tags,
+ GstAudioFormat audio_format;
+
+ if (s->channel_count == 0 ||
++ s->channel_count > 8 ||
+ s->quantization_bits == 0 ||
+ s->audio_sampling_rate.n == 0 || s->audio_sampling_rate.d == 0) {
+ GST_ERROR ("Invalid descriptor");
+--
+2.43.0
+
diff --git a/0003-av1parser-Fix-array-sizes-in-scalability-structure.patch b/0003-av1parser-Fix-array-sizes-in-scalability-structure.patch
new file mode 100644
index 0000000..7bc4204
--- /dev/null
+++ b/0003-av1parser-Fix-array-sizes-in-scalability-structure.patch
@@ -0,0 +1,66 @@
+From 0ded5a6d028ad40604093690c44eb022ef793531 Mon Sep 17 00:00:00 2001
+From: Seungha Yang <seungha@centricular.com>
+Date: Thu, 23 Nov 2023 20:24:42 +0900
+Subject: [PATCH 3/4] av1parser: Fix array sizes in scalability structure
+
+Since the AV1 specification is not explicitly mentioning about
+the array size bounds, array sizes in scalability structure
+should be defined as possible maximum sizes that can have.
+
+Also, this commit removes GST_AV1_MAX_SPATIAL_LAYERS define from
+public header which is API break but the define is misleading
+and this patch is introducing ABI break already
+
+ZDI-CAN-22300
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5824>
+---
+ .../gst-libs/gst/codecparsers/gstav1parser.h | 11 +++++------
+ .../gst-plugins-bad/gst/videoparsers/gstav1parse.c | 2 +-
+ 2 files changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gstav1parser.h b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gstav1parser.h
+index a5f1c761f6..7d2ec69fb5 100644
+--- a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gstav1parser.h
++++ b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gstav1parser.h
+@@ -71,9 +71,8 @@ G_BEGIN_DECLS
+ #define GST_AV1_MAX_TILE_COUNT 512
+ #define GST_AV1_MAX_OPERATING_POINTS \
+ (GST_AV1_MAX_NUM_TEMPORAL_LAYERS * GST_AV1_MAX_NUM_SPATIAL_LAYERS)
+-#define GST_AV1_MAX_SPATIAL_LAYERS 2 /* correct? */
+-#define GST_AV1_MAX_TEMPORAL_GROUP_SIZE 8 /* correct? */
+-#define GST_AV1_MAX_TEMPORAL_GROUP_REFERENCES 8 /* correct? */
++#define GST_AV1_MAX_TEMPORAL_GROUP_SIZE 255
++#define GST_AV1_MAX_TEMPORAL_GROUP_REFERENCES 7
+ #define GST_AV1_MAX_NUM_Y_POINTS 16
+ #define GST_AV1_MAX_NUM_CB_POINTS 16
+ #define GST_AV1_MAX_NUM_CR_POINTS 16
+@@ -968,9 +967,9 @@ struct _GstAV1MetadataScalability {
+ gboolean spatial_layer_dimensions_present_flag;
+ gboolean spatial_layer_description_present_flag;
+ gboolean temporal_group_description_present_flag;
+- guint16 spatial_layer_max_width[GST_AV1_MAX_SPATIAL_LAYERS];
+- guint16 spatial_layer_max_height[GST_AV1_MAX_SPATIAL_LAYERS];
+- guint8 spatial_layer_ref_id[GST_AV1_MAX_SPATIAL_LAYERS];
++ guint16 spatial_layer_max_width[GST_AV1_MAX_NUM_SPATIAL_LAYERS];
++ guint16 spatial_layer_max_height[GST_AV1_MAX_NUM_SPATIAL_LAYERS];
++ guint8 spatial_layer_ref_id[GST_AV1_MAX_NUM_SPATIAL_LAYERS];
+ guint8 temporal_group_size;
+
+ guint8 temporal_group_temporal_id[GST_AV1_MAX_TEMPORAL_GROUP_SIZE];
+diff --git a/subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c b/subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c
+index 923bc5d70a..9eaa1f47d9 100644
+--- a/subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c
++++ b/subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c
+@@ -1271,7 +1271,7 @@ gst_av1_parse_handle_sequence_obu (GstAV1Parse * self, GstAV1OBU * obu)
+ }
+
+ val = (self->parser->state.operating_point_idc >> 8) & 0x0f;
+- for (i = 0; i < (1 << GST_AV1_MAX_SPATIAL_LAYERS); i++) {
++ for (i = 0; i < GST_AV1_MAX_NUM_SPATIAL_LAYERS; i++) {
+ if (val & (1 << i))
+ self->highest_spatial_id = i;
+ }
+--
+2.43.0
+
diff --git a/0004-h265parser-Fix-possible-overflow-using-max_sub_layer.patch b/0004-h265parser-Fix-possible-overflow-using-max_sub_layer.patch
new file mode 100644
index 0000000..fa91de3
--- /dev/null
+++ b/0004-h265parser-Fix-possible-overflow-using-max_sub_layer.patch
@@ -0,0 +1,42 @@
+From 6780451f22c87e926ebf60fe55e1a9e10517f6d1 Mon Sep 17 00:00:00 2001
+From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
+Date: Wed, 9 Aug 2023 12:49:19 -0400
+Subject: [PATCH 4/4] h265parser: Fix possible overflow using
+ max_sub_layers_minus1
+
+This fixes a possible overflow that can be triggered by an invalid value of
+max_sub_layers_minus1 being set in the bitstream. The bitstream uses 3 bits,
+but the allowed range is 0 to 6 only.
+
+Fixes ZDI-CAN-21768, CVE-2023-40476
+
+Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2895
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5364>
+---
+ .../gst-plugins-bad/gst-libs/gst/codecparsers/gsth265parser.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth265parser.c b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth265parser.c
+index fe775a86cd..44b723737a 100644
+--- a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth265parser.c
++++ b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth265parser.c
+@@ -1845,6 +1845,7 @@ gst_h265_parse_vps (GstH265NalUnit * nalu, GstH265VPS * vps)
+
+ READ_UINT8 (&nr, vps->max_layers_minus1, 6);
+ READ_UINT8 (&nr, vps->max_sub_layers_minus1, 3);
++ CHECK_ALLOWED (vps->max_sub_layers_minus1, 0, 6);
+ READ_UINT8 (&nr, vps->temporal_id_nesting_flag, 1);
+
+ /* skip reserved_0xffff_16bits */
+@@ -2015,6 +2016,7 @@ gst_h265_parse_sps (GstH265Parser * parser, GstH265NalUnit * nalu,
+ READ_UINT8 (&nr, sps->vps_id, 4);
+
+ READ_UINT8 (&nr, sps->max_sub_layers_minus1, 3);
++ CHECK_ALLOWED (sps->max_sub_layers_minus1, 0, 6);
+ READ_UINT8 (&nr, sps->temporal_id_nesting_flag, 1);
+
+ if (!gst_h265_parse_profile_tier_level (&sps->profile_tier_level, &nr,
+--
+2.43.0
+
diff --git a/gst-p-bad-cleanup.sh b/gst-p-bad-cleanup.sh
new file mode 100755
index 0000000..2f8d8b7
--- /dev/null
+++ b/gst-p-bad-cleanup.sh
@@ -0,0 +1,195 @@
+#!/bin/sh
+
+# Process a gst-plugins-bad tarball to remove
+# unwanted GStreamer plugins.
+#
+# See https://bugzilla.redhat.com/show_bug.cgi?id=532470
+# for details
+#
+# Bastien Nocera <bnocera@redhat.com> - 2010
+#
+
+SOURCE="$1"
+NEW_SOURCE=`echo $SOURCE | sed 's/bad-/bad-free-/'`
+DIRECTORY=`echo $SOURCE | sed 's/\.tar\.xz//'`
+
+ALLOWED="
+aacparse
+accurip
+adpcmdec
+adpcmenc
+aiff
+aiffparse
+amrparse
+asfmux
+audiobuffersplit
+audiofxbad
+audiolatency
+audiomixer
+audiomixmatrix
+audioparsers
+audiovisualizers
+autoconvert
+bayer
+camerabin
+camerabin2
+cdxaparse
+coloreffects
+colorspace
+compositor
+dataurisrc
+dccp
+debugutils
+dtmf
+dvbsubenc
+faceoverlay
+festival
+fieldanalysis
+freeverb
+freeze
+frei0r
+gaudieffects
+gdp
+geometrictransform
+h264parse
+hdvparse
+hls
+id3tag
+inter
+interlace
+invtelecine
+ivfparse
+ivtc
+jpegformat
+jp2kdecimator
+legacyresample
+librfb
+liveadder
+midi
+mve
+mpegdemux
+mpeg4videoparse
+mpegpsmux
+mpegtsdemux
+mpegtsmux
+mpegvideoparse
+mxf
+netsim
+nsf
+nuvdemux
+onvif
+patchdetect
+pcapparse
+pnm
+proxy
+qtmux
+rawparse
+removesilence
+rist
+rtmp2
+rtp
+rtpmux
+rtpvp8
+scaletempo
+sdi
+sdp
+segmentclip
+selector
+smooth
+speed
+stereo
+subenc
+switchbin
+timecode
+transcode
+tta
+valve
+videofilters
+videoframe_audiolevel
+videomaxrate
+videomeasure
+videoparsers
+videosignal
+vmnc
+yadif
+y4m
+"
+
+NOT_ALLOWED="
+dvbsuboverlay
+dvdspu
+real
+siren
+"
+
+error()
+{
+ MESSAGE=$1
+ echo $MESSAGE
+ exit 1
+}
+
+check_allowed()
+{
+ MODULE=$1
+ for i in $ALLOWED ; do
+ if test x$MODULE = x$i ; then
+ return 0;
+ fi
+ done
+ # Ignore errors coming from ext/ directory
+ # they require external libraries so are ineffective anyway
+ return 1;
+}
+
+check_not_allowed()
+{
+ MODULE=$1
+ for i in $NOT_ALLOWED ; do
+ if test x$MODULE = x$i ; then
+ return 0;
+ fi
+ done
+ return 1;
+}
+
+rm -rf $DIRECTORY
+tar xJf $SOURCE || error "Cannot unpack $SOURCE"
+pushd $DIRECTORY > /dev/null || error "Cannot open directory \"$DIRECTORY\""
+
+unknown=""
+for subdir in gst ext sys; do
+ for dir in $subdir/* ; do
+ # Don't touch non-directories
+ if ! [ -d $dir ] ; then
+ continue;
+ fi
+ MODULE=`basename $dir`
+ if ( check_not_allowed $MODULE ) ; then
+ echo "**** Removing $MODULE ****"
+ echo "Removing directory $dir"
+ rm -r $dir || error "Cannot remove $dir"
+ echo
+ elif test $subdir = ext || test $subdir = sys; then
+ # Ignore library or system non-blacklisted plugins
+ continue;
+ elif ! ( check_allowed $MODULE ) ; then
+ echo "Unknown module in $dir"
+ unknown="$unknown $dir"
+ fi
+ done
+done
+
+echo
+
+if test "x$unknown" != "x"; then
+ echo -n "Aborting due to unkown modules: "
+ echo "$unknown" | sed "s/ /\n /g"
+ exit 1
+fi
+
+popd > /dev/null
+
+tar cJf $NEW_SOURCE $DIRECTORY
+echo "$NEW_SOURCE is ready to use"
+
diff --git a/gstreamer1-plugins-bad-free.spec b/gstreamer1-plugins-bad-free.spec
new file mode 100644
index 0000000..4bc0a9c
--- /dev/null
+++ b/gstreamer1-plugins-bad-free.spec
@@ -0,0 +1,1248 @@
+%global majorminor 1.0
+%global _gobject_introspection 1.31.1
+
+# Only have extras package on fedora
+%if 0%{?fedora}
+%bcond_without extras
+%else
+%bcond_with extras
+%endif
+
+#global gitrel 140
+#global gitcommit 4ca3a22b6b33ad8be4383063e76f79c4d346535d
+#global shortcommit %(c=%{gitcommit}; echo ${c:0:5})
+
+Name: gstreamer1-plugins-bad-free
+Version: 1.22.1
+Release: 4%{?gitcommit:.git%{shortcommit}}%{?dist}
+Summary: GStreamer streaming media framework "bad" plugins
+
+License: LGPLv2+ and LGPLv2
+URL: http://gstreamer.freedesktop.org/
+%if 0%{?gitrel}
+# git clone git://anongit.freedesktop.org/gstreamer/gst-plugins-good
+# cd gst-plugins-good; git reset --hard %{gitcommit}; ./autogen.sh; make; make distcheck
+# modified with gst-p-bad-cleanup.sh from SOURCE1
+%else
+# 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
+%endif
+Source0: gst-plugins-bad-free-%{version}.tar.xz
+Source1: gst-p-bad-cleanup.sh
+
+Patch0: 0001-mxfdemux-Store-GstMXFDemuxEssenceTrack-in-their-own-.patch
+Patch1: 0002-codecparsers-av1-Clip-max-tile-rows-and-cols-values.patch
+Patch2: 0001-mxfdemux-Fix-integer-overflow-causing-out-of-bounds-.patch
+Patch3: 0002-mxfdemux-Check-number-of-channels-for-AES3-audio.patch
+Patch4: 0003-av1parser-Fix-array-sizes-in-scalability-structure.patch
+Patch5: 0004-h265parser-Fix-possible-overflow-using-max_sub_layer.patch
+
+
+BuildRequires: meson >= 0.48.0
+BuildRequires: gcc-c++
+BuildRequires: gstreamer1-devel >= %{version}
+BuildRequires: gstreamer1-plugins-base-devel >= %{version}
+
+BuildRequires: check
+BuildRequires: gettext-devel
+BuildRequires: libXt-devel
+BuildRequires: gobject-introspection-devel >= %{_gobject_introspection}
+
+BuildRequires: bzip2-devel
+BuildRequires: exempi-devel
+%if 0%{?fedora} >= 31 || 0%{?rhel} >= 9
+BuildRequires: fdk-aac-free-devel
+%endif
+BuildRequires: gsm-devel
+BuildRequires: jasper-devel
+BuildRequires: lcms2-devel
+BuildRequires: libdvdnav-devel
+BuildRequires: libexif-devel
+BuildRequires: librsvg2-devel
+BuildRequires: libsndfile-devel
+BuildRequires: mesa-libGL-devel
+BuildRequires: mesa-libGLES-devel
+BuildRequires: mesa-libGLU-devel
+BuildRequires: openssl-devel
+BuildRequires: orc-devel
+BuildRequires: soundtouch-devel
+BuildRequires: wavpack-devel
+BuildRequires: opus-devel
+%if 0%{?fedora} || 0%{?rhel} > 7
+BuildRequires: wayland-devel
+BuildRequires: wayland-protocols-devel
+%endif
+BuildRequires: gnutls-devel
+BuildRequires: libsrtp-devel
+BuildRequires: pkgconfig(gudev-1.0)
+BuildRequires: pkgconfig(libusb-1.0)
+BuildRequires: gtk3-devel >= 3.4
+BuildRequires: bluez-libs-devel >= 5.0
+BuildRequires: libwebp-devel
+BuildRequires: mesa-libEGL-devel
+BuildRequires: vulkan-devel
+#BuildRequires: mesa-vulkan-devel
+BuildRequires: webrtc-audio-processing-devel
+%if 0
+BuildRequires: wpewebkit-devel
+BuildRequires: wpebackend-fdo-devel
+%endif
+BuildRequires: glslc
+BuildRequires: libdrm-devel
+
+%if %{with extras}
+BuildRequires: ladspa-devel
+BuildRequires: libmicrodns-devel
+BuildRequires: liblrdf-devel
+BuildRequires: srt-devel
+BuildRequires: zvbi-devel
+BuildRequires: libopenmpt-devel
+BuildRequires: libaom-devel
+BuildRequires: libbs2b-devel >= 3.1.0
+## Plugins not ported
+#BuildRequires: dirac-devel
+#BuildRequires: gmyth-devel >= 0.4
+BuildRequires: fluidsynth-devel
+BuildRequires: libass-devel
+BuildRequires: libchromaprint-devel
+## Plugin not ported
+#BuildRequires: libcdaudio-devel
+BuildRequires: libcurl-devel
+BuildRequires: libssh2-devel
+BuildRequires: libxml2-devel
+BuildRequires: game-music-emu-devel
+BuildRequires: libkate-devel
+BuildRequires: libmodplug-devel
+## Plugins not ported
+#BuildRequires: libmusicbrainz-devel
+#BuildRequires: libtimidity-devel
+BuildRequires: libva-devel
+BuildRequires: openal-soft-devel
+## If enabled, adds ~90 additional deps; perhaps can be moved to a
+## subpackage?
+#BuildRequires: opencv-devel
+BuildRequires: openjpeg2-devel
+BuildRequires: pkgconfig(spandsp) >= 0.0.6
+## Plugins not ported
+#BuildRequires: SDL-devel
+BuildRequires: lilv-devel
+BuildRequires: wildmidi-devel
+BuildRequires: zbar-devel
+BuildRequires: OpenEXR-devel
+BuildRequires: libnice-devel
+# libldac is not built on x390x, see rhbz#1677491
+%ifnarch s390x
+BuildRequires: pkgconfig(ldacBT-enc)
+%endif
+BuildRequires: qrencode-devel
+BuildRequires: json-glib-devel
+%endif
+
+%if 0%{?fedora} >= 31 || 0%{?rhel} >= 9
+# libgstfdkaac.so used to be shipped in -nonfree
+Obsoletes: gstreamer1-plugins-bad-nonfree < 1.16.1-2
+%endif
+
+# Drop after f36
+Provides: gst-transcoder = 1.16.0-4
+Obsoletes: gst-transcoder < 1.16.0-4
+
+%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)
+Requires: %{name}%{?_isa} = %{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 (%{name}-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.
+
+%package zbar
+Summary: GStreamer "bad" plugins zbar plugin
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description zbar
+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 (%{name}-zbar) contains the zbar
+plugin which allows decode bar codes.
+
+%package fluidsynth
+Summary: GStreamer "bad" plugins fluidsynth plugin
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: soundfont2-default
+
+%description fluidsynth
+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 (%{name}-fluidsynth) contains the fluidsynth
+plugin which allows playback of midi files.
+
+
+%package wildmidi
+Summary: GStreamer "bad" plugins wildmidi plugin
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description wildmidi
+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 (%{name}-wildmidi) contains the wildmidi
+plugin which allows playback of midi files.
+%endif
+
+
+%package devel
+Summary: Development files for the GStreamer media framework "bad" plug-ins
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: gstreamer1-plugins-base-devel
+
+# Drop after f36
+Provides: gst-transcoder-devel = 1.16.0-4
+Obsoletes: gst-transcoder-devel < 1.16.0-4
+
+
+%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}
+%patch0 -p3
+%patch1 -p3
+%patch2 -p3
+%patch3 -p3
+%patch4 -p3
+%patch5 -p3
+
+%build
+%meson \
+ -D package-name="Fedora GStreamer-plugins-bad package" \
+ -D package-origin="http://download.fedoraproject.org" \
+ -D tests=disabled \
+ %{!?with_extras:-D fbdev=disabled -D decklink=disabled } \
+ %{!?with_extras:-D assrender=disabled -D bs2b=disabled } \
+ %{!?with_extras:-D chromaprint=disabled -D d3dvideosink=disabled } \
+ %{!?with_extras:-D directsound=disabled -D dts=disabled } \
+ %{!?with_extras:-D fluidsynth=disabled -D openexr=disabled } \
+ %{!?with_extras:-D curl=disabled -D curl-ssh2=disabled } \
+ %{!?with_extras:-D ttml=disabled -D kate=disabled } \
+ %{!?with_extras:-D modplug=disabled } \
+ %{!?with_extras:-D openal=disabled } \
+ %{!?with_extras:-D opencv=disabled -D openjpeg=disabled } \
+ %{!?with_extras:-D wildmidi=disabled -D zbar=disabled } \
+ %{!?with_extras:-D gme=disabled -D lv2=disabled } \
+ %{!?with_extras:-D webrtc=disabled -D aom=disabled } \
+ %{!?with_extras:-D teletext=disabled -D srt=disabled } \
+ %{!?with_extras:-D openmpt=disabled -D microdns=disabled } \
+ %{!?with_extras:-D ladspa=disabled } \
+ -D doc=disabled -D magicleap=disabled -D msdk=disabled \
+ -D dts=disabled -D faac=disabled -D faad=disabled \
+ -D mpeg2enc=disabled -D mplex=disabled \
+ -D neon=disabled -D rtmp=disabled \
+ -D flite=disabled -D sbc=disabled -D opencv=disabled \
+ %{!?with_extras:-D spandsp=disabled -D va=disabled } \
+ -D voamrwbenc=disabled -D x265=disabled \
+ -D dvbsuboverlay=disabled -D dvdspu=disabled -D siren=disabled \
+ -D opensles=disabled -D tinyalsa=disabled \
+ -D wasapi=disabled -D wasapi2=disabled -D avtp=disabled \
+ -D dc1394=disabled -D directfb=disabled -D iqa=disabled \
+ -D libde265=disabled -D musepack=disabled -D openni2=disabled \
+ -D svthevcenc=disabled -D voaacenc=disabled \
+ -D zxing=disabled -D wpe=disabled -D x11=disabled \
+%ifarch s390x
+ -D ldac=disabled \
+%else
+ %{!?with_extras:-D ldac=disabled } \
+%endif
+ %{!?with_extras:-D qroverlay=disabled } \
+ -D openh264=disabled -D gs=disabled -D isac=disabled \
+ -D onnx=disabled -D openaptx=disabled -Dgpl=enabled \
+ -D amfcodec=disabled -D directshow=disabled -D qsv=disabled
+
+%meson_build
+
+%install
+%meson_install
+
+# Register as an AppStream component to be visible in the software center
+#
+# NOTE: It would be *awesome* if this file was maintained by the upstream
+# project, translated and installed into the right place during `make install`.
+#
+# See http://www.freedesktop.org/software/appstream/docs/ for more details.
+#
+mkdir -p $RPM_BUILD_ROOT%{_metainfodir}
+cat > $RPM_BUILD_ROOT%{_metainfodir}/gstreamer-bad-free.appdata.xml <<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2013 Richard Hughes <richard@hughsie.com> -->
+<component type="codec">
+ <id>gstreamer-bad-free</id>
+ <metadata_license>CC0-1.0</metadata_license>
+ <name>GStreamer Multimedia Codecs - Extra</name>
+ <summary>Multimedia playback for AIFF, DVB, GSM, MIDI, MXF and Opus</summary>
+ <description>
+ <p>
+ This addon includes several additional codecs that are missing
+ something - perhaps a good code review, some documentation, a set of
+ tests, a real live maintainer, or some actual wide use.
+ However, they might be good enough to play your media files.
+ </p>
+ <p>
+ These codecs can be used to encode and decode media files where the
+ format is not patent encumbered.
+ </p>
+ <p>
+ A codec decodes audio and video for for playback or editing and is also
+ used for transmission or storage.
+ Different codecs are used in video-conferencing, streaming media and
+ video editing applications.
+ </p>
+ </description>
+ <keywords>
+ <keyword>AIFF</keyword>
+ <keyword>DVB</keyword>
+ <keyword>GSM</keyword>
+ <keyword>MIDI</keyword>
+ <keyword>MXF</keyword>
+ <keyword>Opus</keyword>
+ </keywords>
+ <url type="homepage">http://gstreamer.freedesktop.org/</url>
+ <url type="bugtracker">https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer</url>
+ <url type="help">http://gstreamer.freedesktop.org/documentation/</url>
+ <url type="donation">http://www.gnome.org/friends/</url>
+ <update_contact><!-- upstream-contact_at_email.com --></update_contact>
+</component>
+EOF
+
+%find_lang gst-plugins-bad-%{majorminor}
+
+# unpackaged files
+rm $RPM_BUILD_ROOT%{_bindir}/playout
+
+%ldconfig_scriptlets
+
+%files -f gst-plugins-bad-%{majorminor}.lang
+%license COPYING
+%doc AUTHORS NEWS README.md README.static-linking RELEASE REQUIREMENTS
+
+%{_metainfodir}/*.appdata.xml
+%{_bindir}/gst-transcoder-%{majorminor}
+
+# presets
+%dir %{_datadir}/gstreamer-%{majorminor}/presets/
+%{_datadir}/gstreamer-%{majorminor}/presets/GstFreeverb.prs
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/device/dvd.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/avi.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/flv.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/mkv.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/mp3.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/mp4.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/oga.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/ogv.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/ts.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/webm.gep
+%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/online-services/youtube.gep
+
+# opencv data
+#{_datadir}/gst-plugins-bad/%{majorminor}/opencv_haarcascades/
+
+%{_libdir}/libgstadaptivedemux-%{majorminor}.so.*
+%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so.*
+%{_libdir}/libgstbadaudio-%{majorminor}.so.*
+%{_libdir}/libgstcodecparsers-%{majorminor}.so.*
+%{_libdir}/libgstcodecs-%{majorminor}.so.*
+%{_libdir}/libgstcuda-%{majorminor}.so.*
+%{_libdir}/libgstinsertbin-%{majorminor}.so.*
+%{_libdir}/libgstisoff-%{majorminor}.so.*
+%{_libdir}/libgstmpegts-%{majorminor}.so.*
+#{_libdir}/libgstopencv-%{majorminor}.so.*
+%{_libdir}/libgstplay-%{majorminor}.so.*
+%{_libdir}/libgstplayer-%{majorminor}.so.*
+%{_libdir}/libgstphotography-%{majorminor}.so.*
+%{_libdir}/libgstsctp-%{majorminor}.so.*
+%{_libdir}/libgsttranscoder-%{majorminor}.so.*
+%{_libdir}/libgsturidownloader-%{majorminor}.so.*
+%{_libdir}/libgstvulkan-%{majorminor}.so.*
+%if %{with extras}
+%{_libdir}/libgstva-%{majorminor}.so.*
+%endif
+%{_libdir}/libgstwebrtc-%{majorminor}.so.*
+%if %{with extras}
+%{_libdir}/libgstwebrtcnice-%{majorminor}.so.*
+%endif
+%if 0%{?fedora} || 0%{?rhel} > 7
+%{_libdir}/libgstwayland-%{majorminor}.so.*
+%endif
+
+%{_libdir}/girepository-1.0/CudaGst-1.0.typelib
+%{_libdir}/girepository-1.0/GstBadAudio-1.0.typelib
+%{_libdir}/girepository-1.0/GstCodecs-1.0.typelib
+%{_libdir}/girepository-1.0/GstCuda-1.0.typelib
+%{_libdir}/girepository-1.0/GstInsertBin-1.0.typelib
+%{_libdir}/girepository-1.0/GstMpegts-1.0.typelib
+%{_libdir}/girepository-1.0/GstPlay-1.0.typelib
+%{_libdir}/girepository-1.0/GstPlayer-1.0.typelib
+%{_libdir}/girepository-1.0/GstTranscoder-1.0.typelib
+%if %{with extras}
+%{_libdir}/girepository-1.0/GstVa-1.0.typelib
+%endif
+%{_libdir}/girepository-1.0/GstVulkan-1.0.typelib
+%{_libdir}/girepository-1.0/GstVulkanWayland-1.0.typelib
+%{_libdir}/girepository-1.0/GstWebRTC-1.0.typelib
+
+# Plugins without external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstaccurip.so
+%{_libdir}/gstreamer-%{majorminor}/libgstadpcmdec.so
+%{_libdir}/gstreamer-%{majorminor}/libgstadpcmenc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstaiff.so
+%{_libdir}/gstreamer-%{majorminor}/libgstasfmux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstaudiobuffersplit.so
+%{_libdir}/gstreamer-%{majorminor}/libgstaudiofxbad.so
+%{_libdir}/gstreamer-%{majorminor}/libgstaudiolatency.so
+%{_libdir}/gstreamer-%{majorminor}/libgstaudiomixmatrix.so
+%{_libdir}/gstreamer-%{majorminor}/libgstaudiovisualizers.so
+%{_libdir}/gstreamer-%{majorminor}/libgstautoconvert.so
+%{_libdir}/gstreamer-%{majorminor}/libgstbayer.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcamerabin.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcodecalpha.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcodectimestamper.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcoloreffects.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdash.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdvbsubenc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfaceoverlay.so
+%if %{with extras}
+%{_libdir}/gstreamer-%{majorminor}/libgstfbdevsink.so
+%endif
+
+%if 0%{?fedora} >= 31 || 0%{?rhel} >= 9
+%{_libdir}/gstreamer-%{majorminor}/libgstfdkaac.so
+%endif
+%{_libdir}/gstreamer-%{majorminor}/libgstfestival.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfieldanalysis.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfreeverb.so
+%{_libdir}/gstreamer-%{majorminor}/libgstfrei0r.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgaudieffects.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgdp.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgeometrictransform.so
+%{_libdir}/gstreamer-%{majorminor}/libgstlegacyrawparse.so
+%{_libdir}/gstreamer-%{majorminor}/libgstid3tag.so
+%{_libdir}/gstreamer-%{majorminor}/libgstipcpipeline.so
+%{_libdir}/gstreamer-%{majorminor}/libgstinter.so
+%{_libdir}/gstreamer-%{majorminor}/libgstinterlace.so
+%{_libdir}/gstreamer-%{majorminor}/libgstivfparse.so
+%{_libdir}/gstreamer-%{majorminor}/libgstivtc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstjp2kdecimator.so
+%{_libdir}/gstreamer-%{majorminor}/libgstjpegformat.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmidi.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpegpsdemux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsdemux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpegpsmux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsmux.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmxf.so
+%{_libdir}/gstreamer-%{majorminor}/libgstnetsim.so
+%{_libdir}/gstreamer-%{majorminor}/libgstpcapparse.so
+%{_libdir}/gstreamer-%{majorminor}/libgstpnm.so
+%{_libdir}/gstreamer-%{majorminor}/libgstproxy.so
+%{_libdir}/gstreamer-%{majorminor}/libgstremovesilence.so
+%{_libdir}/gstreamer-%{majorminor}/libgstresindvd.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrfbsrc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrsvg.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrtmp2.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrtpmanagerbad.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrtponvif.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsdpelem.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsegmentclip.so
+%{_libdir}/gstreamer-%{majorminor}/libgstshm.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsmooth.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsmoothstreaming.so
+%{_libdir}/gstreamer-%{majorminor}/libgstspeed.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsubenc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstswitchbin.so
+%{_libdir}/gstreamer-%{majorminor}/libgsttimecode.so
+%{_libdir}/gstreamer-%{majorminor}/libgsttranscode.so
+%{_libdir}/gstreamer-%{majorminor}/libgstuvch264.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvideofiltersbad.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvideoframe_audiolevel.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvideoparsersbad.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvideosignal.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvmnc.so
+%{_libdir}/gstreamer-%{majorminor}/libgsty4mdec.so
+
+# System (Linux) specific plugins
+%{_libdir}/gstreamer-%{majorminor}/libgstdvb.so
+%{_libdir}/gstreamer-%{majorminor}/libgstv4l2codecs.so
+
+# Plugins with external dependencies
+
+%{_libdir}/gstreamer-%{majorminor}/libgstaes.so
+%{_libdir}/gstreamer-%{majorminor}/libgstbluez.so
+%{_libdir}/gstreamer-%{majorminor}/libgstbz2.so
+%{_libdir}/gstreamer-%{majorminor}/libgstclosedcaption.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcolormanagement.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdtls.so
+%{_libdir}/gstreamer-%{majorminor}/libgsthls.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgsm.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgtkwayland.so
+%{_libdir}/gstreamer-%{majorminor}/libgstkms.so
+%{_libdir}/gstreamer-%{majorminor}/libgstnvcodec.so
+%{_libdir}/gstreamer-%{majorminor}/libgstopusparse.so
+%{_libdir}/gstreamer-%{majorminor}/libgstrist.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsctp.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsndfile.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsoundtouch.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsrtp.so
+%{_libdir}/gstreamer-%{majorminor}/libgstvulkan.so
+%if 0%{?fedora} || 0%{?rhel} > 7
+%{_libdir}/gstreamer-%{majorminor}/libgstwaylandsink.so
+%endif
+%{_libdir}/gstreamer-%{majorminor}/libgstwebp.so
+%{_libdir}/gstreamer-%{majorminor}/libgstwebrtcdsp.so
+%if 0
+%{_libdir}/gstreamer-%{majorminor}/libgstwpe.so
+%endif
+%if %{with extras}
+%{_libdir}/gstreamer-%{majorminor}/libgstwebrtc.so
+%{_libdir}/gstreamer-%{majorminor}/libgstlv2.so
+%{_libdir}/gstreamer-%{majorminor}/libgstttmlsubs.so
+%endif
+
+#debugging plugin
+%{_libdir}/gstreamer-%{majorminor}/libgstdebugutilsbad.so
+
+
+%if %{with extras}
+%files extras
+# Plugins with external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstaom.so
+%{_libdir}/gstreamer-%{majorminor}/libgstassrender.so
+%{_libdir}/gstreamer-%{majorminor}/libgstbs2b.so
+%{_libdir}/gstreamer-%{majorminor}/libgstchromaprint.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcurl.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdecklink.so
+%{_libdir}/gstreamer-%{majorminor}/libgstgme.so
+%{_libdir}/gstreamer-%{majorminor}/libgstkate.so
+%{_libdir}/gstreamer-%{majorminor}/libgstladspa.so
+%ifnarch s390x
+%{_libdir}/gstreamer-%{majorminor}/libgstldac.so
+%endif
+%{_libdir}/gstreamer-%{majorminor}/libgstmicrodns.so
+%{_libdir}/gstreamer-%{majorminor}/libgstmodplug.so
+%{_libdir}/gstreamer-%{majorminor}/libgstopenal.so
+#{_libdir}/gstreamer-%{majorminor}/libgstopencv.so
+%{_libdir}/gstreamer-%{majorminor}/libgstopenexr.so
+%{_libdir}/gstreamer-%{majorminor}/libgstopenjpeg.so
+%{_libdir}/gstreamer-%{majorminor}/libgstopenmpt.so
+%{_libdir}/gstreamer-%{majorminor}/libgstqroverlay.so
+%{_libdir}/gstreamer-%{majorminor}/libgstspandsp.so
+%{_libdir}/gstreamer-%{majorminor}/libgstsrt.so
+%{_libdir}/gstreamer-%{majorminor}/libgstteletext.so
+%{_libdir}/gstreamer-%{majorminor}/libgstva.so
+
+%files zbar
+# Plugins with external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstzbar.so
+
+%files fluidsynth
+# Plugins with external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstfluidsynthmidi.so
+
+%files wildmidi
+# Plugins with external dependencies
+%{_libdir}/gstreamer-%{majorminor}/libgstwildmidi.so
+%endif
+
+%files devel
+%if 0
+%doc %{_datadir}/gtk-doc/html/gst-plugins-bad-plugins-%{majorminor}
+%doc %{_datadir}/gtk-doc/html/gst-plugins-bad-libs-%{majorminor}
+%endif
+
+%{_datadir}/gir-1.0/CudaGst-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstBadAudio-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstCodecs-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstCuda-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstInsertBin-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstMpegts-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstPlay-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstPlayer-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstTranscoder-%{majorminor}.gir
+%if %{with extras}
+%{_datadir}/gir-1.0/GstVa-%{majorminor}.gir
+%endif
+%{_datadir}/gir-1.0/GstVulkan-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstVulkanWayland-%{majorminor}.gir
+%{_datadir}/gir-1.0/GstWebRTC-%{majorminor}.gir
+
+%{_libdir}/libgstadaptivedemux-%{majorminor}.so
+%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so
+%{_libdir}/libgstbadaudio-%{majorminor}.so
+%{_libdir}/libgstcuda-%{majorminor}.so
+%{_libdir}/libgstcodecparsers-%{majorminor}.so
+%{_libdir}/libgstcodecs-%{majorminor}.so
+%{_libdir}/libgstinsertbin-%{majorminor}.so
+%{_libdir}/libgstisoff-%{majorminor}.so
+%{_libdir}/libgstmpegts-%{majorminor}.so
+#{_libdir}/libgstopencv-%{majorminor}.so
+%{_libdir}/libgstplay-%{majorminor}.so
+%{_libdir}/libgstplayer-%{majorminor}.so
+%{_libdir}/libgstphotography-%{majorminor}.so
+%{_libdir}/libgstsctp-%{majorminor}.so
+%{_libdir}/libgsttranscoder-%{majorminor}.so
+%{_libdir}/libgsturidownloader-%{majorminor}.so
+%{_libdir}/libgstvulkan-%{majorminor}.so
+%if %{with extras}
+%{_libdir}/libgstva-%{majorminor}.so
+%endif
+%{_libdir}/libgstwebrtc-%{majorminor}.so
+%if %{with extras}
+%{_libdir}/libgstwebrtcnice-%{majorminor}.so
+%endif
+%if 0%{?fedora} || 0%{?rhel} > 7
+%{_libdir}/libgstwayland-%{majorminor}.so
+%endif
+
+%{_includedir}/gstreamer-%{majorminor}/gst/audio
+%{_includedir}/gstreamer-%{majorminor}/gst/basecamerabinsrc
+%{_includedir}/gstreamer-%{majorminor}/gst/codecparsers
+%{_includedir}/gstreamer-%{majorminor}/gst/cuda/
+%{_includedir}/gstreamer-%{majorminor}/gst/insertbin
+%{_includedir}/gstreamer-%{majorminor}/gst/interfaces/photography*
+%{_includedir}/gstreamer-%{majorminor}/gst/isoff/
+%{_includedir}/gstreamer-%{majorminor}/gst/mpegts
+#{_includedir}/gstreamer-%{majorminor}/gst/opencv
+%{_includedir}/gstreamer-%{majorminor}/gst/play
+%{_includedir}/gstreamer-%{majorminor}/gst/player
+%{_includedir}/gstreamer-%{majorminor}/gst/sctp
+%{_includedir}/gstreamer-%{majorminor}/gst/transcoder
+%{_includedir}/gstreamer-%{majorminor}/gst/uridownloader
+%if %{with extras}
+%{_includedir}/gstreamer-%{majorminor}/gst/va/
+%endif
+%{_includedir}/gstreamer-%{majorminor}/gst/vulkan/
+%{_includedir}/gstreamer-%{majorminor}/gst/wayland/
+%{_includedir}/gstreamer-%{majorminor}/gst/webrtc/
+
+# pkg-config files
+%{_libdir}/pkgconfig/gstreamer-bad-audio-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-cuda-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-codecparsers-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-insertbin-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-mpegts-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-photography-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-play-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-player-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-plugins-bad-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-sctp-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-transcoder-%{majorminor}.pc
+%if %{with extras}
+%{_libdir}/pkgconfig/gstreamer-va-%{majorminor}.pc
+%endif
+%{_libdir}/pkgconfig/gstreamer-vulkan-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-vulkan-wayland-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-wayland-%{majorminor}.pc
+%{_libdir}/pkgconfig/gstreamer-webrtc-%{majorminor}.pc
+%if %{with extras}
+%{_libdir}/pkgconfig/gstreamer-webrtc-nice-%{majorminor}.pc
+%endif
+
+
+%changelog
+* Wed Jan 17 2024 Wim Taymans <wtaymans@redhat.com> - 1.22.1-4
+- CVE-2023-40474: Integer overflow leading to heap overwrite in MXF
+- CVE-2023-40475: Integer overflow leading to heap overwrite in MXF
+- CVE-2023-40476: Integer overflow in H.265 video parser
+- ZDI-CAN-22300: buffer overflow vulnerability
+- Resolves: RHEL-19501, RHEL-19505, RHEL-19506, RHEL-20201
+
+* Thu Jan 11 2024 Wim Taymans <wtaymans@redhat.com> - 1.22.1-3
+- Bump version
+- Resolves: RHEL-16795, RHEL-16788
+
+* Tue Dec 12 2023 Wim Taymans <wtaymans@redhat.com> - 1.22.1-2
+- Patch CVE-2023-44429: AV1 codec parser heap-based buffer overflow
+- Patch CVE-2023-44446: MXF demuxer use-after-free
+- Resolves: RHEL-17030, RHEL-17039
+
+* Thu Apr 13 2023 Wim Taymans <wtaymans@redhat.com> - 1.22.1-1
+- Update to 1.22.1
+
+* Mon Nov 07 2022 Tomas Popela <tpopela@redhat.com> - 1.18.4-6
+- Fix FTBFS by BR wayland-protocols-devel
+- Resolves: rhbz#2140540
+
+* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com>
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+ Related: rhbz#1991688
+
+* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com>
+- Rebuilt for RHEL 9 BETA for openssl 3.0
+ Related: rhbz#1971065
+
+* Mon Jun 07 2021 Wim Taymans <wtaymans@redhat.com> - 1.18.4-3
+- Apply vulkan multilib patch
+- Resolves: rhbz#1915341
+
+* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com>
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* Tue Mar 16 2021 Wim Taymans <wtaymans@redhat.com> - 1.18.4-1
+- Update to 1.18.4
+
+* Tue Mar 09 2021 Wim Taymans <wtaymans@redhat.com> - 1.18.2-9
+- Fix typo when disabling microdns
+
+* Thu Feb 25 2021 Wim Taymans <wtaymans@redhat.com> - 1.18.2-8
+- Move ladspa, microdns, openmpt, srt and zvbi to extras
+
+* Mon Feb 08 2021 Wim Taymans <wtaymans@redhat.com> - 1.18.2-7
+- Rebuild for updated libmicrodns
+
+* Wed Jan 20 2021 Wim Taymans <wtaymans@redhat.com> - 1.18.2-6
+- Move libaom to extras
+- Remove unused musepack buildreq
+
+* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Sun Jan 24 2021 Leigh Scott <leigh123linux@gmail.com> - 1.18.2-4
+- Rebuild for new libmicrodns .so version
+
+* Tue Jan 12 2021 Wim Taymans <wtaymans@redhat.com> - 1.18.2-3
+- Move libnice and webrtc to extras
+
+* Fri Jan 01 2021 Richard Shaw <hobbes1069@gmail.com> - 1.18.2-2
+- Rebuild for OpenEXR 2.5.3.
+
+* Thu Dec 10 2020 Wim Taymans <wtaymans@redhat.com> - 1.18.2-1
+- Update to 1.18.2
+
+* Fri Oct 30 2020 Wim Taymans <wtaymans@redhat.com> - 1.18.1-1
+- Update to 1.18.1
+- Remove COPYING.LIB
+
+* Mon Oct 19 2020 Troy Dawson <tdawson@redhat.com> - 1.18.0-5
+- Do not run va tests when va is disabled
+
+* Sat Oct 17 2020 Dominik Mierzejewski <rpm@greysector.net> - 1.18.0-4
+- rebuild for libdvdread-6.1 ABI bump
+
+* Tue Sep 22 2020 Gwyn Ciesla <gwync@protonmail.com> - 1.18.0-3
+- Obsolete/Provide gst-transcoder
+
+* Thu Sep 10 2020 Adam Williamson <awilliam@redhat.com> - 1.18.0-2
+- Disable opencv again (pulls in huge number of deps)
+
+* Tue Sep 8 2020 Wim Taymans <wtaymans@redhat.com> - 1.18.0-1
+- Update to 1.18.0
+- Enable opencv
+
+* Fri Aug 21 2020 Wim Taymans <wtaymans@redhat.com> - 1.17.90-1
+- Update to 1.17.90
+- Remove obsolete -bad-transcoder .pc file
+- Add vulkan wayland
+
+* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Tue Jul 07 2020 Robert-André Mauchin <zebob.m@gmail.com> - 1.17.2-2
+- Rebuilt for aom 2.0.0
+
+* Mon Jul 6 2020 Wim Taymans <wtaymans@redhat.com> - 1.17.2-1
+- Update to 1.17.2
+- Add new libva plugin
+- Add new pkgconfig files
+
+* Mon Jun 22 2020 Wim Taymans <wtaymans@redhat.com> - 1.17.1-1
+- Update to 1.17.1
+- Add sources
+- Disable wpe for now
+
+* Fri Mar 20 2020 Debarshi Ray <rishi@fedoraproject.org> - 1.16.2-4
+- Enable the spandsp plugin
+
+* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Tue Jan 7 2020 Tom Callaway <spot@fedoraproject.org> - 1.16.2-2
+- rebuild for libsrtp2
+
+* Thu Jan 2 2020 Wim Taymans <wtaymans@redhat.com> - 1.16.2-1
+- Update to 1.16.2
+
+* Fri Nov 15 2019 Dominik 'Rathann' Mierzejewski <rpm@greysector.net> - 1.16.1-3
+- rebuild for libdvdread ABI bump
+
+* Fri Oct 04 2019 Kalev Lember <klember@redhat.com> - 1.16.1-2
+- Bump gstreamer1-plugins-bad-nonfree obsoletes version
+
+* Tue Sep 24 2019 Wim Taymans <wtaymans@redhat.com> - 1.16.1-1
+- Update to 1.16.1
+
+* Mon Sep 23 2019 Kalev Lember <klember@redhat.com> - 1.16.0-4
+- Enable AAC support through fdk-aac-free
+
+* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Mon Jun 24 2019 Rex Dieter <rdieter@fedoraproject.org> - 1.16.0-2
+- BR: lilv-devel, enables lv2 plugin
+- use %%_metainfodir macro
+
+* Tue Apr 23 2019 Wim Taymans <wtaymans@redhat.com> - 1.16.0-1
+- Update to 1.16.0
+
+* Fri Mar 01 2019 Wim Taymans <wtaymans@redhat.com> - 1.15.2-1
+- Update to 1.15.2
+- The vcdsrc plugin was removed
+
+* Thu Feb 28 2019 Pete Walter <pwalter@fedoraproject.org> - 1.15.1-3
+- Update wayland deps
+
+* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Fri Jan 25 2019 Wim Taymans <wtaymans@redhat.com> - 1.15.1-1
+- Update to 1.15.1
+- Remove dependency on removed package
+- Add sctp and closedcaption plugins
+
+* Wed Oct 03 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.4-1
+- Update to 1.14.4
+
+* Tue Sep 18 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.3-1
+- Update to 1.14.3
+
+* Wed Aug 15 2018 Rex Dieter <rdieter@fedoraproject.org> - 1.14.2-2
+- Enable LV2 plugin support (#1616070)
+
+* Mon Jul 23 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.2-1
+- Update to 1.14.2
+
+* Tue Jul 17 2018 Wim Taymans <wtaymans@redhat.org> - 1.14.1-7
+- Only build extras on Fedora
+- bluez is not in extras
+- vdpau is in extras
+
+* Tue Jul 17 2018 Wim Taymans <wtaymans@redhat.org> - 1.14.1-6
+- remove unused liboil BR
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Thu Jun 14 2018 Simone Caronni <negativo17@gmail.com> - 1.14.1-4
+- Rebuild for updated libass.
+
+* Fri May 25 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.1-3
+- rebuild (#1581325) to update Provides
+
+* Tue May 22 2018 Rex Dieter <rdieter@fedoraproject.org> - 1.14.1-2
+- rebuild (file)
+
+* Mon May 21 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.1-1
+- Update to 1.14.1
+- Use openjpeg2 instead of openjpeg (#1553079)
+
+* Thu May 10 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.0-2
+- Add libnice-devel to get webrtc plugin (#1575244)
+
+* Tue Mar 20 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.0-1
+- Update to 1.14.0
+- add webrtc gir and typelib
+
+* Wed Mar 14 2018 Wim Taymans <wtaymans@redhat.com> - 1.13.91-1
+- Update to 1.13.91
+
+* Mon Mar 5 2018 Wim Taymans <wtaymans@redhat.com> - 1.13.90-1
+- Update to 1.13.90
+- Add audiolatency
+- Schrodinger element was removed
+
+* Tue Feb 27 2018 Rex Dieter <rdieter@fedoraproject.org> - 1.13.1-2
+- drop -gtk subpkg, moved to gst1-plugins-good
+
+* Fri Feb 23 2018 Rex Dieter <rdieter@fedoraproject.org> - 1.13.1-1
+- 1.13.1
+- use %%ldconfig_scriptlets %%make_build %%make_install
+- fix rpath in gst-p-bad-cleanup.sh
+- tighten subpkg deps with %%{?_isa}
+- -gtk subpkg now empty. FIXME
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.4-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Mon Jan 8 2018 Wim Taymans <wtaymans@redhat.com> - 1.12.4-2
+- Rebuild for chromaprint .so change
+
+* Mon Dec 11 2017 Wim Taymans <wtaymans@redhat.com> - 1.12.4-1
+- Update to 1.12.4
+
+* Fri Oct 13 2017 Troy Dawson <tdawson@redhat.com> - 1.12.3-3
+- Cleanup spec file conditionals
+
+* Sat Sep 30 2017 Jerry James <loganjerry@gmail.com> - 1.12.3-2
+- Rebuild for soundtouch 2.0.0
+
+* Tue Sep 19 2017 Wim Taymans <wtaymans@redhat.com> - 1.12.3-1
+- Update to 1.12.3
+
+* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Sun Jul 30 2017 Florian Weimer <fweimer@redhat.com> - 1.12.2-4
+- Rebuild with binutils fix for ppc64le (#1475636)
+
+* Thu Jul 27 2017 Jan Horak <jhorak@redhat.com> - 1.12.2-3
+- Added missing buildrequire on EGL
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Mon Jul 17 2017 Wim Taymans <wtaymans@redhat.com> - 1.12.2-1
+- Update to 1.12.2
+
+* Tue Jun 20 2017 Wim Taymans <wtaymans@redhat.com> - 1.12.1-1
+- Update to 1.12.1
+
+* Wed May 10 2017 Wim Taymans <wtaymans@redhat.com> - 1.12.0-1
+- Update to 1.12.0
+
+* Fri Apr 28 2017 Wim Taymans <wtaymans@redhat.com> - 1.11.91-1
+- Update to 1.11.91
+
+* Tue Apr 11 2017 Wim Taymans <wtaymans@redhat.com> - 1.11.90-1
+- Update to 1.11.90
+- Update plugin names
+- Remove old rawparse plugin
+- Add new allocator lib and legacyrawparse
+
+* Fri Feb 24 2017 Wim Taymans <wtaymans@redhat.com> - 1.11.2-1
+- Update to 1.11.2
+- add audiomixmatrix
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.11.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Wed Feb 01 2017 Sandro Mani <manisandro@gmail.com> - 1.11.1-2
+- Rebuild (libwebp)
+
+* Fri Jan 13 2017 Wim Taymans <wtaymans@redhat.com> - 1.11.1-1
+- Update to 1.11.1
+- Add audiobuffersplit
+- Dataurisrc was moved to core
+- Add ttmlsubs plugin
+
+* Mon Dec 05 2016 Wim Taymans <wtaymans@redhat.com> - 1.10.2-1
+- Update to 1.10.2
+
+* Mon Nov 28 2016 Wim Taymans <wtaymans@redhat.com> - 1.10.1-1
+- Update to 1.10.1
+
+* Thu Nov 03 2016 Wim Taymans <wtaymans@redhat.com> - 1.10.0-1
+- Update to 1.10.0
+
+* Sat Oct 01 2016 Wim Taymans <wtaymans@redhat.com> - 1.9.90-1
+- Update to 1.9.90
+
+* Fri Sep 02 2016 Wim Taymans <wtaymans@redhat.com> - 1.9.2-2
+- Rebuild
+
+* Thu Sep 01 2016 Wim Taymans <wtaymans@redhat.com> - 1.9.2-1
+- Update to 1.9.2
+
+* Fri Aug 26 2016 Hans de Goede <hdegoede@redhat.com> - 1.9.1-3
+- Rebuild for new wildmidi
+
+* Wed Aug 10 2016 Wim Taymans <wtaymans@redhat.com> - 1.9.1-2
+- Merge patches from Kevin Kofler (#1267665)
+- Split gtksink into a -gtk subpackage (#1295444)
+- Split wildmidi plugin into a -wildmidi subpackage (#1267665)
+- BR mesa-libGLES-devel to enable OpenGL ES 2 support in GstGL (#1308290)
+
+* Thu Jul 07 2016 Wim Taymans <wtaymans@redhat.com> - 1.9.1-1
+- Update to 1.9.1
+- add musepack plugin
+- add kmssink plugin
+
+* Thu Jun 09 2016 Wim Taymans <wtaymans@redhat.com> - 1.8.2-1
+- Update to 1.8.2
+
+* Sun May 08 2016 Wim Taymans <wtaymans@redhat.com> - 1.8.1-2
+- Rebuild for opencv
+- Disable opencv, the version is too new
+
+* Thu Apr 21 2016 Wim Taymans <wtaymans@redhat.com> - 1.8.1-1
+- Update to 1.8.1
+
+* Thu Mar 24 2016 Wim Taymans <wtaymans@redhat.com> - 1.8.0-1
+- Update to 1.8.0
+
+* Wed Mar 16 2016 Wim Taymans <wtaymans@redhat.com> - 1.7.91-1
+- Update to 1.7.91
+- The opus parse was not moved so we still need opus-devel and we still
+ ship a plugin.
+- the plugin was renamed to opusparse
+
+* Wed Mar 02 2016 Wim Taymans <wtaymans@redhat.com> - 1.7.90-1
+- Update to 1.7.90
+- the opus plugin was moved to -base.
+
+* Thu Feb 25 2016 Wim Taymans <wtaymans@redhat.com> - 1.7.2-2
+- Rebuild for soundtouch ABI break (#1311323)
+
+* Fri Feb 19 2016 Wim Taymans <wtaymans@redhat.com> - 1.7.2-1
+- Update to 1.7.2
+- remove rtpbad plugin, it was moved
+- add new libraries and netsim plugin
+
+* Tue Feb 16 2016 Wim Taymans <wtaymans@redhat.com> - 1.7.1-5
+- add chromaprint plugin
+
+* Thu Feb 04 2016 Ralf Corsépius <corsepiu@fedoraproject.org> - 1.7.1-4
+- Append --disable-fatal-warnings to %%configure to prevent
+ building from aborting for negligible warnings (Fix F24FTBFS)
+- Append --disable-silent-rules to %%configure to make
+ building verbose.
+- Don't remove buildroot before installing.
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Tue Jan 5 2016 Wim Taymans <wtaymans@redhat.com> - 1.7.1-2
+- remove rpath from gtksink and mxf
+- Fix description line too long
+
+* Tue Jan 5 2016 Wim Taymans <wtaymans@redhat.com> - 1.7.1-1
+- Update to 1.7.1
+- rename fragmented -> hls
+- remove liveadder
+- add gstplayer
+- add teletextdec and videoframe_audiolevel
+
+* Mon Dec 28 2015 Rex Dieter <rdieter@fedoraproject.org> 1.6.2-2
+- rebuild (libwebp)
+
+* Tue Dec 15 2015 Wim Taymans <wtaymans@redhat.com> - 1.6.2-1
+- Update to 1.6.2
+
+* Mon Nov 9 2015 Wim Taymans <wtaymans@redhat.com> - 1.6.1-2
+- Enable more plugins: gtksink, webp, bluez, bs2b, gme, ofa, openal,
+ opencv, openjpeg
+
+* Mon Nov 2 2015 Wim Taymans <wtaymans@redhat.com> - 1.6.1-1
+- Update to 1.6.1
+
+* Sat Sep 26 2015 Kalev Lember <klember@redhat.com> - 1.6.0-1
+- Update to 1.6.0
+- Remove lib64 rpaths from a few more libraries
+- Use license macro for COPYING and COPYING.LIB
+
+* Mon Sep 21 2015 Wim Taymans <wtaymans@redhat.com> - 1.5.91-1
+- Update to 1.5.91
+
+* Fri Sep 18 2015 Richard Hughes <rhughes@redhat.com> - 1.5.90-3
+- Add optional data to AppStream metadata.
+
+* Mon Aug 24 2015 Wim Taymans <wtaymans@redhat.com> - 1.5.90-2
+- Enable uvch264
+
+* Wed Aug 19 2015 Wim Taymans <wtaymans@redhat.com> - 1.5.90-1
+- Update to 1.5.90
+
+* Thu Jun 25 2015 Wim Taymans <wtaymans@redhat.com> - 1.5.2-1
+- Update to 1.5.2
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Mon Jun 08 2015 Wim Taymans <wtaymans@redhat.com> - 1.5.1-1
+- Update to 1.5.1
+- Drop old patch
+
+* Mon May 04 2015 Kalev Lember <kalevlember@gmail.com> - 1.4.5-5
+- Rebuilt for nettle soname bump
+
+* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1.4.5-4
+- Rebuilt for GCC 5 C++11 ABI change
+
+* Wed Mar 25 2015 Richard Hughes <rhughes@redhat.com> - 1.4.5-3
+- Register as an AppStream component.
+
+* Fri Mar 06 2015 David Woodhouse <dwmw2@infradead.org> - 1.4.5-2
+- Fix RTP/RTCP muxing (#1199578)
+
+* Tue Feb 03 2015 Wim Taymans <wtaymans@redhat.com> - 1.4.5-1
+- Update to 1.4.5
+
+* Tue Nov 25 2014 Rex Dieter <rdieter@fedoraproject.org> 1.4.4-2
+- rebuild (openexr)
+
+* Fri Nov 14 2014 Kalev Lember <kalevlember@gmail.com> - 1.4.4-1
+- Update to 1.4.4
+
+* Fri Nov 14 2014 Tom Callaway <spot@fedoraproject.org> - 1.4.2-3
+- Rebuild for new libsrtp
+
+* Mon Sep 22 2014 Wim Taymans <wtaymans@redhat.com> - 1.4.2-2
+- Remove celt buildreq, the plugin was removed and so is celt-devel
+
+* Mon Sep 22 2014 Wim Taymans <wtaymans@redhat.com> - 1.4.2-1
+- Update to 1.4.2.
+
+* Fri Aug 29 2014 Wim Taymans <wtaymans@redhat.com> - 1.4.1-1
+- Update to 1.4.1.
+
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Tue Jul 22 2014 Wim Taymans <wtaymans@redhat.com> - 1.4.0-1
+- Update to 1.4.0.
+
+* Fri Jul 11 2014 Wim Taymans <wtaymans@redhat.com> - 1.3.91-1
+- Update to 1.3.91.
+- Remove old libraries
+
+* Tue Jun 17 2014 Wim Taymans <wtaymans@redhat.com> - 1.2.4-1
+- Update to 1.2.4.
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.3-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu Mar 20 2014 Hans de Goede <hdegoede@}redhat.com> - 1.2.3-3
+- Put the fluidsynth plugin in its own subpackage and make it require
+ soundfont2-default (rhbz#1078925)
+
+* Wed Mar 19 2014 Peter Robinson <pbrobinson@fedoraproject.org> 1.2.3-2
+- Bump (libass)
+
+* Mon Feb 10 2014 Brian Pepple <bpepple@fedoraproject.org> - 1.2.3-1
+- Update to 1.2.3.
+
+* Thu Feb 6 2014 Brian Pepple <bpepple@fedoraproject.org> - 1.2.2-2
+- Build the srtp plugin. (#1055669)
+
+* Fri Dec 27 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.2.2-1
+- Update to 1.2.2.
+
+* Fri Nov 15 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.2.1-4
+- Build fluidsynth plugin. (#1024906)
+
+* Thu Nov 14 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.2.1-3
+- Add BR on gnutls-devel for HLS support. (#1030491)
+
+* Mon Nov 11 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.2.1-2
+- Build ladspa, libkate, and wildmidi plugins.
+
+* Mon Nov 11 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.2.1-1
+- Update to 1.2.1.
+
+* Fri Nov 8 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.2.0-3
+- Build gobject-introspection support. (#1028156)
+
+* Fri Oct 04 2013 Bastien Nocera <bnocera@redhat.com> 1.2.0-2
+- Build the wayland video output plugin
+
+* Tue Sep 24 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.2.0-1
+- Update to 1.2.0.
+
+* Thu Sep 19 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.1.90-1
+- Update to 1.1.90.
+
+* Wed Aug 28 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.1.4-1
+- Update to 1.1.4.
+
+* Mon Jul 29 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.1.3-1
+- Update to 1.1.3.
+
+* Fri Jul 12 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.1.2-1
+- Update to 1.1.2.
+
+* Tue May 07 2013 Colin Walters <walters@verbum.org> - 1.0.7-2
+- Move libgstdecklink to its correct place in extras; needed for RHEL
+
+* Fri Apr 26 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.0.7-1
+- Update to 1.0.7.
+
+* Sun Mar 24 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.0.6-1
+- Update to 1.0.6.
+- Drop BR on PyXML.
+
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.5-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Tue Jan 8 2013 Brian Pepple <bpepple@fedoraproject.org> - 1.0.5-1
+- Update to 1.0.5
+
+* Wed Dec 19 2012 Brian Pepple <bpepple@fedoraproject.org> - 1.0.4-1
+- Update to 1.0.4
+
+* Wed Nov 21 2012 Brian Pepple <bpepple@fedoraproject.org> - 1.0.3-1
+- Update to 1.0.3
+
+* Thu Oct 25 2012 Brian Pepple <bpepple@fedoraproject.org> - 1.0.2-1
+- Update to 1.0.2
+
+* Sun Oct 7 2012 Brian Pepple <bpepple@fedoraproject.org> - 1.0.1-1
+- Update to 1.0.1
+- Add frei0r plugin to file list.
+
+* Mon Oct 1 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.0.0-3
+- Enable verbose build
+
+* Wed Sep 26 2012 Brian Pepple <bpepple@fedoraproject.org> - 1.0.0-2
+- Build opus plugin.
+
+* Mon Sep 24 2012 Brian Pepple <bpepple@fedoraproject.org> - 1.0.0-1
+- Update to 1.0.0.
+
+* Thu Sep 20 2012 Bastien Nocera <bnocera@redhat.com> 0.11.99-2
+- The soundtouch-devel BR should be on, even with extras disabled
+
+* Wed Sep 19 2012 Brian Pepple <bpepple@fedoraproject.org> - 0.11.99-1
+- Update to 0.11.99
+
+* Fri Sep 14 2012 Brian Pepple <bpepple@fedoraproject.org> - 0.11.94-1
+- Update to 0.11.94.
+
+* Sat Aug 18 2012 Brian Pepple <bpepple@fedoraproject.org> - 0.11.93-2
+- Fix permission on tarball clean-up script.
+- Re-enable soundtouch-devel.
+- Add COPYING.LIB to package.
+- Use %%global instead of %%define.
+
+* Wed Aug 15 2012 Brian Pepple <bpepple@fedoraproject.org> - 0.11.93-1
+- Update to 0.11.93.
+
+* Fri Jul 20 2012 Brian Pepple <bpepple@fedoraproject.org> - 0.11.92-1
+- Initial Fedora spec file.
diff --git a/sources b/sources
new file mode 100644
index 0000000..c8fbead
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+2f6578091de8348af117c90308984592 gst-plugins-bad-free-1.22.1.tar.xz