What's Changed
- Reworked surface export process. The previous surface export method (the key piece of code that made this library possible) only used two EGLImages to export finished frames to the client. Unfortunately this led to some weird artifacts where the wrong frame would end up in the EGLImage before the client used it. The export process has now been changed to have as many EGLImages as the client needs. This uses more memory, but fixes all the know visual glitches and has slightly less per-frame overhead.
- Better clean-up on terminate. Some EGLImages were being left in memory causing a memory leak.
- Improved surface allocation. Some clients don't provide a list of surfaces on context creation, so we need to take a guess at how many decode surfaces we need.
- Improved device checking. Check the DRM render node if available instead of the master node, as that can generate an error message in the kernel log.
- Added check for 16-bit surface support. We now check the driver to see if it has 16-bit surface support. Hopefully this will be added in a future NVIDIA driver version.
Full Changelog: v0.0.3...v0.0.4