summaryrefslogtreecommitdiff
path: root/libavcodec/amfenc_hevc.c
Commit message (Collapse)AuthorAge
* avcodec: Add FF_CODEC_CAP_NOT_INIT_THREADSAFEAndreas Rheinhardt2022-07-18
| | | | | | | This is in preparation of switching the default init-thread-safety to a codec being init-thread-safe. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/codec_internal: Use union for FFCodec decode/encode callbacksAndreas Rheinhardt2022-04-05
| | | | | | | | | | | This is possible, because every given FFCodec has to implement exactly one of these. Doing so decreases sizeof(FFCodec) and therefore decreases the size of the binary. Notice that in case of position-independent code the decrease is in .data.rel.ro, so that this translates to decreased memory consumption. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/codec_internal: Rename AVCodecDefault->FFCodecDefaultAndreas Rheinhardt2022-03-21
| | | | | | | This structure is no longer declared in a public header, so using an FF-prefix is more appropriate. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/codec_internal: Add FFCodec, hide internal part of AVCodecAndreas Rheinhardt2022-03-21
| | | | | | | | | | | | | | | | Up until now, codec.h contains both public and private parts of AVCodec. This exposes the internals of AVCodec to users and leads them into the temptation of actually using them and forces us to forward-declare structures and types that users can't use at all. This commit changes this by adding a new structure FFCodec to codec_internal.h that extends AVCodec, i.e. contains the public AVCodec as first member; the private fields of AVCodec are moved to this structure, leaving codec.h clean. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/internal: Move FF_CODEC_CAP_* to a new header codec_internal.hAndreas Rheinhardt2022-03-21
| | | | | | | | | | Also move FF_CODEC_TAGS_END as well as struct AVCodecDefault. This reduces the amount of files that have to include internal.h (which comes with quite a lot of indirect inclusions), as e.g. most encoders don't need it. It is furthemore in preparation for moving the private part of AVCodec out of the public codec.h. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec: Constify AVCodecsAndreas Rheinhardt2021-04-27
| | | | | | | | | | Given that the AVCodec.next pointer has now been removed, most of the AVCodecs are not modified at all any more and can therefore be made const (as this patch does); the only exceptions are the very few codecs for external libraries that have a init_static_data callback. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/amfenc: use AVCodecContext.get_encode_buffer()James Almer2021-03-17
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* libavcodec/amfenc_hevc: Recommend values for min and max video quantizer scale.Ovchinnikov Dmitrii2021-03-09
| | | | | | | Current settings makes bitrate larger than expected, more information: https://github.com/HandBrake/HandBrake/issues/3447#issue-820490736 Signed-off-by: James Almer <jamrial@gmail.com>
* lavc/amfenc: Add hardware config metadataOvchinnikovDmitrii2020-11-08
| | | | | | | | Without this metadata section the ffmpeg utility thinks that the AMF encoder does not support input from D3D11 and DXVA2 hardware surfaces, causing hardware pipelines to fail. Fixes #8953.
* avcodec/amfenc_hevc: set default gops_per_idr 1Lu Jiao2020-07-03
| | | | | | | | | | | | | Previously gops_per_idr default 60 would make amd gpu encoding hevc has erratic seek bar behaviour as descripted in this ticket: https://trac.ffmpeg.org/ticket/7272 This bad default is already fixed in newer AMF headers: https://github.com/GPUOpen-LibrariesAndSDKs/AMF/blob/master/amf/public/include/components/VideoEncoderHEVC.h Fixes ticket #7272. Signed-off-by: Marton Balint <cus@passwd.hu>
* 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>
* libavcodec/amfenc_hevc.c: Fix Maximum Reference Frames option on AMF HEVC.Sitan Liu2020-02-09
|
* libavcodec/amfenc_hevc.c: Fix Profile level option on AMF HEVC.Sitan Liu2020-02-09
|
* libavcodec/amfenc_hevc.c: Fix constant QP settings for I, POvchinnikovDmitrii2020-02-01
|
* Merge commit '34c113335b53d83ed343de49741f0823aa1f8cc6'Mark Thompson2018-01-16
|\ | | | | | | | | | | | | | | | | | | * commit '34c113335b53d83ed343de49741f0823aa1f8cc6': Add support for H.264 and HEVC hardware encoding for AMD GPUs based on AMF SDK Most of this was already present from 9ea6607d294526688ab1b1342cb36ee159683e88, this just applies some minor fixups and adds the general documentation. Merged-by: Mark Thompson <sw@jkqxz.net>
| * Add support for H.264 and HEVC hardware encoding for AMD GPUs based on AMF SDKMichael Wootton2018-01-04
| | | | | | | Requires AMF headers for at least version 1.4.4.1. Signed-off-by: Mikhail Mironov <mikhail.mironov@amd.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* amf: fix wrong profile level after auto-correction in H264 and HEVCMironov, Mikhail2017-12-09
| | | | | | | | Moved bitrate parameters set before Init() call because bitrate is used in profile level correction code inside Init(). Signed-off-by: Mikhail Mironov <mikhail.mironov@amd.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Add HW H.264 and HEVC encoding for AMD GPUs based on AMF SDKMikhail Mironov2017-11-28
Requires AMF headers for at least version 1.4.4.1. Signed-off-by: Mikhail Mironov <mikhail.mironov@amd.com> Signed-off-by: Mark Thompson <sw@jkqxz.net>