[FFmpeg-devel] [PATCH v3 0/5] VAAPI support infrastructure, encoders
sw at jkqxz.net
Mon Jan 18 23:47:00 CET 2016
Following* is another attempt, eliminating all global state (and making the user set it up instead).
* Patch 1 loses all of the initialisation code while changing the hardware context structure to both be compatible with the one currently used by the decoder and to support locking.
* Patch 2 adds the initialisation code in a simpler form, and hacks it rather nastily into the ffmpeg driver in order to demonstrate this all working (a new top-level option -vaapi). The hwaccel helper stays the same. The setup here is not sensible yet, it needs to be integrated more coherently.
* Patches 3-5 are essentially the same as before, except they now receive the hardware context through a user-set option rather than from global state.
* The decoder should also be updated to lock its use of the hardware context, but I have not done that here due to compatibility concerns.
* The vaapi filter doesn't actually work from the ffmpeg driver now - I'm not seeing how to pass the required extra option into the filter graph without ridiculous hackery.
* It still needs libva at least 1.6 to build at all (ran into this trying to build on Ubuntu 14.04; no H.265 in headers means it doesn't build at all).
Decode and encode:
./ffmpeg -vaapi :0 -hwaccel vaapi -i in.mp4 -an -c:v vaapi_h264 -qp 26 -idr_interval 120 out.mp4
More information about the ffmpeg-devel