#include <stdarg.h>
-#define X264_BUILD 0x0011
+#define X264_BUILD 22
/* x264_t:
* opaque handler for decoder and encoder */
#define X264_TYPE_IDR 0x0001
#define X264_TYPE_I 0x0002
#define X264_TYPE_P 0x0003
-#define X264_TYPE_B 0x0004
+#define X264_TYPE_BREF 0x0004 /* Non-disposable B-frame */
+#define X264_TYPE_B 0x0005
+#define IS_X264_TYPE_I(x) ((x)==X264_TYPE_I || (x)==X264_TYPE_IDR)
+#define IS_X264_TYPE_B(x) ((x)==X264_TYPE_B || (x)==X264_TYPE_BREF)
/* Log level
*/
int i_keyint_min; /* Scenecuts closer together than this are coded as I, not IDR. */
int i_scenecut_threshold; /* how aggressively to insert extra I frames */
int i_bframe; /* how many b-frame between 2 references pictures */
+ int b_bframe_adaptive;
+ int i_bframe_bias;
+ int b_bframe_pyramid; /* Keep some B-frames as references */
int b_deblocking_filter;
int i_deblocking_filter_alphac0; /* [-6, 6] -6 light filter, 6 strong */
unsigned int inter; /* inter flags */
int i_direct_mv_pred; /* spatial vs temporal mv prediction */
-
int i_subpel_refine; /* subpixel motion estimation quality */
-
+ int b_chroma_me; /* chroma ME for subpel and mode decision in P-frames */
int i_mv_range; /* maximum length of a mv (in pixels) */
+ int b_weighted_bipred; /* implicit weighting for B-frames */
+
+ int i_chroma_qp_offset;
+
int b_psnr; /* Do we compute PSNR stats (save a few % of cpu) */
} analyse;
int x264_encoder_headers( x264_t *, x264_nal_t **, int * );
/* x264_encoder_encode:
* encode one picture */
-int x264_encoder_encode ( x264_t *, x264_nal_t **, int *, x264_picture_t * );
+int x264_encoder_encode ( x264_t *, x264_nal_t **, int *, x264_picture_t *, x264_picture_t * );
/* x264_encoder_close:
* close an encoder handler */
void x264_encoder_close ( x264_t * );