Skip to content

Draft: vulkan: add h26x encoders support

Stéphane Cerveau requested to merge dabrain34/gstreamer:dab_vkencode_h26x into main

Introduction

This work intends to provide support to final specifications allowing to encode media content using Vulkan API. See https://www.khronos.org/blog/khronos-finalizes-vulkan-video-extensions-for-accelerated-h.264-and-h.265-encode?mc_cid=e4afdbcd22&mc_eid=47d3c1b7bb

This MR is now complete and can encode video content in h264 and h265 with I, P and B frames.

Tt has been tested on both Windows and Linux with compatible drivers to the KHR extensions.

Compatible drivers

How to build it

You need latest VulkanSDK from LunarG > 1.3.274:

  1. install it through https://www.lunarg.com/vulkan-sdk/
$ meson setup builddir -Dgst-plugins-bad:vulkan-video=enabled 

$ ninja -C builddir

Missing features

  • H264 b-frames support.
  • H265 b-frames support.

Test

  • Need Vulkan SDK >= 1.3.274 and suitable IHV drivers.

Depends in !6676

Edited by Stéphane Cerveau

Merge request reports