Update the ABR algorithm for the native HLS player [chromium/src : main]

0 views
Skip to first unread message

Ted (Chromium) Meyer (Gerrit)

unread,
Nov 12, 2025, 12:20:32 PMNov 12
to Syed AbuTalib, chromium...@chromium.org, feature-me...@chromium.org
Attention needed from Syed AbuTalib

Ted (Chromium) Meyer voted and added 1 comment

Votes added by Ted (Chromium) Meyer

Commit-Queue+1

1 comment

Patchset-level comments
File-level comment, Patchset 1 (Latest):
Ted (Chromium) Meyer . resolved

A spreadsheet of ABR ideas and graphs and what not.

Open in Gerrit

Related details

Attention is currently required from:
  • Syed AbuTalib
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
Gerrit-Change-Number: 7146723
Gerrit-PatchSet: 1
Gerrit-Owner: Ted (Chromium) Meyer <tmath...@chromium.org>
Gerrit-Reviewer: Syed AbuTalib <low...@google.com>
Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
Gerrit-Attention: Syed AbuTalib <low...@google.com>
Gerrit-Comment-Date: Wed, 12 Nov 2025 17:20:22 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Syed AbuTalib (Gerrit)

unread,
Nov 12, 2025, 12:26:10 PMNov 12
to Ted (Chromium) Meyer, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org
Attention needed from Ted (Chromium) Meyer

Syed AbuTalib voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Ted (Chromium) Meyer
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
    Gerrit-Change-Number: 7146723
    Gerrit-PatchSet: 1
    Gerrit-Owner: Ted (Chromium) Meyer <tmath...@chromium.org>
    Gerrit-Reviewer: Syed AbuTalib <low...@google.com>
    Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
    Gerrit-Attention: Ted (Chromium) Meyer <tmath...@chromium.org>
    Gerrit-Comment-Date: Wed, 12 Nov 2025 17:25:58 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Dale Curtis (Gerrit)

    unread,
    Nov 12, 2025, 2:01:17 PMNov 12
    to Ted (Chromium) Meyer, Syed AbuTalib, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org
    Attention needed from Ted (Chromium) Meyer

    Dale Curtis added 7 comments

    Patchset-level comments
    File-level comment, Patchset 2 (Latest):
    Dale Curtis . resolved

    Drive by

    File media/formats/hls/abr_algorithm.h
    Line 42, Patchset 2 (Latest): FixedAbrAlgorithm(uint64_t network_bps);
    Dale Curtis . unresolved

    Please fix this WARNING reported by ClangTidy: check: google-explicit-constructor

    single-argument constructors must be marked ...

    check: google-explicit-constructor

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions (https://clang.llvm.org/extra/clang-tidy/checks/google/explicit-constructor.html)

    (Note: You can add `Skip-Clang-Tidy-Checks: google-explicit-constructor` footer to the CL description to skip the check)

    (Lint observed on `android-clang-tidy-rel`, but not on `linux-clang-tidy-rel`)

    Line 42, Patchset 2 (Latest): FixedAbrAlgorithm(uint64_t network_bps);
    Dale Curtis . unresolved

    Please fix this WARNING reported by ClangTidy: check: google-explicit-constructor

    single-argument constructors must be marked ...

    check: google-explicit-constructor

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions (https://clang.llvm.org/extra/clang-tidy/checks/google/explicit-constructor.html)

    (Note: You can add `Skip-Clang-Tidy-Checks: google-explicit-constructor` footer to the CL description to skip the check)

    (Lint observed on `linux-clang-tidy-rel`, but not on `android-clang-tidy-rel`)

    Line 26, Patchset 2 (Latest):class MEDIA_EXPORT EwmaAbrAlgorithm : public ABRAlgorithm {
    Dale Curtis . unresolved

    Probably you want to use the base:: classes for calculating this?

    Line 14, Patchset 2 (Latest):class MEDIA_EXPORT ABRAlgorithm {
    Dale Curtis . unresolved

    Needs more docs

    File media/formats/hls/abr_algorithm.cc
    Line 14, Patchset 2 (Latest):EwmaAbrAlgorithm::EwmaAbrAlgorithm() {}
    Dale Curtis . unresolved

    Please fix this WARNING reported by ClangTidy: check: modernize-use-equals-default

    use '= default' to define a trivial default...

    check: modernize-use-equals-default

    use '= default' to define a trivial default constructor (https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-equals-default.html)

    (Note: You can add `Skip-Clang-Tidy-Checks: modernize-use-equals-default` footer to the CL description to skip the check)

    (Lint observed on `android-clang-tidy-rel`, but not on `linux-clang-tidy-rel`)

    Line 14, Patchset 2 (Latest):EwmaAbrAlgorithm::EwmaAbrAlgorithm() {}
    Dale Curtis . unresolved

    Please fix this WARNING reported by ClangTidy: check: modernize-use-equals-default

    use '= default' to define a trivial default...

    check: modernize-use-equals-default

    use '= default' to define a trivial default constructor (https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-equals-default.html)

    (Note: You can add `Skip-Clang-Tidy-Checks: modernize-use-equals-default` footer to the CL description to skip the check)

    (Lint observed on `linux-clang-tidy-rel`, but not on `android-clang-tidy-rel`)

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ted (Chromium) Meyer
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
      Gerrit-Change-Number: 7146723
      Gerrit-PatchSet: 2
      Gerrit-Owner: Ted (Chromium) Meyer <tmath...@chromium.org>
      Gerrit-Reviewer: Syed AbuTalib <low...@google.com>
      Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
      Gerrit-CC: Dale Curtis <dalec...@chromium.org>
      Gerrit-Attention: Ted (Chromium) Meyer <tmath...@chromium.org>
      Gerrit-Comment-Date: Wed, 12 Nov 2025 19:01:05 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ted (Chromium) Meyer (Gerrit)

      unread,
      Nov 12, 2025, 3:51:38 PMNov 12
      to Dale Curtis, Syed AbuTalib, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org
      Attention needed from Dale Curtis

      Ted (Chromium) Meyer added 6 comments

      File media/formats/hls/abr_algorithm.h
      Line 42, Patchset 2 (Latest): FixedAbrAlgorithm(uint64_t network_bps);
      Dale Curtis . resolved

      Please fix this WARNING reported by ClangTidy: check: google-explicit-constructor

      single-argument constructors must be marked ...

      check: google-explicit-constructor

      single-argument constructors must be marked explicit to avoid unintentional implicit conversions (https://clang.llvm.org/extra/clang-tidy/checks/google/explicit-constructor.html)

      (Note: You can add `Skip-Clang-Tidy-Checks: google-explicit-constructor` footer to the CL description to skip the check)

      (Lint observed on `android-clang-tidy-rel`, but not on `linux-clang-tidy-rel`)

      Ted (Chromium) Meyer

      Done

      Line 42, Patchset 2 (Latest): FixedAbrAlgorithm(uint64_t network_bps);
      Dale Curtis . resolved

      Please fix this WARNING reported by ClangTidy: check: google-explicit-constructor

      single-argument constructors must be marked ...

      check: google-explicit-constructor

      single-argument constructors must be marked explicit to avoid unintentional implicit conversions (https://clang.llvm.org/extra/clang-tidy/checks/google/explicit-constructor.html)

      (Note: You can add `Skip-Clang-Tidy-Checks: google-explicit-constructor` footer to the CL description to skip the check)

      (Lint observed on `linux-clang-tidy-rel`, but not on `android-clang-tidy-rel`)

      Ted (Chromium) Meyer

      Done

      Line 26, Patchset 2 (Latest):class MEDIA_EXPORT EwmaAbrAlgorithm : public ABRAlgorithm {
      Dale Curtis . resolved

      Probably you want to use the base:: classes for calculating this?

      Ted (Chromium) Meyer

      I'm not sure which bases classes you're referring to. There's a sliding window class in there, but that's not how this one works.

      Line 14, Patchset 2 (Latest):class MEDIA_EXPORT ABRAlgorithm {
      Dale Curtis . resolved

      Needs more docs

      Ted (Chromium) Meyer

      Done

      File media/formats/hls/abr_algorithm.cc
      Line 14, Patchset 2 (Latest):EwmaAbrAlgorithm::EwmaAbrAlgorithm() {}
      Dale Curtis . resolved

      Please fix this WARNING reported by ClangTidy: check: modernize-use-equals-default

      use '= default' to define a trivial default...

      check: modernize-use-equals-default

      use '= default' to define a trivial default constructor (https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-equals-default.html)

      (Note: You can add `Skip-Clang-Tidy-Checks: modernize-use-equals-default` footer to the CL description to skip the check)

      (Lint observed on `linux-clang-tidy-rel`, but not on `android-clang-tidy-rel`)

      Ted (Chromium) Meyer

      Done

      Line 14, Patchset 2 (Latest):EwmaAbrAlgorithm::EwmaAbrAlgorithm() {}
      Dale Curtis . resolved

      Please fix this WARNING reported by ClangTidy: check: modernize-use-equals-default

      use '= default' to define a trivial default...

      check: modernize-use-equals-default

      use '= default' to define a trivial default constructor (https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-equals-default.html)

      (Note: You can add `Skip-Clang-Tidy-Checks: modernize-use-equals-default` footer to the CL description to skip the check)

      (Lint observed on `android-clang-tidy-rel`, but not on `linux-clang-tidy-rel`)

      Ted (Chromium) Meyer

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dale Curtis
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
        Gerrit-Change-Number: 7146723
        Gerrit-PatchSet: 2
        Gerrit-Owner: Ted (Chromium) Meyer <tmath...@chromium.org>
        Gerrit-Reviewer: Syed AbuTalib <low...@google.com>
        Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
        Gerrit-CC: Dale Curtis <dalec...@chromium.org>
        Gerrit-Attention: Dale Curtis <dalec...@chromium.org>
        Gerrit-Comment-Date: Wed, 12 Nov 2025 20:51:26 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Dale Curtis <dalec...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Ted (Chromium) Meyer (Gerrit)

        unread,
        Nov 12, 2025, 3:54:37 PMNov 12
        to Dale Curtis, Syed AbuTalib, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org
        Attention needed from Dale Curtis

        Ted (Chromium) Meyer added 1 comment

        Ted (Chromium) Meyer . resolved

        Oh, and if anyone is interested, here are some weird experiments I did when coming up with numbers for the EWMA: https://docs.google.com/spreadsheets/d/15SQjRVGgzDyx3Uj_ObZ7IRZpXh0VdPgRvsJq1PYcnCM/edit?usp=sharing

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Dale Curtis
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
        Gerrit-Change-Number: 7146723
        Gerrit-PatchSet: 3
        Gerrit-Owner: Ted (Chromium) Meyer <tmath...@chromium.org>
        Gerrit-Reviewer: Syed AbuTalib <low...@google.com>
        Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
        Gerrit-CC: Dale Curtis <dalec...@chromium.org>
        Gerrit-Attention: Dale Curtis <dalec...@chromium.org>
        Gerrit-Comment-Date: Wed, 12 Nov 2025 20:54:27 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Ted (Chromium) Meyer (Gerrit)

        unread,
        Nov 12, 2025, 5:34:54 PMNov 12
        to Dale Curtis, Syed AbuTalib, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org
        Attention needed from Dale Curtis

        Ted (Chromium) Meyer voted Commit-Queue+2

        Commit-Queue+2
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Dale Curtis
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
        Gerrit-Change-Number: 7146723
        Gerrit-PatchSet: 3
        Gerrit-Owner: Ted (Chromium) Meyer <tmath...@chromium.org>
        Gerrit-Reviewer: Syed AbuTalib <low...@google.com>
        Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
        Gerrit-CC: Dale Curtis <dalec...@chromium.org>
        Gerrit-Attention: Dale Curtis <dalec...@chromium.org>
        Gerrit-Comment-Date: Wed, 12 Nov 2025 22:34:42 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Dale Curtis (Gerrit)

        unread,
        Nov 12, 2025, 6:56:04 PMNov 12
        to Ted (Chromium) Meyer, Syed AbuTalib, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org
        Attention needed from Ted (Chromium) Meyer

        Dale Curtis added 1 comment

        File media/formats/hls/abr_algorithm.h
        Line 26, Patchset 2:class MEDIA_EXPORT EwmaAbrAlgorithm : public ABRAlgorithm {
        Dale Curtis . resolved

        Probably you want to use the base:: classes for calculating this?

        Ted (Chromium) Meyer

        I'm not sure which bases classes you're referring to. There's a sliding window class in there, but that's not how this one works.

        Dale Curtis

        Yes, I was referring to https://source.chromium.org/chromium/chromium/src/+/main:base/moving_window.h since that seemed like what you'd want here

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Ted (Chromium) Meyer
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
        Gerrit-Change-Number: 7146723
        Gerrit-PatchSet: 3
        Gerrit-Owner: Ted (Chromium) Meyer <tmath...@chromium.org>
        Gerrit-Reviewer: Syed AbuTalib <low...@google.com>
        Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
        Gerrit-CC: Dale Curtis <dalec...@chromium.org>
        Gerrit-Attention: Ted (Chromium) Meyer <tmath...@chromium.org>
        Gerrit-Comment-Date: Wed, 12 Nov 2025 23:55:51 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Ted (Chromium) Meyer <tmath...@chromium.org>
        Comment-In-Reply-To: Dale Curtis <dalec...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Ted (Chromium) Meyer (Gerrit)

        unread,
        Nov 13, 2025, 3:16:53 PMNov 13
        to Dale Curtis, Syed AbuTalib, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org

        Ted (Chromium) Meyer voted

        Code-Review+1
        Commit-Queue+2
        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • requirement satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
          Gerrit-Change-Number: 7146723
          Gerrit-PatchSet: 3
          Gerrit-Owner: Ted (Chromium) Meyer <tmath...@chromium.org>
          Gerrit-Reviewer: Syed AbuTalib <low...@google.com>
          Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
          Gerrit-CC: Dale Curtis <dalec...@chromium.org>
          Gerrit-Comment-Date: Thu, 13 Nov 2025 20:16:43 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          open
          diffy

          Chromium LUCI CQ (Gerrit)

          unread,
          Nov 13, 2025, 4:08:20 PMNov 13
          to Ted (Chromium) Meyer, Dale Curtis, Syed AbuTalib, chromium...@chromium.org, feature-me...@chromium.org

          Chromium LUCI CQ submitted the change

          Change information

          Commit message:
          Update the ABR algorithm for the native HLS player

          This one is fairly simple - I tried modeling out more complex things but
          couldn't find anything that was both computationly light (IE, no sliding
          windows, sigmoids, standard deviations, etc), and which also did a good
          job at scaling up slowly, down quickly, but avoided thrashing on network
          jitter. This algorithm can at least meet the first two requirements, and
          is very simple.

          The tests all have to be tweaked, because we now start at low bit rates
          and scale up.
          Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
          Commit-Queue: Ted (Chromium) Meyer <tmath...@chromium.org>
          Reviewed-by: Ted (Chromium) Meyer <tmath...@chromium.org>
          Reviewed-by: Syed AbuTalib <low...@google.com>
          Cr-Commit-Position: refs/heads/main@{#1544505}
          Files:
          • M media/filters/hls_manifest_demuxer_engine_unittest.cc
          • M media/formats/BUILD.gn
          • A media/formats/hls/abr_algorithm.cc
          • A media/formats/hls/abr_algorithm.h
          • A media/formats/hls/abr_algorithm_unittest.cc
          • M media/formats/hls/rendition_manager.cc
          • M media/formats/hls/rendition_manager.h
          • M media/formats/hls/rendition_manager_unittest.cc
          Change size: M
          Delta: 8 files changed, 180 insertions(+), 28 deletions(-)
          Branch: refs/heads/main
          Submit Requirements:
          • requirement satisfiedCode-Review: +1 by Syed AbuTalib, +1 by Ted (Chromium) Meyer
          Open in Gerrit
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: merged
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I747e2d84efdfc62fbe6ce71ed61acf97c1c17bac
          Gerrit-Change-Number: 7146723
          Gerrit-PatchSet: 4
          Gerrit-Owner: Ted (Chromium) Meyer <tmath...@chromium.org>
          Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
          Gerrit-Reviewer: Syed AbuTalib <low...@google.com>
          Gerrit-Reviewer: Ted (Chromium) Meyer <tmath...@chromium.org>
          open
          diffy
          satisfied_requirement
          Reply all
          Reply to author
          Forward
          0 new messages