Skip to content

synchronous frame forwarding #19

@dexterlb

Description

@dexterlb

Currently, the FrameForwarder works on a "hand over frames asap" basis, dropping any frames that aren't requested in time. This is great for streaming because it has extremely low latency. However, the user might want to use some sinks for recording - in these cases, they may want to be able to request a "synchronous forwarding" mode that buffers up to NumAllocatedFrames frames and sends them over in a queued manner instead.

Here's one idea of how this would work:

  • GetFrameForReading should:
    • pop the frame queue (blocking)
  • FinishedReading should:
    • push to the recycle bin
  • GetFrameForWriting should:
    • try getting a frame from the recycle bin
    • if no frame was available return nil and allow the caller to framedrop
      • log a framedrop
    • unmark the frame for recycling and return it
  • FinishedWriting should:
    • push to the frame queue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions