Skip to content

libobs: Add OBS_OUTPUT_NO_INTERLEAVE capability flag - #3

Open
ghbogarin wants to merge 1 commit into
masterfrom
feature/output-no-interleave
Open

libobs: Add OBS_OUTPUT_NO_INTERLEAVE capability flag#3
ghbogarin wants to merge 1 commit into
masterfrom
feature/output-no-interleave

Conversation

@ghbogarin

@ghbogarin ghbogarin commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Description

Add OBS_OUTPUT_NO_INTERLEAVE flag that outputs can set to bypass the packet interleaver. Packets are then delivered as soon as each encoder produces them, instead of being held until a packet of the opposing type establishes a monotonic muxed order. The flag only applies when both video and audio are present, so existing outputs are unaffected.

An output setting the flag has to handle two things: video is no longer gated on the first keyframe, so the first video packet may be a delta frame, and packets arrive per encoder with no cross-type ordering or timestamp offset
normalisation.

Motivation and Context

The interleaver buffers packets to guarantee monotonic timestamps for container formats. Transports that carry each elementary stream independently and synchronise from media timestamps at the receiver don't need that, and the
buffering only adds latency.

There is currently no way for such an output to opt out, since the choice is made purely from whether video and audio are both present.


This change is Reviewable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants