Close support automatic screen refresh, #3414 #3745
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit builds on top of the core code developed by @jesec to
add support for detecting additional cases where the display needs to
be adjusted, notifying the user using the OSD and logging the decisions
made by the feature.
The original code has been refactored out of MainWindowController and
into a new DisplaySynchronizer class. That class contains the core code
that manages a display a selects an appropriate refresh rate. That class
is used by a new RefreshRateMatcher class that handles the higher level
aspects of the feature.
Control of the feature has been moved from IINA Preferences to a menu
item in the Video menu. This provides a way to quickly turn the feature
off if a display proves problematic.
IINA must be running under macOS 12 or above for this feature to be
available. Older versions of macOS return zero for a display's refresh
rate preventing this feature from working. When running on an older
version of macOS the menu item will be hidden.
The commits in the pull request will:
Add a new item "Match Refresh Rate" to video menu
Bind the menu item to the ctrl+meta+r key
Add a new class DisplaySynchronizer to control displays
Add a new class RefreshRateMatcher to control the feature
Change MainWindowController to use RefreshRateMatcher
Add a new OSD message to show the display refresh rate
Change PlayerCore to support short internal pause/resume cycles
Add the ability to suppress pause/resume OSD messages
This change has been discussed with the author.
It implements / fixes issue Support automatic screen refresh rate to match video in fullscreen mode à la Kodi #3414.
Description: