gstreamer/subprojects/gst-plugins-bad/sys/applemedia
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
..
atdec.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
atdec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
avfassetsrc.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
avfassetsrc.m avfassetsrc: fix unused-but-set warning 2022-03-28 10:30:23 +00:00
avfdeviceprovider.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
avfdeviceprovider.m avfdeviceprovider: do not leak the properties 2022-10-26 10:29:25 +00:00
avfvideosrc.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
avfvideosrc.m avfvideosrc: GL texture cache also supports YUY2 on macOS 2023-03-14 00:00:24 +00:00
avsamplevideosink.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
avsamplevideosink.m avsamplevideosink: remove unused variable 2022-03-28 10:30:23 +00:00
coremediabuffer.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
coremediabuffer.h applemedia: Add ProRes support to vtenc and vtdec 2021-11-01 09:24:52 +00:00
corevideobuffer.c applemedia/corevideobuffer: remove unused variable 2022-03-28 10:30:23 +00:00
corevideobuffer.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
corevideomemory.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
corevideomemory.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
glcontexthelper.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
glcontexthelper.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
helpers.c applemedia: fix missing definition 2023-04-24 17:05:03 +00:00
helpers.h applemedia: Consolidate GstVideoFormat <-> CVPixelFormat conversion 2023-03-14 23:35:16 +00:00
iosassetsrc.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
iosassetsrc.m docs: Add objc and objcpp files to hotdoc gst_c_sources 2022-02-01 05:25:42 +05:30
iosglmemory.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
iosglmemory.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
iosurfaceglmemory.c applemedia/iosgl: remove unused variable 2022-03-28 10:30:23 +00:00
iosurfaceglmemory.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
iosurfacevulkanmemory.c vulkan: use gst_vulkan_format_get_aspect() 2023-05-19 04:26:29 +00:00
iosurfacevulkanmemory.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
meson.build vtenc: apply DTS offset to ensure DTS <= PTS 2023-06-19 08:37:54 +00:00
metal-helpers.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
plugin.m docs: Rename "OS X" to "macOS" in some documentation 2022-01-30 19:17:18 +05:30
videotexturecache-gl.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
videotexturecache-gl.m Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
videotexturecache-vulkan.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
videotexturecache-vulkan.mm Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
videotexturecache.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
videotexturecache.m applemeida/texturecache: remove unused variable 2022-03-28 10:30:23 +00:00
vtdec.c applemedia: Consolidate GstVideoFormat <-> CVPixelFormat conversion 2023-03-14 23:35:16 +00:00
vtdec.h vtenc: apply DTS offset to ensure DTS <= PTS 2023-06-19 08:37:54 +00:00
vtenc.c vtenc: Move output loop to a separate thread 2023-07-21 13:05:26 +00:00
vtenc.h vtenc: Move output loop to a separate thread 2023-07-21 13:05:26 +00:00
vtutil.c applemedia: Disable 64RGBALE support on older macOS 2022-02-01 16:57:04 +00:00
vtutil.h applemedia: Consolidate GstVideoFormat <-> CVPixelFormat conversion 2023-03-14 23:35:16 +00:00