Timo Rothenpieler
1f76235dd4
avcodec/nvenc: remove unnecessary alignment
...
Fixes #6260
2017-05-23 11:59:21 +02:00
Sven C. Dack
da4d0fa86b
avcodec/nvenc: add test for Temporal AQ support
...
Adds a check to see if the hardware supports temporal aq.
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-10-19 12:41:41 +02: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
a81b000a39
avcodec/nvenc: Make sure that enum and array index match
...
Based on libav commits by Luca Barbato and Yogender Gupta:
https://git.libav.org/?p=libav.git;a=commit;h=352741b5ead1543d775ccf6040f33023e4491186
https://git.libav.org/?p=libav.git;a=commit;h=e02e2515b24bfc37ede6ca1744696230be55e50b
2016-09-28 16:48:43 +02:00
James Almer
dc48248ea8
avcodec/nvenc: use AVERROR_BUFFER_TOO_SMALL instead of ENOBUFS
...
Should fix compilation with mingw32
Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-09-24 15:48:30 -03:00
Timo Rothenpieler
8ebe1dddfb
avcodec/nvenc: use frame size instead of surface size
2016-09-08 19:08:31 +02:00
Sven C. Dack
4aeb7a88ec
avcodec/nvenc: support RGB input
...
nvenc still encodes as yuv, but does the conversion internally which
brings some performance gains.
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-09-07 18:44:10 +02:00
Timo Rothenpieler
fa3ecad071
avcodec/nvenc: correctly set inputPitch
2016-09-07 18:44:10 +02:00
Timo Rothenpieler
96cba1c552
avcodec/nvenc: use av_image_copy for copying frame data
2016-09-07 18:44:10 +02:00
Timo Rothenpieler
cac2df230e
avcodec/nvenc: update license header
2016-08-28 19:51:22 +02:00
Timo Rothenpieler
26a5cbd781
avcodec/nvenc: use proper soname for cuda/nvenc libraries
2016-08-28 19:49:56 +02:00
Timo Rothenpieler
df615efcf2
avcodec/nvenc: check maximum driver API version
2016-08-28 19:46:44 +02:00
Timo Rothenpieler
a19989cae5
avcodec/nvenc: fix potantially uninitialized free
2016-08-28 18:58:05 +02:00
Timo Rothenpieler
19e75fd883
avcodec/nvenc: fix library names on cygwin
2016-08-28 18:58:05 +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
Clément Bœsch
8ef57a0d61
Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'
...
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb':
cosmetics: Fix spelling mistakes
Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 21:55:34 +02:00
Timo Rothenpieler
808356c61c
avcodec/nvenc: Check capabilities for interlaced encoding
2016-06-06 23:52:55 +02:00
Timo Rothenpieler
7c55f5d782
avcodec/nvenc: Don't set packet duration
...
It's not expected to be set on video packets and causes issues in
ffmpeg.c.
2016-06-04 12:20:59 +02:00
Timo Rothenpieler
e5babccfbc
avcodec/nvenc: Refactor timestamp generation logic
...
Directly adapted from libav
2016-05-31 18:59:37 +02:00
Timo Rothenpieler
69c25c0ad7
avcodec/nvenc: forward frame duration
2016-05-31 18:39:28 +02:00
Timo Rothenpieler
971351b664
avcodec/nvenc: Handle minqp-only case in set_vbr
2016-05-31 17:00:07 +02:00
Timo Rothenpieler
eae4eba9cb
avcodec/nvenc: twopass mode works in all modes
2016-05-31 16:55:24 +02:00
Timo Rothenpieler
1330a0f31f
avcodec/nvenc: Fix forcing constqp rc mode
...
The CONSTQP enum value is 0, so this check failed for it.
2016-05-31 16:53:38 +02:00
Andrey Turkin
58c6dcb4b7
avcodec/nvenc: don't enqueue timestamps until a frame was accepted
...
Otherwise timestamps/pending FIFOs would go out of sync if nvEncodePicture ever fails.
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 16:50:45 +02:00
Andrey Turkin
2f53b5b74b
avcodec/nvenc: refactor encode_frame a bit
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 16:47:07 +02:00
Andrey Turkin
d3463912c1
avcodec/nvenc: extract timestamp calculations into separate function
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31 16:32:03 +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
b69335304d
avcodec/nvenc: use INIT_CLEANUP to deal with init failures
...
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
Timo Rothenpieler
24fcb23351
avcodec/nvenc: Require Maxwell for lossless
2016-05-25 12:16:54 +02:00
Andrey Turkin
a8cf25dd92
avcodec/nvenc: CUDA frames support
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-25 12:16:48 +02:00
Andrey Turkin
cfb49fc6f7
avcodec/nvenc: replace custom FIFOs with AVFifos
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-25 12:16:45 +02:00
Andrey Turkin
e1691c44f0
avcodec/nvenc: combine input and output surface structures
...
There is no point in separate structures as they have 1:1 relationship,
they are always used together and they have same lifetime.
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-25 12:16:40 +02:00
Andrey Turkin
82d705e245
avcodec/nvenc: split large functions into smaller ones
...
Functions names and scopes are from libav. This commit basically moves
code around without changing it; it shouldn't change any functionality
except some small leak fixes on error paths.
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-25 12:16:33 +02:00
Timo Rothenpieler
c921ca9b5d
avcodec/nvenc: Write buffPeriod/picTime SEI in both CBR modes
2016-05-11 12:58:52 +02:00
Timo Rothenpieler
3a9df7dfec
avcodec/nvenc: Generate bufferingPeriod/pictureTiming SEI
...
For some unknown reason enabling these causes propper CBR padding,
so as there are no known downsides just always enable them in CBR mode.
2016-05-11 10:34:31 +02:00
Timo Rothenpieler
31ce01bdb9
avcodec/nvenc: don't set profile in lossless mode
2016-05-06 10:15:29 +02:00
Vittorio Giovara
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Timo Rothenpieler
c4312b1cf4
avcodec/nvenc: Add missing lossless presets to doc string
2016-04-27 22:22:29 +02:00
Timo Rothenpieler
b3557c79dc
avcodec/nvenc: Generate AUD NAL units for better compatiblity
2016-03-30 12:03:59 +02:00
Timo Rothenpieler
f2bdf9d26a
avcodec/nvenc: Fix typo and preset error message
2016-03-08 11:18:16 +01:00