From 380d2fc2558f0f172c8decac6715d1d062e9b5d7 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Thu, 30 May 2024 14:27:36 +0200 Subject: [PATCH] gstreamer1.0-omx: remove the .bbappend oe-core upgrade 1.22.11 -> 1.24.3: https://github.com/openembedded/openembedded-core/commit/9c21815339afb85f558d8a1e0365614320cdc7d7 be aware that this also dropped gstreamer1.0-omx recipe as upstream has removed it: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4976 and similarly for libomxil: https://github.com/openembedded/openembedded-core/commit/63535ce55141e7d4184a1f19efc3f49946f506ae So now meta-raspberrypi doesn't parse again due to this .bbappend Remove it to unblock parsing, but there will be other improvements or cleanups needed later (preferrably by someone who was using that I'm just seeing parsing failure in world builds). e.g.: conf/machine/include/rpi-default-providers.inc:PREFERRED_PROVIDER_virtual/libomxil ?= "userland" conf/machine/include/rpi-default-providers.inc:VIRTUAL-RUNTIME_libomxil = "userland" dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb: file://3003-codec-omxil_core-replace-opt-vc-path-with-usr-lib.patch \ dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb: file://3006-codec-omxil_core.h-fix-multiple-definition-of.patch \ dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb:PACKAGECONFIG[mmal] = "--enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal --enable-mmal-avcodec,,userland" recipes-graphics/userland/userland_git.bb:PROVIDES += "virtual/libomxil" recipes-multimedia/omxplayer/omxplayer_git.bb:DEPENDS = "alsa-lib libpcre virtual/egl boost freetype dbus openssl libssh virtual/libomxil coreutils-native curl-native userland" Signed-off-by: Martin Jansa --- ...uire-buffer-when-src-pad-isn-t-activ.patch | 50 ------------------- .../0003-no-timeout-on-get-state.patch | 26 ---------- ...handle-drain-requests-while-flushing.patch | 32 ------------ ...omx_video_dec_set_format-if-there-s-.patch | 36 ------------- .../gstreamer/gstreamer1.0-omx_%.bbappend | 12 ----- 5 files changed, 156 deletions(-) delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-omx/0003-no-timeout-on-get-state.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-omx/0004-Properly-handle-drain-requests-while-flushing.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-omx/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch delete mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch deleted file mode 100644 index 5e206e5..0000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 160181edf5fc73288abfe99fa04de4a550cd9c65 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 11 Feb 2016 12:53:20 -0800 -Subject: [PATCH] Don't try to acquire buffer when src pad isn't active - -From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= - -This solves a race condition when setting the pipeline from PAUSE to -NULL while the decoder loop is still running. Without this patch, the -thread which interacts with the decode sink pad gets blocked here: - - gst_element_change_state() - gst_element_change_state_func() - gst_element_pads_activate() --> Deactivating pads - activate_pads() - gst_pad_set_active() - gst_pad_activate_mode() - post_activate() - GST_PAD_STREAM_LOCK() - -while gst_omx_port_acquire_buffer() gets stalled forever in -gst_omx_component_wait_message() waiting for a message that will never -arrive: - - gst_omx_video_dec_loop() - gst_omx_port_acquire_buffer() - gst_omx_component_wait_message() - ---- -Upstream-Status: Pending - - omx/gstomxvideodec.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c -index abe6e30..c4dc33f 100644 ---- a/omx/gstomxvideodec.c -+++ b/omx/gstomxvideodec.c -@@ -1598,6 +1598,11 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self) - GstOMXAcquireBufferReturn acq_return; - OMX_ERRORTYPE err; - -+ if (!gst_pad_is_active(GST_VIDEO_DECODER_SRC_PAD (self))) { -+ GST_DEBUG_OBJECT (self, "Src pad not active, not acquiring buffer and flushing instead"); -+ goto flushing; -+ } -+ - #if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL) - port = self->eglimage ? self->egl_out_port : self->dec_out_port; - #else diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx/0003-no-timeout-on-get-state.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx/0003-no-timeout-on-get-state.patch deleted file mode 100644 index db443e6..0000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-omx/0003-no-timeout-on-get-state.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 21f776bff596bc0bd09708efa6497f8bdcd065c0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 13 Feb 2016 11:42:29 -0800 - ---- -Upstream-Status: Pending - - omx/gstomxvideodec.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c -index c4dc33f..ba5304f 100644 ---- a/omx/gstomxvideodec.c -+++ b/omx/gstomxvideodec.c -@@ -2021,9 +2021,9 @@ gst_omx_video_dec_stop (GstVideoDecoder * decoder) - g_cond_broadcast (&self->drain_cond); - g_mutex_unlock (&self->drain_lock); - -- gst_omx_component_get_state (self->dec, 5 * GST_SECOND); -+ gst_omx_component_get_state (self->dec, 0); - #if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL) -- gst_omx_component_get_state (self->egl_render, 1 * GST_SECOND); -+ gst_omx_component_get_state (self->egl_render, 0); - #endif - - gst_buffer_replace (&self->codec_data, NULL); diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx/0004-Properly-handle-drain-requests-while-flushing.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx/0004-Properly-handle-drain-requests-while-flushing.patch deleted file mode 100644 index c0ef99d..0000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-omx/0004-Properly-handle-drain-requests-while-flushing.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 140bf8548843a98b0af2ddc1765ab59c16c8994c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= -Date: Tue, 17 Nov 2015 16:51:27 +0000 -Subject: [PATCH] Properly handle drain requests while flushing - -Without this commit the decoder streaming thread stops without ever attending -the drain request, leaving the decoder input thread waiting forever. - ---- -Upstream-Status: Pending - - omx/gstomx.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/omx/gstomx.c b/omx/gstomx.c -index 038ce32..5202d33 100644 ---- a/omx/gstomx.c -+++ b/omx/gstomx.c -@@ -1011,6 +1011,13 @@ gst_omx_component_new (GstObject * parent, const gchar * core_name, - - g_mutex_lock (&comp->lock); - gst_omx_component_handle_messages (comp); -+ -+ if (err != OMX_ErrorNone && comp->last_error == OMX_ErrorNone) { -+ GST_ERROR_OBJECT (comp->parent, -+ "Last operation returned an error. Setting last_error manually."); -+ comp->last_error = err; -+ } -+ - g_mutex_unlock (&comp->lock); - - return comp; diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch deleted file mode 100644 index 9914bb8..0000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-omx/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch +++ /dev/null @@ -1,36 +0,0 @@ -From cf6cf2060c5a7a7ddc0396a0c20c234fc56c79b6 Mon Sep 17 00:00:00 2001 -From: Andrei Gherzan -Date: Tue, 28 May 2019 18:02:24 +0100 -Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a - timeout releasing the buffers taken by the egl_render out port - -From 0d2ad639e6158c8023c157e206ef3ff7abdc089c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= - -Date: Fri, 4 Dec 2015 18:39:59 +0100 -Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a -timeout releasing the buffers taken by the egl_render out port - -Upstream-Status: Pending -Signed-off-by: Andrei Gherzan ---- - omx/gstomxvideodec.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c -index ba5304f..8bd5d3d 100644 ---- a/omx/gstomxvideodec.c -+++ b/omx/gstomxvideodec.c -@@ -2229,7 +2229,9 @@ gst_omx_video_dec_disable (GstOMXVideoDec * self) - return FALSE; - if (gst_omx_port_wait_buffers_released (out_port, - 1 * GST_SECOND) != OMX_ErrorNone) -+#if !(defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL)) - return FALSE; -+#endif - if (!gst_omx_video_dec_deallocate_output_buffers (self)) - return FALSE; - if (gst_omx_port_wait_enabled (out_port, 1 * GST_SECOND) != OMX_ErrorNone) --- -2.17.1 - diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend deleted file mode 100644 index 5e0b457..0000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend +++ /dev/null @@ -1,12 +0,0 @@ -FILESEXTRAPATHS:prepend:rpi := "${THISDIR}/${PN}:" - -SRC_URI:append:rpi = " \ - file://0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch \ - file://0003-no-timeout-on-get-state.patch \ - file://0004-Properly-handle-drain-requests-while-flushing.patch \ - file://0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch \ -" - -GSTREAMER_1_0_OMX_TARGET:rpi = "rpi" -GSTREAMER_1_0_OMX_CORE_NAME:rpi = "${libdir}/libopenmaxil.so" -EXTRA_OEMESON:append:rpi = " -Dheader_path=${STAGING_DIR_TARGET}/usr/include/IL"