Skip to content

Measure native frame stages and Qt presentation progress - #965

Merged
capy-ai[bot] merged 4 commits into
devfrom
capy/measure-native-frame-progress
Sep 16, 2026
Merged

capy-ai[bot] merged 4 commits into
devfrom
capy/measure-native-frame-progress

Conversation

@zortos293

@zortos293 zortos293 commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

Changes

Record bounded frame-stage measurements from transport assembly through decoder admission and the local RTC control queue. Publish assembly stamps before delivery to the media consumer, and account for backpressured frames separately.

Measure Linux decoder calls and submission-to-output residence without treating timing samples as liveness. Keep cumulative progress counters, bounded timestamp correlation, explicit decoder epochs, and outstanding work visible even when the first submission never produces output.

Measure Qt submission-to-swap timing on the existing presentation owner. Suppress samples while presentation is gated, retire stale pending work on lifecycle transitions, and show unavailable measurements honestly in stream statistics. This PR supplies instrumentation; watchdog recovery policy remains a separate dependent change.

ACK measurements end at the observed control-queue boundary. They do not claim SCTP or UDP wire egress, server acknowledgement, or end-to-end latency.

Verification

Independent checks passed:

  • cargo fmt --manifest-path native/opennow-streamer/Cargo.toml --all -- --check
  • Locked workspace Clippy with all targets and warnings denied.
  • Full streamer workspace tests after the decoder-only telemetry correction: 669 passed, zero failed, nine ignored.
  • npm run locales:check
  • Full Qt build and focused timing tests. The decoder-only telemetry follow-up independently passed 94 core tests and 12 Qt consumer tests after rebuilding.
  • All 338 Qt tests, verified across 311 passes before a cancelled operation and a successful rerun of the remaining 27 tests.
  • Fresh captures from the built Qt application in compact, expanded, degraded, scaled, toast, and gated states.

Regressions cover admission before the producer returns, backpressure accounting, first-submission stalls, epoch resets, unmatched or out-of-order outputs, bounded sample windows, and presentation gating.

UI evidence

Expanded stream statistics

Unavailable presentation timing while gated

Limits

No live GeForce NOW session was available. The captures use explicit acceptance fixtures. Tests establish local measurement boundaries and lifecycle behavior, not physical display latency or live streaming performance.

Open in Capy

@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: d6ffc220-cf1e-4b56-8d8f-736f3eca07dd

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@capy-ai capy-ai Bot left a comment

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.

Capy found no issues.

View 2 other findings in Capy.

Open in Capy

@capy-ai

capy-ai Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Resolved the actual integration conflict with a normal merge of dev in 3114e9da. The embedded monitor retains both last_decode_timings_report and reported_color, preserving timing telemetry and color-format reporting. The feature diff remains scoped to this PR.

Independent bundled-FFmpeg workspace verification passed 726 tests with 15 ignored, strict locked Clippy covering that feature set, and formatting. The worker also rebuilt Qt and passed the full 338-test suite plus the focused 16-test timing/runtime subset. Fresh cross-platform PR CI is running; no history rewrite or direct push to dev was used.

@capy-ai
capy-ai Bot merged commit e89fd91 into dev Sep 16, 2026
14 checks passed
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.

1 participant