Skip to content

End-to-end testing for video streams#937

Open
ladvoc wants to merge 5 commits intomainfrom
jacobgelman/clt-2627-end-to-end-test-for-video
Open

End-to-end testing for video streams#937
ladvoc wants to merge 5 commits intomainfrom
jacobgelman/clt-2627-end-to-end-test-for-video

Conversation

@ladvoc
Copy link
Contributor

@ladvoc ladvoc commented Mar 10, 2026

Adds end-to-end tests to verify that video streaming works properly, parameterized by codec, resolution, and whether simulcast is enabled.

Methodology

Frames are published with a known, uniform luminance value across the frame, which the subscriber verifies within a certain margin of error. The subscriber also verifies the received frame’s aspect ratio (not exact resolution as it may be smaller due to simulcast). If no frames are received (for example, due to an encoder or decoder not being created in libwebrtc), the test will timeout and fail.

Note: there are probably more robust ways to verify that received frames are correct, but I opted for this method for simplicity. Open to any suggestion here.

Limitations

Currently, only VP8 and VP9 are tested in CI, since I could not get hardware encoding/decoding to work properly in the GitHub Actions runners. In the future, we may consider using self-hosted runners to ensure these paths are covered by automated testing as well.

Other Changes

Updates the CI configuration to build tests for aarch64 on macos-latest. Previously, tests were built for x86_64 even though this runner is ARM-based, which required Rosetta 2 emulation and slowed down test execution.

ladvoc added 2 commits March 10, 2026 12:22
Parametrize for simulcast

Higher resolution to get 3 simulcast layers

Use higher tolerance

Increase test timeout

Clean up

Revert timeout increase

Clean up

Check simulcasted property

Format

Add HEVC to test matrix

Increase timeout

Lower resource requirements

GitHub Actions runners struggle with the old settings

Receive single frame
@ladvoc ladvoc force-pushed the jacobgelman/clt-2627-end-to-end-test-for-video branch from 28bff25 to bba6778 Compare March 10, 2026 19:52
@ladvoc ladvoc marked this pull request as ready for review March 10, 2026 23:17
Copy link
Contributor

@xianshijing-lk xianshijing-lk left a comment

Choose a reason for hiding this comment

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

lgtm

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