diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2021-03-06 00:21:55 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2021-03-15 14:02:06 +0300 |
commit | 3e34fba3f6b8389074f64203299fa60ec0fc18e1 (patch) | |
tree | c863d9d0adf9b551157b9d09c3870bc961038886 /meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch | |
parent | 46c2791f2c65f72b001533f3029228b85629aa1b (diff) | |
download | openbmc-3e34fba3f6b8389074f64203299fa60ec0fc18e1.tar.xz |
meta-raspberrypi: subtree update:f5fe02c30c..853ccd7440
Chris Laplante (8):
python3-adafruit-blinka: add recipe
python3-adafruit-circuitpython-busdevice: add recipe
python3-adafruit-circuitpython-motor: add recipe
python3-adafruit-circuitpython-motorkit: add recipe
python3-adafruit-circuitpython-pca9685: add recipe
python3-adafruit-circuitpython-register: add recipe
python3-adafruit-platformdetect: add recipe
python3-adafruit-pureio: add recipe
Jose Quaresma (3):
gstreamer1.0-omx: drop custom cflags
gstreamer1.0-omx: consolidate the append usage and only use one
gstreamer1.0-omx: drop config-files-path.patch
Khem Raj (2):
python3-adafruit-blinka: Make rpi-gpio dependency conditional
python3-adafruit-blinka: Delete microcontroller/bcm283x for non arm32 machines
Martin Jansa (2):
sdcard_image-rpi.bbclass: increase default boot partition size from 40MiB to 48MiB
sdcard_image-rpi.bbclass: shorten the default BOOTDD_VOLUME_ID
Mike Looijmans (1):
overlays: Add "vc4-kms-dsi-7inch.dtbo"
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: If81a2227cc45daf24cd0b2466651658bb1b71eb0
Diffstat (limited to 'meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch')
-rw-r--r-- | meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch new file mode 100644 index 000000000..c8af7da0e --- /dev/null +++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch @@ -0,0 +1,48 @@ +From 160181edf5fc73288abfe99fa04de4a550cd9c65 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +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?= <eocanha@igalia.com> + +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() + +--- + 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 |