Skip to content

Releases: emersion/xdg-desktop-portal-wlr

0.8.4

Choose a tag to compare

@emersion emersion released this 28 Jul 16:58
v0.8.4
xdg-desktop-portal-wlr v0.8.4

Scarab Systems (1):
      screencast: default SelectSources to monitors

Scott Leggett (1):
      screencast: fix stream freezing on PipeWire buffer starvation

Simon Ser (3):
      screencast: print error message on Y-invert flag
      screencast: guard xdpw_pwr_enqueue_buffer() in PAUSED
      build: bump version to 0.8.4

0.8.3

Choose a tag to compare

@emersion emersion released this 18 Jun 15:24
v0.8.3

⚠️ Warning!

This version will sometimes stall screen recording. Please wait for the next patch release before upgrading.

CToID (1):
      screencast: drive the Pipewire graph by ourselves

Simon Ser (1):
      build: bump version to 0.8.3

0.8.2

Choose a tag to compare

@emersion emersion released this 17 Apr 13:10
v0.8.2
xdg-desktop-portal-wlr v0.8.2

Bonsaiiv (1):
      screencast: check for capture source manager in ext_register_session_cb()

Martin Piatka (1):
      screencast: set READABLE/MAPPABLE flag on pw buffers

Raidon Chrome (1):
      Fix screensharing on pipewire 1.6.x Skip framerate when framerate == 0 in fixate_format and build_format Prevent division by zero in pwr_handle_stream_param_changed

Simon Ser (1):
      build: bump version to v0.8.2

awy (1):
      Add mew chooser

cptpcrd (3):
      screencast: fix damage reporting via SPA
      screencast: report per-frame damage via SPA
      screencast: only apply current buffer's own accumulated damage

nabnut (1):
      include fuzzel as chooser

0.8.1

Choose a tag to compare

@emersion emersion released this 04 Dec 10:07
v0.8.1
xdg-desktop-portal-wlr v0.8.1

Marcel Märtens (2):
      screencast: accept bare toplevel identifier for simple choosers
      doc: reflect behavior change in chooser_cmd in man page and config.sample

Simon Ser (4):
      screencast: drop xdpw_wlr_output.{make,model}
      screencast: include output description in menu chooser
      screencast: add backwards compatibility for simple output choosers
      build: bump version to 0.8.1

0.8.0

Choose a tag to compare

@emersion emersion released this 21 Oct 12:28
v0.8.0
xdg-desktop-portal-wlr v0.8.0

Aleksei Bavshin (1):
      contrib: fix typo in the portals config example

Kenny Levinsen (18):
      Use GBM_MAX_PLANES in xdpw_buffer
      Accumulate frame damage in per-buffer wl_array
      pipewire: Build stream parameters dynamically
      pipewire: Prepare for supporting multiple formats
      Introduce xdpw_buffer_constraints
      screencast: Simplify shutdown/error flow
      ext_image_copy_capture_v1: Initial implementation
      xdpw_buffer: Store allocated buffer modifier
      screencopy: Reintroduce buffer constraint check
      Track toplevels
      Drop unnecessary wl_list_for_each_reverse_safe()
      Select and capture toplevels
      Free drmDevice after creating the GBM device
      NULL xdpw_buffer when removing a buffer
      Throttle fps from start of frame capture
      Return zero delay from first fps_limit_measure_end
      Only reallocate gbm device if it changed
      screencast: Restrict source types to those supported

Lily Foster (1):
      screencast: fix SelectSources type bitmask check

Mildred Ki'Lya (1):
      readme: list supported portals, explain new portal config

Simon Ser (27):
      build: simplify scdoc invocation
      build: simplify sd-bus-provider=auto
      screencast: simplify wl_drm format code conversions
      build: add summary for auto-detected features
      build: don't use cc.get_supported_arguments() for -D flag
      screencast: simplify xdpw_gbm_device_create()
      Add wmenu chooser
      Move screencast chooser into separate file
      Split chooser out read/close into separate function
      Make xdpw_output_chooser.cmd const
      Setup pipes in spawn_chooser()
      Call fdopen() inside spawn_chooser()
      readme: drop CI badge
      Add xdpw_screencast_target.type
      Move xdpw_screencast_target.with_cursor out of union
      Drop union from xdpw_screencast_target
      Don't share first output by default
      Generalize xdpw_output_chooser for non-outputs
      Add format_str()
      Print error when chooser selects unknown target
      Handle chooser cancellation
      Don't print getline() error on EOF for chooser
      Drop xdpw_buffer.bo
      Send session Closed signal
      Remove unused xdpw_screencast_wlr_session.frame_callback field
      readme: exclude unsupported distros from Repology status
      build: bump version to 0.8.0

Thomas Weißschuh (6):
      colorchooser: force grim to only return a single pixel
      colorchooser: clean up reply messages on failures
      colorchooser: clean up xdpw request
      screenshot: clean up reply messages on failures
      screenshot: remove variable-length-array
      screenshot: clean up xdpw request

Tomasz Hołubowicz (1):
      Add rofi chooser

columbarius (5):
      screencast: Use PipeWire to drive screencast
      screencast: Refactor xdpw_wlr_* api
      screencast: Store transformation as part of the frame
      Group wlr_screencopy attributes in structs
      Separate wlr_screencopy code into separate file

llyyr (1):
      pipewire: use a wrapper function for timer callback

0.7.1

Choose a tag to compare

@emersion emersion released this 29 Jan 20:45
v0.7.1
xdg-desktop-portal-wlr v0.7.1

David Turner (2):
      Handle pipewire restarts
      Fix bug in sd-bus polling

Jan Beich (1):
      build: limit epoll-shim to timerfd

Simon Ser (5):
      man: refer to wl_output instead of zxdg_output_manager_v1
      build: drop wayland-scanner find_program() fallback
      build: drop unnecessary array
      build: use / instead of join_paths()
      build: bump version to 0.7.1

columbarius (2):
      contrib: Add portals config example
      screencast: Add support for 24bit RGB formats

cptpcrd (2):
      screencast: fix source type
      screencast: report correct position/size using xdg-output

0.7.0

Choose a tag to compare

@emersion emersion released this 15 Apr 08:33
v0.7.0
xdg-desktop-portal-wlr v0.7.0

Ferdinand Bachmann (1):
      screencast: set type of all planes, not only first plane

Linken Dinh (1):
      add Hyprland to wlr.portal

Nick Cao (1):
      scdoc: mark as build-time dependency

Simon Ser (2):
      readme: restrict build badge to commits in the master branch
      build: bump version to 0.7.0

columbarius (14):
      screenshot: Announce version property
      screencast: remove xdg-output protocol
      screencast: add fallback for linear modifier
      screencast: Send buffer transform information via PipeWire
      screenshot: announce version 1
      screencast: Use spa_pod_dynamic_builder
      screencast: Make output functions private
      screencast: Introduce xdpw_screencast_target
      screencast: Redesign chooser api to use xdpw_screencast_target
      screencast: support portal version 3
      screencast: Introduce screencast_session_data
      screencast: Implement restore token
      screencast: Add envar to set allowed persist mode
      screencast: send damage via PipeWire

0.6.0

Choose a tag to compare

@emersion emersion released this 09 Jun 09:31
v0.6.0

This new release adds a lot of new features:

  • Support for DMA-BUF: this allows consumers to request GPU buffers,
    improving performance significantly.
  • Support for 10-bit color formats.
  • Support for PipeWire's swapchain, removing one buffer copy operation.

The release includes a lot of internal refactoring as well.

Full commit history
Alias Gram (1):
      chore(logging): change config file error to info

Birger Schacht (1):
      Fix typo

Guido Günther (1):
      Add phosh to portal's UseIn list

Quantum (2):
      Add support for 10-bit colour formats
      Implement xdpw_format_pw_strip_alpha for 10-bit colour

Simon Ser (1):
      build: bump version to 0.6.0

columbarius (64):
      screencast: pipewire add functions to dequeue and enqueue a buffer
      screencast: use dequeue/enqueue functions instead of on_process event to interact with pipewire
      screencast: remove pipewire on_event callback
      screencast: pipewire add import_wl_shm_buffer function
      screencast: rename xdpw_frame into xdpw_screencopy_frame
      screencast: only restart wlroots loop if stream is active
      screencast: implement buffer property checks wrt. xdpw_frame and xdpw_screencopy_frame
      screencast: use pipewire buffers directly for wlroots screencopy
      screencast: cleanup screencopy_frame
      screencast: only end the fps measurement when it was started before
      screencast: reorder screencopy callbacks
      screencast: introduce xdpw_frame_state and xdpw_wlr_stream_finish
      screencast: drop imported PipeWire buffer on remove_buffer
      screencast: don't fail when copy_buffer was unsuccessfull
      screencast: mark buffer as invalid when screencopy fails
      screencast: use asserts for fatal errors
      meson: bump required pipewire version to 0.3.34
      screencast: use the pipewire callback process to start screencast
      screencast: bump the prefered amount of pipewire buffers to 4
      screencast: fix missing return value assignement
      screencast: fix check on loop_iterate
      build: define _GNU_SOURCE for PipeWire 0.3.49
      screencast: don't use the PipeWire event to trigger screencast
      session: destroy screencast_instance directly when paused
      screencast: rename screencopy_frame to screencopy_frame_info
      screencast: introduce xdpw_buffer
      screencast: restructure the screencopy flow
      screencast: relax buffer flip
      screencast: use drm format instead of wl_shm
      screencast: disable instance sharing
      screencast: introduce build_formats
      screencast: add build_buffer function
      screencast: introduce buffer_type
      screencast: implement wlr_frame_linux_dmabuf
      screencast: support modifiers in build_format
      builds: add gbm and libdrm to the build environment
      screencast: create gbm device
      protocols: add wayland protocol linux-dmabuf-unstable-v1
      screencast: add linux_dmabuf to registry
      screencast: allocate dmabuf with implicit modifier
      screencast: announce implicit modifier via PipeWire
      screencast: add option to force implicit modifier to be linear
      screencast: HACK set an arbitrary chunk size for dmabufs
      screencast: improve logging for pipewire events
      screencast: remove swap_buffer function
      screencast: enqueue pipewire when screencopy failed
      screencast: support multiplane buffers with xdpw_buffer
      screencast: support allocation of buffers with explicit modifiers
      screencast: check if pipewire returns a modifier list
      screencast: fixate modifier from PipeWire format negotiation result
      screencast: stop assuming that allocation with implicit modifier works
      screencast: get supported format modifier pairs from wlroots
      screencast: add function to query supported modifiers for a format
      screencast: announce supported explicit modifiers
      screencast: Remove MESA hack from the old gbm api fallback
      protocols: Use protocols from the wayland-protocols dependency
      meson: bump version and replace deprecated functions
      screencast: use dmabuf_feedback
      screencast: skip duplicated format-modifier pairs
      screencast: fix handler logging for tranche_formats
      screencast: use wl_array for format-modifier-pairs
      screencast: destroy session if output is removed
      screencast: send pesentation timestamp via PipeWire
      screencast: check if a valid format was received from wlr_screencopy

0.5.0

Choose a tag to compare

@emersion emersion released this 05 Nov 15:28
v0.5.0
xdg-desktop-portal-wlr v0.5.0

This release contains a handful of bug fixes and minor improvements.

GermainZ (1):
      Fix potential memory corruption when reading bools

Jan Beich (1):
      ci: drop FreeBSD workaround after 22af25749e29

Simon Ser (3):
      build: bump version to 0.4.0
      Handle POLLHUP
      build: bump version to 0.5.0

Tobias Langendorf (1):
      Fix exec_before/after leaving a zombie process behind

columbarius (16):
      config: handle missing HOME env variable gracefully
      screencast: limit screencast framerate by output framerate
      screencast: respect the maximal framerate negotiated by pipewire
      screencast: don't rely on the structure of xdpw_screencast_instance to convert formats
      pipewire: move enumformat creation into seperate function
      pipewire: add the striped format inside of build_format
      pipewire: stop announcing a range as the video size
      screencast: add logging to pwr_handle_stream_param_changed in pipewire_sreencast.c
      screencast: create pwr_update_stream_param
      screencast: update pipewire params on buffer change
      screencast: announce supported buffer type
      screencast: pipewire add {add,remove}_buffer handler
      screencast: pipewire move buffer information from pwr_on_event to pwr_handle_stream_add_buffer
      screencast: pipewire remove uneeded PW_STREAM_FLAG_MAP_BUFFERS flag
      screencast: pipewire change to self allocation of shm buffers
      screencast: fix pipewire default id_node

0.4.0

Choose a tag to compare

@emersion emersion released this 01 Jun 15:32
v0.4.0
xdg-desktop-portal-wlr v0.4.0

This release contains a few improvements and some bug fixes.

Note for packagers: the iniparser dependency has been replaced with
inih.

Note for users: some CLI options have been replaced with config options.
Quotes in the config file are no longer allowed.

Simon Ser (7):
      Remove -o and -f options
      Add wlroots to portal manifest UseIn list
      Add -r flag to slurp
      readme: update "Manual startup" section
      readme: add dbus-update-activation-environment command
      contrib/systemd: add ConditionEnvironment
      readme: update IRC channel

Stefano Ragni (1):
      wlr_screencast: fix return value on cmd failure

Tobias Jakobi (4):
      screencast: bring function names in line with the wlroots guidelines
      screencast: protect against NULL stream in xdpw_pwr_stream_destroy()
      screencast: improve cleanup on error in xdpw_screencast_init()
      screencast: move xdpw_pwr_stream_destroy() up

Tobias Langendorf (2):
      screenshot: implement `interactive` option
      screenshot: implement PickColor method

columbarius (10):
      wlr_screencopy: make sure xdg_output_manager is supported
      Revert "screencast: workaround corrupted output_list"
      config: use inih instead if iniparser
      doc: remove quotes from samples
      config: add missing keys to print_config
      screencast: add prompt to dmenu style default choosers
      config: fix memory leak config_home_fallback
      config: parse XDG_CURRENT_DESKTOP as a list
      doc: add note about the list character of env XDG_CURRENT_DESKTOP
      config: fix format specifier for max_fps