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

shaders/sampling: fix stray parameter

Left over from a previous version of this code.

1b20a863a1d1bf1c53f4ce1705224166376e9067 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/sampling: enable antiringing for polar downscaling

The new approach of using the main lobe radius works even for stretched
kernels, and hence works...

2c98669b4e7e964503cae784e2a9869d6733af9b authored over 1 year ago by Niklas Haas <[email protected]>
shaders/sampling: optimize/improve polar anti-ringing

Instead of having to calculate a completely separate (gaussian) weight
function, a much better a...

7fb12078b8f0e212f1cc3f5631fb891b3a08ca1c authored over 1 year ago by Niklas Haas <[email protected]>
common: fix PL_PRINTF nonnull annotation

Should apply only to the format string, since pl_log may be NULL (as may
other pointer arguments).

a09b834c333ee65a384c533f26f2a3c3a52f4c09 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/custom: formatting (cosmetic)

521618907a39897b779cc4a8fbf9e73b42ea38e6 authored over 1 year ago by Niklas Haas <[email protected]>
filters: move pl_filter_oversample to filters.h

For consistency, and to enable more upcoming refactors. Also add a new
field to distinguish it f...

ccdc575632ebc7098962752bb829265a11a53666 authored over 1 year ago by Niklas Haas <[email protected]>
filters: add pl_filter_functions/configs

To replace the old remnants of the pl_filter_preset /
pl_filter_function_preset structs that wer...

0a2f583ffe8cbb25bc227520d7a183fe726980cd authored over 1 year ago by Niklas Haas <[email protected]>
filters: remove ancient aliases

To avoid making this situation even more confusing than it is, we can
safely drop these ancient ...

a1a66a779dc36bf42f9cdc11a4c451c9c812eb45 authored over 1 year ago by Niklas Haas <[email protected]>
filters: fix box window

Make this filter resizable and actually do what it says on the
description, and instead fix `nea...

3db947de3a17140d9bc2520e7d58d78aad11dbfb authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: switch to new filters API

In retrospect I have no idea why I bothered with the complicated old
implementation of this logi...

3aa0073fcf31e7b1fe834f4d29a38e7e1de3fb9e authored over 1 year ago by Niklas Haas <[email protected]>
filters: add "linear" pseudo-alias for bilinear

To preserve backwards compatibility with the old way this was handled in
the frame mixer vs scal...

8bfac0badb7253ad59ddc18899c78547446addd0 authored over 1 year ago by Niklas Haas <[email protected]>
filters: add extra aliases to pl_filter_configs/functions

To preserve backwards compatibility with the v1 configuration API, which
exposed several aliases...

92c29bb22eeba6a13eebcfb713366a1d6da106a2 authored over 1 year ago by Niklas Haas <[email protected]>
filters: avoid unnecessary double precision

Where operating on float values.

08c8b6bb7bbc0f524114bcecbeb941b41b9ee59b authored over 1 year ago by Niklas Haas <[email protected]>
filters: fix description on mitchell_clamp

This is mitchell bcspline, not to be confused with the CubicSpline class
of filters.

729b0ca1c16bf03e76eca9cc8de5390b748682de authored over 1 year ago by Niklas Haas <[email protected]>
filters: fix comment on spline16/36/64

These are _not_ approximations of Lanczos, but their own category of
filter.

2129ffb4ea5c933db1fbb70d04ca2b8c3a281369 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: soft-deprecate old filter configuration API

Same treamtent as the other filters.h functions, due to depreciation of
pl_filter_preset.

4bf7560e9a357c99ed42457829b62453430b409a authored over 1 year ago by Niklas Haas <[email protected]>
filters: add pl_filter_config usage semantics

This will allow us to mix both types of filters in a single filter list,
while preserving the ab...

9bdd7b7b5edeb822e651a91d6f9602a050550c36 authored over 1 year ago by Niklas Haas <[email protected]>
filters: remove slightly misleading comment

These aliases were present in the v1 system, but I removed the ability
to represent aliases in t...

fe55a146799086914c8c655a837e85dbb0a2b1ff authored over 1 year ago by Niklas Haas <[email protected]>
filters: error out on opaque kernels/windows

As as a safety precaution, because these may be inadvertently set by the
user unwittingly e.g. b...

34d48425c298611f11bf448d5838f2520656fc18 authored over 1 year ago by Niklas Haas <[email protected]>
filters: refactor filter configuration

The old (deprecated) way of configuring filters was to make your own
copy of pl_filter_function,...

31c10e95c99c038f1e2df8965acb918ccffeb4e0 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: reprioritize default frame mixers

In pl_render_fast_params, we shouldn't enable frame mixing by default -
stick to NN sampling. In...

f534bbc8b5ca0a9d237b2c9e539dbaaae8817d78 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: fix typo (cosmetic)

5124b3d2192632e55c25083b01f8b93dc8c14cee authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: properly default to pl_tone_map_clip

Even if `tone.function` is unset.

9fa920c9ca0e7f8261f48e4aa72dc5f92d03312e authored over 1 year ago by Niklas Haas <[email protected]>
colorspace: make pl_color_adjustment consistent with other params

To bring this struct in line with the other params structs.

1bf13ae478ca8d0ed9576c550f4150293fe688fa authored over 1 year ago by Niklas Haas <[email protected]>
renderer: add safe params to PL_RENDER_DEFAULTS

These params structs are always active, even if set to NULL, so there's
no reason not to initial...

0aa8abb8e09a38add299b3cfae73b4cbc0f8c866 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/icc: switch pl_icc_params.size_r/g/b to int

Using `size_t` here is not only extreme overkill but also breaks
convention with the rest of the...

a2f6208f8cd31632f4d2ef2ad4b14edd5dfa36b3 authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: fix stray comment (cosmetic)

cdccedbe2391db5c08149ecaf8f98ed071097541 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/sampling: lower default deband threshold

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]>
shaders/colorspace: clamp CR output to legal range

Fixes: https://code.videolan.org/videolan/libplacebo/-/issues/294

5613f832bd42cf064455ea9ad0912680c42cceb4 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: fix comment

This was wrong/misleading, in actuality the logic has always been
disabled if either param is 0.

38b5a8f3dd2a70afd674f55386f9dddda0341458 authored over 1 year ago by Niklas Haas <[email protected]>
filters: fix comment (cosmetic)

a77e139568cdee219ab7e1837ce11627c3295f77 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: only visualize legal part of 3DLUT

These lines get chaotic in the region outside the legal range, but we
already know that we won't...

b9edb6d94261ebf8066b641eca7c1a2cb88ec103 authored over 1 year ago by Niklas Haas <[email protected]>
meson: use python dependency instead of calling the script directly

This ensures consistency between the various python script executions
and fixes some issues with...

b828628f4170eaf221918fa87fcaf2f14001ac98 authored over 1 year ago by Hendrik Leppkes <[email protected]>
swapchain: remove buggy metadata sanitization logic

Not needed and unhelpful - specifically, this logic contains several
bugs. It's also IMO better ...

195be64ec81027721d207e59a96628621f8522f7 authored over 1 year ago by Niklas Haas <[email protected]>
colorspace: fix pl_primaries_superset numerical inaccuracy

Makes this function return true for near-matches.

2cc19eb8668544f6a4efdc5c0a4ecf2d75ae9139 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: don't use saturation mapping if disabled

Need to check for the no-op case here properly.

51624ab2862e2418f2dc1800ae393459e6e5eb37 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: increase default 3DLUT precision

Now that the default tone mapper is over an order of magnitude faster,
we can burn a lot more it...

c143f2a344050895d7af3abceba558516e1cecac authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: refactor perceptual gamut mapping

Based on a radically new design, which is just a saturation map combined
with a simple smoothste...

507024b6f80355e0f7efb787743423326d731859 authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: bypass gamut mapping for incompatible primaries

Fixes things like ICC test profiles directly at the source level, by
simply disabling gamut mapp...

8899336babb85a648d4be503c6d70639af69e36e authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: remove redundant hueshift disabling logic

Since we already detect incompatible primaries now at a higher level of
abstraction, this check ...

0c3fba2ecd485fc5d61fd4f874b5927830748f80 authored over 1 year ago by Niklas Haas <[email protected]>
tests/colorspace: test gamut clipping functions

2f17fd7658c8e40cadb6888557196fbde8af0b92 authored over 1 year ago by Niklas Haas <[email protected]>
colorspace: add more pl_primaries functions

Specifically, we need this to constrain the effects of bidirectional
gamut mappers when unintended.

a8723da37e6ed78d35946667dc6afe7df2d8f135 authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: add pl_gamut_map_softclip

This is just a rebranded version of the old pl_gamut_map_perceptual, for
those who want it (and ...

f18cbdaea7196f0b92cc0a723d9810bec81a2789 authored over 1 year ago by Niklas Haas <[email protected]>
tests/tone_mapping: increase test accuracy

The new perceptual tone mapper is substantially better than the old one
at mapping hues correctl...

0c4cffd6c188fbf22e3507dd2dc0c7e5a41862d5 authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: protect against UB in softclip()

If target is 0.0.

52b2b59ec092e9a44550627727a0ea6eeb4fd5ce authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: safety clamp on desat_bounded()

Prevents infinite loop here.

d56e295a367b4fd5c2bb28b46994623e46f1254f authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: fix hue shift margin direction

This margin needs to be applied when the source's hue leaf chromaticity
_exceeds_ the target's. ...

e22ea425ad14c42dabbacdae6245b0f7109ab203 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: add pl_gamut_map_params.gamut_expansion

Off by default to avoid expanding gamut unless requested.

e67b46bc6da15bb0341dc291444e715f9ccf5204 authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: factor out hue shifting code

Make it reusable.

9affb27caf6c487e95cb76a534929c19e51bdb2a authored over 1 year ago by Niklas Haas <[email protected]>
colorspace: don't copy HDR levels to SDR output

This was only intended for SDR *sources* with known contrast
information, mapping onto SDR outpu...

8d9880d7705f799474c354c71be2d40ade414e8c authored over 1 year ago by Niklas Haas <[email protected]>
demos/window: fix WIN32 check, we don't use os.h here

Got broken during code move from plplay.c to windows.c. Since
waitable timers, doesn't seems to ...

37a69472beaf17937f7d4b05168876b3834fa521 authored over 1 year ago by Kacper Michajłow <[email protected]>
renderer: always set HDR levels from ICC profile

Even if `acquire_image` is false. Otherwise, this will not happen on
re-draws with changed image...

ded004518f887cbe83395c77a7089179252ac4d0 authored over 1 year ago by Niklas Haas <[email protected]>
colorspace: match unknown target contrast to source

Whenever possible, avoids conversion between different SDR contrast
levels unless both the sourc...

654d5c3d38b6c254dd92f4f6f97a8dd701814535 authored over 1 year ago by Niklas Haas <[email protected]>
colorspace: tune HLG source to target HDR peak

This is arguably a subjective trade-off, since it means you get the HLG
OOTF look&feel instead o...

0dc08fd02b6b52d962459a7e3a901baefa2e5add authored over 1 year ago by Niklas Haas <[email protected]>
ci: add -Wno-deprecated-declarations to clang jobs

Works around AV_NOWARN_DEPRECATED not being correctly defined for the
version of FFmpeg in this ...

5498fcd9b376e7f41bba6208eead181b624312dd authored over 1 year ago by Niklas Haas <[email protected]>
ci: update to include demos

44d40c42ef9b14834a70d434a6525a097b510ff4 authored over 1 year ago by Niklas Haas <[email protected]>
pl_thread_win32: initialize time variable before goto

Fixes compilation of glslang.cc due to more strict C++ prohibiting to
jump over variable initial...

abf34ba71f28842988a1a6323ea7bced283f170f authored over 1 year ago by Kacper Michajłow <[email protected]>
tone_mapping: add pl_tone_map_linear_light

For compatibility with mpv.

Fixes: https://github.com/mpv-player/mpv/issues/11923

b7c9e9c2f0881e371be6526b55d986df57fae3c4 authored over 1 year ago by Niklas Haas <[email protected]>
tests/gpu_tests: switch disco tex to rgba8

rgba32f is not available everywhere, no need to make this test fail in
such cases.

f54fcf02f6727330f7922fa0ecf1511a1877ddab authored over 1 year ago by Niklas Haas <[email protected]>
opengl/gpu: move GLSL version clamping to pl_gpu

Instead of pl_opengl_create(), where it doesn't belong (it's too late to
affect feature checks).

72a6a89f0896ee7339984b8b52c6c47af7d3fab5 authored over 1 year ago by Niklas Haas <[email protected]>
opengl/gpu: require GLSL 140+ for SSBOs in pl_gpu

Instead of doing this in pl_opengl_create

525f4d16685d66ad424c361ff5bf9b6118f7ed18 authored over 1 year ago by Niklas Haas <[email protected]>
tests/gpu_tests: split off user shader tests requiring SSBOs

Triggers pl_debug_abort() otherwise.

9e9097455804c3a8bf838205a6ac868b7a7e2ff3 authored over 1 year ago by Niklas Haas <[email protected]>
opengl/gpu: require GLSL 420+ for compute shaders

This is the minimum version required according to the
GL_ARB_compute_shader documentation, and c...

04f88b3234567f39ebf02cdc1916fe30082cd147 authored over 1 year ago by Niklas Haas <[email protected]>
tests/gpu_tests: use rgba8 for import test

Using r8 triggers driver bugs on at least some platforms (e.g. nvidia),
rgba8 is a simple work-a...

c96971547589d2259249c70a46389f90cee905b3 authored over 1 year ago by Niklas Haas <[email protected]>
tests/gpu_tests: don't hard-code import size

abfe6349c00f1fad0fa2de58f968acbd7a65fa9f authored over 1 year ago by Niklas Haas <[email protected]>
tests/opengl_surfaceless: remove redundant test

This export/import test was completely redundant with
pl_test_export_import.

590074ca7d9c5f02152b5494b3b641e6fc3fe79c authored over 1 year ago by Niklas Haas <[email protected]>
tests/gpu_tests: fix peak detection source data bug

Somehow a deviation in the previous (deband) test resulted in this test
pattern being subtly dif...

22ceec153367da2b754e2f4269f219224d066067 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/formats: remove unusable rxgxbxax10/12

Unlike their 1 and 2 channel brethren, these are randomly lumped in with
the YCbCr sampled forma...

e74e411369e7eafb27d86375683556a2459300a8 authored over 1 year ago by Niklas Haas <[email protected]>
gpu: ensure planar textures are 2D

2e88c03c8c0f7963c1fe3ce8939ff21dcf80bbf8 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: bump debug_extra requirement

v1.3.250 still has a race condition where the semaphore validation can
time-out sometimes, bump ...

62809960fbd4b68e3cae56fdf7ec765a35c91bb0 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: disable debug_extra on older layers

This was bugged until 1.3.250+, the latest SDK release.

872f279416465be9ad0e9507c650cd7da9d0817e authored over 1 year ago by Niklas Haas <[email protected]>
tests/vulkan: re-enable debug_extra

Possible after e58db9d0cef911c8455e22f6d8677873a9eac009

0684f41f31c0dfe67c85f13af80c996dfd1802ed authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: report debug layer version

This is technically redundant with the report above, but this happens at
higher verbosity and al...

1c71539aa631868c03358d1a802084dcdc775752 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: fix verbose/spammy best practices message

No idea why this is considered a warning, even.

8fffa6860199583063fb3ac4a11c057c8d28306c authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: enable synchronization validation

Under `params->debug_extra`.

0b66e4991044a1d19c5c4e6e20e60b93fe4b4ca2 authored over 1 year ago by Niklas Haas <[email protected]>
d3d11: fix leak of num_workgroups_buf buffer

ed22079e474e08d40219ee8631c891351405af6d authored over 1 year ago by Kacper Michajłow <[email protected]>
demos/plplay: remove unnecessary var (cosmetic)

Code is clear enough without it.

e41e9fd7d5f1b9a90d8e7d246ab4e6943ea13304 authored over 1 year ago by Niklas Haas <[email protected]>
README: update plplay screenshots

This is overdue for an overhaul.

71a215f88607569ebdebbde981043b9da5ad1e62 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: update comment

This has gotten a lot more sophisticated over the years, for better or
worse.

a4afe70982302642c9188c8f5d24e300a2e2161b authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: reword confusing message

"Insufficient decoding speed" can also happen due to other reasons such
as the frame mixing meth...

42200053bf2c1828caa421fb3b6aca5326aa928a authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: fix initial clock drift/offset

Perfectly synchronizes start of playback with the start of the virtual
PTS timeline, excluding t...

d8d7274fec0101d5183648109f4df303dc481d06 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: measure and report CPU timings

I first wanted to make a nice graph here like with the shader stats but
eventually bikeshedding ...

5ff6ad9bff4a322a371499a7dbf64953e080be04 authored over 1 year ago by Niklas Haas <[email protected]>
utils/frame_queue: properly extend single-frame files

EOF on PTS 0.0 = single frame file, should always be extended
indefinitely to be consistent with...

49c419c1308ed7ab01fd08c7c0324b6f340fc40d authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: rename ts_present (cosmetic)

It's a misnomer because it's the timestamp before calling
pl_queue_update().

c2dcd619f55f7506edbce8491f5d94a3d6ae16e0 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: log EOF

8e52cab1f440ca7ca0061a16574a845fec206289 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: render frames before waiting for PTS

Inverts the order of operations to render first, then wait until the
target PTS. This is a much ...

02f556efc2ef6b9dbebbbc5fa520c93ce6e68d30 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: don't error if no future frames available

This can happen legitimately in the case of EOF or single frame media,
in which case fallback to...

1414b1f60c3104dce9fd1c1b78d10b1fcc6df0e2 authored over 1 year ago by Niklas Haas <[email protected]>
utils/frame_queue: don't suppress PL_QUEUE_MORE in point()

Otherwise, old frames may be mistakenly returned for too long (with
PL_QUEUE_OK instead of PL_QU...

112bb886779e47713b92c7a6d69cdad778f757e8 authored over 1 year ago by Niklas Haas <[email protected]>
ci: remove gpu-strip job

No longer needed after 6097f32494adb74d1715b51d53cf1c7df566ed6c

832057dd58c19493240a812697c8270a594f98a2 authored over 1 year ago by Niklas Haas <[email protected]>
shaders: suppress Wint-to-pointer-cast

ac1027c7c18fc3065f9b3b24c30d5c96340d3704 authored over 1 year ago by Kacper Michajłow <[email protected]>
demos/window: set timer resolution on Windows

9a133864b1cbced904b6de9251797f4389c6cea0 authored over 1 year ago by Kacper Michajłow <[email protected]>
pl_thread_win32: implement pl_thread_sleep

2e3e1c7216df937ad1346ec74cb987124a9fb279 authored over 1 year ago by Kacper Michajłow <[email protected]>
pl_clock: morph pl_clock_sleep into pl_thread_sleep

Will be useful for implementing this on other platforms.

3c4a5ee3b9649bf0d92c24812d7a3b5e828d7fe1 authored over 1 year ago by Kacper Michajłow <[email protected]>
pl_clock: return boolean whether slept fully instead of time

Will be useful for implementing this on other platforms.

bba5fae2f4e707f2805da5fcf891c5051eec037f authored over 1 year ago by Kacper Michajłow <[email protected]>
renderer: don't overwrite misc img attributes in main scaler

Assigning to `img` here has the potential to lose extra metadata in
`img` that was (or will be) ...

77c4ae134dd72893fdf9f91510e29b7be3ecfdc9 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: properly update img->rect on free sampling

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]>
opengl/swapchain: glFlush on submit_frame()

To ensure work is made visible to the GPU, as is the design intent
behind this function, we defi...

fcba744b7fd74af98a0455fb1f056fe851cc7cf5 authored over 1 year ago by Niklas Haas <[email protected]>
meson: disable UCRT math usage on 32-bit Windows target

32-bit UCRT does not provide specialized float functions. There are
inline versions of them, but...

250a82b20a4f63697c1eeef8f49c6ec952169356 authored over 1 year ago by Kacper Michajłow <[email protected]>
shaders/sampling: enable antiringing for EWA scalers

Based on two-pass design where the main interpolation kernel is combined
with a smaller, second ...

0581828343ddaafb81d296aa510d4d141e4d9b50 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: make antiringing slider slower to adjust

Very hard to get precise controls here.

5ef779c769472b85c8a00d8100815d717e903009 authored over 1 year ago by Niklas Haas <[email protected]>