summaryrefslogtreecommitdiff
path: root/libavcodec/amfenc.c
Commit message (Collapse)AuthorAge
* configure: Use a separate config_components.h header for $ALL_COMPONENTSMartin Storsjö2022-03-16
| | | | | | | | This avoids unnecessary rebuilds of most source files if only the list of enabled components has changed, but not the other properties of the build, set in config.h. Signed-off-by: Martin Storsjö <martin@martin.st>
* lavc/amfenc: switch to new FIFO APIAnton Khirnov2022-02-07
|
* avcodec/amfenc: use AVCodecContext.get_encode_buffer()James Almer2021-03-17
| | | | 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/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/amfnec: allocate packets using av_new_packet()James Almer2019-11-19
| | | | | | | | | This ensures they will be reference counted, as required by the AVCodec.receive_packet() API. Should fix ticket #8386. Signed-off-by: James Almer <jamrial@gmail.com>
* libavcodec/amfenc: Vulkan initialization support for encoder.OvchinnikovDmitrii2019-08-27
| | | | | | | | | | | | | | | | | | Added linux support for amf encoder through vulkan. To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and amf-amdgpu-pro package(amdgru-pro contains, but does not install automatically) are required. This driver can be installed using amdgpu-pro-install script in official amd driver archive. Initialization of amf encoder occurs in this order: 1) trying to initialize through dx11(only windows) 2) trying to initialize through dx9(only windows) 3) trying to initialize through vulkan Only Vulkan initialization available on linux.
* amfenc: Remove spurious initialisationsMark Thompson2018-04-15
| | | | Also minor cosmetics.
* amfenc: Add DXVA2 hardware frame input supportAlexander Kravchenko2018-04-15
| | | | | | | Adds support for AMF initialisation from a DXVA2 (Direct3D9) device, and then allows passing DXVA2 surfaces into an AMF encoder. Signed-off-by: Mark Thompson <sw@jkqxz.net>
* amfenc: Ensure that the software format of hardware frames is validAlexander Kravchenko2018-04-15
| | | | Signed-off-by: Mark Thompson <sw@jkqxz.net>
* amfenc: Do not automatically download/upload unknown hardware input framesMark Thompson2018-04-15
| | | | | | | | Supplying a hardware input frame which is not in the input hardware frames context is not allowed by the API, so additional code to handle it is not necessary. Further, handling it automatically results in very low performance - it is more appropriate to fail immediately so that the user can fix their incorrect setup.
* amfenc: Fail to open if the user-supplied device is not usableMark Thompson2018-04-15
| | | | | | | | If the user supplies a device or frames context then it is an error not to use it; this is consistent with other hardware components. Also factorise out the D3D11 initialisation and improve error messages.
* lavc/amfenc: Retain a reference to D3D frames used as input during the ↵Alexander Kravchenko2018-04-10
| | | | | | | | | encoding process Fixes ticket #6990. Tested-by: James Almer <jamrial@gmail.com> Reviewed-by: Mark Thompson <sw@jkqxz.net>
* 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>
* avcodec/amfenc: move config.h include where it's neededJames Almer2017-11-29
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* 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>