-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
feat(vaapi): add option to enable strict enforcement of frame size #3332
Conversation
4c42086
to
adeb1c2
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3332 +/- ##
==========================================
- Coverage 11.18% 11.06% -0.13%
==========================================
Files 99 99
Lines 17184 17231 +47
Branches 8008 8034 +26
==========================================
- Hits 1922 1906 -16
+ Misses 12719 12641 -78
- Partials 2543 2684 +141
Flags with carried forward coverage won't be shown. Click here to find out more.
|
src_assets/common/assets/web/configs/tabs/encoders/VAAPIEncoder.vue
Outdated
Show resolved
Hide resolved
This comment was marked as outdated.
This comment was marked as outdated.
2e17538
to
8465fa6
Compare
d48bbb8
to
2dd5027
Compare
It turns out that not even all encoders support VBR mode. The same low-power modes that provide great performance also only support CQP rate control on hardware prior to Alder Lake (and intel-media-driver with the HuC firmware). I had to plumb a bunch of functions to allow us to pre-determine which rate control is supported before requesting it, otherwise FFmpeg would treat lack of support for our RC mode as a fatal error. On the bright side, this allowed me to get rid of the blind probing we did for |
c32d30f
to
c9c6095
Compare
I was able to confirm the CQP limitation for the low-power H.264 entrypoint on my Skylake test system. Looking further, VAAPI is actually the only encoder that requires a fallback to CQP rate control. Since we now know ahead of time whether we'll need to use CQP on VAAPI, we can remove the QP fallback logic in the encoder probing code and just set QP if neeeded in the |
c9c6095
to
61362c1
Compare
Quality Gate failedFailed conditions See analysis details on SonarCloud Catch issues before they fail your Quality Gate with our IDE extension SonarLint |
Description
This PR introduces a configuration option for AMD GPUs using the VAAPI encoder to strictly enforce frame bitrate limits (rc_buffer_size) to balance the concerns of video quality (#2864) and frame bitrate excursions (#2788). Intel GPUs appear fine with VBR mode, so this option can be ignored for them.
This PR sets the default to the v0.23.1 (and pre-#2821) behavior which is to not enforce a strict RC buffer size. Even though this isn't ideal for packet loss reasons, the immediate symptom of large frames exceeding the FEC maximum in #2788 was resolved separately by #2803 anyway.
Screenshot
Issues Fixed or Closed
Fixes #2864
Type of Change
.github/...
)Checklist