Timo Rothenpieler
7fb2a7afa1
avcodec/nvenc: Deprecate usage of global_quality, introducing qp
8 years ago
Konda Raju
5f44a4a0a9
avcodec/nvenc: add initial QP value options
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
8 years ago
Miroslav Slugen
9b425bd24c
avcodec/nvenc: Add bluray_compat basic implementation
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
8 years ago
Miroslav Slugen
1841eda679
avcodec/nvenc: Make AUD optional for h264_nvenc and hevc_nvenc
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
8 years ago
Timo Rothenpieler
a66835bcb1
avcodec/nvenc: use dynamically loaded CUDA
8 years ago
Timo Rothenpieler
30c5587503
avcodec/nvenc: add support for forcing intra/idr frames
8 years ago
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
8 years ago
Timo Rothenpieler
033f98c902
avcodec/nvenc: add HEVC REXT profile
8 years ago
Yogender Gupta
70de2ea426
nvenc: Extended rate-control support as provided by SDK 7
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
8 years ago
Yogender Gupta
358c887a9f
nvenc: Add support for high bitdepth
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
8 years ago
Yogender Gupta
e02e2515b2
nvenc: Add some easier to understand presets that match x264 terminology
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
8 years ago
Timo Rothenpieler
fa3ecad071
avcodec/nvenc: correctly set inputPitch
8 years ago
Timo Rothenpieler
df615efcf2
avcodec/nvenc: check maximum driver API version
8 years ago
Oliver Collyer
a81b398e86
avcodec/nvenc: added support for rate control lookahead
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
8 years ago
Oliver Collyer
d1bf8a3aa8
avcodec/nvenc: added support for 10 bit HEVC encoding
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
8 years ago
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.
8 years ago
Timo Rothenpieler
e5babccfbc
avcodec/nvenc: Refactor timestamp generation logic
...
Directly adapted from libav
9 years ago
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>
9 years ago
Andrey Turkin
f052ef30ef
avcodec/nvenc: allow configuring number of surfaces
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
9 years ago
Andrey Turkin
f84dfbc74a
avcodec/nvenc: add rate control option
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
9 years ago
Andrey Turkin
40df468ab1
avcodec/nvenc: convert tier to AVOptions
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
9 years ago
Andrey Turkin
b0172873a8
avcodec/nvenc: convert levels to AVOptions
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
9 years ago
Andrey Turkin
9824321b32
avcodec/nvenc: convert profile parsing to AVOptions
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
9 years ago
Andrey Turkin
faffff88c2
avcodec/nvenc: use AVOptions to select presets
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
9 years ago
Andrey Turkin
7aa16d59bf
avcodec/nvenc: split H264/HEVC encoder definitions into separate files
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
9 years ago
Anton Khirnov
6f58b4dc47
nvenc: drop the hard dependency on CUDA
...
The code needs only a few definitions from cuda.h, so define them
directly when CUDA is not enabled. CUDA is still required for accepting
HW frames as input.
Based on the code by Timo Rothenpieler <timo@rothenpieler.org>.
9 years ago
Timo Rothenpieler
a1e215ea01
nvenc: Delay frame output to increase encoding speed
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
9 years ago
Vittorio Giovara
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
9 years ago
Anton Khirnov
871d0930d4
nvenc: support CUDA frames as input
9 years ago
Anton Khirnov
c51b2c79a7
Allow linking to CUDA dynamically instead of dlopen()ing it at runtime
9 years ago
Anton Khirnov
118beda355
nvenc: merge input and output surface structs
...
An input frame always corresponds to exactly one output packet, so there
is no point in complicating the situation by managing them separately.
9 years ago
Anton Khirnov
28259c13db
nvenc: factor out the pixel format list
9 years ago
Anton Khirnov
c59fec783d
nvenc: generate dts properly
...
When there is a non-zero decoding delay due to reordering, the first dts
should be lower than the first pts (since the first packet fed to the
decoder does not produce any output).
Use the same scheme used in mpegvideo_enc (which comes from x264
originally) -- wait for first two timestamps and extrapolate linearly to
the past to produce the first dts value.
9 years ago
Luca Barbato
b08caa87c3
nvenc: H264 and HEVC encoders
...
Partially based on the work of Timo Rothenpieler <timo@rothenpieler.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
10 years ago