[vlc-devel] [PATCH] Adds Support for Intel's QuickSync Video encoder

Julien 'Lta' BALLET elthariel at gmail.com
Wed May 8 22:04:20 CEST 2013


The first patch adds a new encoder for h264 and mpeg2 based on Intel
'QuickSync Video' technology. This allows for hardware acceleration of
encoding for these two formats. Use of this new feature of intel's
processors requires to use their 'Media SDK'. An opensource 'dispatcher' is
provided by Intel to select between software and hardware mode, and to
avoid linking with their proprietary library. An autotooled/cmaked version
can be found here : https://github.com/lu-zero/mfx_dispatch. The Cmake
version is required as for now, since the configure code the patch adds
uses the pkg-config file, which is only generated by cmake.

I gotta warn you, there's a small spinlock in the encode loop which cannot
be removed unless you wanna loose frames (and maybe create a passage to
another dimension full of ponies), but it's only triggered once every 2-5s.

This encoder requires NV12 as its input, this is why i also provide a
second patch including a naive i420 to nv12 video_chroma filter, in order
to avoid to use swscale for a simple chroma conversion.
I'm pretty sure there are many folks out there who can turn this naive C
implementation into a fast & furious MMX/SSE4/WTF implementation, and i
hope at some point, one of them will bravely rise and patch it.

Many thanks in advance to the lovely one who'll take the time to review the

Julien 'Lta' BALLET.

PS: I'll offer a beer to the guy who commits the patches, whenever they
pass the review.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20130508/5f203a81/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Adds-Intel-QuickSync-Video-encoder.patch
Type: application/octet-stream
Size: 32710 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20130508/5f203a81/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Adds-a-I420-NV12-chroma_filter-c-implementation.patch
Type: application/octet-stream
Size: 4951 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20130508/5f203a81/attachment-0001.obj>

More information about the vlc-devel mailing list