Bug 1952339 - Vendor libwebrtc from 231ece13b7

Upstream commit: https://webrtc.googlesource.com/src/+/231ece13b7338e18146c2a6ab3191e93a2801a0c
    Delete code that thinks H265 should have same QP as H264.

    The QualityScalingExperiment class is used for two things:
    1. Parsing a field trial that is not used in Chrome anymore but kept
       around for backwards compat with other dependencies.
    2. Provide default QP thresholds for VP8, VP9 and H264 in cases where
       the encoder implementation is not providing their own QP thresholds
       (which otherwise overrides these defaults).

    The H264 thresholds were used as a placeholder for H265 not having any
    QP thresholds of its own. Now manual QP/PSNR measurements, backed by
    codec theory, has proven that H265 needs its own set of QP thresholds
    separate from H264, so we delete this code path.

    Any H265 encoder will now be forced to set `scaling_settings`, which is
    already the case for other codecs that were added after the QP
    experiment was sunset, namely AV1. (If it fails to do so, QP scaling is
    disabled which would be a bug, see for example chromium:399587133.)

    In Chrome, H265 sets its own QP thresholds as of this CL landing:
    https://chromium-review.googlesource.com/c/chromium/src/+/6308082

    Bug: chromium:391907171
    Change-Id: I8ef2cd50f80bdf6019966ab07770a59b6e383d35
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/379401
    Commit-Queue: Henrik Boström <hbos@webrtc.org>
    Reviewed-by: Erik Språng <sprang@webrtc.org>
    Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#44024}

Differential Revision: https://phabricator.services.mozilla.com/D244035
This commit is contained in:
Michael Froman
2025-03-07 18:16:27 -06:00
parent 93fc1f0568
commit 108009c984
2 changed files with 2 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
# ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc
libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-03-08T00:14:58.501589+00:00.
libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-03-08T00:16:16.404369+00:00.
# base of lastest vendoring
d8d041046e
231ece13b7

View File

@@ -84,8 +84,6 @@ QualityScalingExperiment::GetQpThresholds(VideoCodecType codec_type,
return GetThresholds(settings->vp8_low, settings->vp8_high, kMaxVp8Qp);
case kVideoCodecVP9:
return GetThresholds(settings->vp9_low, settings->vp9_high, kMaxVp9Qp);
case kVideoCodecH265:
// TODO(bugs.webrtc.org/13485): Use H264 QP thresholds for now.
case kVideoCodecH264:
return GetThresholds(settings->h264_low, settings->h264_high, kMaxH264Qp);
case kVideoCodecGeneric: