aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/amfenc.h
diff options
context:
space:
mode:
authorDmitrii Ovchinnikov <ovchinnikov.dmitrii@gmail.com>2023-05-17 14:59:40 +0200
committerJames Almer <jamrial@gmail.com>2023-06-29 10:49:33 -0300
commitf593dc98bfe4196ad60510008d43764e526d8cb9 (patch)
tree160300b226df6dec24d0c884d2bf88263f50aa7b /libavcodec/amfenc.h
parent9e3f07aa21ea71c394116cd5b180c6d710d897d8 (diff)
downloadffmpeg-f593dc98bfe4196ad60510008d43764e526d8cb9.tar.gz
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
Diffstat (limited to 'libavcodec/amfenc.h')
-rw-r--r--libavcodec/amfenc.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/libavcodec/amfenc.h b/libavcodec/amfenc.h
index 66e0680719..2dbd378ef8 100644
--- a/libavcodec/amfenc.h
+++ b/libavcodec/amfenc.h
@@ -30,6 +30,7 @@
#include "avcodec.h"
#include "hwconfig.h"
+#define MAX_LOOKAHEAD_DEPTH 41
/**
* AMF trace writer callback class
@@ -84,7 +85,7 @@ typedef struct AmfContext {
int usage;
int profile;
int level;
- int preanalysis;
+ int preencode;
int quality;
int b_frame_delta_qp;
int ref_b_frame_delta_qp;
@@ -107,6 +108,10 @@ typedef struct AmfContext {
int me_half_pel;
int me_quarter_pel;
int aud;
+ int max_consecutive_b_frames;
+ int max_b_frames;
+ int qvbr_quality_level;
+ int hw_high_motion_quality_boost;
// HEVC - specific options
@@ -122,6 +127,26 @@ typedef struct AmfContext {
enum AMF_VIDEO_ENCODER_AV1_ALIGNMENT_MODE_ENUM align;
+ // Preanalysis - specific options
+
+ int preanalysis;
+ int pa_activity_type;
+ int pa_scene_change_detection;
+ int pa_scene_change_detection_sensitivity;
+ int pa_static_scene_detection;
+ int pa_static_scene_detection_sensitivity;
+ int pa_initial_qp;
+ int pa_max_qp;
+ int pa_caq_strength;
+ int pa_frame_sad;
+ int pa_ltr;
+ int pa_lookahead_buffer_depth;
+ int pa_paq_mode;
+ int pa_taq_mode;
+ int pa_high_motion_quality_boost_mode;
+ int pa_adaptive_mini_gop;
+
+
} AmfContext;
extern const AVCodecHWConfigInternal *const ff_amfenc_hw_configs[];