What AV1 Hardware Decoding APIs Are Supported by libaom?

This article provides an overview of how the Alliance for Open Media’s reference software, libaom, handles AV1 video decoding. While libaom itself is primarily a CPU-based software codec implementation, it does not directly implement hardware acceleration APIs. Instead, hardware decoding of AV1 is handled by system-level media frameworks, graphics drivers, and multimedia libraries like FFmpeg, which integrate libaom for software fallback. Below, we explore how hardware decoding interfaces interact with the AV1 ecosystem and the role libaom plays.

The Role of libaom in AV1 Decoding

The libaom library is the official reference implementation for the AV1 video coding format, developed by the Alliance for Open Media (AOMedia). Its primary purpose is to provide a highly accurate, compliant, and optimized software encoder and decoder (aomdec). Because it is designed as a software reference, libaom’s source code does not natively embed hardware acceleration APIs like DXVA2, NVDEC, or VA-API. Instead, it serves as the baseline standard that hardware manufacturers use to verify that their dedicated hardware decoders produce identical, compliant output.

Native Hardware Decoding APIs for AV1

When applications require hardware-accelerated AV1 decoding to reduce CPU usage and power consumption, they bypass libaom’s software decoding routines and communicate directly with the operating system’s multimedia or GPU acceleration APIs. The primary APIs capable of driving AV1 hardware decoding chips include:

How Applications Bridge libaom and Hardware APIs

Multimedia frameworks like FFmpeg or VLC bridge the gap for developers. In an application utilizing FFmpeg, for example, the framework can be configured to check for the presence of a hardware-accelerated decoder pipeline (such as using av1_nvdec or av1_vaapi). If compatible hardware components or driver APIs are missing on the host system, the framework automatically falls back to utilizing software decoding libraries like libaom or the highly optimized dav1d library to ensure the video can still be played back successfully.