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

Add codec panel and support for user-defined AVC/HEVC levels #3985

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

MichaelRUSF
Copy link
Contributor

@MichaelRUSF MichaelRUSF commented Sep 11, 2024

This pull request introduces a new panel for advanced codec settings and updates the ExoPlayerProfile, PlaybackController, and UserPreferences to support user-defined AVC and HEVC codec levels. This enhancement allows users to bypass automatic codec profile levels and customize settings to their preference.

Changes

  1. Added PlaybackAdvancedCodecPreferencesScreen:

    • Introduced a new preferences screen for configuring AVC and HEVC codec levels and audio settings.
      • AVC Codec Levels: Users can select from predefined levels, with a default auto option.
      • HEVC Codec Levels: Users can select from predefined levels, with a default auto option.
      • Audio Settings: Moved the option to enable AC3 bitstream audio from PlaybackAdvancedPreferencesScreen to improve organization and clarity of codec-related settings.
  2. Updated ExoPlayerProfile:

    • Enhanced to incorporate user-defined AVC and HEVC codec levels.
      • New Parameters:
        • userAVCLevel: String? = "auto"
        • userHEVCLevel: String? = "auto"
      • Codec Profiles Adjustment:
        • AVC Codec Profiles: Uses default profiles or user-defined level based on userAVCLevel.
        • HEVC Codec Profiles: Uses default profiles or user-defined level based on userHEVCLevel.
        • Added conditions to handle and apply user-defined AVC and HEVC levels in the ExoPlayerProfile.
  3. Modified PlaybackController:

    • Updated to pass user-defined AVC and HEVC codec levels to the ExoPlayerProfile.

Issues

@MichaelRUSF MichaelRUSF force-pushed the codec-panel branch 2 times, most recently from a7944e0 to e8268d7 Compare September 11, 2024 16:52
@jellyfin-bot jellyfin-bot added the merge conflict Conflicts prevent merging label Oct 4, 2024
@revelation1
Copy link

Hoping for a merge here. Would like to use my shield pro again with native player.

@jellyfin-bot jellyfin-bot removed the merge conflict Conflicts prevent merging label Jan 21, 2025
Copy link

@nwg5817 nwg5817 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the code, and it looks solid overall. I built and tested it on the NVidia Shield Pro with the latest master branch, and everything worked as expected. The implementation is well-done. I also navigated through the menus, and they were intuitive and located where I expected them to be. Good work!

@lawadr @nielsvanvelzen This solves device HEVC capability reporting issues. Hoping we can get this one merged.

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.

4 participants