Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-05-03avcodec/nvenc_h264: add spatial_aq and temporal_aq option to consistent with ↵Limin Wang
nvenc_hevc Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-04-28avcodec/nvenc: add hardware config metadataMark Thompson
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2020-04-16avcodec: Add explicit capability flag for encoder flushingPhilip Langdale
Previously, there was no way to flush an encoder such that after draining, the encoder could be used again. We generally suggested that clients teardown and replace the encoder instance in these situations. However, for at least some hardware encoders, the cost of this tear down/replace cycle is very high, which can get in the way of some use-cases - for example: segmented encoding with nvenc. To help address that use case, we added support for calling avcodec_flush_buffers() to nvenc and things worked in practice, although it was not clearly documented as to whether this should work or not. There was only one previous example of an encoder implementing the flush callback (audiotoolboxenc) and it's unclear if that was intentional or not. However, it was clear that calling avocdec_flush_buffers() on any other encoder would leave the encoder in an undefined state, and that's not great. As part of cleaning this up, this change introduces a formal capability flag for encoders that support flushing and ensures a flush call is a no-op for any other encoder. This allows client code to check if it is meaningful to call flush on an encoder before actually doing it. I have not attempted to separate the steps taken inside avcodec_flush_buffers() because it's not doing anything that's wrong for an encoder. But I did add a sanity check to reject attempts to flush a frame threaded encoder because I couldn't wrap my head around whether that code path was actually safe or not. As this combination doesn't exist today, we'll deal with it if it ever comes up.
2020-01-09nvenc: implement flush to help allow an encoder to be re-usedPhilip Langdale
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.
2019-09-27avcodec/nvenc: switch to dedicated dpb_size optionTimo Rothenpieler
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2018-08-21avcodec/nvenc: add option to turn off a53 closed caption embeddingTimo Rothenpieler
2018-04-11avcodec/nvenc: add support for B frames as refTimo Rothenpieler
2017-12-14avcodec: add metadata to identify wrappers and hardware decoderswm4
Explicitly identify decoder/encoder wrappers with a common name. This saves API users from guessing by the name suffix. For example, they don't have to guess that "h264_qsv" is the h264 QSV implementation, and instead they can just check the AVCodec .codec and .wrapper_name fields. Explicitly mark AVCodec entries that are hardware decoders or most likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing API users listing hardware decoders in a more generic way. The proposed AVCodecHWConfig does not provide this information fully, because it's concerned with decoder configuration, not information about the fact whether the hardware is used or not. AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software implementations in case the hardware is not capable. Based on a patch by Philip Langdale <philipl@overt.org>. Merges Libav commit 47687a2f8aca3f65b6fdd117b1cb66a7409a7fd1.
2017-09-07avcodec/nvenc: migrate to new encode APITimo Rothenpieler
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-09-01avcodec/nvenc: add support for specifying entropy coding modeTimo Rothenpieler
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-06-01avcodec/nvenc: Add default value for AVCodecContext::refsSrinath K R
AVCodecContext::refs is used to control the DPB size to be used by the encoder. The default value for AVCodecContext::refs as set in libavcodec/options_table.h is 1. This patch sets AVCodecContext::refs to 0 for h264_nvenc and hevc_nvenc in order to let the driver take the decision of the correct DPB size to use in all cases. Signed-off-by: Srinath K R <skr@nvidia.com> Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-05-10avcodec/nvenc: add weighted prediction supportSumit Agarwal
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-05-10avcodec/nvenc: add fractional CQ supportBen Chang
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-05-09avcodec/nvenc: deprecated old rc modes, add new onesTimo Rothenpieler
2017-04-26avcodec/nvenc: surface allocation reductionBen Chang
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-03-23avcodec/nvenc: Deprecate usage of global_quality, introducing qpTimo Rothenpieler
2017-03-01avcodec/nvenc: add initial QP value optionsKonda Raju
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-02-21avcodec/nvenc: allow forcing keyframes by defaultTimo Rothenpieler
2017-01-01avcodec/nvenc: Add bluray_compat basic implementationMiroslav Slugen
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-01-01avcodec/nvenc: Make AUD optional for h264_nvenc and hevc_nvencMiroslav Slugen
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-11-22avcodec/nvenc: maximum usable surfaces are limited to maximum registered framesMiroslav Slugeň
Maximum usable surfaces is limited to MAX_REGISTERED_FRAMES constant in nvenc.h Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-10-12avcodec/nvenc: add support for forcing intra/idr framesTimo Rothenpieler
2016-09-28avcodec/nvenc: nicely align AVOptionsTimo Rothenpieler
2016-09-28avcodec/nvenc: Extended rate-control support as provided by SDK 7Yogender Gupta
Merged from libav commit by Yogender Gupta: https://git.libav.org/?p=libav.git;a=commitdiff;h=70de2ea4261f860457a04e3d0c58c5543f403325
2016-08-28avcodec/nvenc: added support for rate control lookaheadOliver Collyer
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-06-26avcodec/nvenc: Bring encoder names in line with other encodersTimo Rothenpieler
2016-06-21Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'Clément Bœsch
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb': cosmetics: Fix spelling mistakes Merged-by: Clément Bœsch <u@pkh.me>
2016-05-31avcodec/nvenc: rework library load and GPU selectionAndrey Turkin
Use explicit nvenc capability checks instead to determine usable devices instead of SM versions. Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31avcodec/nvenc: allow configuring number of surfacesAndrey Turkin
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31avcodec/nvenc: use INIT_CLEANUP to deal with init failuresAndrey Turkin
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31avcodec/nvenc: add rate control optionAndrey Turkin
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31avcodec/nvenc: convert levels to AVOptionsAndrey Turkin
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31avcodec/nvenc: convert profile parsing to AVOptionsAndrey Turkin
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31avcodec/nvenc: use AVOptions to select presetsAndrey Turkin
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-31avcodec/nvenc: split H264/HEVC encoder definitions into separate filesAndrey Turkin
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2016-05-04cosmetics: Fix spelling mistakesVittorio Giovara
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-04-04nvenc_h264: Fix name of private AVClassDiego Biurrun
2016-02-12nvenc: factor out the pixel format listAnton Khirnov
2016-01-12nvenc: rename encodersAnton Khirnov
Change 'nvenc_<codec>' to '<codec>_nvenc', which is consistent with other similar decoders and encoders (QSV, MMAL).
2015-07-27lavc: AV-prefix all codec capabilitiesVittorio Giovara
Express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-05-31nvenc: H264 and HEVC encodersLuca Barbato
Partially based on the work of Timo Rothenpieler <timo@rothenpieler.org> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>