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

livepeer: add a -hevcDecoding flag #3119

Merged
merged 1 commit into from
Aug 8, 2024
Merged

livepeer: add a -hevcDecoding flag #3119

merged 1 commit into from
Aug 8, 2024

Conversation

j0sh
Copy link
Collaborator

@j0sh j0sh commented Aug 6, 2024

Adds a new boolean flag -hevcDecoding to better configure the existing HEVC support.

If the flag is omitted, the default behavior on GPUs is unchanged, which is to auto-detect HEVC decoding support at transcoder start-up.

GPU transcoders can disable HEVC decoding if there is an issue with HEVC jobs via -hevcDecoding=false.

CPU transcoders now have HEVC decoding disabled by default since processing HEVC jobs is CPU-heavy, so operators are not caught off-guard once we start putting HEVC jobs into the network. This is technically a breaking change, and some un-upgraded transcoders may still be surprised anyway.

Note that LPMS already has CPU HEVC decoding compiled into the ffmpeg build, however this is implicitly derived from other compile-time flags. For the sake of explicitness we should add the native HEVC decoder to install_ffmpeg.sh but that can be added later .

What does this pull request do? Explain your changes. (required)

Specific updates (required)

How did you test each of these updates (required)

  • Manual testing with the following flags
    • -transcoder -nvidia all -hevcDecoding=false (correctly removes HEVC decoding from capabilities)
    • -transcoder -nvidia all (HEVC is enabled; no change from today)
    • -transcoder (HEVC is disabled)
    • -transcoder -hevcDecoding (HEVC is enabled)
  • Light unit testing for a new RemoveCapability function

Does this pull request close any open issues?

Checklist:

Base automatically changed from ja/rename-inarray to master August 7, 2024 16:15
Adds a new boolean flag `-hevcDecoding` to better configure the
existing HEVC support.

If the flag is omitted, the default behavior on GPUs is unchanged,
which is to auto-detect HEVC decoding support at transcoder start-up.

GPU transcoders can disable HEVC decoding if there is an issue with
HEVC jobs via `-hevcDecoding=false`.

CPU transcoders now have HEVC decoding disabled by default since
processing HEVC jobs is CPU-heavy, so operators are not caught
off-guard once we start putting HEVC jobs into the network. This is
technically a breaking change, and some un-upgraded transcoders may
still be surprised anyway.
Copy link

codecov bot commented Aug 7, 2024

Codecov Report

Attention: Patch coverage is 22.22222% with 21 lines in your changes missing coverage. Please review.

Project coverage is 57.34000%. Comparing base (825b3e2) to head (bcde0e5).

Files Patch % Lines
cmd/livepeer/starter/starter.go 0.00000% 17 Missing ⚠️
cmd/livepeer/livepeer.go 33.33333% 2 Missing ⚠️
core/capabilities.go 71.42857% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@                 Coverage Diff                 @@
##              master       #3119         +/-   ##
===================================================
- Coverage   57.40917%   57.34000%   -0.06917%     
===================================================
  Files             92          92                 
  Lines          15771       15797         +26     
===================================================
+ Hits            9054        9058          +4     
- Misses          6113        6134         +21     
- Partials         604         605          +1     
Files Coverage Δ
cmd/livepeer/livepeer.go 50.64103% <33.33333%> (-0.33936%) ⬇️
core/capabilities.go 83.39223% <71.42857%> (-0.30342%) ⬇️
cmd/livepeer/starter/starter.go 7.78210% <0.00000%> (-0.12304%) ⬇️

... and 1 file with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 825b3e2...bcde0e5. Read the comment docs.

Files Coverage Δ
cmd/livepeer/livepeer.go 50.64103% <33.33333%> (-0.33936%) ⬇️
core/capabilities.go 83.39223% <71.42857%> (-0.30342%) ⬇️
cmd/livepeer/starter/starter.go 7.78210% <0.00000%> (-0.12304%) ⬇️

... and 1 file with indirect coverage changes

@j0sh j0sh merged commit 448206a into master Aug 8, 2024
18 checks passed
@j0sh j0sh deleted the ja/hevc-decoding-flag branch August 8, 2024 17:49
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