15 #define X264_BUILD 128
25 enum nal_unit_type_e {
40 NAL_PRIORITY_DISPOSABLE = 0,
42 NAL_PRIORITY_HIGH = 2,
43 NAL_PRIORITY_HIGHEST = 3
72 #define X264_CPU_CACHELINE_32 0x0000001
73 #define X264_CPU_CACHELINE_64 0x0000002
74 #define X264_CPU_ALTIVEC 0x0000004
75 #define X264_CPU_MMX 0x0000008
76 #define X264_CPU_MMX2 0x0000010
77 #define X264_CPU_MMXEXT X264_CPU_MMX2
78 #define X264_CPU_SSE 0x0000020
79 #define X264_CPU_SSE2 0x0000040
80 #define X264_CPU_SSE2_IS_SLOW 0x0000080
81 #define X264_CPU_SSE2_IS_FAST 0x0000100
82 #define X264_CPU_SSE3 0x0000200
83 #define X264_CPU_SSSE3 0x0000400
84 #define X264_CPU_SHUFFLE_IS_FAST 0x0000800
85 #define X264_CPU_STACK_MOD4 0x0001000
86 #define X264_CPU_SSE4 0x0002000
87 #define X264_CPU_SSE42 0x0004000
88 #define X264_CPU_SSE_MISALIGN 0x0008000
89 #define X264_CPU_LZCNT 0x0010000
90 #define X264_CPU_ARMV6 0x0020000
91 #define X264_CPU_NEON 0x0040000
92 #define X264_CPU_FAST_NEON_MRC 0x0080000
93 #define X264_CPU_SLOW_CTZ 0x0100000
94 #define X264_CPU_SLOW_ATOM 0x0200000
95 #define X264_CPU_AVX 0x0400000
97 #define X264_CPU_XOP 0x0800000
98 #define X264_CPU_FMA4 0x1000000
99 #define X264_CPU_AVX2 0x2000000
100 #define X264_CPU_FMA3 0x4000000
101 #define X264_CPU_BMI1 0x8000000
102 #define X264_CPU_BMI2 0x10000000
103 #define X264_CPU_TBM 0x20000000
107 #define X264_ANALYSE_I4x4 0x0001
108 #define X264_ANALYSE_I8x8 0x0002
109 #define X264_ANALYSE_PSUB16x16 0x0010
110 #define X264_ANALYSE_PSUB8x8 0x0020
111 #define X264_ANALYSE_BSUB16x16 0x0100
112 #define X264_DIRECT_PRED_NONE 0
113 #define X264_DIRECT_PRED_SPATIAL 1
114 #define X264_DIRECT_PRED_TEMPORAL 2
115 #define X264_DIRECT_PRED_AUTO 3
116 #define X264_ME_DIA 0
117 #define X264_ME_HEX 1
118 #define X264_ME_UMH 2
119 #define X264_ME_ESA 3
120 #define X264_ME_TESA 4
121 #define X264_CQM_FLAT 0
122 #define X264_CQM_JVT 1
123 #define X264_CQM_CUSTOM 2
124 #define X264_RC_CQP 0
125 #define X264_RC_CRF 1
126 #define X264_RC_ABR 2
127 #define X264_QP_AUTO 0
128 #define X264_AQ_NONE 0
129 #define X264_AQ_VARIANCE 1
130 #define X264_AQ_AUTOVARIANCE 2
131 #define X264_B_ADAPT_NONE 0
132 #define X264_B_ADAPT_FAST 1
133 #define X264_B_ADAPT_TRELLIS 2
134 #define X264_WEIGHTP_NONE 0
135 #define X264_WEIGHTP_SIMPLE 1
136 #define X264_WEIGHTP_SMART 2
137 #define X264_B_PYRAMID_NONE 0
138 #define X264_B_PYRAMID_STRICT 1
139 #define X264_B_PYRAMID_NORMAL 2
140 #define X264_KEYINT_MIN_AUTO 0
141 #define X264_KEYINT_MAX_INFINITE (1 << 30)
144 #define X264_CSP_MASK 0x00ff
145 #define X264_CSP_NONE 0x0000
146 #define X264_CSP_I420 0x0001
147 #define X264_CSP_YV12 0x0002
148 #define X264_CSP_NV12 0x0003
149 #define X264_CSP_I422 0x0004
150 #define X264_CSP_YV16 0x0005
151 #define X264_CSP_NV16 0x0006
152 #define X264_CSP_I444 0x0007
153 #define X264_CSP_YV24 0x0008
154 #define X264_CSP_BGR 0x0009
155 #define X264_CSP_BGRA 0x000a
156 #define X264_CSP_RGB 0x000b
157 #define X264_CSP_MAX 0x000c
158 #define X264_CSP_VFLIP 0x1000
159 #define X264_CSP_HIGH_DEPTH 0x2000
162 #define X264_TYPE_AUTO 0x0000
163 #define X264_TYPE_IDR 0x0001
164 #define X264_TYPE_I 0x0002
165 #define X264_TYPE_P 0x0003
166 #define X264_TYPE_BREF 0x0004
167 #define X264_TYPE_B 0x0005
168 #define X264_TYPE_KEYFRAME 0x0006
169 #define IS_X264_TYPE_I(x) ((x) == X264_TYPE_I || (x) == X264_TYPE_IDR)
170 #define IS_X264_TYPE_B(x) ((x) == X264_TYPE_B || (x) == X264_TYPE_BREF)
173 #define X264_LOG_NONE (-1)
174 #define X264_LOG_ERROR 0
175 #define X264_LOG_WARNING 1
176 #define X264_LOG_INFO 2
177 #define X264_LOG_DEBUG 3
180 #define X264_THREADS_AUTO 0
181 #define X264_SYNC_LOOKAHEAD_AUTO (-1)
184 #define X264_NAL_HRD_NONE 0
185 #define X264_NAL_HRD_VBR 1
186 #define X264_NAL_HRD_CBR 2
192 int i_lookahead_threads;
193 int b_sliced_threads;
195 int b_cpu_independent;
196 int i_sync_lookahead;
240 int i_frame_reference;
245 int i_scenecut_threshold;
259 int i_bframe_adaptive;
283 int i_bframe_pyramid;
295 int b_deblocking_filter;
296 int i_deblocking_filter_alphac0;
297 int i_deblocking_filter_beta;
304 int i_cabac_init_idc;
307 int b_constrained_intra;
322 void (*pf_log)(
void *,
int i_level,
const char *psz, va_list);
348 int b_weighted_bipred;
349 int i_direct_mv_pred;
363 int i_chroma_qp_offset;
410 int i_mv_range_thread;
437 int b_mixed_references;
476 int i_noise_reduction;
492 int b_mb_info_update;
503 int i_luma_deadzone[2];
521 float f_rf_constant_max;
540 float f_rate_tolerance;
557 int i_vbv_max_bitrate;
558 int i_vbv_buffer_size;
559 float f_vbv_buffer_init;
592 float f_complexity_blur;
601 unsigned int i_right;
602 unsigned int i_bottom;
619 int b_repeat_headers;
628 uint32_t i_timebase_num;
629 uint32_t i_timebase_den;
655 int b_fake_interlaced;
658 int i_slice_max_size;
666 void (*param_free)(
void *);
750 extern const int x264_bit_depth;
757 extern const int x264_chroma_format;
761 PIC_STRUCT_PROGRESSIVE = 1,
763 PIC_STRUCT_TOP_BOTTOM = 4,
764 PIC_STRUCT_BOTTOM_TOP = 5,
765 PIC_STRUCT_TOP_BOTTOM_TOP = 6,
766 PIC_STRUCT_BOTTOM_TOP_BOTTOM = 7,
767 PIC_STRUCT_DOUBLE = 8,
768 PIC_STRUCT_TRIPLE = 9
773 double cpb_initial_arrival_time;
774 double cpb_final_arrival_time;
775 double cpb_removal_time;
777 double dpb_output_time;
802 float *quant_offsets;
805 void (*quant_offsets_free)(
void *);
827 void (*mb_info_free)(
void *);
830 #define X264_MBINFO_CONSTANT (1 << 0)
896 int x264_picture_alloc(
x264_picture_t *pic,
int i_csp,
int i_width,
int i_height);
932 void x264_encoder_close(
x264_t *);