dav1d Documentation

repository·master·Indexed 20 days ago

https://github.com/videolan/dav1d

A high-performance, cross-platform AV1 decoder written in pure C and assembly. Supports multiple architectures including x86 (AVX2, SSSE3) and ARM (v7, v8). Documentation covers building from source using Meson and Ninja, cross-compilation for Windows and 32-bit Linux, running test suites and Argon conformance tests, and understanding the distinction between Project and API versioning.

Tokens
859
Snippets
5
Records
7
Agent score
23%

What's inside dav1d

  1. Run dav1d tests

    master

    To run the standard test suite, you must first fetch the required test data.

    1. Clone the test data into the tests/dav1d-test-data directory.
    2. Configure meson with -Dtestdata_tests=true.
    3. Compile and run the tests using meson test -v.
    git clone https://code.videolan.org/videolan/dav1d-test-data.git tests/dav1d-test-data
    # (After meson setup with -Dtestdata_tests=true and compilation)
    meson test -v
  2. Cross-compile dav1d for Windows or 32-bit Linux

    master

    If you are on a Linux machine and need to target Windows or 32-bit Linux, you must have mingw-w64 installed. Use the provided cross-files during the meson setup phase.

    For 64-bit Windows (mingw-w64):

    meson setup .. --cross-file=../package/crossfiles/x86_64-w64-mingw32.meson

    For 32-bit Windows (mingw-w64):

    meson setup .. --cross-file=../package/crossfiles/i686-w64-mingw32.meson

    For 32-bit Linux:

    meson setup .. --cross-file=../package/crossfiles/i686-linux32.meson
  3. Compile dav1d using Meson and Ninja

    master

    To build dav1d from source, you need Meson (0.54 or higher), Ninja, and nasm (2.14 or higher) for x86* targets.

    Follow these steps for a standard build:

    1. Create and enter a build directory.
    2. Configure the build using meson setup. Use --default-library=static if you require a static library.
    3. Compile using ninja.
    mkdir build && cd build
    meson setup .. 
    ninja
  4. Identify dav1d version information

    master

    The dav1d project exposes versioning information through two distinct sets of identifiers: PROJECT_VERSION and API_VERSION.

    • Project Version: Refers to the specific release version of the dav1d software.
    • API Version: Refers to the version of the public API, which may differ from the project version to ensure backward compatibility.

    When inspecting binary metadata (such as Windows file properties), these are mapped to ProductVersion and FileVersion respectively.

  5. Identify dav1d API and Project versions

    master
    The dav1d library exposes two distinct versioning schemes: the API version (representing the stability and compatibility of the public interface) and the Project version (representing the specific release of the library). When integrating with dav1d, use the API version to ensure compatibility with your code's expectations.