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.

Instructions:

  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