mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-29 11:40:38 +00:00
00eb9ad62e
Sometimes under certain loads, VT can error out with kVTVideoEncoderMalfunctionErr or kVTVideoEncoderNotAvailableNowErr. These have been reported to happen more often than usual if CopyProperty/SetProperty() is used close to the encode call. Both can be worked around by restarting the encoding session. These errors can be returned either directly from VTCompressionSessionEncodeFrame() or later in the encoding callback. This patch handles both scenarios the same way - a session restart is be attempted on the next encode_frame() call. If the error is returned immediately by the encode call, it's possible that some correct frames will still be given to the output callback, but for simplicity (+ because I wasn't able to verify this scenario) let's just discard those. In addition, this commit also simplifies the beach/drop logic in enqueue_buffer. Related bug reports in other projects: http://www.openradar.me/45889262 https://github.com/aws/amazon-chime-sdk-ios/issues/170#issuecomment-741908622 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7173> |
||
---|---|---|
.. | ||
avfassetsrc.h | ||
avfassetsrc.m | ||
avfdeviceprovider.h | ||
avfdeviceprovider.m | ||
avfvideosrc.h | ||
avfvideosrc.m | ||
avsamplevideosink.h | ||
avsamplevideosink.m | ||
coremediabuffer.c | ||
coremediabuffer.h | ||
corevideobuffer.c | ||
corevideobuffer.h | ||
corevideomemory.c | ||
corevideomemory.h | ||
glcontexthelper.c | ||
glcontexthelper.h | ||
helpers.c | ||
helpers.h | ||
iosassetsrc.h | ||
iosassetsrc.m | ||
iosglmemory.c | ||
iosglmemory.h | ||
iosurfaceglmemory.c | ||
iosurfaceglmemory.h | ||
iosurfacevulkanmemory.c | ||
iosurfacevulkanmemory.h | ||
meson.build | ||
metal-helpers.h | ||
plugin.m | ||
videotexturecache-gl.h | ||
videotexturecache-gl.m | ||
videotexturecache-vulkan.h | ||
videotexturecache-vulkan.mm | ||
videotexturecache.h | ||
videotexturecache.m | ||
vtdec.c | ||
vtdec.h | ||
vtenc.c | ||
vtenc.h | ||
vtutil.c | ||
vtutil.h |