gstreamer/subprojects/gst-plugins-bad/sys
Piotr Brzeziński 9cbe9a52fe vtenc: Fix deadlock after GST_FLOW_ERROR is received on frame push
This was easy to trigger when testing with e.g. vtenc ! vtdec ! glimagesink and closing the sink via window button,
causing GST_FLOW_ERROR to be received by the output loop, stopping it with the queue still full. This made the
enqueue_buffer() callback to lock waiting for space in our queue, while handle_frame() was waiting for the internal
VideoToolbox queue to free up, so that VTCompressionSessionEncodeFrame could finish. As the output loop was not
running, both functions waited forever.

Fixed by 1) immediately emptying our queue when GST_FLOW_ERROR is received (like we already did with _FLUSHING)
and 2) unconditionally setting the flushing flag in finish_encoding() when it sees the output loop stopped because
of GST_FLOW_ERROR, so that enqueue_buffer() will immediately discard any new frames coming out of VideoToolbox.
Both of those make sure we never run into the both-queues-full scenario.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5303>
2023-09-20 13:10:02 +00:00
..
amfcodec amfav1enc: Workaround driver bug with bt601 color matrix 2023-06-16 10:10:33 +00:00
androidmedia androidmedia/enc: handle codec-data before popping GstVideoCodecFrames 2023-09-15 17:47:17 +03:00
applemedia vtenc: Fix deadlock after GST_FLOW_ERROR is received on frame push 2023-09-20 13:10:02 +00:00
asio meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
bluez avdtputil: Use int instead of int range for fixed bitpool values 2023-05-17 03:13:54 +00:00
d3d11 d3d11vp9dec: Fix critical warning 2023-09-19 13:09:57 +00:00
d3d12 d3d12decoder: Add support for D3D11 interop 2023-09-20 10:34:54 +00:00
d3dvideosink d3dvideosink: Fix navigation event leak 2023-06-15 05:09:46 +00:00
decklink decklink: Implement Windows string conversion with common API between MinGW and MSVC 2023-06-06 06:21:46 +00:00
directshow sys: avoid double definition of symbol MEDIASUBTYPE_I420 2023-03-23 00:56:04 +00:00
directsound meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
dvb doc: Fix newline char between authors 2023-05-20 05:48:23 +00:00
dwrite dwrite: Add plugin docs 2023-08-30 15:45:12 +00:00
fbdev meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
ipcpipeline meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
kms kmssink: Add ST STM32 LTDC auto-detection 2023-06-14 22:35:27 +00:00
magicleap meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
mediafoundation mfvideoenc: Allow only even resolution numbers 2023-05-04 18:06:45 +00:00
msdk msdk: meson: don't warn deprecated symbols 2023-09-18 09:30:33 +00:00
nvcodec nvdecoder: Copy output frame if needed 2023-09-17 00:15:47 +09:00
opensles meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
qsv qsv: Remove x86_64 constraint on Linux 2023-07-14 13:12:29 +00:00
shm shm: drop use of GSlice allocator 2023-02-03 17:48:10 +00:00
tinyalsa meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
uvcgadget uvcsink: add probe handling for live pipelines 2023-06-01 19:19:05 +00:00
uvch264 meson: Add a wrap file for libgudev 2023-04-19 22:47:19 +00:00
v4l2codecs av1decoder: Port to GstCodecPicture struct 2023-09-08 11:51:23 +00:00
va av1decoder: Port to GstCodecPicture struct 2023-09-08 11:51:23 +00:00
wasapi wasapi: Don't redefine GUIDs when building under newer MinGW 2023-08-09 14:47:57 +00:00
wasapi2 wasapi2: Use C++ atomic instead of GLib 2023-08-14 14:20:45 +00:00
wic bad: Update indent 2023-02-28 10:12:31 +00:00
win32ipc win32ipc: Fix pipe handle leak 2023-08-23 18:33:04 +09:00
winks doc: Fix newline char between authors 2023-05-20 05:48:23 +00:00
winscreencap winscreencap: Warn for deprecated plugin use 2022-12-08 17:48:11 +00:00
meson.build d3d12: Add H.264 decoder 2023-09-17 18:53:24 +09:00