}
/****************************************************************************
- * x264_picture_alloc:
+ * x264_picture_init:
****************************************************************************/
-int x264_picture_alloc( x264_picture_t *pic, int i_csp, int i_width, int i_height )
+void x264_picture_init( x264_picture_t *pic )
{
memset( pic, 0, sizeof( x264_picture_t ) );
pic->i_type = X264_TYPE_AUTO;
pic->i_qpplus1 = 0;
+ pic->i_pic_struct = PIC_STRUCT_AUTO;
+}
+
+/****************************************************************************
+ * x264_picture_alloc:
+ ****************************************************************************/
+int x264_picture_alloc( x264_picture_t *pic, int i_csp, int i_width, int i_height )
+{
+ x264_picture_init( pic );
pic->img.i_csp = i_csp;
pic->img.i_plane = 3;
pic->img.plane[0] = x264_malloc( 3 * i_width * i_height / 2 );
pic->img.i_stride[0] = i_width;
pic->img.i_stride[1] = i_width / 2;
pic->img.i_stride[2] = i_width / 2;
- pic->i_pic_struct = PIC_STRUCT_AUTO;
return 0;
}
static int picture_alloc( x264_picture_t *pic, int i_csp, int i_width, int i_height )
{
- memset( pic, 0, sizeof( x264_picture_t ) );
+ x264_picture_init( pic );
pic->img.i_csp = i_csp;
pic->img.i_plane = 3;
- pic->i_pic_struct = PIC_STRUCT_AUTO;
return 0;
}
#include <stdarg.h>
-#define X264_BUILD 97
+#define X264_BUILD 98
/* x264_t:
* opaque handler for encoder */
void *opaque;
} x264_picture_t;
+/* x264_picture_init:
+ * initialize an x264_picture_t. Needs to be done if the calling application
+ * allocates its own x264_picture_t as opposed to using x264_picture_alloc. */
+void x264_picture_init( x264_picture_t *pic );
+
/* x264_picture_alloc:
* alloc data for a picture. You must call x264_picture_clean on it.
* returns 0 on success, or -1 on malloc failure. */