Issue with decklinksrc - Precaution for any live src element

David Röthlisberger david at rothlis.net
Fri Jul 5 10:20:12 PDT 2013


On 3 Jul 2013, at 18:26, Baby Octopus wrote:
> I'm using decklinksrc element to capture video from an SDI camera and
> streaming it over the network after encoding
> 
> 1. The pipeline hangs whenever h264enc fails to run realtime(for above
> 720p). How should a source skip frames if the encoder can't run realtime?

I solve that with a leaky queue before the encoder. However I'm not sure
this is necessary with decklinksrc -- at least I see it print messages
like this:

    Warning: Could not read from resource.: Dropped 1 frame(s), for a
    total of 3 frame(s)

This is with the Blackmagic Intensity Pro capture card (decklinksrc and
the decklink drivers support a variety of Blackmagic models).

Note also that I'm using GStreamer 0.10, not 1.0.

> I see ocassionally a
> particular frame still having part of older frame. This older frame is
> always 60frames behind the current frame. I see src writing into the buffer
> when h264enc is reading it. I see some buffer lock missing or release not
> happening properly

I have seen suspiciously similar behaviour, where the decklink driver
seemed to be writing over memory that it shouldn't be writing to.
See [1] for details. My problem went away when I upgraded the Blackmagic
drivers from 9.7 to 9.7.3, but I'm not 100% sure if the new driver fixed
a bug, or if it simply changed some timing such that a race condition is
still there but is no longer triggered. The Blackmagic driver 9.7.3
release notes only say "General performance and stability improvements".

[1] https://github.com/drothlis/decklinksrc-stress-tests



More information about the gstreamer-devel mailing list