Device diagnostics research

Why a Browser Frame Count Is Not a Camera Hardware Rate

Counting delivered frames is a browser-side observation, not a direct sensor measurement. The repository definition set records a media path and four mechanisms that can separate delivered frames from hardware output. These are derived mechanism definitions, not four camera benchmark results.

What this guide helps you decide

What mechanisms in the repository's derived device-definition set can make a browser delivery count differ from a camera's hardware output?

This research explains mechanisms encoded in a derived definition set. It does not report measured results for a named camera, estimate how often any mechanism occurs, diagnose a driver, or claim a specific browser version's throttling policy.

Try it on the anchor product: BeanNest Tools /device/, BeanNest Tools /sound-test/.

The definition set starts with the browser delivery path

The recorded path is getUserMedia to MediaStreamTrack and then to a video element or ImageCapture. A page observes what reaches that path; it does not read a sensor counter directly.

Duplication can make delivery count exceed fresh-image count

The definition set includes an example in which a 15 fps sensor requested at 30 fps can deliver fresh images at 15 while duplicating frames to 30 deliveries. The example defines a mechanism; it is not a measurement from a named camera.

Requested constraints are not the negotiated result

The definitions record that a driver can adjust requested constraints and that the page should read track.getSettings() for the negotiated value. Reporting only the requested number describes the request rather than the stream setting returned after negotiation.

Hidden-tab throttling can change a timer-based observation

The definition set records that hidden tabs throttle timers and requestAnimationFrame. A test that relies on those callbacks can therefore observe the throttled scheduling path instead of treating the callback count as a direct camera-rate measurement.

Adaptive rate changes are conditional, not universal

The definition set says some drivers may drop rate under low light or thermal load. It does not measure how many drivers do so, which devices do so, or how large the change will be.

One delivered-frame count cannot identify the mechanism

Duplication, negotiated constraints, throttled callbacks, and adaptive delivery affect different parts of the path. A single count by itself does not say which mechanism contributed, so the method and returned settings belong with the result.

The supportable claim is a delivery measurement

The definition set's honest claim is that a track delivered N frames in T seconds at the negotiated settings. A defensible report can also state the sampling method and visibility state. The same evidence does not support calling that number the camera hardware frame rate.

First-party evidence and provenance

How we checked this

We derived the mechanism set from documented protocol limits, Web platform scheduling behaviour, and the electrical model of a keyboard matrix, then encoded each constant with its reason in a generator script in this repository. The definitions file is regenerated by running that script. For this guide we traced the recorded media-capture path and described only the four mechanisms encoded in the derived definition set. We do not present the definitions as camera measurements or infer how frequently the mechanisms occur.

Method
We derived the mechanism set from documented protocol limits, Web platform scheduling behaviour, and the electrical model of a keyboard matrix, then encoded each constant with its reason in a generator script in this repository. The definitions file is regenerated by running that script.
Environment
Node.js on a desktop workstation. The evidence is a definition set with recorded reasons, not a hardware measurement on a specific device.
Captured
Reviewed by
BeanNest Studio

Repository evidence artifacts:

  • tools/research-evidence/device/definitions-2026-09-20.json
  • tools/research-evidence/device/README.md