Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/haasn/libplacebo
Official mirror of libplacebo
https://github.com/haasn/libplacebo
Left over from a previous version of this code.
1b20a863a1d1bf1c53f4ce1705224166376e9067 authored over 1 year ago by Niklas Haas <[email protected]>
The new approach of using the main lobe radius works even for stretched
kernels, and hence works...
Instead of having to calculate a completely separate (gaussian) weight
function, a much better a...
Should apply only to the format string, since pl_log may be NULL (as may
other pointer arguments).
521618907a39897b779cc4a8fbf9e73b42ea38e6 authored over 1 year ago by Niklas Haas <[email protected]>
For consistency, and to enable more upcoming refactors. Also add a new
field to distinguish it f...
To replace the old remnants of the pl_filter_preset /
pl_filter_function_preset structs that wer...
To avoid making this situation even more confusing than it is, we can
safely drop these ancient ...
Make this filter resizable and actually do what it says on the
description, and instead fix `nea...
In retrospect I have no idea why I bothered with the complicated old
implementation of this logi...
To preserve backwards compatibility with the old way this was handled in
the frame mixer vs scal...
To preserve backwards compatibility with the v1 configuration API, which
exposed several aliases...
Where operating on float values.
08c8b6bb7bbc0f524114bcecbeb941b41b9ee59b authored over 1 year ago by Niklas Haas <[email protected]>
This is mitchell bcspline, not to be confused with the CubicSpline class
of filters.
These are _not_ approximations of Lanczos, but their own category of
filter.
Same treamtent as the other filters.h functions, due to depreciation of
pl_filter_preset.
This will allow us to mix both types of filters in a single filter list,
while preserving the ab...
These aliases were present in the v1 system, but I removed the ability
to represent aliases in t...
As as a safety precaution, because these may be inadvertently set by the
user unwittingly e.g. b...
The old (deprecated) way of configuring filters was to make your own
copy of pl_filter_function,...
In pl_render_fast_params, we shouldn't enable frame mixing by default -
stick to NN sampling. In...
5124b3d2192632e55c25083b01f8b93dc8c14cee authored over 1 year ago by Niklas Haas <[email protected]>
Even if `tone.function` is unset.
9fa920c9ca0e7f8261f48e4aa72dc5f92d03312e authored over 1 year ago by Niklas Haas <[email protected]>To bring this struct in line with the other params structs.
1bf13ae478ca8d0ed9576c550f4150293fe688fa authored over 1 year ago by Niklas Haas <[email protected]>
These params structs are always active, even if set to NULL, so there's
no reason not to initial...
Using `size_t` here is not only extreme overkill but also breaks
convention with the rest of the...
cdccedbe2391db5c08149ecaf8f98ed071097541 authored over 1 year ago by Niklas Haas <[email protected]>
To align with mpv.
See: https://github.com/mpv-player/mpv/commit/12ffce0f224056f91a20c9f0b197f4...
dfb02c656f7d276174a82d5a572276ae5b64fc21 authored over 1 year ago by Kacper Michajłow <[email protected]>Fixes: https://code.videolan.org/videolan/libplacebo/-/issues/294
5613f832bd42cf064455ea9ad0912680c42cceb4 authored over 1 year ago by Niklas Haas <[email protected]>
This was wrong/misleading, in actuality the logic has always been
disabled if either param is 0.
a77e139568cdee219ab7e1837ce11627c3295f77 authored over 1 year ago by Niklas Haas <[email protected]>
These lines get chaotic in the region outside the legal range, but we
already know that we won't...
This ensures consistency between the various python script executions
and fixes some issues with...
Not needed and unhelpful - specifically, this logic contains several
bugs. It's also IMO better ...
Makes this function return true for near-matches.
2cc19eb8668544f6a4efdc5c0a4ecf2d75ae9139 authored over 1 year ago by Niklas Haas <[email protected]>Need to check for the no-op case here properly.
51624ab2862e2418f2dc1800ae393459e6e5eb37 authored over 1 year ago by Niklas Haas <[email protected]>
Now that the default tone mapper is over an order of magnitude faster,
we can burn a lot more it...
Based on a radically new design, which is just a saturation map combined
with a simple smoothste...
Fixes things like ICC test profiles directly at the source level, by
simply disabling gamut mapp...
Since we already detect incompatible primaries now at a higher level of
abstraction, this check ...
2f17fd7658c8e40cadb6888557196fbde8af0b92 authored over 1 year ago by Niklas Haas <[email protected]>
Specifically, we need this to constrain the effects of bidirectional
gamut mappers when unintended.
This is just a rebranded version of the old pl_gamut_map_perceptual, for
those who want it (and ...
The new perceptual tone mapper is substantially better than the old one
at mapping hues correctl...
If target is 0.0.
52b2b59ec092e9a44550627727a0ea6eeb4fd5ce authored over 1 year ago by Niklas Haas <[email protected]>Prevents infinite loop here.
d56e295a367b4fd5c2bb28b46994623e46f1254f authored over 1 year ago by Niklas Haas <[email protected]>
This margin needs to be applied when the source's hue leaf chromaticity
_exceeds_ the target's. ...
Off by default to avoid expanding gamut unless requested.
e67b46bc6da15bb0341dc291444e715f9ccf5204 authored over 1 year ago by Niklas Haas <[email protected]>Make it reusable.
9affb27caf6c487e95cb76a534929c19e51bdb2a authored over 1 year ago by Niklas Haas <[email protected]>
This was only intended for SDR *sources* with known contrast
information, mapping onto SDR outpu...
Got broken during code move from plplay.c to windows.c. Since
waitable timers, doesn't seems to ...
Even if `acquire_image` is false. Otherwise, this will not happen on
re-draws with changed image...
Whenever possible, avoids conversion between different SDR contrast
levels unless both the sourc...
This is arguably a subjective trade-off, since it means you get the HLG
OOTF look&feel instead o...
Works around AV_NOWARN_DEPRECATED not being correctly defined for the
version of FFmpeg in this ...
44d40c42ef9b14834a70d434a6525a097b510ff4 authored over 1 year ago by Niklas Haas <[email protected]>
Fixes compilation of glslang.cc due to more strict C++ prohibiting to
jump over variable initial...
For compatibility with mpv.
Fixes: https://github.com/mpv-player/mpv/issues/11923
b7c9e9c2f0881e371be6526b55d986df57fae3c4 authored over 1 year ago by Niklas Haas <[email protected]>
rgba32f is not available everywhere, no need to make this test fail in
such cases.
Instead of pl_opengl_create(), where it doesn't belong (it's too late to
affect feature checks).
Instead of doing this in pl_opengl_create
525f4d16685d66ad424c361ff5bf9b6118f7ed18 authored over 1 year ago by Niklas Haas <[email protected]>Triggers pl_debug_abort() otherwise.
9e9097455804c3a8bf838205a6ac868b7a7e2ff3 authored over 1 year ago by Niklas Haas <[email protected]>
This is the minimum version required according to the
GL_ARB_compute_shader documentation, and c...
Using r8 triggers driver bugs on at least some platforms (e.g. nvidia),
rgba8 is a simple work-a...
abfe6349c00f1fad0fa2de58f968acbd7a65fa9f authored over 1 year ago by Niklas Haas <[email protected]>
This export/import test was completely redundant with
pl_test_export_import.
Somehow a deviation in the previous (deband) test resulted in this test
pattern being subtly dif...
Unlike their 1 and 2 channel brethren, these are randomly lumped in with
the YCbCr sampled forma...
2e88c03c8c0f7963c1fe3ce8939ff21dcf80bbf8 authored over 1 year ago by Niklas Haas <[email protected]>
v1.3.250 still has a race condition where the semaphore validation can
time-out sometimes, bump ...
This was bugged until 1.3.250+, the latest SDK release.
872f279416465be9ad0e9507c650cd7da9d0817e authored over 1 year ago by Niklas Haas <[email protected]>Possible after e58db9d0cef911c8455e22f6d8677873a9eac009
0684f41f31c0dfe67c85f13af80c996dfd1802ed authored over 1 year ago by Niklas Haas <[email protected]>
This is technically redundant with the report above, but this happens at
higher verbosity and al...
No idea why this is considered a warning, even.
8fffa6860199583063fb3ac4a11c057c8d28306c authored over 1 year ago by Niklas Haas <[email protected]>Under `params->debug_extra`.
0b66e4991044a1d19c5c4e6e20e60b93fe4b4ca2 authored over 1 year ago by Niklas Haas <[email protected]>ed22079e474e08d40219ee8631c891351405af6d authored over 1 year ago by Kacper Michajłow <[email protected]>
Code is clear enough without it.
e41e9fd7d5f1b9a90d8e7d246ab4e6943ea13304 authored over 1 year ago by Niklas Haas <[email protected]>This is overdue for an overhaul.
71a215f88607569ebdebbde981043b9da5ad1e62 authored over 1 year ago by Niklas Haas <[email protected]>
This has gotten a lot more sophisticated over the years, for better or
worse.
"Insufficient decoding speed" can also happen due to other reasons such
as the frame mixing meth...
Perfectly synchronizes start of playback with the start of the virtual
PTS timeline, excluding t...
I first wanted to make a nice graph here like with the shader stats but
eventually bikeshedding ...
EOF on PTS 0.0 = single frame file, should always be extended
indefinitely to be consistent with...
It's a misnomer because it's the timestamp before calling
pl_queue_update().
8e52cab1f440ca7ca0061a16574a845fec206289 authored over 1 year ago by Niklas Haas <[email protected]>
Inverts the order of operations to render first, then wait until the
target PTS. This is a much ...
This can happen legitimately in the case of EOF or single frame media,
in which case fallback to...
Otherwise, old frames may be mistakenly returned for too long (with
PL_QUEUE_OK instead of PL_QU...
No longer needed after 6097f32494adb74d1715b51d53cf1c7df566ed6c
832057dd58c19493240a812697c8270a594f98a2 authored over 1 year ago by Niklas Haas <[email protected]>ac1027c7c18fc3065f9b3b24c30d5c96340d3704 authored over 1 year ago by Kacper Michajłow <[email protected]>
9a133864b1cbced904b6de9251797f4389c6cea0 authored over 1 year ago by Kacper Michajłow <[email protected]>
2e3e1c7216df937ad1346ec74cb987124a9fb279 authored over 1 year ago by Kacper Michajłow <[email protected]>
Will be useful for implementing this on other platforms.
3c4a5ee3b9649bf0d92c24812d7a3b5e828d7fe1 authored over 1 year ago by Kacper Michajłow <[email protected]>Will be useful for implementing this on other platforms.
bba5fae2f4e707f2805da5fcf891c5051eec037f authored over 1 year ago by Kacper Michajłow <[email protected]>
Assigning to `img` here has the potential to lose extra metadata in
`img` that was (or will be) ...
This avoids the usual code-path that updates these variables.
Fixes: https://code.videolan.org/...
f1fbbf001838e8a5848fcd8311ce97e4048e8d04 authored over 1 year ago by Niklas Haas <[email protected]>
To ensure work is made visible to the GPU, as is the design intent
behind this function, we defi...
32-bit UCRT does not provide specialized float functions. There are
inline versions of them, but...
Based on two-pass design where the main interpolation kernel is combined
with a smaller, second ...
Very hard to get precise controls here.
5ef779c769472b85c8a00d8100815d717e903009 authored over 1 year ago by Niklas Haas <[email protected]>