Skip to content

add a hardware-only AV1 decoder via libavcodec

Steve Lhomme requested to merge robUx4/vlc:ffav1 into master

Slightly different code from !330 (closed):

  • AV1 only
  • opens the decoder normally and then creates the VA with the proper AVCodecContext fields
  • the VA is not allowed to change after that (this is the case for AV1)
  • there is a flag to tell the decoder is hardware only to forbid fallback to software decoding

AV1 either has a sequence header in files that cannot change during the whole file, or the packetizer detects sequence header changes and restart the decoder accordingly (OBU files concatenated).

This is a more stable alternative to !1705 (closed) which relies on an unmerged dav1d patch and should work for VAAPI and VDPAU as well. It's also easier to backport to 3.0 as it doesn't rely on decoder devices and video contexts.

Merge request reports