gstreamer/subprojects/gst-plugins-bad/sys
Piotr Brzeziński dc494d9edb vtenc: Move output loop to a separate thread
vtenc has an async output queue, which we only iterate over after another frame is enqueued.
At the very least it means we're always a frame behind the fastest possible output.
In edge cases it's also bug-prone - for example if we only have 1 frame, the downstream caps negotiation
will never happen.

This commit adds a separate task running on the source pad, which only iterates over the output queue
and pushes frames out as soon as they're put there. The queue length is limited to ensure we don't encode
too far ahead compared to what downstream can consume. Any failures that occur when pushing data downstream
will be signalled in self->downstream_ret so that other parts of code can act accordingly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4967>
2023-07-21 13:05:26 +00:00
..
amfcodec amfav1enc: Workaround driver bug with bt601 color matrix 2023-06-16 10:10:33 +00:00
androidmedia gst-plugins-bad: re-indent with GNU indent 2.2.12 2023-03-17 03:18:54 +00:00
applemedia vtenc: Move output loop to a separate thread 2023-07-21 13:05:26 +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 meson: d3d11: Add d3d11-wgc option for Windows Graphics Capture feature 2023-07-06 21:20:50 +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 dwritesubtitlemux: Update object name 2023-06-30 23:41:36 +09: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 msdkenc: Apply update functions when setting property 2023-06-25 02:03:28 +00:00
nvcodec cudadownload: Always download CUDA memory if it's bound to decoder 2023-06-08 22:27:06 +00: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 v4l2codecs: Add AV1 decoder 2023-06-16 01:30:40 +00:00
va va: Only change video format in gst_va_video_info_from_dma_info() 2023-06-26 16:18:23 +00:00
wasapi wasapi: fix "device" property description 2023-05-17 04:50:04 +00:00
wasapi2 wasapi2: fix "device" property description 2023-05-17 04:50:04 +00:00
wic bad: Update indent 2023-02-28 10:12:31 +00:00
win32ipc win32ipc: Use gst_util_get_timestamp() 2023-06-08 01:02:45 +00: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 dwrite: Add DirectWrite text rendering plugin 2023-06-15 12:53:02 +00:00