2020-09-14

DXVA AV1 decoding in VLC

As AV1, the royalty free video codec, is getting some traction, hardware decoding is finally arriving. On PC the new NVIDIA RTX 30 GPUs and Intel Tiger Lake/Xe GPUs can support hardware decoding of 8-bit and 10-bit 4:2:0 sources (the most common formats for online videos). That's sufficient to decode 4K HDR content with moderate power usage.

dav1d, the AV1 software decoder, has been adopted by almost everyone. It's the fastest on all CPU platforms. So it was only natural to add hardware decoder in there to make it even faster when the hardware can help. With the help of some test code by one of the DXVA AV1 spec author, after some fixing tweaking, testing, wrapping in VLC I managed to get AV1 decoding on the NVIDIA and Intel (test) hardware on Windows 10.

Since the DXVA AV1 spec is still marked as subject to changes and Microsoft didn't add the relevant structures in its latest Windows 10.0.19041.0 SDK, the code is still in alpha status and not merged in dav1d/VLC (and wine/mingw64 which are the toolchains VLC uses).

If you have any of these hardware and want to test AV1 decoding you can download this special VLC 4.0 build. Only Windows 7/8/10 64 bits is supported. It is signed by VideoLAN to make sure it's legit.

You also get a glimpse of the new VLC 4.0 refeshed UI and medialibrary as a bonus.