Timo Rothenpieler
a56d0497cb
avcodec/nvenc: migrate to new encode API
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-09-07 12:08:32 +02:00
Timo Rothenpieler
a0b69e2b0a
avcodec/nvenc: add support for specifying entropy coding mode
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-09-01 10:52:15 +02:00
Sumit Agarwal
01775730fd
avcodec/nvenc: add weighted prediction support
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-05-10 10:22:41 +02:00
Ben Chang
18a659d1b6
avcodec/nvenc: add fractional CQ support
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-05-10 10:21:25 +02:00
Timo Rothenpieler
cfbebe9dda
avcodec/nvenc: deprecated old rc modes, add new ones
2017-05-09 18:38:30 +02:00
Ben Chang
8de3458a07
avcodec/nvenc: surface allocation reduction
...
This patch aims to reduce the number of input/output surfaces
NVENC allocates per session. Previous default sets allocated surfaces to 32
(unless there is user specified param or lookahead involved). Having large
number of surfaces consumes extra video memory (esp for higher resolution
encoding). The patch changes the surfaces calculation for default, B-frames,
lookahead scenario respectively.
The other change involves surface selection. Previously, if a session
allocates x surfaces, only x-1 surfaces are used (due to combination
of output delay and lock toggle logic). To prevent unused surfaces,
changing surface rotation to using predefined fifo.
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-04-26 21:57:54 +02:00
Timo Rothenpieler
7fb2a7afa1
avcodec/nvenc: Deprecate usage of global_quality, introducing qp
2017-03-23 17:10:52 +01:00
Konda Raju
5f44a4a0a9
avcodec/nvenc: add initial QP value options
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-03-01 13:15:34 +01:00
Miroslav Slugen
9b425bd24c
avcodec/nvenc: Add bluray_compat basic implementation
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-01-01 14:47:25 +01:00
Miroslav Slugen
1841eda679
avcodec/nvenc: Make AUD optional for h264_nvenc and hevc_nvenc
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-01-01 14:37:09 +01:00
Timo Rothenpieler
a66835bcb1
avcodec/nvenc: use dynamically loaded CUDA
2016-11-22 10:34:27 +01:00
Timo Rothenpieler
30c5587503
avcodec/nvenc: add support for forcing intra/idr frames
2016-10-12 20:51:43 +02:00
Yogender Gupta
facc19ef06
avcodec/nvenc: Extended rate-control support as provided by SDK 7
...
Merged from libav commit by Yogender Gupta:
https://git.libav.org/?p=libav.git;a=commitdiff;h=70de2ea4261f860457a04e3d0c58c5543f403325
2016-09-28 16:48:43 +02:00
Timo Rothenpieler
033f98c902
avcodec/nvenc: add HEVC REXT profile
2016-09-28 16:48:43 +02:00
Timo Rothenpieler
fa3ecad071
avcodec/nvenc: correctly set inputPitch
2016-09-07 18:44:10 +02:00
Timo Rothenpieler
df615efcf2
avcodec/nvenc: check maximum driver API version
2016-08-28 19:46:44 +02:00
Oliver Collyer
a81b398e86
avcodec/nvenc: added support for rate control lookahead
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-08-28 16:47:54 +02:00
Oliver Collyer
d1bf8a3aa8
avcodec/nvenc: added support for 10 bit HEVC encoding
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-08-28 16:47:54 +02:00
Timo Rothenpieler
325e56479f
avcodec/nvenc: include nvEncodeAPI v7 SDK header
...
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 NVENC
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 NVENC
encoder.
2016-08-28 16:47:54 +02:00
Timo Rothenpieler
e5babccfbc
avcodec/nvenc: Refactor timestamp generation logic
...
Directly adapted from libav
2016-05-31 18:59:37 +02:00
Andrey Turkin
0d021cc8b3
avcodec/nvenc: rework library load and GPU selection
...
Use explicit nvenc capability checks instead to determine usable devices
instead of SM versions.
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 16:04:53 +02:00
Andrey Turkin
f052ef30ef
avcodec/nvenc: allow configuring number of surfaces
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
f84dfbc74a
avcodec/nvenc: add rate control option
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
40df468ab1
avcodec/nvenc: convert tier to AVOptions
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
b0172873a8
avcodec/nvenc: convert levels to AVOptions
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
9824321b32
avcodec/nvenc: convert profile parsing to AVOptions
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
faffff88c2
avcodec/nvenc: use AVOptions to select presets
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 15:48:43 +02:00
Andrey Turkin
7aa16d59bf
avcodec/nvenc: split H264/HEVC encoder definitions into separate files
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 11:15:19 +00:00