Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libplacebo for openSUSE:Factory checked in at 2021-04-08 21:02:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libplacebo (Old) and /work/SRC/openSUSE:Factory/.libplacebo.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libplacebo" Thu Apr 8 21:02:54 2021 rev:14 rq:883169 version:3.120.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libplacebo/libplacebo.changes 2021-01-02 21:30:53.567430099 +0100 +++ /work/SRC/openSUSE:Factory/.libplacebo.new.2401/libplacebo.changes 2021-04-08 21:03:00.949955741 +0200 @@ -1,0 +2,144 @@ +Tue Apr 6 06:57:44 UTC 2021 - Niklas Haas <o...@haasn.xyz> + +- Update libplacebo to version 3.120.1: + +This hotfix release fixes a number of minor issues with the v3.120.0 +release, and also modularizes the included demo programs to cut down on +the number of compiled binaries. + +Changes: +- hexadecimal strings in custom shaders may now include whitespace +- added 16-bit half float formats to the dummy pl_gpu +- significantly reduced verbosity of the included demo programs +- merged all of the demo program variants into a single binary that + picks the best windowing system / graphical API at runtime +- install `plplay` when demos are enabled + +Fixes and performance improvements: +- fixed an integer overflow in a texture bounds check +- fixed a false positive error in the test framework on 32-bit platforms +- fixed some minor issues with various outdated comments +- fixed a potential use-after-free in the `plplay` demo program when + playing files containing embedded ICC profiles + +------------------------------------------------------------------- +Fri Apr 2 13:21:38 UTC 2021 - Niklas Haas <o...@haasn.xyz> + +- Update libplacebo to version 3.120.0. (Upstream changelog appended) +- Create a new package `plplay` for the included demo program. This requires + bundling a copy of `nuklear.h`, which is single-header library not included + as part of the libplacebo source distribution. + +This is a feature release, introducing frame mixing, DRM format +modifiers, and support for custom LUTs -, while also greatly expanding +the available demo programs, in particular the `plplay` video player. + +The main highlight is the new `pl_queue` abstraction living in +<libplacebo/utils/frame_queue.h>. This greatly simplifies the core of a +libplacebo-based video renderer by translating a stream of input frames +into an array of GPU-mapped textures suitable for frame mixing, given a +corresponding vsync timestamp. New frames can be delivered to this API +using a push or pull model, and they are lazily uploaded on an as-needed +basis as well as internally garbage collected when no longer needed. +This abstraction also contains all needed machinery for estimating +source/display framerates by comparing and averaging timestamps, freeing +users from the burden of having to accurately determine this information +a priori. + +Also worth mentioning is the addition of support for custom LUTs, +currently only in Adobe's .cube format. They can be applied flexibly at +a number of locations in the video processing pipeline, including as a +replacement for YUV<->RGB conversion or tone/gamut mapping, and fed with +either normalized linear light or native-gamma values. + +Among the included demo programs, the `plplay` example video player has +been greatly expanded - adding support for a settings GUI (based on +nuklear), frame timing and mixing, custom shaders, and more. This +example video player now serves as a convenient platform to demonstrate +all of libplacebo's advanced rendering features. + +Finally, all of libplacebo now contains only code written entirely from +scratch (rather than deriving from mpv), opening up the possibility to +explore different licenses besides the current LGPLv2.1+. In particular, +permissive (MIT/BSD-style) licenses are being considered. + +Additions: +- add asynchronous GPU callbacks, specifically to `pl_tex_transfer`, + allowing for non-blocking host memory transfer operations +- add `pl_shared_mem.stride_w/h` to control dmabuf pitch +- add `pl_render_image_mix` to blend multiple frames into a single + output image, given relative timestamp information +- add the `pl_filter_mitchell_clamp` filter preset +- add `pl_render_params.preserve_mixing_cache` to speed up redraws after + renderer size changes when frame mixing is active +- add <libplacebo/utils/dav1d.h> to help with Dav1dPicture mapping +- implement `PL_HANDLE_HOST_PTR` for the OpenGL backend +- implement drm format modifiers for vulkan +- add a new field `pl_fmt.modifiers` for DRM format modifier negotiation +- add new header <libplacebo/shaders/lut.h> to load custom LUTs + (currently only supporting the .cube format) +- add `index_data/buf` to `pl_pass_run_params`, adding support for + indexed vertex data when dispatching shader passes +- add `pl_dispatch_vertex` to allow dispatching fragment shaders using + a list of custom vertices with custom vertex attributes +- add `pl_frame_recreate_from_avframe` and `pl_download_avframe` to help + downloading GPU textures back into AVFrame form +- add a new header <libplacebo/utils/frame_queue.h> to assist in taking + a stream of (Frame, PTS) pairs as well as a list of VSync times and + turning them into a stream of `pl_frame_mix` structs +- add `pl_white_from_temp` and `pl_color_adjustment.temperature` to + apply white point adjustments between correlated color temperatures (K) +- add `pl_filter_preset.description` containing a longer, human-readable + name for a given filter preset + +Changes: +- `pl_3dlut_params` has been renamed `pl_icc_params` +- `pl_render_params.force_3dlut` has been renamed `force_icc_lut` +- `pl_3dlut_update/apply` have been renamed to `pl_icc_update/apply` and + moved to a (conditionally installed) new header <libplacebo/shaders/icc.h> +- `pl_upload_plane` no longer initializes `out_plane->shift_x/y` to 0, + instead leaving them unmodified (to avoid clobbering existing shift data) +- `pl_filter_box` has been renamed to `pl_filter_nearest` +- `pl_filter_triangle` has been renamed to `pl_filter_bilinear` +- `pl_render_params.frame_mixer = NULL` now disables frame mixing - to + get back the old behaviour, set this to `&pl_oversample_frame_mixer`. +- `pl_color_map_params.gamut_warning` now highlights out-of-gamut colors + in bright pink, rather than the old (ill-defined) inversion behaviour +- `pl_named_filter_config` has been renamed to `pl_filter_preset` +- `pl_find_named_filter` has been renamed to `pl_find_filter_preset` +- ditto for `pl_named_filter_function` and `pl_filter_function_preset` + +Fixes and performance improvements: +- fix buffer overflow in custom shader STORAGE blocks +- fix include path for glslang >= 11.0.0 +- actually enable shader subgroup operations for HDR peak detection +- fix locale dependence of shader parsing primitives +- fix AVCOL_SPC_SMPTE170M mapping +- fix wrong color space selection in `pl_vulkan_create_swapchain` +- work-around low UBO size limits on some platforms +- fix compilation issues on C++ due to the use of reserved identifiers +- fix `pl_get_detected_peak` on platforms without host-visible SSBOs +- fix edge case in vulkan texture handle capabilities check +- fix suboptimal mutex destruction code +- skip peak detection when outputting to HDR displays +- fix edge cases in shader LUT type selection logic +- avoid redundant scaling passes when scaling anamorphic content +- merge similar planes before dispatching heavy shaders (e.g. + debanding, hooks) +- avoid scaling passes for certain small fractional scaling steps +- entirely avoid processing unneeded components when dispatching scalers +- avoid using more components than necessary for intermediate FBOs +- fix out-of-bounds read for small non-cropped emulated textures +- avoid thrashing the shader cache when reinitializing OpenGL FBOs +- fix incorrect include in <libplacebo/opengl.h> +- fix vk.xml priority issue on windows +- fix undefined behaviour / GPU hangs in HDR peak detection shader +- fix incorrect forwarding of DRM modifiers to the OpenGL backend +- fix crash on AV_PIX_FMT_FLAG_BAYER +- fix various compilation issues on certain platforms +- fix obscure edge-case in floating point printing routine +- `pl_render_params.force_icc_lut` now excludes no-op cases +- fix handling of custom shader COMPUTE blocks +- correctly apply hue and saturation controls for non-YCbCr color spaces + +------------------------------------------------------------------- Old: ---- libplacebo-v3.104.0.tar.bz2 New: ---- libplacebo-v3.120.1.tar.bz2 nuklear.h ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libplacebo.spec ++++++ --- /var/tmp/diff_new_pack.1NLWvw/_old 2021-04-08 21:03:01.869956735 +0200 +++ /var/tmp/diff_new_pack.1NLWvw/_new 2021-04-08 21:03:01.873956739 +0200 @@ -16,15 +16,16 @@ # -%define sover 104 +%define sover 120 Name: libplacebo -Version: 3.104.0 +Version: 3.120.1 Release: 0 Summary: Library for GPU-accelerated video/image rendering primitives License: LGPL-2.1-or-later Group: Development/Libraries/C and C++ URL: https://code.videolan.org/videolan/libplacebo Source0: https://code.videolan.org/videolan/libplacebo/-/archive/v%{version}/libplacebo-v%{version}.tar.bz2 +Source1: https://github.com/Immediate-Mode-UI/Nuklear/raw/6e80e2a646f35be4afc157a932f2936392ec8f74/nuklear.h BuildRequires: c++_compiler BuildRequires: c_compiler BuildRequires: meson >= 0.47.0 @@ -32,7 +33,12 @@ BuildRequires: python3-mako BuildRequires: shaderc-devel BuildRequires: pkgconfig(epoxy) +BuildRequires: pkgconfig(glfw3) BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavformat) +BuildRequires: pkgconfig(libavutil) +BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(vulkan) %description @@ -60,11 +66,21 @@ renderer. It is based on the core rendering algorithms and ideas of mpv. +%package -n plplay +Summary: Example video player based on %{name} +Group: Productivity/Multimedia/Video/Players + +%description -n plplay +A small example video player based on %{name} and FFmpeg. This provides little +more than the ability to display video files, and rather serves as a tool to +help understand and demonstrate the various options provided by %{name}. + %prep %setup -q -n %{name}-v%{version} +cp %{SOURCE1} ./demos/3rdparty/nuklear/ %build -%meson -Dglslang=disabled -Dtests=true +%meson -Dglslang=disabled -Dtests=true -Ddemos=true %meson_build %install @@ -88,4 +104,7 @@ %{_libdir}/%{name}.so %{_libdir}/pkgconfig/%{name}.pc +%files -n plplay +%{_bindir}/plplay + %changelog ++++++ libplacebo-v3.104.0.tar.bz2 -> libplacebo-v3.120.1.tar.bz2 ++++++ ++++ 28002 lines of diff (skipped) ++++++ nuklear.h ++++++ ++++ 29504 lines (skipped)