frame pacing fix
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user