Skip to content

Draft: videoconvert: Add vulkan converter

columbarius requested to merge columbarius/pipewire:videoconvert into master

This work was done as a GSOC 2023 Project to implement a way to convert videoformats in case client capabilities don't overlap.

The goal of the MR is creating a videoconvert plugin leveraging vulkans vkCmdBlitImage implemented as a spa_node based filter in !1644 (merged). Currently it requires manual configuration via PIPEWIRE_REMOTE=pipewire-1 pw-cli set-param <node-id> PortConfig "{"direction": 0, "mode": 2}".

Producers are run in passtrough mode, while clients should run in passtrough if formats are compatible or convert mode if convertion is required.


  1. Build the branch and enter the build directory with ninja -C <builddir> pw-uninstalled
  2. Start the video-src example and get the id if the node
  3. Start the sink with PIPEWIRE_NODE=<src-id> video-play
  4. Set the mode of the converter with pw-cli set-param <sink-id> PortConfig "{"direction": 0, "mode": 2}"
  5. Inspect the configuration with pw-dump

Based on:

Edited by columbarius

Merge request reports