This is a major new release involving a significant overhaul of the
public API, full thread safety, support for Direct3D 11 / Win32 /
MSVC, native HDR output, and more.
The primary way of accessing most libplacebo objects has been revamped.
Rather than writing e.g. `const struct pl_tex *image`, users now simply
write `pl_tex image`. In addition, the `struct pl_context *ctx` was
universally refactored and replaced by `pl_log log`, with no concern
besides logging.
Direct3D 11 is now natively supported by libplacebo, and compiling on
Windows in general has been made more straightforward.
The entire API was revamped to be thread safe by default, even when
using OpenGL (assuming the user provides the appropriate context binding
callbacks). Accompanying this change, the `pl_queue` has been rewritten
with multi-threaded decoding loops in mind. See the accompanying
`plplay` demo for an illustration.
Finally, this release brings with it a lot of features for feature
parity with mpv, such as the ability to get pass stats / timings,
oversample scaling, and more.
Additions:
- add a `void *user_data` field to `pl_frame`, with no further
interpretation by libplacebo
- add `pl_queue_push_block`, useful for multi-threaded decoding loops
- add a `uint64_t timeout` to `pl_queue_update`, allowing it to
block until frames are available even when not using a `get_frame`
callback
- make `pl_queue_update` also return valid data when failing with
PL_QUEUE_MORE, allowing access to partial/incomplete mix outputs
- allow calling `pl_render_image` on `image == NULL`, to render overlays
only
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libplacebo?expand=0&rev=46
- Update libplacebo to version 3.120.3:
This minor release fixes a number of regressions surrounding memory
imports and DRM modifiers, specifically aimed at issues that arose with
mpv's --hwdec=vaapi.
Changes:
- `pl_fmt.modifiers` now always includes DRM_FORMAT_MOD_INVALID on
OpenGL, which instructs the implementation to not specify modifiers
- passing a DRM modifier not in the list of supported modifiers is now
considered a hard error, to rule out non-working hwaccel formats
Fixes:
- fix a crash when using sampling shaders on textures with unknown formats
- fix improperly specified SDL header imports in the demos
- fix an issue where the vulkan texture handle capabilities were testing
for presence of the wrong extension
- fix an issue where non-enabled DRM modifier structs were accidentally
linked into the pNext chain, causing issues with some drivers
OBS-URL: https://build.opensuse.org/request/show/891306
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libplacebo?expand=0&rev=16
This minor release fixes a number of regressions surrounding memory
imports and DRM modifiers, specifically aimed at issues that arose with
mpv's --hwdec=vaapi.
Changes:
- `pl_fmt.modifiers` now always includes DRM_FORMAT_MOD_INVALID on
OpenGL, which instructs the implementation to not specify modifiers
- passing a DRM modifier not in the list of supported modifiers is now
considered a hard error, to rule out non-working hwaccel formats
Fixes:
- fix a crash when using sampling shaders on textures with unknown formats
- fix improperly specified SDL header imports in the demos
- fix an issue where the vulkan texture handle capabilities were testing
for presence of the wrong extension
- fix an issue where non-enabled DRM modifier structs were accidentally
linked into the pNext chain, causing issues with some drivers
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libplacebo?expand=0&rev=44
- Update libplacebo to version 3.120.2:
This minor release fixes a number of additional bugs related to the
thread queue, included demos, included helpers, and build system.
Changes:
- replace the `shaderc` library checks by pkg-config checks
- `pl_dispatch` no longer grows infinitely, but prunes stale cache
entries after a certain threshold
- improve logging of GPU capabilities (including format capabilities)
Fixes and performance improvements:
- fix a typo on an error message
- fix a use-after-free edge case in `plplay`
- filter out Infinity, NaN and other values from fps/vps estimates
- add several warnings for suspected frame queue API misuses
- fix a crash when combining pl_render_image_mix with cropped frames
- fix a crash on AV_PIX_FMT_NONE in the libav helpers
- fix the loading of overlays in the `sdlimage` demo
- fix a number of potential overflows on 32-bit platforms
- omit redundant identity matrices in pl_shader_decode_color
- fix crash in frame queue with certain out-of-order PTS sequences
- add missing link to vulkan dependency in the `video-filtering` demo
- correctly shift overlays when drawing to subsampled YCbCr planes
- add missing check for PL_GPU_CAP_CALLBACKS in `utils/{libav,dav1d}.h`
- improve handling of asynchronous texture uploads in `utils/libav.h`
OBS-URL: https://build.opensuse.org/request/show/886609
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libplacebo?expand=0&rev=15
This minor release fixes a number of additional bugs related to the
thread queue, included demos, included helpers, and build system.
Changes:
- replace the `shaderc` library checks by pkg-config checks
- `pl_dispatch` no longer grows infinitely, but prunes stale cache
entries after a certain threshold
- improve logging of GPU capabilities (including format capabilities)
Fixes and performance improvements:
- fix a typo on an error message
- fix a use-after-free edge case in `plplay`
- filter out Infinity, NaN and other values from fps/vps estimates
- add several warnings for suspected frame queue API misuses
- fix a crash when combining pl_render_image_mix with cropped frames
- fix a crash on AV_PIX_FMT_NONE in the libav helpers
- fix the loading of overlays in the `sdlimage` demo
- fix a number of potential overflows on 32-bit platforms
- omit redundant identity matrices in pl_shader_decode_color
- fix crash in frame queue with certain out-of-order PTS sequences
- add missing link to vulkan dependency in the `video-filtering` demo
- correctly shift overlays when drawing to subsampled YCbCr planes
- add missing check for PL_GPU_CAP_CALLBACKS in `utils/{libav,dav1d}.h`
- improve handling of asynchronous texture uploads in `utils/libav.h`
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libplacebo?expand=0&rev=42