[FFmpeg-devel] [PATCH] avcodec: add D3D12VA hardware accelerated H264, HEVC, VP9, and AV1 decoding

Lynne dev at lynne.ee
Thu Oct 13 15:37:19 EEST 2022


Oct 12, 2022, 13:09 by toqsxw at outlook.com:

> [PATCH] avcodec: add D3D12VA hardware accelerated H264, HEVC, VP9, and AV1 decoding
>
> Patch attached.
>

The Sync locking functions and the queue locking functions should
be a function pointer in the device/frame context. Vulkan has
the same issue, and that's how I did it there. This allows for
API users to plug their own locking primitives in, which they need
to in case they initialize their own contexts.

You should also document which fields API users have to set
themselves if they plan to use their own context.

Also, struct names in the public context lack an AV prefix.

D3D12VA_MAX_SURFACES is a terrible hack. Vendors should
fix their own drivers rather than users running out of memory.

Also, you have code style issues, don't wrap one-line if statements
or loops in brackets.

ff_d3d12dec_get_suitable_max_bitstream_size is an awful function.
It does float math for sizes and has a magic mult factor of 1.5.
You have to calculate this properly.

On a first look, this is what stands out. Really must be split apart
in patches.


More information about the ffmpeg-devel mailing list