forked from mpv-player/mpv
-
Notifications
You must be signed in to change notification settings - Fork 3
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
Swift lint #27
Closed
Closed
Swift lint #27
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Currently they refer to the OSC documentation. However, the "mp.options functions" already documents that, is more detailed, and does not contain false statements like "there may be no spaces around the ``=`` or anywhere else" (the primitive parser does not care about them, so starting a string option value with spaces is perfectly fine). Change them to refer to "mp.options functions" and remove the redundant section in the OSC documentation.
It's off if the video aspect ratio doesn't match the monitor aspect ratio. Fixes c243946.
When this was originally implemented, the fixed conversion factor was accidentally reverse engineered. It was left as is though. Instead, use the wl_fixed_from_int helper, so it's more obvious what is going on here.
Among others this provides a trivial test that built-in scripts aren't throwing an error at load or init time.
the Screen property localizedName returns a none unique dynamic name that doesn't allow a specific selection of a Screen on every OS boot. the name consists of the vendor name and model name (eg DELL U2723QE). if the same model display is connected to the system several times, macOS starts to add numbers to the localizedName (eg DELL U2723QE (1)), that may not be associated to the same Screen on every OS boot or connecting the display. it also changes the name of the first connected display by adding that numeration. this makes it impossible specify the proper screen with the screen-name option every time. to circumvent this we remove the enumeration from the name and instead add the serial number to the display-names property. this makes the actual Screen unique and none dynamic. furthermore the selection of a screen by name will check for equality for the old localizedName, simple name without enumeration, serial number and the combined name with serial number. this makes it possible to select the screen by either of those names and identifiers, and keeps backwards compatibility with the old behaviour. Examples: localized name (System Settings name): DELL U2723QE, DELL U2723QE (1) simple name: DELL U2723QE serial number: 123456789 combined name: DELL U2723QE (123456789)
dead keys like tilde and accents were not reported because they returned an empty string from the NSEvent. try to retrieve dead key with alternative Carbon API when an empty key is reported.
bc28f76 originally added this, but the implementation isn't correct and causes excessive notifications when writing to other options which may have bad behavior in some some circumstances. Fix this by reworking the implementation for force options so that the timestamps of the option update compared instead. Whenever an option gets changed, the internal timestamp in the cache is always incremented. For a special force option, we can save this timestamp internally as well. Because cache_check_update is always checked before potentially sending an option notification, we know that if the internal timestamp is equal to the timestamp saved by a force update option, it must have been previously written. Thus, the notification can be sent. This lets options like geometry work repeatedly but without constantly sending notifications. Fixes mpv-player#13954.
This reverts commit 6863eef.
6863eef handled this situation by using an atomic variable to express the state for which the wakeup is caused by AO control, and the dispatch queue is only processed at this state. However, this can cause permanent lockup of the player core when the following happens: - AO control sets the thread state to WASAPI_THREAD_DISPATCH, and sets the wakeup handle. - WASAPI thread reads the WASAPI_THREAD_DISPATCH state and processes the dispatch queue. - Another AO control happens. A dispatch item is enqueued, and the state stays at WASAPI_THREAD_DISPATCH. - WASAPI thread resets the thread state to WASAPI_THREAD_FEED since the state has not changed. - WaitForSingleObject() returns in the WASAPI thread, sees this state, and does not process the dispatch queue. - The player core locks permanently because it is waiting for the dispatch to be processed. This has been experimentally verified on a system under high contention: The easiest way to trigger this lockup is to continuously hold down "i", which rapidly issues AO get volume/mute controls. To properly handle this, use separate handles for system and user wakeup requests. Only feed audio when woke up by system and only process the dispatch queue when woke up by user. Fixes: 6863eef
First iteration does not overlap with initial buffer contents any more, so this zeroing was redundant.
Fixes corrupted audio after resize_input_buffer; realloc_2d did not move data to new location. Rather than reimplementing more allocator logic, migrate internals to use talloc and grow buffer with realloc.
Abstract out EGL, and allow choosing between EGL and vulkan at runtime. vf_gpu_egl.c contains GL specific context and creation/destroy code, vf_gpu_vulkan.c contains Vulkan specific. This allows vf_gpu being built in systems where EGL is not available and where Vulkan is available.
This fixes converted subtitles that are styled. This reverts commit 5e2c211. Most of the subtitle decoders in libavcodec sets meaningful style values. For the rest we can conditionally strip style.
This fixes teletext pages rendering, while keeping the same default style for subtitles and other converted formats.
This change displays the scaled position and size of the image before cropping to the target rectangle. In simple terms, it shows how much margin has been added to the image or how much of the image has been cropped. Note that target resolution is displayed after crop as in fact all other pixels are discarded anyway.
This is like sub-text/ass, but it returns a full ASS line, making it suitable for some more advanced scripting use-cases.
fuzzer_set_property.c: fuzz mpv_set_property in both initialized and non-initialized state. Useful for user provided values sanitization test. I've already seen some memory leaks in parsing code, good to drill it. fuzzer_loadfile.c: mpv_command "loadfile" test. Good for testing demuxers, decoding and playback loop. Sadly in headless mode we can't really test AO and VO, but at least all the code around can be fuzzed. Especially our custom demuxers like demux_mkv. fuzzer_loadfile_direct.c: Similar to loadfile above, but instead of saving the data to file, it passes the fuzz input in the command. Generated protocol specific versions (mf:// and memory:// for now) and generic one. Nothing really complex, but good start and even those few targets should give good coverage of the most common code paths in libmpv.
This is made by possible by 96e1f1d standardizing --gpu-context's help output. This changes the check to complete any Object settings list so it will automatically work with future options of this kind.
After explorer is restarted while show-in-taskbar is false, toggling show-in-taskbar no longer puts mpv back to the taskbar until it's unfocused and refocused. My guess of how this works is that the HWND of the taskbar is cached, and setting the WS_EX_TOOLWINDOW style internally uses this value to show/hide the taskbar button. But after explorer is restarted it no longer works until its taskbar state needs to change (such as focusing). Only then it realizes the HWND is no longer valid and refreshes it. Fix this by following MS documentation on this: the window needs to be hidden before changing the style, and be shown after that. This unfortunately can sometimes introduce a brief window flash, but it fixes the problem.
Autoload script can now exclude certain files Why? Sometimes you want to ignore thumbnails, auto-generated backups or just unwanted files A non-exhaustive list of real-world examples: - user backup files: '%.bak%.mp4$' or '^bak-' - telegram-desktop thumbnails: '_thumb%.jpg$' - a krita graphics editor backup suffix: '^~' See documentation here: lua.org/pil/20.2.html
Download the artifacts for this pull request: |
7abed65
to
65b2f6e
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Read this before you submit this pull request:
https://github.com/mpv-player/mpv/blob/master/DOCS/contribute.md
Reading this link and following the rules will get your pull request reviewed
and merged faster. Nobody wants lazy pull requests.