Why delay increases with every bmdOutputFrameDisplayedLate?

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

LukaszLazarecki

  • Posts: 7
  • Joined: Mon Feb 10, 2020 10:28 am
  • Real Name: Lukasz Lazarecki

Why delay increases with every bmdOutputFrameDisplayedLate?

PostThu Jul 07, 2022 12:00 pm

What is the proper way of handling bmdOutputFrameDropped/bmdOutputFrameDisplayedLate?

In my app I have a list of frames ready to be displayed. If after displaying one I get bmdOutputFrameDropped or bmdOutputFrameDisplayedLate result, I drop the next couple of frames (they don't get scheduled, I simply increase an internal scheduled frames counter which I use to compute presentation time for the next scheduled frame) and schedule another (so third) frame. If the result is bmdOutputFrameCompleted I simply schedule more frames as usual, if again it's bmdOutputFrameDropped or bmdOutputFrameDisplayedLate I again drop the next two frames.

First of all, is this correct? Is it how I should handle late/dropped frames?

If it is, there's one thing I don't understand. After dropping a few frames when I receive bmdOutputFrameDropped/bmdOutputFrameDisplayedLate I get the bmdOutputFrameCompleted result for the remaining frames, but when comparing my input to output I can clearly see that the delay is increased (output is delayed more after some late or dropped frames). Is this the expected behavior? It doesn't seem logical - I dropped some frames to "catch up", so there should be no increased delay, but yet it does increase. How do I handle all of this without increasing the initial delay?

Return to Software Developers

Who is online

Users browsing this forum: oniongarlic and 23 guests