diff --git a/Tools/buildstream/elements/freedesktop-sdk.bst b/Tools/buildstream/elements/freedesktop-sdk.bst index 9575800aa1ee..24645bbf71c9 100644 --- a/Tools/buildstream/elements/freedesktop-sdk.bst +++ b/Tools/buildstream/elements/freedesktop-sdk.bst @@ -7,13 +7,11 @@ sources: - kind: patch path: patches/fdo-0004-gst-plugins-ugly-Enable-x264-encoder.patch - kind: patch - path: patches/fdo-0005-GStreamer-Bump-to-1.22.6.patch + path: patches/fdo-0005-GStreamer-Bump-to-1.22.7.patch - kind: patch path: patches/fdo-0006-gst-plugins-bad-Enable-soundtouch.patch - kind: patch path: patches/fdo-0009-gst-plugins-bad-Enable-x265-encoder.patch -- kind: patch - path: patches/fdo-0010-gstreamer-Vendor-inter-patches-scheduled-for-1.22.7.patch config: options: target_arch: '%{arch}' diff --git a/Tools/buildstream/patches/fdo-0005-GStreamer-Bump-to-1.22.6.patch b/Tools/buildstream/patches/fdo-0005-GStreamer-Bump-to-1.22.6.patch deleted file mode 100644 index 467477d030e0..000000000000 --- a/Tools/buildstream/patches/fdo-0005-GStreamer-Bump-to-1.22.6.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 09e0e6fa0234dd2d0f7020bcb1b02727a5a7f693 Mon Sep 17 00:00:00 2001 -From: Philippe Normand -Date: Sun, 8 Oct 2023 13:22:26 +0100 -Subject: [PATCH 2/2] GStreamer: Bump to 1.22.6 - ---- - elements/components/gstreamer-plugins-good.bst | 1 + - elements/include/gstreamer-source.yml | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/elements/components/gstreamer-plugins-good.bst b/elements/components/gstreamer-plugins-good.bst -index cea2a324..5d5224a7 100644 ---- a/elements/components/gstreamer-plugins-good.bst -+++ b/elements/components/gstreamer-plugins-good.bst -@@ -45,6 +45,7 @@ variables: - -Dtwolame=disabled - -Dexamples=disabled - -Drpicamsrc=disabled -+ -Dqt6=disabled - - public: - cpe: -diff --git a/elements/include/gstreamer-source.yml b/elements/include/gstreamer-source.yml -index f36b91ea..3b02415c 100644 ---- a/elements/include/gstreamer-source.yml -+++ b/elements/include/gstreamer-source.yml -@@ -2,6 +2,6 @@ sources: - - kind: git_repo - url: freedesktop:gstreamer/gstreamer.git - track: 1.*[02468].* -- ref: 1.22.5-0-gbf6ce1d64a0697e7910826147b48f8f658366a5a -+ ref: 1.22.6-0-gddb4fbe43149b157efb52b6472313f48308c1dbc - - kind: patch_queue - path: patches/gstreamer --- -2.41.0 - diff --git a/Tools/buildstream/patches/fdo-0005-GStreamer-Bump-to-1.22.7.patch b/Tools/buildstream/patches/fdo-0005-GStreamer-Bump-to-1.22.7.patch new file mode 100644 index 000000000000..d0540386cc1f --- /dev/null +++ b/Tools/buildstream/patches/fdo-0005-GStreamer-Bump-to-1.22.7.patch @@ -0,0 +1,80 @@ +From 4d1f7f3d481476ce5a7ffc4980cc94536fee6588 Mon Sep 17 00:00:00 2001 +From: Philippe Normand +Date: Wed, 15 Nov 2023 09:08:00 +0000 +Subject: [PATCH] GStreamer: Bump to 1.22.7 + +--- + elements/components/gstreamer-plugins-good.bst | 1 + + elements/include/gstreamer-source.yml | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + .../gstreamer/graceful-error-noopenh264.patch | 35 ------------------- + delete mode 100644 patches/gstreamer/graceful-error-noopenh264.patch + +diff --git a/elements/components/gstreamer-plugins-good.bst b/elements/components/gstreamer-plugins-good.bst +index cea2a324..5d5224a7 100644 +--- a/elements/components/gstreamer-plugins-good.bst ++++ b/elements/components/gstreamer-plugins-good.bst +@@ -45,6 +45,7 @@ variables: + -Dtwolame=disabled + -Dexamples=disabled + -Drpicamsrc=disabled ++ -Dqt6=disabled + + public: + cpe: +diff --git a/elements/include/gstreamer-source.yml b/elements/include/gstreamer-source.yml +index f36b91e..a5050cc 100644 +--- a/elements/include/gstreamer-source.yml ++++ b/elements/include/gstreamer-source.yml +@@ -2,6 +2,6 @@ sources: + - kind: git_repo + url: freedesktop:gstreamer/gstreamer.git + track: 1.*[02468].* +- ref: 1.22.5-0-gbf6ce1d64a0697e7910826147b48f8f658366a5a ++ ref: 1.22.7-0-g4d13eddc8b6d3f42ba44682ba42048acf170547f + - kind: patch_queue + path: patches/gstreamer +diff --git a/patches/gstreamer/graceful-error-noopenh264.patch b/patches/gstreamer/graceful-error-noopenh264.patch +deleted file mode 100644 +index 8fbe833..0000000 +--- a/patches/gstreamer/graceful-error-noopenh264.patch ++++ /dev/null +@@ -1,35 +0,0 @@ +-diff --git a/subprojects/gst-plugins-bad/ext/openh264/gstopenh264dec.cpp b/subprojects/gst-plugins-bad/ext/openh264/gstopenh264dec.cpp +-index e42dc093b7..06e92c15f4 100644 +---- a/subprojects/gst-plugins-bad/ext/openh264/gstopenh264dec.cpp +-+++ b/subprojects/gst-plugins-bad/ext/openh264/gstopenh264dec.cpp +-@@ -162,7 +162,11 @@ gst_openh264dec_start (GstVideoDecoder * decoder) +- WelsDestroyDecoder (openh264dec->decoder); +- openh264dec->decoder = NULL; +- } +-- WelsCreateDecoder (&(openh264dec->decoder)); +-+ +-+ if (WelsCreateDecoder (&(openh264dec->decoder)) != 0) { +-+ GST_DEBUG_OBJECT (openh264dec, "openh264dec_start, cannot create decoder"); +-+ return 0; +-+ } +- +- #ifndef GST_DISABLE_GST_DEBUG +- { +-diff --git a/subprojects/gst-plugins-bad/ext/openh264/gstopenh264enc.cpp b/subprojects/gst-plugins-bad/ext/openh264/gstopenh264enc.cpp +-index 30af8e2677..b51d6e7fed 100644 +---- a/subprojects/gst-plugins-bad/ext/openh264/gstopenh264enc.cpp +-+++ b/subprojects/gst-plugins-bad/ext/openh264/gstopenh264enc.cpp +-@@ -761,7 +761,12 @@ gst_openh264enc_set_format (GstVideoEncoder * encoder, +- WelsDestroySVCEncoder (openh264enc->encoder); +- openh264enc->encoder = NULL; +- } +-- WelsCreateSVCEncoder (&openh264enc->encoder); +-+ +-+ if (WelsCreateSVCEncoder (&openh264enc->encoder) != 0) { +-+ GST_ERROR_OBJECT (openh264enc, "openh264enc_set_format, cannot create encoder"); +-+ return 0; +-+ } +-+ +- unsigned int uiTraceLevel = WELS_LOG_ERROR; +- openh264enc->encoder->SetOption (ENCODER_OPTION_TRACE_LEVEL, &uiTraceLevel); +- +-- +2.41.0 + diff --git a/Tools/buildstream/patches/fdo-0010-gstreamer-Vendor-inter-patches-scheduled-for-1.22.7.patch b/Tools/buildstream/patches/fdo-0010-gstreamer-Vendor-inter-patches-scheduled-for-1.22.7.patch deleted file mode 100644 index c9ad5a7f4f5d..000000000000 --- a/Tools/buildstream/patches/fdo-0010-gstreamer-Vendor-inter-patches-scheduled-for-1.22.7.patch +++ /dev/null @@ -1,148 +0,0 @@ -From ac8c87f75dbb0631bff374d227988f0c146480fe Mon Sep 17 00:00:00 2001 -From: Philippe Normand -Date: Sat, 30 Sep 2023 15:52:44 +0100 -Subject: [PATCH] gstreamer: Vendor inter patches scheduled for 1.22.7 - ---- - patches/gstreamer/interaudio-sink-meta.patch | 87 ++++++++++++++++++++ - patches/gstreamer/interaudio-src-meta.patch | 34 ++++++++ - 2 files changed, 121 insertions(+) - create mode 100644 patches/gstreamer/interaudio-sink-meta.patch - create mode 100644 patches/gstreamer/interaudio-src-meta.patch - -diff --git a/patches/gstreamer/interaudio-sink-meta.patch b/patches/gstreamer/interaudio-sink-meta.patch -new file mode 100644 -index 000000000..ca983d30e ---- /dev/null -+++ b/patches/gstreamer/interaudio-sink-meta.patch -@@ -0,0 +1,87 @@ -+From 4311de2be0d66132555388570c15d5de6c2a47f3 Mon Sep 17 00:00:00 2001 -+From: Philippe Normand -+Date: Wed, 27 Sep 2023 12:33:39 +0200 -+Subject: [PATCH 2/2] interaudiosink: Ensure adapters don't store buffers with -+ audio meta -+ -+The interaudiosrc might take buffers of different sizes from the audio adapter, -+so keeping metas consistency would be an issue. So the sink now strips the audio -+metas away and the src adds them back (for non-interleaved layouts only) when -+taking buffers from the adapter. -+ -+Part-of: -+--- -+ .../testsuites/validate.testslist | 1 + -+ .../validate/inter/audio-planar.validatetest | 4 ++++ -+ .../gst/inter/gstinteraudiosink.c | 19 +++++++++++++++---- -+ 3 files changed, 20 insertions(+), 4 deletions(-) -+ create mode 100644 subprojects/gst-integration-testsuites/testsuites/validate/inter/audio-planar.validatetest -+ -+diff --git a/subprojects/gst-integration-testsuites/testsuites/validate.testslist b/subprojects/gst-integration-testsuites/testsuites/validate.testslist -+index c5e5438029..02f22cca5c 100644 -+--- a/subprojects/gst-integration-testsuites/testsuites/validate.testslist -++++ b/subprojects/gst-integration-testsuites/testsuites/validate.testslist -+@@ -936,6 +936,7 @@ validate.test.h264.parse.trickmode_predicted.seek_trickmode_predicted -+ validate.test.h264.x264enc_youtube_bitrate.fullhd_lowframerate -+ validate.test.h265parse.alternate -+ validate.test.h265parse.trickmode_predicted.seek_trickmode_predicted -++validate.test.inter.audio-planar -+ validate.test.interlace.interlace_deinterlace -+ validate.test.interlace.interlace_deinterlace_alternate -+ validate.test.matroska.demux_flush_within_cluster.default -+diff --git a/subprojects/gst-integration-testsuites/testsuites/validate/inter/audio-planar.validatetest b/subprojects/gst-integration-testsuites/testsuites/validate/inter/audio-planar.validatetest -+new file mode 100644 -+index 0000000000..42e2c48eb6 -+--- /dev/null -++++ b/subprojects/gst-integration-testsuites/testsuites/validate/inter/audio-planar.validatetest -+@@ -0,0 +1,4 @@ -++meta, -++ args = { -++ "audiotestsrc num-buffers=10 ! audio/x-raw,format=S16LE,channels=2,layout=non-interleaved ! interaudiosink interaudiosrc num-buffers=10 ! audioconvert ! audio/x-raw,layout=interleaved,format=S16LE,channels=2 ! queue ! fakeaudiosink", -++ } -+diff --git a/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosink.c b/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosink.c -+index a33fe8194f..6c654e889e 100644 -+--- a/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosink.c -++++ b/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosink.c -+@@ -293,6 +293,7 @@ gst_inter_audio_sink_render (GstBaseSink * sink, GstBuffer * buffer) -+ guint n, bpf; -+ guint64 period_time, buffer_time; -+ guint64 period_samples, buffer_samples; -++ GstBuffer *tmp; -+ -+ GST_DEBUG_OBJECT (interaudiosink, "render %" G_GSIZE_FORMAT, -+ gst_buffer_get_size (buffer)); -+@@ -330,16 +331,26 @@ gst_inter_audio_sink_render (GstBaseSink * sink, GstBuffer * buffer) -+ -+ n = gst_adapter_available (interaudiosink->input_adapter); -+ if (period_samples * bpf > gst_buffer_get_size (buffer) + n) { -+- gst_adapter_push (interaudiosink->input_adapter, gst_buffer_ref (buffer)); -++ GstAudioMeta *audio_meta = NULL; -++ -++ tmp = gst_buffer_copy_deep (buffer); -++ audio_meta = gst_buffer_get_audio_meta (tmp); -++ if (audio_meta != NULL) -++ gst_buffer_remove_meta (tmp, GST_META_CAST (audio_meta)); -++ -++ gst_adapter_push (interaudiosink->input_adapter, tmp); -+ } else { -+- GstBuffer *tmp; -++ GstAudioMeta *audio_meta = NULL; -+ -+ if (n > 0) { -+ tmp = gst_adapter_take_buffer (interaudiosink->input_adapter, n); -+ gst_adapter_push (interaudiosink->surface->audio_adapter, tmp); -+ } -+- gst_adapter_push (interaudiosink->surface->audio_adapter, -+- gst_buffer_ref (buffer)); -++ tmp = gst_buffer_copy_deep (buffer); -++ audio_meta = gst_buffer_get_audio_meta (tmp); -++ if (audio_meta != NULL) -++ gst_buffer_remove_meta (tmp, GST_META_CAST (audio_meta)); -++ gst_adapter_push (interaudiosink->surface->audio_adapter, tmp); -+ } -+ g_mutex_unlock (&interaudiosink->surface->mutex); -+ -+-- -+2.41.0 -+ -diff --git a/patches/gstreamer/interaudio-src-meta.patch b/patches/gstreamer/interaudio-src-meta.patch -new file mode 100644 -index 000000000..515c37bf4 ---- /dev/null -+++ b/patches/gstreamer/interaudio-src-meta.patch -@@ -0,0 +1,34 @@ -+From acd4202bc0ceb26a3066e7e2c494f890dadf48af Mon Sep 17 00:00:00 2001 -+From: Philippe Normand -+Date: Wed, 13 Sep 2023 15:11:32 +0100 -+Subject: [PATCH 1/2] interaudiosrc: Add audio meta to buffers containing -+ non-interleaved samples -+ -+Without this a downstream audioconverter wouldn't be able to map the -+GstAudioBuffer prior to conversion. -+ -+Part-of: -+--- -+ subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c | 6 ++++++ -+ 1 file changed, 6 insertions(+) -+ -+diff --git a/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c b/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c -+index f516a585fb..ef2b7fc4c1 100644 -+--- a/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c -++++ b/subprojects/gst-plugins-bad/gst/inter/gstinteraudiosrc.c -+@@ -412,6 +412,12 @@ gst_inter_audio_src_create (GstBaseSrc * src, guint64 offset, guint size, -+ } -+ n = period_samples; -+ -++ /* audioconvert expects an audio meta for planar layout audio inputs. */ -++ if (GST_AUDIO_INFO_LAYOUT (&interaudiosrc->info) == -++ GST_AUDIO_LAYOUT_NON_INTERLEAVED) { -++ gst_buffer_add_audio_meta (buffer, &interaudiosrc->info, n, NULL); -++ } -++ -+ GST_BUFFER_OFFSET (buffer) = interaudiosrc->n_samples; -+ GST_BUFFER_OFFSET_END (buffer) = interaudiosrc->n_samples + n; -+ GST_BUFFER_DTS (buffer) = GST_CLOCK_TIME_NONE; -+-- -+2.41.0 -+ --- -2.41.0 -