decklinkvideosink: 'Failed to schedule frame' after ~24 hours
I'm facing a problem with decklinkvideosink that occurs after running fine for pretty much 24 hours (sometimes a few minutes more, sometimes less). The error message is this:
decklinkvideosink gstdecklinkvideosink.cpp:1143:gst_decklink_video_sink_prepare:<out> error: Failed to schedule frame: 0xffffffff80000008
Gstreamer version: 1.16.2
OS: Arch Linux (up-to-date) in a Docker container, host system is Ubuntu 16.04.6 with Linux kernel 4.4.0-170
Decklink card: DeckLink 4K Extreme
Decklink driver: desktopvideo 11.4a14
The pipeline is run via gst-launch, in a Docker container. Note that we've successfully run pipelines with decklinkvideosink using Gstreamer 1.12 for months (non-stop!), so I'm pretty sure Docker is not the cause of the problem. (Our machines with the Decklink cards are located remotely, that's why we cannot simply install Arch and run Gstreamer natively, but have to use Docker.)
The pipeline is this:
gst-launch-1.0 videotestsrc pattern=snow ! capsfilter name=ifmt caps=video/x-raw,framerate=25/1,width=1920,height=1080,format=BGRA,pixel-aspect-ratio=1/1,interlace-mode=progressive ! videoconvert ! decklinkvideosink mode=8
It's a stripped down version of another, longer pipeline that is used in an application of the company I'm working for. Using that original pipeline, the same error occurs, but sometimes it takes two days or more.
We had somewhat similar issues with a few previous Gstreamer versions. We didn't have any problems with 1.12, which we were using for a very long time. Then it was time for an update, so we tried 1.14, got
free() errors (at random points of time, after days or even more than a week), and now 1.16.
The log doesn't really read like there's a segfault or similar, so I've not attempted to obtain a stack trace (which would require creating debug builds of the concerned packages manually as Arch does not provide them).
Full log (GST_DEBUG=4): gst-launch-2020-01-28T15_17_53+00_00.log