@pproenca/ffmpeg-darwin-x64 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +28 -0
- package/lib/libSvtAv1Enc.a +0 -0
- package/lib/libaom.a +0 -0
- package/lib/libavcodec.a +0 -0
- package/lib/libavdevice.a +0 -0
- package/lib/libavfilter.a +0 -0
- package/lib/libavformat.a +0 -0
- package/lib/libavutil.a +0 -0
- package/lib/libdav1d.a +0 -0
- package/lib/libogg.a +0 -0
- package/lib/libopus.a +0 -0
- package/lib/libswresample.a +0 -0
- package/lib/libswscale.a +0 -0
- package/lib/libvorbis.a +0 -0
- package/lib/libvorbisenc.a +0 -0
- package/lib/libvorbisfile.a +0 -0
- package/lib/libvpx.a +0 -0
- package/lib/pkgconfig/SvtAv1Enc.pc +12 -0
- package/lib/pkgconfig/aom.pc +14 -0
- package/lib/pkgconfig/dav1d.pc +9 -0
- package/lib/pkgconfig/libavcodec.pc +14 -0
- package/lib/pkgconfig/libavdevice.pc +14 -0
- package/lib/pkgconfig/libavfilter.pc +14 -0
- package/lib/pkgconfig/libavformat.pc +14 -0
- package/lib/pkgconfig/libavutil.pc +14 -0
- package/lib/pkgconfig/libswresample.pc +14 -0
- package/lib/pkgconfig/libswscale.pc +14 -0
- package/lib/pkgconfig/ogg.pc +14 -0
- package/lib/pkgconfig/opus.pc +16 -0
- package/lib/pkgconfig/vorbis.pc +15 -0
- package/lib/pkgconfig/vorbisenc.pc +14 -0
- package/lib/pkgconfig/vorbisfile.pc +14 -0
- package/lib/pkgconfig/vpx.pc +14 -0
- package/package.json +2 -3
- package/include/aom/aom.h +0 -127
- package/include/aom/aom_codec.h +0 -594
- package/include/aom/aom_decoder.h +0 -257
- package/include/aom/aom_encoder.h +0 -1154
- package/include/aom/aom_external_partition.h +0 -452
- package/include/aom/aom_frame_buffer.h +0 -84
- package/include/aom/aom_image.h +0 -462
- package/include/aom/aom_integer.h +0 -60
- package/include/aom/aomcx.h +0 -2288
- package/include/aom/aomdx.h +0 -607
- package/include/dav1d/common.h +0 -94
- package/include/dav1d/data.h +0 -117
- package/include/dav1d/dav1d.h +0 -329
- package/include/dav1d/headers.h +0 -444
- package/include/dav1d/picture.h +0 -157
- package/include/dav1d/version.h +0 -50
- package/include/libavcodec/ac3_parser.h +0 -36
- package/include/libavcodec/adts_parser.h +0 -37
- package/include/libavcodec/avcodec.h +0 -3128
- package/include/libavcodec/avdct.h +0 -88
- package/include/libavcodec/avfft.h +0 -149
- package/include/libavcodec/bsf.h +0 -332
- package/include/libavcodec/codec.h +0 -382
- package/include/libavcodec/codec_desc.h +0 -134
- package/include/libavcodec/codec_id.h +0 -669
- package/include/libavcodec/codec_par.h +0 -248
- package/include/libavcodec/d3d11va.h +0 -109
- package/include/libavcodec/defs.h +0 -337
- package/include/libavcodec/dirac.h +0 -135
- package/include/libavcodec/dv_profile.h +0 -82
- package/include/libavcodec/dxva2.h +0 -90
- package/include/libavcodec/jni.h +0 -67
- package/include/libavcodec/mediacodec.h +0 -103
- package/include/libavcodec/packet.h +0 -887
- package/include/libavcodec/qsv.h +0 -109
- package/include/libavcodec/vdpau.h +0 -171
- package/include/libavcodec/version.h +0 -45
- package/include/libavcodec/version_major.h +0 -52
- package/include/libavcodec/videotoolbox.h +0 -85
- package/include/libavcodec/vorbis_parser.h +0 -74
- package/include/libavdevice/avdevice.h +0 -397
- package/include/libavdevice/version.h +0 -45
- package/include/libavdevice/version_major.h +0 -43
- package/include/libavfilter/avfilter.h +0 -1379
- package/include/libavfilter/buffersink.h +0 -173
- package/include/libavfilter/buffersrc.h +0 -215
- package/include/libavfilter/version.h +0 -48
- package/include/libavfilter/version_major.h +0 -40
- package/include/libavformat/avformat.h +0 -3107
- package/include/libavformat/avio.h +0 -831
- package/include/libavformat/version.h +0 -47
- package/include/libavformat/version_major.h +0 -54
- package/include/libavutil/adler32.h +0 -63
- package/include/libavutil/aes.h +0 -69
- package/include/libavutil/aes_ctr.h +0 -99
- package/include/libavutil/ambient_viewing_environment.h +0 -72
- package/include/libavutil/attributes.h +0 -173
- package/include/libavutil/audio_fifo.h +0 -187
- package/include/libavutil/avassert.h +0 -78
- package/include/libavutil/avconfig.h +0 -6
- package/include/libavutil/avstring.h +0 -428
- package/include/libavutil/avutil.h +0 -362
- package/include/libavutil/base64.h +0 -72
- package/include/libavutil/blowfish.h +0 -82
- package/include/libavutil/bprint.h +0 -254
- package/include/libavutil/bswap.h +0 -105
- package/include/libavutil/buffer.h +0 -322
- package/include/libavutil/camellia.h +0 -70
- package/include/libavutil/cast5.h +0 -80
- package/include/libavutil/channel_layout.h +0 -751
- package/include/libavutil/common.h +0 -589
- package/include/libavutil/cpu.h +0 -145
- package/include/libavutil/crc.h +0 -102
- package/include/libavutil/csp.h +0 -150
- package/include/libavutil/des.h +0 -81
- package/include/libavutil/detection_bbox.h +0 -108
- package/include/libavutil/dict.h +0 -241
- package/include/libavutil/display.h +0 -109
- package/include/libavutil/dovi_meta.h +0 -396
- package/include/libavutil/downmix_info.h +0 -115
- package/include/libavutil/encryption_info.h +0 -205
- package/include/libavutil/error.h +0 -129
- package/include/libavutil/eval.h +0 -140
- package/include/libavutil/executor.h +0 -67
- package/include/libavutil/ffversion.h +0 -5
- package/include/libavutil/fifo.h +0 -242
- package/include/libavutil/file.h +0 -62
- package/include/libavutil/film_grain_params.h +0 -322
- package/include/libavutil/frame.h +0 -1175
- package/include/libavutil/hash.h +0 -264
- package/include/libavutil/hdr_dynamic_metadata.h +0 -376
- package/include/libavutil/hdr_dynamic_vivid_metadata.h +0 -346
- package/include/libavutil/hmac.h +0 -99
- package/include/libavutil/hwcontext.h +0 -598
- package/include/libavutil/hwcontext_cuda.h +0 -74
- package/include/libavutil/hwcontext_d3d11va.h +0 -178
- package/include/libavutil/hwcontext_d3d12va.h +0 -142
- package/include/libavutil/hwcontext_drm.h +0 -169
- package/include/libavutil/hwcontext_dxva2.h +0 -75
- package/include/libavutil/hwcontext_mediacodec.h +0 -61
- package/include/libavutil/hwcontext_opencl.h +0 -100
- package/include/libavutil/hwcontext_qsv.h +0 -87
- package/include/libavutil/hwcontext_vaapi.h +0 -117
- package/include/libavutil/hwcontext_vdpau.h +0 -44
- package/include/libavutil/hwcontext_videotoolbox.h +0 -106
- package/include/libavutil/hwcontext_vulkan.h +0 -382
- package/include/libavutil/iamf.h +0 -690
- package/include/libavutil/imgutils.h +0 -377
- package/include/libavutil/intfloat.h +0 -77
- package/include/libavutil/intreadwrite.h +0 -677
- package/include/libavutil/lfg.h +0 -81
- package/include/libavutil/log.h +0 -387
- package/include/libavutil/lzo.h +0 -66
- package/include/libavutil/macros.h +0 -80
- package/include/libavutil/mastering_display_metadata.h +0 -137
- package/include/libavutil/mathematics.h +0 -300
- package/include/libavutil/md5.h +0 -89
- package/include/libavutil/mem.h +0 -607
- package/include/libavutil/motion_vector.h +0 -57
- package/include/libavutil/murmur3.h +0 -115
- package/include/libavutil/opt.h +0 -1187
- package/include/libavutil/parseutils.h +0 -197
- package/include/libavutil/pixdesc.h +0 -440
- package/include/libavutil/pixelutils.h +0 -51
- package/include/libavutil/pixfmt.h +0 -716
- package/include/libavutil/random_seed.h +0 -57
- package/include/libavutil/rational.h +0 -225
- package/include/libavutil/rc4.h +0 -69
- package/include/libavutil/replaygain.h +0 -50
- package/include/libavutil/ripemd.h +0 -83
- package/include/libavutil/samplefmt.h +0 -269
- package/include/libavutil/sha.h +0 -90
- package/include/libavutil/sha512.h +0 -92
- package/include/libavutil/spherical.h +0 -243
- package/include/libavutil/stereo3d.h +0 -325
- package/include/libavutil/tea.h +0 -71
- package/include/libavutil/threadmessage.h +0 -115
- package/include/libavutil/time.h +0 -56
- package/include/libavutil/timecode.h +0 -199
- package/include/libavutil/timestamp.h +0 -85
- package/include/libavutil/tree.h +0 -137
- package/include/libavutil/twofish.h +0 -70
- package/include/libavutil/tx.h +0 -210
- package/include/libavutil/uuid.h +0 -146
- package/include/libavutil/version.h +0 -124
- package/include/libavutil/video_enc_params.h +0 -171
- package/include/libavutil/video_hint.h +0 -107
- package/include/libavutil/xtea.h +0 -94
- package/include/libswresample/swresample.h +0 -587
- package/include/libswresample/version.h +0 -46
- package/include/libswresample/version_major.h +0 -31
- package/include/libswscale/swscale.h +0 -460
- package/include/libswscale/version.h +0 -44
- package/include/libswscale/version_major.h +0 -35
- package/include/ogg/config_types.h +0 -26
- package/include/ogg/ogg.h +0 -209
- package/include/ogg/os_types.h +0 -158
- package/include/opus/opus.h +0 -1099
- package/include/opus/opus_defines.h +0 -830
- package/include/opus/opus_multistream.h +0 -660
- package/include/opus/opus_projection.h +0 -568
- package/include/opus/opus_types.h +0 -166
- package/include/svt-av1/EbDebugMacros.h +0 -88
- package/include/svt-av1/EbSvtAv1.h +0 -462
- package/include/svt-av1/EbSvtAv1Enc.h +0 -1112
- package/include/svt-av1/EbSvtAv1ErrorCodes.h +0 -67
- package/include/svt-av1/EbSvtAv1ExtFrameBuf.h +0 -64
- package/include/svt-av1/EbSvtAv1Formats.h +0 -126
- package/include/svt-av1/EbSvtAv1Metadata.h +0 -156
- package/include/vorbis/codec.h +0 -242
- package/include/vorbis/vorbisenc.h +0 -435
- package/include/vorbis/vorbisfile.h +0 -205
- package/include/vpx/vp8.h +0 -136
- package/include/vpx/vp8cx.h +0 -1118
- package/include/vpx/vp8dx.h +0 -228
- package/include/vpx/vpx_codec.h +0 -475
- package/include/vpx/vpx_decoder.h +0 -367
- package/include/vpx/vpx_encoder.h +0 -1150
- package/include/vpx/vpx_ext_ratectrl.h +0 -590
- package/include/vpx/vpx_frame_buffer.h +0 -83
- package/include/vpx/vpx_image.h +0 -221
- package/include/vpx/vpx_integer.h +0 -40
- package/include/vpx/vpx_tpl.h +0 -68
- /package/{include → lib/pkgconfig}/index.js +0 -0
|
@@ -1,1112 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright(c) 2019 Intel Corporation
|
|
3
|
-
*
|
|
4
|
-
* This source code is subject to the terms of the BSD 3-Clause Clear License and
|
|
5
|
-
* the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear License
|
|
6
|
-
* was not distributed with this source code in the LICENSE file, you can
|
|
7
|
-
* obtain it at https://www.aomedia.org/license. If the Alliance for Open
|
|
8
|
-
* Media Patent License 1.0 was not distributed with this source code in the
|
|
9
|
-
* PATENTS file, you can obtain it at https://www.aomedia.org/license/patent-license.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
#ifndef EbSvtAv1Enc_h
|
|
13
|
-
#define EbSvtAv1Enc_h
|
|
14
|
-
|
|
15
|
-
#ifdef __cplusplus
|
|
16
|
-
extern "C" {
|
|
17
|
-
#endif // __cplusplus
|
|
18
|
-
|
|
19
|
-
#include <stdint.h>
|
|
20
|
-
#include "EbSvtAv1.h"
|
|
21
|
-
#include <stdlib.h>
|
|
22
|
-
#include <stdio.h>
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @brief SVT-AV1 encoder ABI version
|
|
26
|
-
*
|
|
27
|
-
* Should be increased by 1 everytime a public struct in the encoder
|
|
28
|
-
* has been modified, and reset anytime the major API version has
|
|
29
|
-
* been changed. Used to keep track if a field has been added or not.
|
|
30
|
-
*/
|
|
31
|
-
#define SVT_AV1_ENC_ABI_VERSION 0
|
|
32
|
-
|
|
33
|
-
//***HME***
|
|
34
|
-
|
|
35
|
-
#define MAX_HIERARCHICAL_LEVEL 6
|
|
36
|
-
#define REF_LIST_MAX_DEPTH 4
|
|
37
|
-
/*!\brief Decorator indicating that given struct/union/enum is packed */
|
|
38
|
-
#ifndef ATTRIBUTE_PACKED
|
|
39
|
-
#if defined(__GNUC__) && __GNUC__
|
|
40
|
-
#define ATTRIBUTE_PACKED __attribute__((packed))
|
|
41
|
-
#else
|
|
42
|
-
#define ATTRIBUTE_PACKED
|
|
43
|
-
#endif
|
|
44
|
-
#endif /* ATTRIBUTE_PACKED */
|
|
45
|
-
typedef enum ATTRIBUTE_PACKED {
|
|
46
|
-
ENC_MR = -1, //Research mode with higher quality than M0
|
|
47
|
-
ENC_M0 = 0,
|
|
48
|
-
ENC_M1 = 1,
|
|
49
|
-
ENC_M2 = 2,
|
|
50
|
-
ENC_M3 = 3,
|
|
51
|
-
ENC_M4 = 4,
|
|
52
|
-
ENC_M5 = 5,
|
|
53
|
-
ENC_M6 = 6,
|
|
54
|
-
ENC_M7 = 7,
|
|
55
|
-
ENC_M8 = 8,
|
|
56
|
-
ENC_M9 = 9,
|
|
57
|
-
ENC_M10 = 10,
|
|
58
|
-
ENC_M11 = 11,
|
|
59
|
-
ENC_M12 = 12,
|
|
60
|
-
ENC_M13 = 13,
|
|
61
|
-
MAX_ENC_PRESET = ENC_M13
|
|
62
|
-
} EncMode;
|
|
63
|
-
|
|
64
|
-
#define DEFAULT -1
|
|
65
|
-
|
|
66
|
-
#define EB_BUFFERFLAG_EOS 0x00000001 // signals the last packet of the stream
|
|
67
|
-
#define EB_BUFFERFLAG_SHOW_EXT 0x00000002 // signals that the packet contains a show existing frame at the end
|
|
68
|
-
#define EB_BUFFERFLAG_HAS_TD 0x00000004 // signals that the packet contains a TD
|
|
69
|
-
#define EB_BUFFERFLAG_IS_ALT_REF 0x00000008 // signals that the packet contains an ALT_REF frame
|
|
70
|
-
#define EB_BUFFERFLAG_ERROR_MASK \
|
|
71
|
-
0xFFFFFFF0 // mask for signalling error assuming top flags fit in 4 bits. To be changed, if more flags are added.
|
|
72
|
-
|
|
73
|
-
/*
|
|
74
|
-
* Struct for storing content light level information
|
|
75
|
-
* Values are stored in BE format
|
|
76
|
-
* Refer to the AV1 specification 6.7.3 for more details
|
|
77
|
-
*/
|
|
78
|
-
struct EbContentLightLevel {
|
|
79
|
-
uint16_t max_cll;
|
|
80
|
-
uint16_t max_fall;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
/*
|
|
84
|
-
* Struct for storing x and y chroma points, values are stored in BE format
|
|
85
|
-
*/
|
|
86
|
-
struct EbSvtAv1ChromaPoints {
|
|
87
|
-
uint16_t x;
|
|
88
|
-
uint16_t y;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/*
|
|
92
|
-
* Struct for storing mastering-display information
|
|
93
|
-
* values are stored in BE format
|
|
94
|
-
* Refer to the AV1 specification 6.7.4 for more details
|
|
95
|
-
*/
|
|
96
|
-
struct EbSvtAv1MasteringDisplayInfo {
|
|
97
|
-
struct EbSvtAv1ChromaPoints r;
|
|
98
|
-
struct EbSvtAv1ChromaPoints g;
|
|
99
|
-
struct EbSvtAv1ChromaPoints b;
|
|
100
|
-
struct EbSvtAv1ChromaPoints white_point;
|
|
101
|
-
uint32_t max_luma;
|
|
102
|
-
uint32_t min_luma;
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
/************************************************
|
|
106
|
-
* Prediction Structure Config Entry
|
|
107
|
-
* Contains the basic reference lists and
|
|
108
|
-
* configurations for each Prediction Structure
|
|
109
|
-
* Config Entry.
|
|
110
|
-
************************************************/
|
|
111
|
-
typedef struct PredictionStructureConfigEntry {
|
|
112
|
-
uint32_t temporal_layer_index;
|
|
113
|
-
uint32_t decode_order;
|
|
114
|
-
} PredictionStructureConfigEntry;
|
|
115
|
-
|
|
116
|
-
// super-res modes
|
|
117
|
-
typedef enum {
|
|
118
|
-
SUPERRES_NONE, // No frame superres allowed.
|
|
119
|
-
SUPERRES_FIXED, // All frames are coded at the specified scale, and super-resolved.
|
|
120
|
-
SUPERRES_RANDOM, // All frames are coded at a random scale, and super-resolved.
|
|
121
|
-
SUPERRES_QTHRESH, // Superres scale for a frame is determined based on q_index.
|
|
122
|
-
SUPERRES_AUTO, // Automatically select superres for appropriate frames.
|
|
123
|
-
SUPERRES_MODES
|
|
124
|
-
} SUPERRES_MODE;
|
|
125
|
-
|
|
126
|
-
// super-res auto search type
|
|
127
|
-
typedef enum {
|
|
128
|
-
SUPERRES_AUTO_ALL, // Tries all possible superres ratios
|
|
129
|
-
SUPERRES_AUTO_DUAL, // Tries no superres and q-based superres ratios
|
|
130
|
-
SUPERRES_AUTO_SOLO, // Only apply the q-based superres ratio
|
|
131
|
-
SUPERRES_AUTO_SEARCH_TYPES
|
|
132
|
-
} SUPERRES_AUTO_SEARCH_TYPE;
|
|
133
|
-
|
|
134
|
-
// reference scaling modes
|
|
135
|
-
typedef enum {
|
|
136
|
-
RESIZE_NONE, // No frame resize allowed.
|
|
137
|
-
RESIZE_FIXED, // All frames are coded at the specified scale.
|
|
138
|
-
RESIZE_RANDOM, // All frames are coded at a random scale.
|
|
139
|
-
RESIZE_DYNAMIC, // Resize scale for a frame in dynamic.
|
|
140
|
-
RESIZE_RANDOM_ACCESS, // Resize scale frame by event in random access
|
|
141
|
-
RESIZE_MODES
|
|
142
|
-
} RESIZE_MODE;
|
|
143
|
-
|
|
144
|
-
/** The SvtAv1IntraRefreshType is used to describe the intra refresh type.
|
|
145
|
-
*/
|
|
146
|
-
typedef enum SvtAv1IntraRefreshType {
|
|
147
|
-
SVT_AV1_FWDKF_REFRESH = 1,
|
|
148
|
-
SVT_AV1_KF_REFRESH = 2,
|
|
149
|
-
} SvtAv1IntraRefreshType;
|
|
150
|
-
|
|
151
|
-
typedef enum {
|
|
152
|
-
SVT_AV1_STREAM_INFO_START = 1,
|
|
153
|
-
SVT_AV1_STREAM_INFO_FIRST_PASS_STATS_OUT = SVT_AV1_STREAM_INFO_START,
|
|
154
|
-
|
|
155
|
-
SVT_AV1_STREAM_INFO_END,
|
|
156
|
-
} SVT_AV1_STREAM_INFO_ID;
|
|
157
|
-
|
|
158
|
-
/*!\brief Generic fixed size buffer structure
|
|
159
|
-
*
|
|
160
|
-
* This structure is able to hold a reference to any fixed size buffer.
|
|
161
|
-
*/
|
|
162
|
-
typedef struct SvtAv1FixedBuf {
|
|
163
|
-
void *buf; /**< Pointer to the data. Does NOT own the data! */
|
|
164
|
-
uint64_t sz; /**< Length of the buffer, in chars */
|
|
165
|
-
} SvtAv1FixedBuf; /**< alias for struct aom_fixed_buf */
|
|
166
|
-
|
|
167
|
-
/** Indicates how an S-Frame should be inserted.
|
|
168
|
-
*/
|
|
169
|
-
typedef enum EbSFrameMode {
|
|
170
|
-
SFRAME_STRICT_BASE =
|
|
171
|
-
1, /**< The considered frame will be made into an S-Frame only if it is a base layer inter frame */
|
|
172
|
-
SFRAME_NEAREST_BASE =
|
|
173
|
-
2, /**< If the considered frame is not an altref frame, the next base layer inter frame will be made into an S-Frame */
|
|
174
|
-
} EbSFrameMode;
|
|
175
|
-
|
|
176
|
-
/* Indicates what prediction structure to use
|
|
177
|
-
* was PredStructure in definitions.h
|
|
178
|
-
* Only SVT_AV1_PRED_LOW_DELAY_B and SVT_AV1_PRED_RANDOM_ACCESS are valid
|
|
179
|
-
*/
|
|
180
|
-
typedef enum SvtAv1PredStructure {
|
|
181
|
-
SVT_AV1_PRED_LOW_DELAY_P = 0, // No longer active
|
|
182
|
-
SVT_AV1_PRED_LOW_DELAY_B = 1,
|
|
183
|
-
SVT_AV1_PRED_RANDOM_ACCESS = 2,
|
|
184
|
-
SVT_AV1_PRED_TOTAL_COUNT = 3,
|
|
185
|
-
SVT_AV1_PRED_INVALID = 0xFF,
|
|
186
|
-
} SvtAv1PredStructure;
|
|
187
|
-
|
|
188
|
-
/* Indicates what rate control mode is used.
|
|
189
|
-
* Currently, cqp is distinguised by setting enable_adaptive_quantization to 0
|
|
190
|
-
*/
|
|
191
|
-
typedef enum SvtAv1RcMode {
|
|
192
|
-
SVT_AV1_RC_MODE_CQP_OR_CRF = 0, // constant quantization parameter/constant rate factor
|
|
193
|
-
SVT_AV1_RC_MODE_VBR = 1, // variable bit rate
|
|
194
|
-
SVT_AV1_RC_MODE_CBR = 2, // constant bit rate
|
|
195
|
-
} SvtAv1RcMode;
|
|
196
|
-
|
|
197
|
-
typedef enum SvtAv1FrameUpdateType {
|
|
198
|
-
SVT_AV1_KF_UPDATE,
|
|
199
|
-
SVT_AV1_LF_UPDATE,
|
|
200
|
-
SVT_AV1_GF_UPDATE,
|
|
201
|
-
SVT_AV1_ARF_UPDATE,
|
|
202
|
-
SVT_AV1_OVERLAY_UPDATE,
|
|
203
|
-
SVT_AV1_INTNL_OVERLAY_UPDATE, // Internal Overlay Frame
|
|
204
|
-
SVT_AV1_INTNL_ARF_UPDATE, // Internal Altref Frame
|
|
205
|
-
SVT_AV1_FRAME_UPDATE_TYPES
|
|
206
|
-
} SvtAv1FrameUpdateType;
|
|
207
|
-
|
|
208
|
-
typedef struct SvtAv1FrameScaleEvts {
|
|
209
|
-
uint32_t evt_num;
|
|
210
|
-
uint64_t *start_frame_nums;
|
|
211
|
-
uint32_t *resize_kf_denoms;
|
|
212
|
-
uint32_t *resize_denoms;
|
|
213
|
-
} SvtAv1FrameScaleEvts;
|
|
214
|
-
|
|
215
|
-
// Will contain the EbEncApi which will live in the EncHandle class
|
|
216
|
-
// Only modifiable during config-time.
|
|
217
|
-
typedef struct EbSvtAv1EncConfiguration {
|
|
218
|
-
/**
|
|
219
|
-
* @brief Encoder preset used.
|
|
220
|
-
* -2 and -1 are for debug purposes and should not be used.
|
|
221
|
-
* 0 is the highest quality mode but is the slowest,
|
|
222
|
-
* 13 is the fastest mode but is not as high quality.
|
|
223
|
-
*
|
|
224
|
-
* Min value is -2.
|
|
225
|
-
* Max value is 13.
|
|
226
|
-
* Default is 12.
|
|
227
|
-
*/
|
|
228
|
-
int8_t enc_mode;
|
|
229
|
-
|
|
230
|
-
// GOP Structure
|
|
231
|
-
|
|
232
|
-
/* The intra period defines the interval of frames after which you insert an
|
|
233
|
-
* Intra refresh. It is strongly recommended to set the value to multiple of
|
|
234
|
-
* 2^(hierarchical_levels), subtracting one if using open GOP (intra_refresh_type == 1).
|
|
235
|
-
* For instance, to get a 5-second GOP (default being >=5 seconds)
|
|
236
|
-
* with hierarchical_levels = 3 and open GOP you could use 319, 279, 159
|
|
237
|
-
* for 60, 50, or 30 respectively.
|
|
238
|
-
*
|
|
239
|
-
* -1 = no intra update.
|
|
240
|
-
* -2 = auto.
|
|
241
|
-
*
|
|
242
|
-
* Default is -2. */
|
|
243
|
-
int32_t intra_period_length;
|
|
244
|
-
|
|
245
|
-
/* Random access.
|
|
246
|
-
*
|
|
247
|
-
* 1 = CRA, open GOP.
|
|
248
|
-
* 2 = IDR, closed GOP.
|
|
249
|
-
*
|
|
250
|
-
* Default is 1. */
|
|
251
|
-
SvtAv1IntraRefreshType intra_refresh_type;
|
|
252
|
-
|
|
253
|
-
/* Number of hierarchical layers used to construct GOP.
|
|
254
|
-
* Minigop size = 2^HierarchicalLevels.
|
|
255
|
-
*
|
|
256
|
-
* Default is 5 upt to M12 4, for M13. */
|
|
257
|
-
uint32_t hierarchical_levels;
|
|
258
|
-
|
|
259
|
-
/* Prediction structure used to construct GOP. There are two main structures
|
|
260
|
-
* supported, which are: Low Delay (P or B) and Random Access.
|
|
261
|
-
*
|
|
262
|
-
* In Low Delay structure, pictures within a mini GOP refer to the previously
|
|
263
|
-
* encoded pictures in display order. In other words, pictures with display
|
|
264
|
-
* order N can only be referenced by pictures with display order greater than
|
|
265
|
-
* N, and it can only refer pictures with picture order lower than N. The Low
|
|
266
|
-
* Delay structure can be flat structured (e.g. IPPPPPPP...) or hierarchically
|
|
267
|
-
* structured. B/b pictures can be used instead of P/p pictures. However, the
|
|
268
|
-
* reference picture list 0 and the reference picture list 1 will contain the
|
|
269
|
-
* same reference picture.
|
|
270
|
-
*
|
|
271
|
-
* In Random Access structure, the B/b pictures can refer to reference pictures
|
|
272
|
-
* from both directions (past and future).
|
|
273
|
-
*
|
|
274
|
-
* Refer to SvtAv1PredStructure enum for valid values.
|
|
275
|
-
*
|
|
276
|
-
* Default is SVT_AV1_PRED_RANDOM_ACCESS. */
|
|
277
|
-
uint8_t pred_structure;
|
|
278
|
-
|
|
279
|
-
// Input Info
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* @brief Frame width in pixels.
|
|
283
|
-
*
|
|
284
|
-
* Min is 64.
|
|
285
|
-
* Max is 16384.
|
|
286
|
-
* Default is 0.
|
|
287
|
-
*/
|
|
288
|
-
uint32_t source_width;
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* @brief Frame height in pixels
|
|
292
|
-
*
|
|
293
|
-
* Min is 64.
|
|
294
|
-
* Max is 8704.
|
|
295
|
-
* Default is 0.
|
|
296
|
-
*/
|
|
297
|
-
uint32_t source_height;
|
|
298
|
-
|
|
299
|
-
/* Specifies the maximum frame width/height for the frames represented by the sequence header
|
|
300
|
-
* (max_frame_width_minus_1 and max_frame_height_minus_1, spec 5.5.1).
|
|
301
|
-
* Actual frame height could be equal to or less than this value. E.g. Use this value to indicate
|
|
302
|
-
* the maximum height between renditions when switch frame feature is on.
|
|
303
|
-
*/
|
|
304
|
-
uint32_t forced_max_frame_width;
|
|
305
|
-
uint32_t forced_max_frame_height;
|
|
306
|
-
/* Frame rate numerator. When zero, the encoder will use -fps if
|
|
307
|
-
* FrameRateDenominator is also zero, otherwise an error is returned.
|
|
308
|
-
*
|
|
309
|
-
* Default is 0. */
|
|
310
|
-
uint32_t frame_rate_numerator;
|
|
311
|
-
/* Frame rate denominator. When zero, the encoder will use -fps if
|
|
312
|
-
* FrameRateNumerator is also zero, otherwise an error is returned.
|
|
313
|
-
*
|
|
314
|
-
* Default is 0. */
|
|
315
|
-
uint32_t frame_rate_denominator;
|
|
316
|
-
/* Specifies the bit depth of input video.
|
|
317
|
-
*
|
|
318
|
-
* 8 = 8 bit.
|
|
319
|
-
* 10 = 10 bit.
|
|
320
|
-
*
|
|
321
|
-
* Default is 8. */
|
|
322
|
-
uint32_t encoder_bit_depth;
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* @brief Encoder color format.
|
|
326
|
-
* Only YUV420 is supported for now.
|
|
327
|
-
*
|
|
328
|
-
* Min is YUV400.
|
|
329
|
-
* Max is YUV444.
|
|
330
|
-
* Default is YUV420.
|
|
331
|
-
*/
|
|
332
|
-
EbColorFormat encoder_color_format;
|
|
333
|
-
|
|
334
|
-
/**
|
|
335
|
-
* @brief Currently unused.
|
|
336
|
-
*
|
|
337
|
-
* Default is 0.
|
|
338
|
-
*/
|
|
339
|
-
uint8_t high_dynamic_range_input;
|
|
340
|
-
|
|
341
|
-
/**
|
|
342
|
-
* @brief Bitstream profile to use.
|
|
343
|
-
* 0: main, 1: high, 2: professional.
|
|
344
|
-
*
|
|
345
|
-
* Min is MAIN_PROFILE.
|
|
346
|
-
* Max is PROFESSIONAL_PROFILE.
|
|
347
|
-
* Default is MAIN_PROFILE.
|
|
348
|
-
*/
|
|
349
|
-
EbAv1SeqProfile profile;
|
|
350
|
-
/* Constraints for bitstream in terms of max bitrate and max buffer size.
|
|
351
|
-
*
|
|
352
|
-
* 0 = Main, for most applications.
|
|
353
|
-
* 1 = High, for demanding applications.
|
|
354
|
-
*
|
|
355
|
-
* Default is 0. */
|
|
356
|
-
uint32_t tier;
|
|
357
|
-
|
|
358
|
-
/**
|
|
359
|
-
* @brief Bitstream level.
|
|
360
|
-
* 0: autodetect from bitstream, 20: level 2.0, 63: level 6.3, only levels 2.0-6.3 are properly defined.
|
|
361
|
-
* The levels are defined at https://aomediacodec.github.io/av1-spec/av1-spec.pdf
|
|
362
|
-
* under "A.3. Levels".
|
|
363
|
-
*
|
|
364
|
-
* Min is 0.
|
|
365
|
-
* Max is 73.
|
|
366
|
-
* Default is 0.
|
|
367
|
-
*/
|
|
368
|
-
uint32_t level;
|
|
369
|
-
|
|
370
|
-
/* Color description present flag
|
|
371
|
-
*
|
|
372
|
-
* It is not necessary to set this parameter manually.
|
|
373
|
-
* It is set internally to true once one of the color_primaries, transfer_characteristics or
|
|
374
|
-
* matrix coefficients is set to non-default value.
|
|
375
|
-
*
|
|
376
|
-
Default is false. */
|
|
377
|
-
Bool color_description_present_flag;
|
|
378
|
-
/* Color primaries
|
|
379
|
-
* values are from EbColorPrimaries
|
|
380
|
-
Default is 2 (CP_UNSPECIFIED). */
|
|
381
|
-
EbColorPrimaries color_primaries;
|
|
382
|
-
/* Transfer characteristics
|
|
383
|
-
* values are from EbTransferCharacteristics
|
|
384
|
-
Default is 2 (TC_UNSPECIFIED). */
|
|
385
|
-
EbTransferCharacteristics transfer_characteristics;
|
|
386
|
-
/* Matrix coefficients
|
|
387
|
-
* values are from EbMatrixCoefficients
|
|
388
|
-
Default is 2 (MC_UNSPECIFIED). */
|
|
389
|
-
EbMatrixCoefficients matrix_coefficients;
|
|
390
|
-
/* Color range
|
|
391
|
-
* values are from EbColorRange
|
|
392
|
-
* 0: studio swing.
|
|
393
|
-
* 1: full swing.
|
|
394
|
-
Default is 0. */
|
|
395
|
-
EbColorRange color_range;
|
|
396
|
-
/* Mastering display metadata
|
|
397
|
-
* values are from set using svt_aom_parse_mastering_display()
|
|
398
|
-
*/
|
|
399
|
-
struct EbSvtAv1MasteringDisplayInfo mastering_display;
|
|
400
|
-
/* Content light level
|
|
401
|
-
* values are from set using svt_aom_parse_content_light_level()
|
|
402
|
-
*/
|
|
403
|
-
struct EbContentLightLevel content_light_level;
|
|
404
|
-
|
|
405
|
-
/* Chroma sample position
|
|
406
|
-
* Values as per 6.4.2 of the specification:
|
|
407
|
-
* EB_CSP_UNKNOWN: default
|
|
408
|
-
* EB_CSP_VERTICAL: value 0 from H.273 AKA "left"
|
|
409
|
-
* EB_CSP_COLOCATED: value 2 from H.273 AKA "top left"
|
|
410
|
-
*/
|
|
411
|
-
EbChromaSamplePosition chroma_sample_position;
|
|
412
|
-
|
|
413
|
-
// End input info
|
|
414
|
-
|
|
415
|
-
/* Rate control mode.
|
|
416
|
-
*
|
|
417
|
-
* Refer to the SvtAv1RcMode enum for valid values
|
|
418
|
-
* Default is 0. */
|
|
419
|
-
uint32_t rate_control_mode;
|
|
420
|
-
|
|
421
|
-
// Rate control tuning
|
|
422
|
-
|
|
423
|
-
// Quantization
|
|
424
|
-
/* Initial quantization parameter for the Intra pictures used under constant
|
|
425
|
-
* qp rate control mode.
|
|
426
|
-
*
|
|
427
|
-
* Default is 50. */
|
|
428
|
-
uint32_t qp;
|
|
429
|
-
|
|
430
|
-
/* force qp values for every picture that are passed in the header pointer
|
|
431
|
-
*
|
|
432
|
-
* Default is 0.*/
|
|
433
|
-
Bool use_qp_file;
|
|
434
|
-
|
|
435
|
-
/* Target bitrate in bits/second, only applicable when rate control mode is
|
|
436
|
-
* set to 1 (VBR) or 2 (CBR).
|
|
437
|
-
*
|
|
438
|
-
* Default is 2000513. */
|
|
439
|
-
uint32_t target_bit_rate;
|
|
440
|
-
/* maximum bitrate in bits/second, only apllicable when rate control mode is
|
|
441
|
-
* set to 0.
|
|
442
|
-
*
|
|
443
|
-
* Default is 0. */
|
|
444
|
-
uint32_t max_bit_rate;
|
|
445
|
-
|
|
446
|
-
#if !SVT_AV1_CHECK_VERSION(1, 5, 0)
|
|
447
|
-
/* DEPRECATED: to be removed in 1.5.0. */
|
|
448
|
-
uint32_t vbv_bufsize;
|
|
449
|
-
#endif
|
|
450
|
-
|
|
451
|
-
/* Maxium QP value allowed for rate control use, only applicable when rate
|
|
452
|
-
* control mode is set to 1. It has to be greater or equal to minQpAllowed.
|
|
453
|
-
*
|
|
454
|
-
* Default is 63. */
|
|
455
|
-
uint32_t max_qp_allowed;
|
|
456
|
-
/* Minimum QP value allowed for rate control use, only applicable when rate
|
|
457
|
-
* control mode is set to 1 or 2. It has to be smaller or equal to maxQpAllowed.
|
|
458
|
-
*
|
|
459
|
-
* Default is 4. */
|
|
460
|
-
uint32_t min_qp_allowed;
|
|
461
|
-
|
|
462
|
-
// DATARATE CONTROL OPTIONS
|
|
463
|
-
#if !SVT_AV1_CHECK_VERSION(2, 0, 0)
|
|
464
|
-
/* DEPRECATED: to be removed in 2.0.0. */
|
|
465
|
-
/**
|
|
466
|
-
* @brief Variable Bit Rate Bias Percentage
|
|
467
|
-
*
|
|
468
|
-
* Indicates the bias for determining target size for the current frame.
|
|
469
|
-
* A value 0 indicates the optimal CBR mode value should be used, and 100
|
|
470
|
-
* indicates the optimal VBR mode value should be used.
|
|
471
|
-
*
|
|
472
|
-
* Min is 0.
|
|
473
|
-
* Max is 100.
|
|
474
|
-
* Default is 100
|
|
475
|
-
*/
|
|
476
|
-
uint32_t vbr_bias_pct;
|
|
477
|
-
#endif
|
|
478
|
-
|
|
479
|
-
/**
|
|
480
|
-
* @brief Variable Bit Rate Minimum Section Percentage
|
|
481
|
-
*
|
|
482
|
-
* Indicates the minimum bitrate to be used for a single GOP as a percentage
|
|
483
|
-
* of the target bitrate.
|
|
484
|
-
*
|
|
485
|
-
* Min is 0.
|
|
486
|
-
* Max is 100.
|
|
487
|
-
* Default is 0.
|
|
488
|
-
*/
|
|
489
|
-
uint32_t vbr_min_section_pct;
|
|
490
|
-
|
|
491
|
-
/**
|
|
492
|
-
* @brief Variable Bit Rate Maximum Section Percentage
|
|
493
|
-
*
|
|
494
|
-
* Indicates the maximum bitrate to be used for a single GOP as a percentage
|
|
495
|
-
* of the target bitrate.
|
|
496
|
-
*
|
|
497
|
-
* Min is 0.
|
|
498
|
-
* Max is 10000.
|
|
499
|
-
* Default is 2000.
|
|
500
|
-
*/
|
|
501
|
-
uint32_t vbr_max_section_pct;
|
|
502
|
-
|
|
503
|
-
/**
|
|
504
|
-
* @brief UnderShoot Percentage
|
|
505
|
-
*
|
|
506
|
-
* Only applicable for VBR and CBR.
|
|
507
|
-
*
|
|
508
|
-
* Indicates the tolerance of the VBR algorithm to undershoot and is used
|
|
509
|
-
* as a trigger threshold for more agressive adaptation of Quantization.
|
|
510
|
-
*
|
|
511
|
-
* Min is 0.
|
|
512
|
-
* Max is 100.
|
|
513
|
-
* Default is 25 for CBR and 50 for VBR.
|
|
514
|
-
*/
|
|
515
|
-
uint32_t under_shoot_pct;
|
|
516
|
-
|
|
517
|
-
/**
|
|
518
|
-
* @brief OverShoot Percentage
|
|
519
|
-
*
|
|
520
|
-
* Only applicable for VBR and CBR
|
|
521
|
-
*
|
|
522
|
-
* Indicates the tolerance of the VBR algorithm to overshoot and is used as
|
|
523
|
-
* a trigger threshold for more agressive adaptation of Quantization.
|
|
524
|
-
*
|
|
525
|
-
* Min is 0.
|
|
526
|
-
* Max is 100.
|
|
527
|
-
* Default is 25.
|
|
528
|
-
*/
|
|
529
|
-
uint32_t over_shoot_pct;
|
|
530
|
-
|
|
531
|
-
/**
|
|
532
|
-
* @brief MaxBitRate OverShoot Percentage
|
|
533
|
-
*
|
|
534
|
-
* Only applicable for Capped CRF.
|
|
535
|
-
*
|
|
536
|
-
* Indicates the tolerance of the Capped CRF algorithm to overshoot
|
|
537
|
-
* and is used as a trigger threshold for more agressive adaptation of
|
|
538
|
-
* Quantization.
|
|
539
|
-
*
|
|
540
|
-
* Min is 0.
|
|
541
|
-
* Max is 100.
|
|
542
|
-
* Default is 50.
|
|
543
|
-
*/
|
|
544
|
-
uint32_t mbr_over_shoot_pct;
|
|
545
|
-
|
|
546
|
-
/**
|
|
547
|
-
* @brief Starting Buffer Level in MilliSeconds
|
|
548
|
-
*
|
|
549
|
-
* Only applicable for CBR.
|
|
550
|
-
*
|
|
551
|
-
* Indicates the amount of data that will be buffered by the decoding
|
|
552
|
-
* application prior to beginning playback, and is expressed in units of
|
|
553
|
-
* time. Must be less than maximum_buffer_size_ms.
|
|
554
|
-
*
|
|
555
|
-
* Min is 20.
|
|
556
|
-
* Max is 10000.
|
|
557
|
-
* Default is 600.
|
|
558
|
-
*/
|
|
559
|
-
int64_t starting_buffer_level_ms;
|
|
560
|
-
|
|
561
|
-
/**
|
|
562
|
-
* @brief Optimal Buffer Level in MilliSeconds
|
|
563
|
-
*
|
|
564
|
-
* Only applicable for CBR.
|
|
565
|
-
*
|
|
566
|
-
* indicates the amount of data that the encoder should try to maintain in the
|
|
567
|
-
* decoder's buffer, and is expressed in units of time. Must be less than
|
|
568
|
-
* maximum_buffer_size_ms.
|
|
569
|
-
*
|
|
570
|
-
* Min is 20.
|
|
571
|
-
* Max is 10000.
|
|
572
|
-
* Default is 600.
|
|
573
|
-
*/
|
|
574
|
-
int64_t optimal_buffer_level_ms;
|
|
575
|
-
|
|
576
|
-
/**
|
|
577
|
-
* @brief Maximum Buffer Size in MilliSeconds
|
|
578
|
-
*
|
|
579
|
-
* Only applicable for CBR.
|
|
580
|
-
*
|
|
581
|
-
* indicates the maximum amount of data that may be buffered by the
|
|
582
|
-
* decoding application, and is expressed in units of time.
|
|
583
|
-
*
|
|
584
|
-
* Min is 20.
|
|
585
|
-
* Max is 10000.
|
|
586
|
-
* Default is 1000.
|
|
587
|
-
*/
|
|
588
|
-
int64_t maximum_buffer_size_ms;
|
|
589
|
-
|
|
590
|
-
// input / output buffer to be used for multi-pass encoding
|
|
591
|
-
SvtAv1FixedBuf rc_stats_buffer;
|
|
592
|
-
int pass;
|
|
593
|
-
|
|
594
|
-
// End rate control tuning
|
|
595
|
-
|
|
596
|
-
// Individual tuning flags
|
|
597
|
-
/* use fixed qp offset for every picture based on temporal layer index
|
|
598
|
-
* 0: off (use the auto mode QP)
|
|
599
|
-
* 1: on (the offset is applied on top of the user QP)
|
|
600
|
-
* 2: on (the offset is applied on top of the auto mode QP)
|
|
601
|
-
*
|
|
602
|
-
* Default is 0.*/
|
|
603
|
-
uint8_t use_fixed_qindex_offsets;
|
|
604
|
-
int32_t qindex_offsets[EB_MAX_TEMPORAL_LAYERS];
|
|
605
|
-
int32_t key_frame_chroma_qindex_offset;
|
|
606
|
-
int32_t key_frame_qindex_offset;
|
|
607
|
-
int32_t chroma_qindex_offsets[EB_MAX_TEMPORAL_LAYERS];
|
|
608
|
-
|
|
609
|
-
int32_t luma_y_dc_qindex_offset;
|
|
610
|
-
int32_t chroma_u_dc_qindex_offset;
|
|
611
|
-
int32_t chroma_u_ac_qindex_offset;
|
|
612
|
-
int32_t chroma_v_dc_qindex_offset;
|
|
613
|
-
int32_t chroma_v_ac_qindex_offset;
|
|
614
|
-
|
|
615
|
-
/**
|
|
616
|
-
* @brief Deblocking loop filter control
|
|
617
|
-
*
|
|
618
|
-
* Default is true.
|
|
619
|
-
*/
|
|
620
|
-
Bool enable_dlf_flag;
|
|
621
|
-
|
|
622
|
-
/* Film grain denoising the input picture
|
|
623
|
-
* Flag to enable the denoising
|
|
624
|
-
*
|
|
625
|
-
* Default is 0. */
|
|
626
|
-
uint32_t film_grain_denoise_strength;
|
|
627
|
-
|
|
628
|
-
/**
|
|
629
|
-
* @brief Determines how much denoising is used.
|
|
630
|
-
* Only applicable when film grain is ON.
|
|
631
|
-
*
|
|
632
|
-
* 0 is no denoising
|
|
633
|
-
* 1 is full denoising
|
|
634
|
-
*
|
|
635
|
-
* Default is 0. */
|
|
636
|
-
uint8_t film_grain_denoise_apply;
|
|
637
|
-
|
|
638
|
-
/* CDEF Level
|
|
639
|
-
*
|
|
640
|
-
* Default is -1. */
|
|
641
|
-
int cdef_level;
|
|
642
|
-
|
|
643
|
-
/* Restoration filtering
|
|
644
|
-
* enable/disable
|
|
645
|
-
* set Self-Guided (sg) mode
|
|
646
|
-
* set Wiener (wn) mode
|
|
647
|
-
*
|
|
648
|
-
* Default is -1. */
|
|
649
|
-
int enable_restoration_filtering;
|
|
650
|
-
|
|
651
|
-
/* motion field motion vector
|
|
652
|
-
*
|
|
653
|
-
* Default is -1. */
|
|
654
|
-
int enable_mfmv;
|
|
655
|
-
|
|
656
|
-
/* Flag to enable the scene change detection algorithm.
|
|
657
|
-
*
|
|
658
|
-
* Default is 1. */
|
|
659
|
-
uint32_t scene_change_detection;
|
|
660
|
-
|
|
661
|
-
/**
|
|
662
|
-
* @brief API signal to constrain motion vectors.
|
|
663
|
-
*
|
|
664
|
-
* Default is false.
|
|
665
|
-
*/
|
|
666
|
-
Bool restricted_motion_vector;
|
|
667
|
-
|
|
668
|
-
/* Log 2 Tile Rows and columns . 0 means no tiling,1 means that we split the dimension
|
|
669
|
-
* into 2
|
|
670
|
-
* Default is 0. */
|
|
671
|
-
int32_t tile_columns;
|
|
672
|
-
int32_t tile_rows;
|
|
673
|
-
|
|
674
|
-
/* When RateControlMode is set to 1 it's best to set this parameter to be
|
|
675
|
-
* equal to the Intra period value (such is the default set by the encoder).
|
|
676
|
-
* When CQP is chosen, then a (2 * minigopsize +1) look ahead is recommended.
|
|
677
|
-
*
|
|
678
|
-
* Default depends on rate control mode.*/
|
|
679
|
-
uint32_t look_ahead_distance;
|
|
680
|
-
|
|
681
|
-
/* Enable TPL in look ahead
|
|
682
|
-
* 0 = disable TPL in look ahead
|
|
683
|
-
* 1 = enable TPL in look ahead
|
|
684
|
-
* Default is 0 */
|
|
685
|
-
uint8_t enable_tpl_la;
|
|
686
|
-
|
|
687
|
-
/* recode_loop indicates the recode levels,
|
|
688
|
-
* DISALLOW_RECODE = 0, No recode.
|
|
689
|
-
* ALLOW_RECODE_KFMAXBW = 1, Allow recode for KF and exceeding maximum frame bandwidth.
|
|
690
|
-
* ALLOW_RECODE_KFARFGF = 2, Allow recode only for KF/ARF/GF frames.
|
|
691
|
-
* ALLOW_RECODE = 3, Allow recode for all frames based on bitrate constraints.
|
|
692
|
-
* ALLOW_RECODE_DEFAULT = 4, Default setting, ALLOW_RECODE_KFARFGF for M0~5 and
|
|
693
|
-
* ALLOW_RECODE_KFMAXBW for M6~8.
|
|
694
|
-
* default is 4
|
|
695
|
-
*/
|
|
696
|
-
uint32_t recode_loop;
|
|
697
|
-
|
|
698
|
-
/* Flag to signal the content being a screen sharing content type
|
|
699
|
-
*
|
|
700
|
-
* Default is 0. */
|
|
701
|
-
uint32_t screen_content_mode;
|
|
702
|
-
|
|
703
|
-
/* Enable adaptive quantization within a frame using segmentation.
|
|
704
|
-
*
|
|
705
|
-
* For rate control mode 0, setting this to 0 will use CQP mode, else CRF mode will be used.
|
|
706
|
-
* Default is 2. */
|
|
707
|
-
uint8_t enable_adaptive_quantization;
|
|
708
|
-
|
|
709
|
-
/**
|
|
710
|
-
* @brief Enable use of ALT-REF (temporally filtered) frames.
|
|
711
|
-
*
|
|
712
|
-
* Default is true.
|
|
713
|
-
*/
|
|
714
|
-
Bool enable_tf;
|
|
715
|
-
|
|
716
|
-
Bool enable_overlays;
|
|
717
|
-
/**
|
|
718
|
-
* @brief Tune for a particular metric; 0: VQ, 1: PSNR, 2: SSIM.
|
|
719
|
-
*
|
|
720
|
-
* Default is 1.
|
|
721
|
-
*/
|
|
722
|
-
uint8_t tune;
|
|
723
|
-
|
|
724
|
-
// super-resolution parameters
|
|
725
|
-
uint8_t superres_mode;
|
|
726
|
-
uint8_t superres_denom;
|
|
727
|
-
uint8_t superres_kf_denom;
|
|
728
|
-
uint8_t superres_qthres;
|
|
729
|
-
uint8_t superres_kf_qthres;
|
|
730
|
-
uint8_t superres_auto_search_type;
|
|
731
|
-
|
|
732
|
-
#if !SVT_AV1_CHECK_VERSION(1, 5, 0)
|
|
733
|
-
/* DEPRECATED: to be removed in 1.5.0. */
|
|
734
|
-
PredictionStructureConfigEntry pred_struct[1 << (MAX_HIERARCHICAL_LEVEL - 1)];
|
|
735
|
-
|
|
736
|
-
/* DEPRECATED: to be removed in 1.5.0. */
|
|
737
|
-
Bool enable_manual_pred_struct;
|
|
738
|
-
|
|
739
|
-
/* DEPRECATED: to be removed in 1.5.0. */
|
|
740
|
-
int32_t manual_pred_struct_entry_num;
|
|
741
|
-
#endif
|
|
742
|
-
/* Decoder-speed-targeted encoder optimization level (produce bitstreams that can be decoded faster).
|
|
743
|
-
* 0: No decoder-targeted speed optimization
|
|
744
|
-
* 1: Level 1 of decoder-targeted speed optimizations (faster decoder-speed than level 0)
|
|
745
|
-
* 2: Level 2 of decoder-targeted speed optimizations (faster decoder-speed than level 1)
|
|
746
|
-
*/
|
|
747
|
-
uint8_t fast_decode;
|
|
748
|
-
/* S-Frame interval (frames)
|
|
749
|
-
* 0: S-Frame off
|
|
750
|
-
* >0: S-Frame on and indicates the number of frames after which a frame may be coded as an S-Frame
|
|
751
|
-
*/
|
|
752
|
-
int32_t sframe_dist;
|
|
753
|
-
/* Indicates how an S-Frame should be inserted
|
|
754
|
-
* values are from EbSFrameMode
|
|
755
|
-
* SFRAME_STRICT_ARF: the considered frame will be made into an S-Frame only if it is an altref frame
|
|
756
|
-
* SFRAME_NEAREST_ARF: if the considered frame is not an altref frame, the next altref frame will be made into an S-Frame
|
|
757
|
-
*/
|
|
758
|
-
EbSFrameMode sframe_mode;
|
|
759
|
-
|
|
760
|
-
// End of individual tuning flags
|
|
761
|
-
|
|
762
|
-
// Application Specific parameters
|
|
763
|
-
|
|
764
|
-
/**
|
|
765
|
-
* @brief API signal for the library to know the channel ID (used for pinning to cores).
|
|
766
|
-
*
|
|
767
|
-
* Min value is 0.
|
|
768
|
-
* Max value is 0xFFFFFFFF.
|
|
769
|
-
* Default is 0.
|
|
770
|
-
*/
|
|
771
|
-
uint32_t channel_id;
|
|
772
|
-
|
|
773
|
-
/**
|
|
774
|
-
* @brief API signal for the library to know the active number of channels being encoded simultaneously.
|
|
775
|
-
*
|
|
776
|
-
* Min value is 1.
|
|
777
|
-
* Max value is 0xFFFFFFFF.
|
|
778
|
-
* Default is 1.
|
|
779
|
-
*/
|
|
780
|
-
uint32_t active_channel_count;
|
|
781
|
-
|
|
782
|
-
// Threads management
|
|
783
|
-
|
|
784
|
-
#if CLN_LP_LVLS
|
|
785
|
-
#if !SVT_AV1_CHECK_VERSION(3, 0, 0)
|
|
786
|
-
/* logical_processors refers to how much parallelization the encoder will perform
|
|
787
|
-
* by setting the number of threads and pictures that can be handled simultaneously. If
|
|
788
|
-
* the value is 0, a deafult level will be chosen based on the number of cores on the
|
|
789
|
-
* machine. Levels 1-6 are supported. Beyond that, higher inputs
|
|
790
|
-
* will map to the highest level.
|
|
791
|
-
*/
|
|
792
|
-
uint32_t logical_processors;
|
|
793
|
-
#endif
|
|
794
|
-
|
|
795
|
-
/* The level of parallelism refers to how much parallelization the encoder will perform
|
|
796
|
-
* by setting the number of threads and pictures that can be handled simultaneously. If
|
|
797
|
-
* the value is 0, a deafult level will be chosen based on the number of cores on the
|
|
798
|
-
* machine. Levels 1-6 are supported. Beyond that, higher inputs
|
|
799
|
-
* will map to the highest level.
|
|
800
|
-
*/
|
|
801
|
-
uint32_t level_of_parallelism;
|
|
802
|
-
|
|
803
|
-
/* Pin the execution of threads to the first N logical processors.
|
|
804
|
-
* 0: unpinned
|
|
805
|
-
* N: Pin threads to socket's first N processors
|
|
806
|
-
* default 0 */
|
|
807
|
-
uint32_t pin_threads;
|
|
808
|
-
#else
|
|
809
|
-
/* The number of logical processor which encoder threads run on. If
|
|
810
|
-
* LogicalProcessors and TargetSocket are not set, threads are managed by
|
|
811
|
-
* OS thread scheduler. */
|
|
812
|
-
uint32_t logical_processors;
|
|
813
|
-
|
|
814
|
-
/* Unpin the execution .This option does not
|
|
815
|
-
* set the execution to be pinned to a specific number of cores when set to 1. this allows the execution
|
|
816
|
-
* of multiple encodes on the CPU without having to pin them to a specific mask
|
|
817
|
-
* 1: pinned threads
|
|
818
|
-
* 0: unpinned
|
|
819
|
-
* default 0 */
|
|
820
|
-
uint32_t pin_threads;
|
|
821
|
-
#endif
|
|
822
|
-
|
|
823
|
-
/* Target socket to run on. For dual socket systems, this can specify which
|
|
824
|
-
* socket the encoder runs on.
|
|
825
|
-
*
|
|
826
|
-
* -1 = Both Sockets.
|
|
827
|
-
* 0 = Socket 0.
|
|
828
|
-
* 1 = Socket 1.
|
|
829
|
-
*
|
|
830
|
-
* Default is -1. */
|
|
831
|
-
int32_t target_socket;
|
|
832
|
-
|
|
833
|
-
/* CPU FLAGS to limit assembly instruction set used by encoder.
|
|
834
|
-
* Default is EB_CPU_FLAGS_ALL. */
|
|
835
|
-
EbCpuFlags use_cpu_flags;
|
|
836
|
-
|
|
837
|
-
// Debug tools
|
|
838
|
-
/* Instruct the library to calculate the recon to source for PSNR calculation
|
|
839
|
-
*
|
|
840
|
-
* Default is 0.*/
|
|
841
|
-
uint32_t stat_report;
|
|
842
|
-
|
|
843
|
-
/**
|
|
844
|
-
* @brief API Signal to output reconstructed yuv used for debug purposes.
|
|
845
|
-
* Using this will affect the speed of encoder.
|
|
846
|
-
*
|
|
847
|
-
* Default is false.
|
|
848
|
-
*/
|
|
849
|
-
Bool recon_enabled;
|
|
850
|
-
// 1.0.0: Any additional fields shall go after here
|
|
851
|
-
|
|
852
|
-
/**
|
|
853
|
-
* @brief Signal that force-key-frames is enabled.
|
|
854
|
-
*
|
|
855
|
-
*/
|
|
856
|
-
Bool force_key_frames;
|
|
857
|
-
|
|
858
|
-
/**
|
|
859
|
-
* @brief Signal to the library to treat intra_period_length as seconds and
|
|
860
|
-
* multiply by fps_num/fps_den.
|
|
861
|
-
*/
|
|
862
|
-
Bool multiply_keyint;
|
|
863
|
-
|
|
864
|
-
// reference scaling parameters
|
|
865
|
-
/**
|
|
866
|
-
* @brief Reference scaling mode
|
|
867
|
-
* the available modes are defined in RESIZE_MODE
|
|
868
|
-
*/
|
|
869
|
-
uint8_t resize_mode;
|
|
870
|
-
/**
|
|
871
|
-
* @brief Resize denominator
|
|
872
|
-
* this value can be from 8 to 16, means downscaling to 8/8-8/16 of original
|
|
873
|
-
* resolution in both width and height
|
|
874
|
-
*/
|
|
875
|
-
uint8_t resize_denom;
|
|
876
|
-
/**
|
|
877
|
-
* @brief Resize denominator of key frames
|
|
878
|
-
* this value can be from 8 to 16, means downscaling to 8/8-8/16 of original
|
|
879
|
-
* resolution in both width and height
|
|
880
|
-
*/
|
|
881
|
-
uint8_t resize_kf_denom;
|
|
882
|
-
/**
|
|
883
|
-
* @brief Signal to the library to enable quantisation matrices
|
|
884
|
-
*
|
|
885
|
-
* Default is false.
|
|
886
|
-
*/
|
|
887
|
-
Bool enable_qm;
|
|
888
|
-
/**
|
|
889
|
-
* @brief Min quant matrix flatness. Applicable when enable_qm is true.
|
|
890
|
-
* Min value is 0.
|
|
891
|
-
* Max value is 15.
|
|
892
|
-
* Default is 8.
|
|
893
|
-
*/
|
|
894
|
-
uint8_t min_qm_level;
|
|
895
|
-
/**
|
|
896
|
-
* @brief Max quant matrix flatness. Applicable when enable_qm is true.
|
|
897
|
-
* Min value is 0.
|
|
898
|
-
* Max value is 15.
|
|
899
|
-
* Default is 15.
|
|
900
|
-
*/
|
|
901
|
-
uint8_t max_qm_level;
|
|
902
|
-
|
|
903
|
-
/**
|
|
904
|
-
* @brief gop_constraint_rc
|
|
905
|
-
*
|
|
906
|
-
* Currently, only applicable for VBR and when GoP size is greater than 119 frames.
|
|
907
|
-
*
|
|
908
|
-
* When enabled, the rate control matches the target rate for each GoP.
|
|
909
|
-
*
|
|
910
|
-
* 0: off
|
|
911
|
-
* 1: on
|
|
912
|
-
* Default is 0.
|
|
913
|
-
*/
|
|
914
|
-
Bool gop_constraint_rc;
|
|
915
|
-
|
|
916
|
-
/**
|
|
917
|
-
* @brief scale factors for lambda value for different frame update types
|
|
918
|
-
* factor >> 7 (/ 128) is the actual value in float
|
|
919
|
-
*/
|
|
920
|
-
int32_t lambda_scale_factors[SVT_AV1_FRAME_UPDATE_TYPES];
|
|
921
|
-
|
|
922
|
-
/* Dynamic gop
|
|
923
|
-
*
|
|
924
|
-
* 0 = disable Dynamic GoP
|
|
925
|
-
* 1 = enable Dynamic GoP
|
|
926
|
-
* Default is 1. */
|
|
927
|
-
Bool enable_dg;
|
|
928
|
-
|
|
929
|
-
/**
|
|
930
|
-
* @brief startup_mg_size
|
|
931
|
-
*
|
|
932
|
-
* When enabled, a MG with specified size will be inserted after the key frame.
|
|
933
|
-
* The MG size is determined by 2^startup_mg_size.
|
|
934
|
-
*
|
|
935
|
-
* 0: off
|
|
936
|
-
* 2: set hierarchical levels to 2 (MG size 4)
|
|
937
|
-
* 3: set hierarchical levels to 3 (MG size 8)
|
|
938
|
-
* 4: set hierarchical levels to 4 (MG size 16)
|
|
939
|
-
* Default is 0.
|
|
940
|
-
*/
|
|
941
|
-
uint8_t startup_mg_size;
|
|
942
|
-
|
|
943
|
-
/* @brief reference scaling events for random access mode (resize-mode = 4)
|
|
944
|
-
*
|
|
945
|
-
* evt_num: total count of events
|
|
946
|
-
* start_frame_nums: array of scaling start frame numbers
|
|
947
|
-
* resize_kf_denoms: array of scaling denominators of key-frame
|
|
948
|
-
* resize_denoms: array of scaling denominators of non-key-frame
|
|
949
|
-
*/
|
|
950
|
-
SvtAv1FrameScaleEvts frame_scale_evts;
|
|
951
|
-
|
|
952
|
-
/* ROI map
|
|
953
|
-
*
|
|
954
|
-
* 0 = disable ROI
|
|
955
|
-
* 1 = enable ROI
|
|
956
|
-
* Default is 0. */
|
|
957
|
-
Bool enable_roi_map;
|
|
958
|
-
|
|
959
|
-
/* Stores the optional film grain synthesis info */
|
|
960
|
-
AomFilmGrain *fgs_table;
|
|
961
|
-
|
|
962
|
-
/* New parameters can go in under this line. Also deduct the size of the parameter */
|
|
963
|
-
/* from the padding array */
|
|
964
|
-
|
|
965
|
-
/* Variance boost
|
|
966
|
-
* false = disable variance boost
|
|
967
|
-
* true = enable variance boost
|
|
968
|
-
* Default is false. */
|
|
969
|
-
Bool enable_variance_boost;
|
|
970
|
-
|
|
971
|
-
/* @brief Selects the curve strength to boost low variance regions according to a fast-growing formula
|
|
972
|
-
* Default is 2 */
|
|
973
|
-
uint8_t variance_boost_strength;
|
|
974
|
-
|
|
975
|
-
/* @brief Picks a set of eight 8x8 variance values per superblock to determine boost
|
|
976
|
-
* Lower values enable detecting more blocks that need boosting, at the expense of more possible false positives (overall bitrate increase)
|
|
977
|
-
* 1: 1st octile
|
|
978
|
-
* 4: 4th octile
|
|
979
|
-
* 8: 8th octile
|
|
980
|
-
* Default is 6 */
|
|
981
|
-
uint8_t variance_octile;
|
|
982
|
-
|
|
983
|
-
/*Add 128 Byte Padding to Struct to avoid changing the size of the public configuration struct*/
|
|
984
|
-
#if CLN_LP_LVLS
|
|
985
|
-
uint8_t padding[128 - sizeof(Bool) - 2 * sizeof(uint8_t) - sizeof(uint32_t)];
|
|
986
|
-
#else
|
|
987
|
-
uint8_t padding[128 - sizeof(Bool) - 2 * sizeof(uint8_t)];
|
|
988
|
-
#endif
|
|
989
|
-
|
|
990
|
-
} EbSvtAv1EncConfiguration;
|
|
991
|
-
|
|
992
|
-
/**
|
|
993
|
-
* Returns a string containing "v$tag-$commit_count-g$hash${dirty:+-dirty}"
|
|
994
|
-
* @param[out] SVT_AV1_CVS_VERSION
|
|
995
|
-
*/
|
|
996
|
-
EB_API const char *svt_av1_get_version(void);
|
|
997
|
-
|
|
998
|
-
/**
|
|
999
|
-
* Prints the version header and build information to the file
|
|
1000
|
-
* specified by the SVT_LOG_FILE environment variable or stderr
|
|
1001
|
-
*/
|
|
1002
|
-
EB_API void svt_av1_print_version(void);
|
|
1003
|
-
|
|
1004
|
-
/* STEP 1: Call the library to construct a Component Handle.
|
|
1005
|
-
*
|
|
1006
|
-
* Parameter:
|
|
1007
|
-
* @ **p_handle Handle to be called in the future for manipulating the
|
|
1008
|
-
* component.
|
|
1009
|
-
* @ *p_app_data Callback data.
|
|
1010
|
-
* @ *config_ptr Pointer passed back to the client during callbacks, it will be
|
|
1011
|
-
* loaded with default params from the library. */
|
|
1012
|
-
EB_API EbErrorType svt_av1_enc_init_handle(
|
|
1013
|
-
EbComponentType **p_handle, void *p_app_data,
|
|
1014
|
-
EbSvtAv1EncConfiguration *config_ptr); // config_ptr will be loaded with default params from the library
|
|
1015
|
-
|
|
1016
|
-
/* STEP 2: Set all configuration parameters.
|
|
1017
|
-
*
|
|
1018
|
-
* Parameter:
|
|
1019
|
-
* @ *svt_enc_component Encoder handler.
|
|
1020
|
-
* @ *pComponentParameterStructure Encoder and buffer configurations will be copied to the library. */
|
|
1021
|
-
EB_API EbErrorType svt_av1_enc_set_parameter(
|
|
1022
|
-
EbComponentType *svt_enc_component,
|
|
1023
|
-
EbSvtAv1EncConfiguration
|
|
1024
|
-
*pComponentParameterStructure); // pComponentParameterStructure contents will be copied to the library
|
|
1025
|
-
|
|
1026
|
-
/* OPTIONAL: Set a single configuration parameter.
|
|
1027
|
-
*
|
|
1028
|
-
* Parameter:
|
|
1029
|
-
* @ *pComponentParameterStructure Encoder parameters structure.
|
|
1030
|
-
* @ *name Null terminated string containing the parameter name
|
|
1031
|
-
* @ *value Null terminated string containing the parameter value */
|
|
1032
|
-
EB_API EbErrorType svt_av1_enc_parse_parameter(EbSvtAv1EncConfiguration *pComponentParameterStructure, const char *name,
|
|
1033
|
-
const char *value);
|
|
1034
|
-
|
|
1035
|
-
/* STEP 3: Initialize encoder and allocates memory to necessary buffers.
|
|
1036
|
-
*
|
|
1037
|
-
* Parameter:
|
|
1038
|
-
* @ *svt_enc_component Encoder handler. */
|
|
1039
|
-
EB_API EbErrorType svt_av1_enc_init(EbComponentType *svt_enc_component);
|
|
1040
|
-
|
|
1041
|
-
/* OPTIONAL: Get stream headers at init time.
|
|
1042
|
-
*
|
|
1043
|
-
* Parameter:
|
|
1044
|
-
* @ *svt_enc_component Encoder handler.
|
|
1045
|
-
* @ **output_stream_ptr Output buffer. */
|
|
1046
|
-
EB_API EbErrorType svt_av1_enc_stream_header(EbComponentType *svt_enc_component,
|
|
1047
|
-
EbBufferHeaderType **output_stream_ptr);
|
|
1048
|
-
|
|
1049
|
-
/* OPTIONAL: Release stream headers at init time.
|
|
1050
|
-
*
|
|
1051
|
-
* Parameter:
|
|
1052
|
-
* @ *stream_header_ptr stream header buffer. */
|
|
1053
|
-
EB_API EbErrorType svt_av1_enc_stream_header_release(EbBufferHeaderType *stream_header_ptr);
|
|
1054
|
-
|
|
1055
|
-
/* STEP 4: Send the picture.
|
|
1056
|
-
*
|
|
1057
|
-
* Parameter:
|
|
1058
|
-
* @ *svt_enc_component Encoder handler.
|
|
1059
|
-
* @ *p_buffer Header pointer, picture buffer. */
|
|
1060
|
-
EB_API EbErrorType svt_av1_enc_send_picture(EbComponentType *svt_enc_component, EbBufferHeaderType *p_buffer);
|
|
1061
|
-
|
|
1062
|
-
/**
|
|
1063
|
-
* @brief Step 5: Receive packet.
|
|
1064
|
-
* This function will become blocking if either pic_send_done is set to 1 or if we are in low-delay (pred-struct=1).
|
|
1065
|
-
* Otherwise, this function is non-blocking and will return EB_NoErrorEmptyQueue if there are no packets available.
|
|
1066
|
-
*
|
|
1067
|
-
* @param svt_enc_component The encoder handler
|
|
1068
|
-
* @param p_buffer Header pointer to return packet with
|
|
1069
|
-
* @param pic_send_done Flag to signal that all input pictures have been sent. Should be either 0 or 1.
|
|
1070
|
-
* @return EB_API Either EB_ErrorMax for an encode error or EB_NoErrorEmptyQueue if there are no available packets.
|
|
1071
|
-
*/
|
|
1072
|
-
EB_API EbErrorType svt_av1_enc_get_packet(EbComponentType *svt_enc_component, EbBufferHeaderType **p_buffer,
|
|
1073
|
-
uint8_t pic_send_done);
|
|
1074
|
-
|
|
1075
|
-
/* STEP 5-1: Release output buffer back into the pool.
|
|
1076
|
-
*
|
|
1077
|
-
* Parameter:
|
|
1078
|
-
* @ **p_buffer Header pointer that contains the output packet to be released. */
|
|
1079
|
-
EB_API void svt_av1_enc_release_out_buffer(EbBufferHeaderType **p_buffer);
|
|
1080
|
-
|
|
1081
|
-
/* OPTIONAL: Fill buffer with reconstructed picture.
|
|
1082
|
-
*
|
|
1083
|
-
* Parameter:
|
|
1084
|
-
* @ *svt_enc_component Encoder handler.
|
|
1085
|
-
* @ *p_buffer Output buffer. */
|
|
1086
|
-
EB_API EbErrorType svt_av1_get_recon(EbComponentType *svt_enc_component, EbBufferHeaderType *p_buffer);
|
|
1087
|
-
|
|
1088
|
-
/* OPTIONAL: get stream information
|
|
1089
|
-
*
|
|
1090
|
-
* Parameter:
|
|
1091
|
-
* @ *svt_enc_component Encoder handler.
|
|
1092
|
-
* @ *stream_info_id SVT_AV1_STREAM_INFO_ID.
|
|
1093
|
-
* @ *info output, the type depends on id */
|
|
1094
|
-
EB_API EbErrorType svt_av1_enc_get_stream_info(EbComponentType *svt_enc_component, uint32_t stream_info_id, void *info);
|
|
1095
|
-
|
|
1096
|
-
/* STEP 6: Deinitialize encoder library.
|
|
1097
|
-
*
|
|
1098
|
-
* Parameter:
|
|
1099
|
-
* @ *svt_enc_component Encoder handler. */
|
|
1100
|
-
EB_API EbErrorType svt_av1_enc_deinit(EbComponentType *svt_enc_component);
|
|
1101
|
-
|
|
1102
|
-
/* STEP 7: Deconstruct encoder handler.
|
|
1103
|
-
*
|
|
1104
|
-
* Parameter:
|
|
1105
|
-
* @ *svt_enc_component Encoder handler. */
|
|
1106
|
-
EB_API EbErrorType svt_av1_enc_deinit_handle(EbComponentType *svt_enc_component);
|
|
1107
|
-
|
|
1108
|
-
#ifdef __cplusplus
|
|
1109
|
-
}
|
|
1110
|
-
#endif // __cplusplus
|
|
1111
|
-
|
|
1112
|
-
#endif // EbSvtAv1Enc_h
|