uint32_t timing_info_present_flag : 1;
uint32_t video_signal_type_present_flag : 1;
uint32_t colour_description_present_flag : 1;
+ uint32_t chroma_loc_info_present_flag : 1;
} flags;
uint32_t aspect_ratio_idc;
uint32_t sar_width;
uint32_t colour_primaries;
uint32_t transfer_characteristics;
uint32_t matrix_coefficients;
+ uint32_t chroma_sample_loc_type_top_field;
+ uint32_t chroma_sample_loc_type_bottom_field;
}rvcn_enc_vui_info;
typedef struct rvcn_enc_input_format_s
pic->seq.vui_flags.video_signal_type_present_flag;
enc->enc_pic.vui_info.flags.colour_description_present_flag =
pic->seq.vui_flags.colour_description_present_flag;
+ enc->enc_pic.vui_info.flags.chroma_loc_info_present_flag =
+ pic->seq.vui_flags.chroma_loc_info_present_flag;
enc->enc_pic.vui_info.aspect_ratio_idc = pic->seq.aspect_ratio_idc;
enc->enc_pic.vui_info.sar_width = pic->seq.sar_width;
enc->enc_pic.vui_info.sar_height = pic->seq.sar_height;
enc->enc_pic.vui_info.colour_primaries = pic->seq.colour_primaries;
enc->enc_pic.vui_info.transfer_characteristics = pic->seq.transfer_characteristics;
enc->enc_pic.vui_info.matrix_coefficients = pic->seq.matrix_coefficients;
+ enc->enc_pic.vui_info.chroma_sample_loc_type_top_field =
+ pic->seq.chroma_sample_loc_type_top_field;
+ enc->enc_pic.vui_info.chroma_sample_loc_type_bottom_field =
+ pic->seq.chroma_sample_loc_type_bottom_field;
}
/* only checking the first slice to get num of mbs in slice to
pic->seq.vui_flags.video_signal_type_present_flag;
enc->enc_pic.vui_info.flags.colour_description_present_flag =
pic->seq.vui_flags.colour_description_present_flag;
+ enc->enc_pic.vui_info.flags.chroma_loc_info_present_flag =
+ pic->seq.vui_flags.chroma_loc_info_present_flag;
enc->enc_pic.vui_info.aspect_ratio_idc = pic->seq.aspect_ratio_idc;
enc->enc_pic.vui_info.sar_width = pic->seq.sar_width;
enc->enc_pic.vui_info.sar_height = pic->seq.sar_height;
enc->enc_pic.vui_info.colour_primaries = pic->seq.colour_primaries;
enc->enc_pic.vui_info.transfer_characteristics = pic->seq.transfer_characteristics;
enc->enc_pic.vui_info.matrix_coefficients = pic->seq.matrix_coefficients;
+ enc->enc_pic.vui_info.chroma_sample_loc_type_top_field =
+ pic->seq.chroma_sample_loc_type_top_field;
+ enc->enc_pic.vui_info.chroma_sample_loc_type_bottom_field =
+ pic->seq.chroma_sample_loc_type_bottom_field;
}
/* only checking the first slice to get num of ctbs in slice to
radeon_enc_code_fixed_bits(enc, pic->vui_info.matrix_coefficients, 8);
}
}
- radeon_enc_code_fixed_bits(enc, 0x0, 1); /* chroma loc info present flag */
+ /* chroma loc info present flag */
+ radeon_enc_code_fixed_bits(enc, pic->vui_info.flags.chroma_loc_info_present_flag, 1);
+ if (pic->vui_info.flags.chroma_loc_info_present_flag) {
+ radeon_enc_code_ue(enc, pic->vui_info.chroma_sample_loc_type_top_field);
+ radeon_enc_code_ue(enc, pic->vui_info.chroma_sample_loc_type_bottom_field);
+ }
/* timing info present flag */
radeon_enc_code_fixed_bits(enc, (pic->vui_info.flags.timing_info_present_flag), 1);
if (pic->vui_info.flags.timing_info_present_flag) {
radeon_enc_code_fixed_bits(enc, pic->vui_info.matrix_coefficients, 8);
}
}
- radeon_enc_code_fixed_bits(enc, 0x0, 1); /* chroma loc info present flag */
+ /* chroma loc info present flag */
+ radeon_enc_code_fixed_bits(enc, pic->vui_info.flags.chroma_loc_info_present_flag, 1);
+ if (pic->vui_info.flags.chroma_loc_info_present_flag) {
+ radeon_enc_code_ue(enc, pic->vui_info.chroma_sample_loc_type_top_field);
+ radeon_enc_code_ue(enc, pic->vui_info.chroma_sample_loc_type_bottom_field);
+ }
radeon_enc_code_fixed_bits(enc, 0x0, 1); /* neutral chroma indication flag */
radeon_enc_code_fixed_bits(enc, 0x0, 1); /* field seq flag */
radeon_enc_code_fixed_bits(enc, 0x0, 1); /* frame field info present flag */
radeon_enc_code_fixed_bits(enc, pic->vui_info.matrix_coefficients, 8);
}
}
- radeon_enc_code_fixed_bits(enc, 0x0, 1); /* chroma loc info present flag */
+ /* chroma loc info present flag */
+ radeon_enc_code_fixed_bits(enc, pic->vui_info.flags.chroma_loc_info_present_flag, 1);
+ if (pic->vui_info.flags.chroma_loc_info_present_flag) {
+ radeon_enc_code_ue(enc, pic->vui_info.chroma_sample_loc_type_top_field);
+ radeon_enc_code_ue(enc, pic->vui_info.chroma_sample_loc_type_bottom_field);
+ }
radeon_enc_code_fixed_bits(enc, 0x0, 1); /* neutral chroma indication flag */
radeon_enc_code_fixed_bits(enc, 0x0, 1); /* field seq flag */
radeon_enc_code_fixed_bits(enc, 0x0, 1); /* frame field info present flag */