[FFmpeg-devel] Added HW accelerated H.264 and HEVC encoding for AMD GPUs based on AMF SDK

Philip Langdale philipl at overt.org
Thu Oct 26 23:53:58 EEST 2017

On 2017-09-29 09:56, wm4 wrote:
> On Fri, 29 Sep 2017 15:04:00 +0000
> "Mironov, Mikhail" <Mikhail.Mironov at amd.com> wrote:
>> I would like to understand better the nature of the concern. The 
>> license is MIT. The paragraph in question is a notice, not limiting 
>> the usage of the SDK.
>> I can definitely reduce number of headers. I can merge all necessary 
>> interfaces into one header, though maintenance will take more 
>> resources. Which way would you prefer?
> Ideally, these headers would just be easily installable by whoever
> wants to build FFmpeg with AMF. This is how it works normally for
> external libraries.
> I don't even understand why we added those NVIDIA and avisynth headers
> (the other things in compat are for basic OS compatibility, so not
> comparable). For NVIDIA in particular it's probably because installing
> their SDK is a major PITA and there was something about license issues.
> Maybe someone else could chime in why this was done?
> At least for nvenc there was an explanation given in the commit 
> message:
>     As Nvidia has put the most recent Video Codec SDK behind a double
>     registration wall, of which one needs manual approval of a lenghty
>     application, bundling this header saves everyone trying to use 
>     from that headache.
>     The header is still MIT licensed and thus fine to bundle with 
> ffmpeg.
>     Not bundling this header would get ffmpeg stuck at SDK v6, which is
>     still freely available, holding back future development of the 
>     encoder.
> So basically, NVIDIA being... let's say, "not nice". I don't think this
> will be a problem with AMD.
> Again, we generally don't add headers for external libraries in-tree.

For the record,

the nvenc header is there for the reason stated: it's too hard to 
obtain, and when you do obtain it, it's not in an installable form, so 
don't know how to find it on the build machine in any sane way.

The cuda headers in our tree are there because there were actually 
engineered, as the official cuda headers don't have a reasonable 


More information about the ffmpeg-devel mailing list