Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix VP9 kSVC forwarding logic to not forward lower unneded layers #778

Merged
merged 2 commits into from
Mar 1, 2022

Conversation

ggarber
Copy link
Contributor

@ggarber ggarber commented Feb 28, 2022

Description:

When using VP9 in kSVC model (current supported mode in WebRTC) the higher spatial layers are independent of the lower spatial layers and need to be filtered. Otherwise we are consuming much more bandwidth tan needed (30%?).

image
https://www.w3.org/TR/webrtc-svc/

To detect if it is a keyframe packet that needs to be forwarded even if it is a lower spatial layer this change checks the P bit in the VP9 header that distinguishes frames that are encoded independently of other frames (key frames).

Test Plan:
Ran producer and consumer locally and changed MaxOutgoingBitrate of the consumer to allocate different bitrates and check the video can always be decoded by the consumer.

worker/src/RTC/Codecs/VP9.cpp Outdated Show resolved Hide resolved
@ibc
Copy link
Member

ibc commented Feb 28, 2022

Will merge later today

@ibc ibc merged commit 1a75147 into versatica:v3 Mar 1, 2022
@ibc
Copy link
Member

ibc commented Mar 1, 2022

Release in 3.9.8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants