• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Eyevinn / moqlivemock / 25983785534
52%
main: 53%

Build:
Build:
LAST BUILD BRANCH: release/v0.9.0
DEFAULT BRANCH: main
Ran 17 May 2026 06:44AM UTC
Jobs 1
Files 26
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 May 2026 06:41AM UTC coverage: 51.966% (-1.1%) from 53.104%
25983785534

Pull #85

github

tobbee
fix(audio): regenerate 10s loops with uniform MP4 sample durations

Regenerate the 10s loop audio sources so every sample has the same
duration, and emit orig.Dur from GenCMAFChunk so the publisher no longer
over-claims one audio frame's duration at every loop wrap. The old
sources had a short trailing sample at the end of the loop; combined
with the publisher emitting a uniform t.SampleDur per sample, that
produced a sub-frame of timing slop once per ~10s iteration. Whether
this is enough to fully tame Safari's latency creep is still unclear,
but the source content is now drift-free by construction.

- assets/test10s/audio_*.mp4: AAC 469x1024, Opus 500x960, AC-3 313x1536,
  all with uniform per-sample durations, no elst, baseMediaDecodeTime
  starting at 0. The codec-specific cycle period averages exactly 10s
  wall-clock (AAC 4-loop/40s, Opus 1-loop/10s, AC-3 2-loop/20s), so the
  publisher's existing snap-logic in CalcSample produces a drift-free
  [469,469,469,468]-style pattern at nr=1875 = exactly 40s.

- utils/contentgen/trimaudio: new post-processor that strips encoder
  priming (whole-frame counts only — partial-frame priming like Opus 120
  and AC-3 256 is left to play out as a one-shot warmup, acceptable for a
  live stream), drops the trailing short sample, trims to the codec's
  target frame count, removes the elst, and re-anchors tfdts at 0.

- gen_audio_{monotonic,scale}.sh: bump -t 10.1 -> 10.5 so there are enough
  uniform frames to trim past the target count.

- internal/asset.go: GenCMAFChunk now emits orig.Dur instead of
  t.SampleDur. For our uniform sources this is a no-op, but it removes
  the silent mis-emission trap if a non-uniform source ever slips back
  in.

- internal/asset_test.go: TestAACLoopWrap verifies (BMDT, origNr) at 12
  key indices including the 4 wrap points (469/938/1407/1875) and
  asserts the drift-free invariant 1875 * 1024 == 40 * TimeScale.
  TestAACGroupBounds verifies 1-s MoQ-group ranges for groups 0..... (continued)
Pull Request #85: fix(audio): regenerate 10s loops with uniform MP4 sample durations

7 of 153 new or added lines in 2 files covered. (4.58%)

27 existing lines in 4 files now uncovered.

3277 of 6306 relevant lines covered (51.97%)

1197.6 hits per line

Uncovered Changes

Lines Coverage ∆ File
146
0.0
utils/contentgen/trimaudio/main.go

Coverage Regressions

Lines Coverage ∆ File
18
76.27
-2.01% internal/asset.go
4
43.48
1.74% internal/sub/sub.go
3
26.94
3.37% internal/pub/pub.go
2
72.05
-0.67% internal/locmaf_delta.go
Jobs
ID Job ID Ran Files Coverage
1 25983785534.1 17 May 2026 06:44AM UTC 26
51.97
GitHub Action Run
Source Files on build 25983785534
  • Tree
  • List 26
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #85
  • PR Base - main (#25959781686)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc