frame pacing fix

This commit is contained in:
Dmitry Sergeev
2026-09-02 00:39:30 +03:00
parent da5ff8ea4a
commit b8cb750fb4
5 changed files with 118 additions and 1 deletions
+13
View File
@@ -57,6 +57,19 @@ func (b *VideoBridge) Next(
}
}
// TryNext returns a frame only when a producer is already waiting. It never
// blocks the caller, allowing UI/render loops to run independently of video
// frame cadence. A returned frame has the same completion requirements as
// one returned by Next.
func (b *VideoBridge) TryNext() (*PendingVideoFrame, bool) {
select {
case pending := <-b.requests:
return pending, true
default:
return nil, false
}
}
func (f *PendingVideoFrame) Complete(err error) {
f.completeOnce.Do(func() {
f.result <- err