Araz Iusubov
5f24c50890
amfenc: Fix for full PA queue
...
Fixes AMF_INPUT_FULL errors with pre-analysis (PA) enabled.
Added wait and poll encoder output to free up internal buffers
before submitting new frames.
Improves stability and performance by accounting for encoder and
analysis stage queue limits (incl. lookahead buffering).
Reproduce:
ffmpeg.exe -y -r 60 -f lavfi -i testsrc=rate=60:size=3840x2160
-t 10 -pix_fmt yuv420p -an -c:v av1_amf -preset:v high_quality
-profile:v main -quality:v high_quality -usage:v high_quality
2025-07-29 23:38:16 +02:00
Dmitrii Ovchinnikov
64fce7202c
acvodec/amfenc: Enable use of AMF Surface in multiple encoders
...
Fixes the behavior of AMF encoders when the same AMF surface is passed
to multiple encoder objects.
for example when using -filter_complex
2025-06-26 13:48:26 +02:00
Dmitrii Ovchinnikov
b02985b12c
avcodec/amfenc_av1: Add B-frame QP control
2025-04-11 12:21:37 +02:00
Evgeny Pavlov
079110238a
avcodec/amfenc: add smart access video option
...
This commit adds option for enabling SmartAccess Video (SAV)
in AMF encoders. SAV is an AMD hardware-specific feature which
enables the parallelization of encode and decode streams across
multiple Video Codec Engine (VCN) hardware instances.
2025-03-21 17:36:23 +01:00
Dmitrii Ovchinnikov
c7ff7345eb
Enable 10-bit output for RGB input in AMF HEVC and AV1
...
encoders
2025-03-06 15:38:03 +01:00
Dmitrii Ovchinnikov
88a8ba5c99
avcodec/amfenc: redesign to use hwcontext_amf.
...
Co-authored-by: Evgeny Pavlov <lucenticus@gmail.com >
v3: cleanup code
2025-02-04 00:14:14 +01:00
Cameron Gutman
8503c64aa8
avcodec/amfenc: add support for QueryOutput wait
...
Enable waiting in QueryOutput() based on driver support to reduce
unnecessary delays.
Fix for issue #10622
Co-authored-by: Araz Iusubov <Primeadvice@gmail.com >
2024-11-06 19:38:36 +01:00
Cameron Gutman
4ffd586e34
avcodec/amfenc: Add support for on-demand key frames
...
v2: Use forced_idr option instead of AV_FRAME_FLAG_KEY
Signed-off-by: Cameron Gutman <aicommander@gmail.com >
2024-09-28 16:01:39 +02:00
Michael Fabian 'Xaymar' Dirks
fb4dd4b6f4
avcodec/amfenc: Fixes the color information in the output.
...
added 10 bit support for amf hevc.
before:
command - ffmpeg.exe -hide_banner -y -hwaccel d3d11va -hwaccel_output_format d3d11 -i test_10bit_file.mkv -an -c:v h264_amf res.dx11_hw_h264.mkv
output - Format of input frames context (p010le) is not supported by AMF.
command - ffmpeg.exe -hide_banner -y -hwaccel d3d11va -hwaccel_output_format d3d11 -i test_10bit_file -an -c:v hevc_amf res.dx11_hw_hevc.mkv
output - Format of input frames context (p010le) is not supported by AMF.
after:
command - ffmpeg.exe -hide_banner -y -hwaccel d3d11va -hwaccel_output_format d3d11 -i test_10bit_file -an -c:v h264_amf res.dx11_hw_h264.mkv
output - 10-bit input video is not supported by AMF H264 encoder
command - ffmpeg.exe -hide_banner -y -hwaccel d3d11va -hwaccel_output_format d3d11 -i test_10bit_file -an -c:v hevc_amf res.dx11_hw_hevc.mkv
output - 10bit file
v2 - lost line returned in ff_amf_pix_fmts
v3 - fixes after review
v4 - extract duplicated code, fix incorrect processing of 10-bit input for h264
v5 - non-functional changes after review
Co-authored-by: Evgeny Pavlov <lucenticus@gmail.com >
Co-authored-by: Araz Iusubov <Primeadvice@gmail.com >
Signed-off-by: Dmitrii Ovchinnikov <ovchinnikov.dmitrii@gmail.com >
2024-09-04 13:18:09 +02:00
Araz Iusubov
42a40538f3
avcodec/amfenc: new encoder features support
...
Implemented:
New usage modes for AV1 encoder.
Latency mode for H264, HEVC and AV1 encoders.
Adaptive Quantization (AQ) mode in AV1 encoder.
Signed-off-by: Dmitrii Ovchinnikov <ovchinnikov.dmitrii@gmail.com >
2024-08-15 14:01:07 +02:00
Dmitrii Ovchinnikov
f593dc98bf
libavcodec/amfenc: add PreAnalysis support
...
Additional information about the work of preanalysis can be found here:
https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki/PreProcessing%20and%20PreAnalysis
2023-06-29 10:49:33 -03:00
Dmitrii Ovchinnikov
5f0a7a9169
libavcodec/amfenc: add AV1 encoding support
...
Tested-by: Jean-Baptiste Kempf <jb@videolan.org >
2023-01-27 22:38:45 +05:30
Anton Khirnov
70611d7f3b
lavc/amfenc: switch to new FIFO API
2022-02-07 00:31:23 +01:00
OvchinnikovDmitrii
2fb764e1f3
lavc/amfenc: Add hardware config metadata
...
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 .
2020-11-08 19:05:17 +00:00
James Almer
827d6fe73d
avcodec/encode: restructure the core encoding code
...
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 >
2020-06-18 17:11:37 -03:00
Alexander Kravchenko
05f1a3face
lavc/amfenc: Retain a reference to D3D frames used as input during the encoding process
...
Fixes ticket #6990 .
Tested-by: James Almer <jamrial@gmail.com >
Reviewed-by: Mark Thompson <sw@jkqxz.net >
2018-04-10 23:59:21 +01:00
James Almer
a198c1386a
avcodec/amfenc: move config.h include where it's needed
...
Signed-off-by: James Almer <jamrial@gmail.com >
2017-11-29 14:24:08 -03:00
Mikhail Mironov
9ea6607d29
Add HW H.264 and HEVC encoding for AMD GPUs based on AMF SDK
...
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 >
2017-11-28 22:14:42 +00:00