v0.0.6
What's Changed
- Multi-threaded decode. In previous versions the final steps of decoding a frame would only be started when vaExportSurfaceHandle was called. This wasn't correct, and only worked because ffmpeg based applications (such as Firefox) call it every frame, however that isn't required by VA-API. This change moves the final steps to a separate thread that begins when vaEndPicture is called.
- Reworked GPU selection. We now use the the passed-in DRM fd to attempt to select the correct GPU to use. This can be overridden with the
NVD_GPU
environment variable which you can set to the id of the GPU you want to use. You can use thenvidia-smi
tool to find the id. - Added option to limit the maximum instances per process using the
NVD_MAX_INSTANCES
environment variable. This setting limits how many concurrent contexts are allow, which can limit the amount of memory that's used. Useful for GPUs with limited VRAM on video heavy websites. - Added missing libva dependency to build, and set the minimum required version to 2.8.0.
- Set EGL_SUPPORT_REUSE_NV to false when creating the EGLStream. This prevents NVIDIA's EGL library from buffering one of the frames, which could lead to the driver leaking that frame.
- Update README.md to remove mention of FF96 being in beta. by @AdamSzopa in #55
- meson: Add a wrap file for ff-nvcodec-headers by @nirbheek in #59
- Add alignment and remove static by @pobrn in #67
- vabackend: fix alignment of codecs by @pobrn in #72
- vabackend: retain section from linker garbage collection by @pobrn in #81
New Contributors
- @AdamSzopa made their first contribution in #55
- @nirbheek made their first contribution in #59
Full Changelog: v0.0.5...v0.0.6