Skip to content

Add some timings clarifications based on NAB learnings.#544

Open
vt-tv wants to merge 3 commits into
mainfrom
user/vt-tv/509-nab-learnings
Open

Add some timings clarifications based on NAB learnings.#544
vt-tv wants to merge 3 commits into
mainfrom
user/vt-tv/509-nab-learnings

Conversation

@vt-tv

@vt-tv vt-tv commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Details

Add some clarifications related to timing based on NAB learnings.

Backport requirements

yes

@vt-tv vt-tv requested a review from felixpou June 4, 2026 12:17
@vt-tv vt-tv self-assigned this Jun 4, 2026
@vt-tv vt-tv added the backport/v1.0 This PR should be back ported to the release branch of version 1.0. label Jun 4, 2026
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Test Results

73 tests  ±0   73 ✅ ±0   11s ⏱️ ±0s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 894c5c3. ± Comparison against base commit 27f896c.

@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Test Results

73 tests  ±0   73 ✅ ±0   11s ⏱️ ±0s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 2491516. ± Comparison against base commit c8d8e26.

♻️ This comment has been updated with latest results.

@vt-tv vt-tv linked an issue Jun 4, 2026 that may be closed by this pull request
@vt-tv vt-tv moved this to In progress in MXL TSC Board Jun 4, 2026
Signed-off-by: Vincent Trussart <vincent.trussart@grassvalley.com>
@vt-tv vt-tv force-pushed the user/vt-tv/509-nab-learnings branch from 894c5c3 to 5a812fb Compare June 4, 2026 13:09
@vt-tv vt-tv moved this from In progress to In review in MXL TSC Board Jun 4, 2026
@vt-tv vt-tv requested a review from a team June 5, 2026 12:26
Comment thread docs/Timing.md

Grains are organized as ring buffers. The grain count is a function of the flow grain_rate and desired history length. For example if a flow grain_rate is 50/1, each grain will be worth 20'000'000 ns (1/50 \* 1'000'000) of data. A ring buffer with 100ms of history will have 5 grains (5 \* 20ms/grain = 100ms). Time starts at the SMPTE 2059-1 epoch and is expressed a nanoseconds since that epoch.

Ring buffer indices encode timing information — **the ring buffer cannot be treated as a simple queue of grains.** A writer media function must carefully compute the grain index at which it writes based on the frequency domain of the incoming grains. If the writer cannot guarantee that the external source shares a common frequency domain with the MXL host, it must implement a re-synchronization strategy (grain drop, grain repeat, dynamic audio resampling, etc.) to maintain alignment with the host's timing.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Ring buffer indices encode timing information — **the ring buffer cannot be treated as a simple queue of grains.** A writer media function must carefully compute the grain index at which it writes based on the frequency domain of the incoming grains. If the writer cannot guarantee that the external source shares a common frequency domain with the MXL host, it must implement a re-synchronization strategy (grain drop, grain repeat, dynamic audio resampling, etc.) to maintain alignment with the host's timing.
Ring buffer indices encode timing information — **the ring buffer cannot be treated as a simple queue of grains.** A writer media function must carefully compute the grain index at which it writes based on the frequency domain of the incoming grains. If the writer cannot guarantee that the external source shares a common clock frequency with the MXL host, it must implement a re-synchronization strategy (grain drop, grain repeat, dynamic audio resampling, etc.) to maintain alignment with the host's timing.

Nitpick on wording.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The terminology is chosen to be similar to what is used in the DMF Sync workgroup (common frequency domains)

Comment thread docs/Timing.md Outdated
vt-tv and others added 2 commits June 7, 2026 15:01
Signed-off-by: Vincent Trussart <vincent.trussart@grassvalley.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport/v1.0 This PR should be back ported to the release branch of version 1.0.

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

[TSC] Document the learnings from the NAB Interops

2 participants