- Jun 27, 2023
-
-
Niklas Haas authored
When reducing the intensity we have to also reduce the saturation to compensate, similar to how we reduce the saturation when raising brightness. In general, any change of intensity is correlated with a corresponding decrease in saturation, to avoid making these regions too noticeable.
-
- Jun 24, 2023
-
-
Niklas Haas authored
Bleh, didn't trigger locally..
-
Niklas Haas authored
Typically the case for synthetic test profiles that rotate hue vectors entirely onto different primaries. Fixes: https://github.com/mpv-player/mpv/issues/11819
-
Niklas Haas authored
Explicitly reset `csp->hdr.prim`, in case this contains other values from e.g. the swapchain.
-
Niklas Haas authored
When forcing HDR levels, we currently override also the primaries struct, which is quite an undesired result, and leads to bugs if changing the output primaries while this checkbox is enabled.
-
- Jun 21, 2023
-
-
Niklas Haas authored
These XYZ values are normalized to the white point, so adjust the display from the incorrect mcd labelling to a more accurate % label.
-
Niklas Haas authored
To help debug issues related to ICC profiles without necessarily needing to provide the ICC profile upfront or analyze it with third party tools.
-
- Jun 20, 2023
-
-
Niklas Haas authored
Need to take a proper fabsf of the crop dimensions.
-
Niklas Haas authored
Return an empty frame mix until the first frame's PTS value has been reached.
-
- Jun 19, 2023
-
-
Niklas Haas authored
In case output is flipped/mirrored.
-
Niklas Haas authored
Fixes: videolan/libplacebo#284
-
Niklas Haas authored
Probably wouldn't happen anyway on any sane compiler, but nonetheless.
-
Niklas Haas authored
To avoid collisions with other vars named 'tmp'
-
- Jun 18, 2023
-
-
-
Niklas Haas authored
Fixes: 3fd65b26
-
Niklas Haas authored
Avoids excessively over-saturating when tone mapping upwards in brightness, which generally leads to an unnatural effect. Tested with both black point compensation and inverse tone mapping. Fixes: videolan/libplacebo#280
-
This avoids using designated initializers (compat issues with C++20)
-
These were forgotten in earlier changes.
-
Niklas Haas authored
Since this comes with a significant performance and CPU cost enhancement at only minor debuggability penalty.
-
- Jun 16, 2023
-
-
Niklas Haas authored
Instead of implicitly clamping the output image to the originally specified dst_rect, this allows the result of applying a distortion matrix to effectively exceed the indicated target crop area. Of course, this is probably surprising to some users, but then again, distortion isn't exactly a common use case - and I would argue that this makes arbitrary rotation work much more intuitively.
-
Niklas Haas authored
Helper function to compute bounding boxes of transformations.
-
- Jun 15, 2023
-
-
Niklas Haas authored
-
Niklas Haas authored
Requires generation of a low-res feature map. To avoid excessive ringing artefacts, hard-code the sampler to bicubic. This ensures a clean inversion with the bicubic interpolation that's performed as part of the tone mapping shader.
-
Niklas Haas authored
Make this way less hacky and also more easily extended.
-
Niklas Haas authored
After a few iterations I settled on this, which is essentially a HDR-specific sharpening filter, that tries to maintain perceptual local contrast differences (in the HDR source) while tone-mapping global contrast. The basic idea is to split the image into HF and LF components and apply the tone-mapping algorithm only to the LF component. Set to fairly conservative values by default. Closes: videolan/libplacebo#261
-
Niklas Haas authored
Mostly for cosmetic reasons, though I plan on extending at least one instance of this.
-
Niklas Haas authored
I want to extend this with more "runtime"-provided (i.e. not user-facing) parameters. Having learnt my lesson, a struct and _ex renaming it is.
-
- Jun 13, 2023
-
-
Niklas Haas authored
If gray maps to solid black, as in some extreme benchmark/test profiles, y_approx ends up as infinity which breaks the following arithmetic. Fix it to hard-code a fallback to gamma 1.0 in such extreme cases. Fixes: videolan/libplacebo#282
-
- Jun 06, 2023
-
-
Niklas Haas authored
Lest the very fabric of society fall apart and the world descend into chaos.
-
- Jun 05, 2023
-
-
Niklas Haas authored
-
Niklas Haas authored
The upscaler tests were actually no-ops because the output crop was effectively hard-coded as 1x1. Make a number of changes to address short-comings here: 1. Use a 50x50 texture instead of a 5x5 one. 2. Initialize it with random data (to actually hit edge cases etc.) 3. Test upscalers by explicitly cropping the input 4. Also test downscalers (by explicitly cropping the target)
-
Niklas Haas authored
1/6.0 etc. are not legal constants in GLES, need to write as 1.0/6.0.
-
Niklas Haas authored
Mostly for demonstration purposes.
-
Niklas Haas authored
Just to make sure the shaders compile and the main logic branch is covered.
-
Niklas Haas authored
Mostly just as a convenience to the user, to avoid having to hook PL_HOOK_PRE_OUTPUT and ship a custom hook for this. It's trivial for us to integrate into the existing pattern of params.
-
Niklas Haas authored
For hooking the point immediately before alpha blending, for any shaders that want to make a last-ditch image modification along the lines of rotation, corner rounding, etc.
-
Niklas Haas authored
Simple helper function for a common-ish operation.
-
Niklas Haas authored
Could be done better (e.g. mipmapping to reduce aliasing, arbitrary EWA interpolation, ...) but good enough to get the feature off the ground. Closes: videolan/libplacebo#281
-
Niklas Haas authored
Needed for new feature.
-
Niklas Haas authored
This only affects pass_output_target and does not make it into the cache.
-