summaryrefslogtreecommitdiff
path: root/libavcodec/nvenc.c
Commit message (Collapse)AuthorAge
* hevc: Use common SEI typesMark Thompson2021-01-21
|
* avcodec/nvenc: fix timestamp offset ticks logicTimo Rothenpieler2021-01-09
|
* lavc: Mark hw_config pointer arrays as constMark Thompson2020-11-08
| | | | They are read-only just like the HWConfig structures they point to.
* avcodec/nvenc: fix build with older SDKsTimo Rothenpieler2020-10-30
|
* avcodec/nvenc: only enforce explicitly set twopass modeTimo Rothenpieler2020-10-30
|
* avcodec/nvenc: only auto-pick vbr rc in cq modeTimo Rothenpieler2020-10-30
|
* avcodec/nvenc: all presets are SDK10 presets nowTimo Rothenpieler2020-10-29
|
* avcodec/nvenc: removed unused and deprecated fieldTimo Rothenpieler2020-10-21
|
* avcodec/nvenc: reduce automated use of deprecated modesTimo Rothenpieler2020-10-21
|
* avcodec/nvenc: mark newly deprecated rc modesTimo Rothenpieler2020-10-21
|
* avcodec/nvenc: use alias to provide deprecated profilesTimo Rothenpieler2020-10-21
|
* avcodec/nvenc: update driver versions for SDK 11.0Timo Rothenpieler2020-10-17
|
* avcodec/utils: calculate frame number of HEVC if the framerate > 30FPSLimin Wang2020-08-16
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avcodec: move ff_alloc_a53_sei() to atsc_53James Almer2020-08-15
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/nvenc: fix B-Ref-Mode support check for recent HEVCTimo Rothenpieler2020-07-28
|
* avcodec/nvenc: add new Video SDK 10 featuresRoman Arzumanyan2020-07-01
| | | | | | | | 1. new Nvenc presets 2. new multipass encode modes 3. low delay key frame scale Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: rename tc option to something more uniqueTimo Rothenpieler2020-06-30
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: support for HEVC timecode passthroughLimin Wang2020-06-28
| | | | | Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avcodec/nvenc: add more sei data supportLimin Wang2020-06-28
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avcodec/encode: restructure the core encoding codeJames Almer2020-06-18
| | | | | | | | | | | | | | | | This commit follows the same logic as 061a0c14bb, but for the encode API: The new public encoding API will no longer be a wrapper around the old deprecated one, and the internal API used by the encoders now consists of a single receive_packet() callback that pulls frames as required. amf encoders adapted by James Almer librav1e encoder adapted by James Almer nvidia encoders adapted by James Almer MediaFoundation encoders adapted by James Almer vaapi encoders adapted by Linjie Fu v4l2_m2m encoders adapted by Andriy Gelman Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/nvenc: honor max bitrate in CQ modeRoman Arzumanyan2020-06-04
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/internal: move packet related functions to their own headerJames Almer2020-06-02
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/nvenc: zero avg and max bitrate in CQ modeRoman Arzumanyan2020-06-01
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: use framerate if availableZachariah Brown2020-05-15
| | | | | | | | | | | | The h264_nvenc and hevc_nvenc encoders aren't respecting the framerate in the codec context. Instead it was using the timebase which in our use-case was 1/1000 so the encoder was behaving as if we wanted 1000fps. This resulted in poor encoding results due to an extremely low bitrate. Both the amf and qsv encoders already contain similar logic to first check the framerate before falling back to the timebase. Signed-off-by: Zachariah Brown <zachariah@renewedvision.com> Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: refactor dts calculation logicTimo Rothenpieler2020-05-02
| | | | | | | | | | | | | The old approach used some highly complex delta computation math and output-delaying. I do not remember what the initial reasoning behind that was, but given that we can just offset the dts by the amount of bframes, it seems wholy unnecessary. This leaves open an issue with VFR content, for which some more complex logic might be needed. Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: offset dts to account for b-frame reorderingTimo Rothenpieler2020-05-01
| | | | | | Fixes ticket #7303 Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: add hardware config metadataMark Thompson2020-04-27
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* nvenc: implement flush to help allow an encoder to be re-usedPhilip Langdale2020-01-08
| | | | | | It can be useful to re-use an encoder instance when doing segmented encodings, and this requires flushing the encoder at the start of each segment.
* avcodec/nvenc: make sure newly allocated packets are refcountedTimo Rothenpieler2019-11-17
| | | | | | Fixes ticket 8383 Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: turn feature check failures into warningshydra33332019-10-29
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: make use of new GetLastErrorString functionTimo Rothenpieler2019-09-27
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: pass CUstream to nvenc when availableTimo Rothenpieler2019-09-27
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: add multiple reference frames supportRoman Arzumanyan2019-09-27
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: switch to dedicated dpb_size optionTimo Rothenpieler2019-09-27
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: fix typo in new Windows driver versionTimo Rothenpieler2019-09-24
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: add driver version info for SDK 9.1Timo Rothenpieler2019-09-23
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: fix indentationTimo Rothenpieler2019-04-27
|
* avcodec/nvenc: only unregister input resources when absolutely neededTimo Rothenpieler2019-04-27
| | | | | | | | | | | | This reverts nvenc to old behaviour, which in some super rare edge cases performs better. The implication of this is that any potential API user who relies on nvenc cleaning up every frames device resources after it's done using them will have to change their usage pattern. That should not be a problem, since pretty much every normal usage pattern automatically implies that surfaces are reused from a common pool, since constant re-allocation is also very expensive.
* avcodec/nvenc: add minimum driver version for SDK 8.2 and 9.0Timo Rothenpieler2019-03-10
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: add b_as_ref support for HEVCRoman Arzumanyan2019-02-14
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avutil/hwcontext_cuda: Define and use common CHECK_CU()Philip Langdale2018-11-14
| | | | | | | | | | | | | | | | | | We have a pattern of wrapping CUDA calls to print errors and normalise return values that is used in a couple of places. To avoid duplication and increase consistency, let's put the wrapper implementation in a shared place and use it everywhere. Affects: * avcodec/cuviddec * avcodec/nvdec * avcodec/nvenc * avfilter/vf_scale_cuda * avfilter/vf_scale_npp * avfilter/vf_thumbnail_cuda * avfilter/vf_transpose_npp * avfilter/vf_yadif_cuda
* avcodec/nvenc: add option to turn off a53 closed caption embeddingTimo Rothenpieler2018-08-21
|
* avcodec/nvenc: enable nvenc encoder instance reusePavel Koshevoy2018-06-15
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* Revert "avcodec/nvenc: make hw_frames_ctx fully optional"Timo Rothenpieler2018-05-10
| | | | | | | | This reverts commit 7d4e1f7cfb667585514bfa0a4d0fee2f717a93ed. Accidentially pushed this with a batch of other patches, and it didn't seem to break anything, so I went with it. Except it does, so reverting it it is.
* avcodec/nvenc: move reconfig_encoder call inside of push/pop ctxTimo Rothenpieler2018-05-04
| | | | Also make it void, it must not fail the encode anyway.
* avcodec/nvenc: add A53CC supportRoman Arzumanyan2018-05-04
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: support dynamic bitrate changespkviet2018-05-04
| | | | | | | | | The patch enables dynamic bitrate through ReconfigureEncoder method from nvenc API. This is useful for live streaming in case of network congestion. Signed-off-by: pkviet <pkv.stream@gmail.com> Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: support dynamic aspect ratio changeMiroslav Slugeň2018-05-04
| | | | | | | | If there is input like DVB-T streams it can change aspect ratio on-the-fly, so nvenc should respect this change and change aspect ratio in encoder. Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avcodec/nvenc: make hw_frames_ctx fully optionalTimo Rothenpieler2018-05-04
|
* avcodec/nv{enc,dec}: use sane version checking macroTimo Rothenpieler2018-04-13
| | | | | For some odd reason, the Nvidia version macros puts the minor version in the msb, so comparing against it is impossible.