gstreamer/sys/nvenc
Matthew Marsh 0e34c02dd6 nvenc: fix high CPU use on initialization of multiple encoders at the same time
We need a static lock to protect various NVENC methods in _set_format(). Without
this the CPU use increases dramatically on initialisation of the element when
there are multiple elements being initialised at the same time.

https://bugzilla.gnome.org/show_bug.cgi?id=759742
2015-12-22 13:27:51 +00:00
..
gstnvbaseenc.c nvenc: fix high CPU use on initialization of multiple encoders at the same time 2015-12-22 13:27:51 +00:00
gstnvbaseenc.h Add Nvidia based hardware encoder element 2015-09-29 15:32:17 +10:00
gstnvenc.c Add Nvidia based hardware encoder element 2015-09-29 15:32:17 +10:00
gstnvenc.h Add Nvidia based hardware encoder element 2015-09-29 15:32:17 +10:00
gstnvh264enc.c Add Nvidia based hardware encoder element 2015-09-29 15:32:17 +10:00
gstnvh264enc.h Add Nvidia based hardware encoder element 2015-09-29 15:32:17 +10:00
Makefile.am Add Nvidia based hardware encoder element 2015-09-29 15:32:17 +10:00
README Add Nvidia based hardware encoder element 2015-09-29 15:32:17 +10:00
TODO Add Nvidia based hardware encoder element 2015-09-29 15:32:17 +10:00

This plugin is intended for use with NVIDIA hardware.  Specifically, the NVENC
block available in recent NVIDIA GPU hardware.  This is provided by a
libnvidia-encode library provided by NVIDIA graphic drivers.

Requirements
------------
Cuda > 6.5
NVENC 5.0

See https://developer.nvidia.com/nvidia-video-codec-sdk for a list of
supported GPU's.

Building
--------
1. Retrieve the NVENC SDK
from https://developer.nvidia.com/nvidia-video-codec-sdk
- http://developer.download.nvidia.com/compute/nvenc/v5.0/nvenc_5.0.1_sdk.zip
2. unzip this somewhere and retreive or note the location of the
nvEncodeAPI.h under nvenc_api-5.0.1/Samples/common/inc/
3. Retreive a version of cuda from
https://developer.nvidia.com/cuda-downloads and install somewhere noting
the installation prefix (typically /opt/cuda or /usr/local/cuda)
4. Now that the dependencies are sorted, there are a couple of
environment variables and/or or configure arguments that are needed to
detect the necessary libraries/headers.

More information is available from the following locations

[1] - https://developer.nvidia.com/cuda-downloads
[2] - https://developer.nvidia.com/nvidia-video-codec-sdk