Dropped frames during synchronized playback

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

Flo Loferer

  • Posts: 5
  • Joined: Mon May 16, 2016 6:25 pm

Dropped frames during synchronized playback

PostWed Jan 13, 2021 11:16 am

Some of our customers have been reporting image "flashes" occurring sometimes during playback.
So far I wasn't able to reproduce this myself using a DeckLink Duo in a cheesegrater Mac Pro and a Thunderbolt Shuttle.

I purchased an UltraStudio 4K Mini now and I'm finally able to reproduce the issue.
I'm now trying to narrow it down and I'm seeing that whenever there's a "flash frame" (really just one frame from somewhere earlier in the timeline, apparently something the BM devices has in its internal buffers still) the Blackmagic device is also reporting a dropped frame.

Looking at the timing I can see that the ScheduledFrameCompleted callback is called every ~ 33 milliseconds (I'm using a 29.97 fps output frame rate so that's perfect) but when the frame is dropped the call back is called already about ~ 17 milliseconds after the last successful ScheduledFrameCompleted call. Just mentioning this in case this is somehow relevant.

I really don't know how to troubleshoot this further and I'm hoping someone can help.
ScheduleVideoFrame does not return an error when scheduling the frames.

Does anyone have a pointer of what this could be related to?

Thanks and best regards,

Flo
Offline

Flo Loferer

  • Posts: 5
  • Joined: Mon May 16, 2016 6:25 pm

Re: Dropped frames during synchronized playback

PostMon Jan 18, 2021 8:50 am

It would really be helpful to get a pointer.
Anyone from Blackmagic who can chime in here?

Thanks!
Offline

Flo Loferer

  • Posts: 5
  • Joined: Mon May 16, 2016 6:25 pm

Re: Dropped frames during synchronized playback

PostFri Jan 29, 2021 9:39 pm

Bump
Offline

Cameron Nichols

Blackmagic Design

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

Re: Dropped frames during synchronized playback

PostFri Feb 05, 2021 5:42 am

Hi Flo,

Inside the IDeckLinkVideoOutputCallback::ScheduledFrameCompleted callback, are you tracking the completion result - BMDOutputFrameCompletionResult? If so, on the flash frame are you seeing that the scheduled frame has a dropped completion result (bmdOutputFrameDropped)?

If you are seeing a dropped frame, I suspect that the call to IDeckLinkOutput::ScheduleVideoFrame has a stream time that has already passed and the next video frame is ready to go at the requested stream time. As a result the frame is never played out and is dropped. This may explain why you are seeing the time between ScheduledFrameCompleted callbacks is less.

You should check that your preroll is sufficient for the application and that the scheduled video frame buffer count is maintained by routinely checking IDeckLinkOutput::GetBufferedVideoFrameCount.

Regards
Cameron

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 10 guests