question about DisplayVideoFrameSync() method

Ask software engineering and SDK questions for developers working on Mac OS X, Windows or Linux.
  • Author
  • Message
Offline

Andres Gonzalez

  • Posts: 23
  • Joined: Tue Apr 21, 2015 2:05 am

question about DisplayVideoFrameSync() method

PostFri Jun 12, 2020 11:13 pm

Hi,

When using IDeckLinkOutput::DisplayVideoFrameSync() method, does the frame rate of the DisplayMode really matter? In other words, if I verify that a particular card/interface supports 1080p50, can I actually call the DisplayVideoFrameSync)() method with 1080p video frames at a rate of perhaps 30fps, or 29.9fps or 25fps, etc? Since this is NOT scheduled play out, and I am in control of when I call DisplayVideoFrameSync() method, it seems that would be possible.

Thanks,
-Andres
Offline

Cameron Nichols

Blackmagic Design

  • Posts: 442
  • Joined: Mon Sep 04, 2017 4:05 am

Re: question about DisplayVideoFrameSync() method

PostMon Jun 15, 2020 5:31 am

Hi Andres,

You still need to specify the display mode when calling IDeckLinkOutput::EnableVideoOutput as it is required for outputting an SDI (or HDMI) signal. As it is not scheduled output, the driver will output previous frame if a call to IDeckLinkOutput::DisplayVideoFrameSync has not occurred when requested.

Regards
Cameron
Offline

Andres Gonzalez

  • Posts: 23
  • Joined: Tue Apr 21, 2015 2:05 am

Re: question about DisplayVideoFrameSync() method

PostMon Jun 15, 2020 11:45 pm

Hey Cameron, thanks for the reply. I have a couple of follow up questions.

The wording of your reply seems to imply that all of the timing is done in the DeckLink driver even when using the DisplayVideoFrameSync() call, correct? So if I call the DisplayVideoFrameSync() method at a rate less than what the actual DisplayMode specified (the mode I used in the EnableVideoOutput() method), then the DeckLink driver will still send that video out at the exact rate specified by that DisplayMode regardless of the slower rate I call DisplayVideoFrameSync() (and the driver simply resends the previous frames if a new one hasn't come in on time). Is that correct?

Also, your response mentioned that the call to EnableVideoOutput() is required for SDI and HDMI specifically. I am assuming that it is also required for the other outputs on the Studio 4K card like Composite video output, right?

And finally, I am assuming that the timing mechanism described in the first paragraph also applies to the other Studio 4K output like Composite (and not just for SDI and HDMI), correct?

Again, thanks for all of your help.
-Andres
Offline

Cameron Nichols

Blackmagic Design

  • Posts: 442
  • Joined: Mon Sep 04, 2017 4:05 am

Re: question about DisplayVideoFrameSync() method

PostTue Jun 16, 2020 5:16 am

Hi Andres,

Clarifying, my response for EnableVideoOutput applies to all video connections (SDI/HDMI/Component/Composite). Regardless of the connection type, the output is a continuous serial stream that can be recovered by a receiver. The DeckLink will output the same frame if no further calls to IDeckLinkOutput::DisplayVideoFrameSync have been made.

As such, IDeckLinkOutput::DisplayVideoFrameSync has no bearing on the frame rate or frame timing of the output stream.

Regards
Cameron

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 14 guests