upload_yuv_to_surface(FILE *yuv_fp, VASurfaceID surface_id);
struct {
- VAEncSequenceParameterBufferH264Ext seq_param;
- VAEncPictureParameterBufferH264Ext pic_param;
- VAEncSliceParameterBufferH264Ext slice_param[MAX_SLICES];
+ VAEncSequenceParameterBufferH264 seq_param;
+ VAEncPictureParameterBufferH264 pic_param;
+ VAEncSliceParameterBufferH264 slice_param[MAX_SLICES];
VAEncH264DecRefPicMarkingBuffer dec_ref_pic_marking;
VAContextID context_id;
VAConfigID config_id;
static void avcenc_update_picture_parameter(int slice_type, int frame_num, int display_num, int is_idr)
{
- VAEncPictureParameterBufferH264Ext *pic_param;
+ VAEncPictureParameterBufferH264 *pic_param;
VAStatus va_status;
// Picture level
va_status = vaCreateBuffer(va_dpy,
avcenc_context.context_id,
- VAEncPictureParameterBufferExtType,
+ VAEncPictureParameterBufferType,
sizeof(*pic_param), 1, pic_param,
&avcenc_context.pic_param_buf_id);
CHECK_VASTATUS(va_status,"vaCreateBuffer");
static void avcenc_update_slice_parameter(int slice_type)
{
- VAEncSliceParameterBufferH264Ext *slice_param;
+ VAEncSliceParameterBufferH264 *slice_param;
VAStatus va_status;
int i;
va_status = vaCreateBuffer(va_dpy,
avcenc_context.context_id,
- VAEncSliceParameterBufferExtType,
+ VAEncSliceParameterBufferType,
sizeof(*slice_param), 1, slice_param,
&avcenc_context.slice_param_buf_id[i]);
CHECK_VASTATUS(va_status,"vaCreateBuffer");;
}
/* sequence parameter set */
- VAEncSequenceParameterBufferH264Ext *seq_param = &avcenc_context.seq_param;
+ VAEncSequenceParameterBufferH264 *seq_param = &avcenc_context.seq_param;
va_status = vaCreateBuffer(va_dpy,
avcenc_context.context_id,
- VAEncSequenceParameterBufferExtType,
+ VAEncSequenceParameterBufferType,
sizeof(*seq_param), 1, seq_param,
&avcenc_context.seq_param_buf_id);
CHECK_VASTATUS(va_status,"vaCreateBuffer");;
static void sps_rbsp(bitstream *bs)
{
- VAEncSequenceParameterBufferH264Ext *seq_param = &avcenc_context.seq_param;
+ VAEncSequenceParameterBufferH264 *seq_param = &avcenc_context.seq_param;
bitstream_put_ui(bs, seq_param->profile_idc, 8); /* profile_idc */
bitstream_put_ui(bs, 0, 1); /* constraint_set0_flag */
static void pps_rbsp(bitstream *bs)
{
- VAEncPictureParameterBufferH264Ext *pic_param = &avcenc_context.pic_param;
+ VAEncPictureParameterBufferH264 *pic_param = &avcenc_context.pic_param;
bitstream_put_ue(bs, pic_param->pic_parameter_set_id); /* pic_parameter_set_id */
bitstream_put_ue(bs, pic_param->seq_parameter_set_id); /* seq_parameter_set_id */
static void
slice_header(bitstream *bs, int frame_num, int display_frame, int slice_type, int nal_ref_idc, int is_idr)
{
- VAEncSequenceParameterBufferH264Ext *seq_param = &avcenc_context.seq_param;
- VAEncPictureParameterBufferH264Ext *pic_param = &avcenc_context.pic_param;
+ VAEncSequenceParameterBufferH264 *seq_param = &avcenc_context.seq_param;
+ VAEncPictureParameterBufferH264 *pic_param = &avcenc_context.pic_param;
int is_cabac = (pic_param->pic_fields.bits.entropy_coding_mode_flag == ENTROPY_MODE_CABAC);
bitstream_put_ue(bs, 0); /* first_mb_in_slice: 0 */
printf("Usage: avnenc <width> <height> <input_yuvfile> <output_avcfile> [qp=qpvalue|fb=framebitrate] [mode=0(I frames only)/1(I and P frames)/2(I, P and B frames)\n");
}
-static void avcenc_context_seq_param_init(VAEncSequenceParameterBufferH264Ext *seq_param,
+static void avcenc_context_seq_param_init(VAEncSequenceParameterBufferH264 *seq_param,
int width, int height)
{
seq_param->vui_flag = 0;
}
-static void avcenc_context_pic_param_init(VAEncPictureParameterBufferH264Ext *pic_param)
+static void avcenc_context_pic_param_init(VAEncPictureParameterBufferH264 *pic_param)
{
pic_param->seq_parameter_set_id = 0;
pic_param->pic_parameter_set_id = 0;