H265/HEVC using Gstreamer on Snapdragon 820 (Linux)

If you’ve been doing any Linux development recently on the Qualcomm Snapdragon 820, then you’re probably using the Linux kernel that Linaro are looking after on behalf of Qualcomm.

Linaro’s development is progressing well but I still occasionally come across something that hasn’t yet been implemented in the 820’s Linux kernel, particularly in the Venus codec driver. The Venus codec driver does generally work well but I have occasionally needed to patch it to support more advanced codec settings, for example to support a more specific configuration of I-frames / IDR frames than the default.

One such area lacking at the moment in the Venus codec driver is support for H265/HEVC from Gstreamer via the new v4l2h265enc interface. If you would like to make use of that then you can use my patch here which adds support for two controls which are required by the Gstreamer HEVC module (HEVC profile and HEVC level). After patching your kernel with my patch you can perform an H265/HEVC encode from Gstreamer as follows:

gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! v4l2h265enc extra-controls=”controls,hevc_profile=0,hevc_level=0;” ! queue ! filesink location=enc.h265

Do remember that you will need to be using a relatively recent version of gstreamer in order to have support for the new v4l2h265enc module. If you would like to build the latest gstreamer code then I would recommend using the gst-build system described here.

Bookmark and Share This Article
[del.icio.us] [Digg] [Google] [Reddit] [Slashdot] [StumbleUpon] [Technorati] [Twitter] [Yahoo!] [Email]
This entry was posted in Uncategorized and tagged , , , , , , , , , , , , , , , . Bookmark the permalink.

Comments are closed.