Remove duplicated code for reading/writing sequence header Teach read_sequence_header_obu and write_sequence_header_obu to just call read_sequence_header and write_sequence_header, respectively. Change-Id: Iff27b5cfbccab0ebaf2e28d72df3d6606964936f
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c index adc6c37..82c266c 100644 --- a/av1/decoder/decodeframe.c +++ b/av1/decoder/decodeframe.c
@@ -2482,7 +2482,7 @@ } } -#if CONFIG_REFERENCE_BUFFER +#if CONFIG_REFERENCE_BUFFER || CONFIG_OBU void read_sequence_header(SequenceHeader *seq_params, struct aom_read_bit_buffer *rb) { #if CONFIG_FRAME_SIZE @@ -2508,7 +2508,7 @@ aom_rb_read_literal(rb, 3) + seq_params->delta_frame_id_length + 1; } } -#endif // CONFIG_REFERENCE_BUFFER +#endif // CONFIG_REFERENCE_BUFFER || CONFIG_OBU static void read_compound_tools(AV1_COMMON *cm, struct aom_read_bit_buffer *rb) { @@ -3830,33 +3830,12 @@ static uint32_t read_sequence_header_obu(AV1Decoder *pbi, struct aom_read_bit_buffer *rb) { AV1_COMMON *const cm = &pbi->common; - SequenceHeader *const seq_params = &cm->seq_params; uint32_t saved_bit_offset = rb->bit_offset; cm->profile = av1_read_profile(rb); aom_rb_read_literal(rb, 4); // level -#if CONFIG_FRAME_SIZE - int num_bits_width = aom_rb_read_literal(rb, 4) + 1; - int num_bits_height = aom_rb_read_literal(rb, 4) + 1; - int max_frame_width = aom_rb_read_literal(rb, num_bits_width) + 1; - int max_frame_height = aom_rb_read_literal(rb, num_bits_height) + 1; - - seq_params->num_bits_width = num_bits_width; - seq_params->num_bits_height = num_bits_height; - seq_params->max_frame_width = max_frame_width; - seq_params->max_frame_height = max_frame_height; -#endif - - seq_params->frame_id_numbers_present_flag = aom_rb_read_bit(rb); - if (seq_params->frame_id_numbers_present_flag) { - // We must always have delta_frame_id_length < frame_id_length, - // in order for a frame to be referenced with a unique delta. - // Avoid wasting bits by using a coding that enforces this restriction. - seq_params->delta_frame_id_length = aom_rb_read_literal(rb, 4) + 2; - seq_params->frame_id_length = - aom_rb_read_literal(rb, 3) + seq_params->delta_frame_id_length + 1; - } + read_sequence_header(&cm->seq_params, rb); read_bitdepth_colorspace_sampling(cm, rb, pbi->allow_lowbitdepth);
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index 023e568..06fc10f 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -3508,7 +3508,7 @@ } } -#if CONFIG_REFERENCE_BUFFER +#if CONFIG_REFERENCE_BUFFER || CONFIG_OBU void write_sequence_header(AV1_COMMON *const cm, struct aom_write_bit_buffer *wb) { SequenceHeader *seq_params = &cm->seq_params; @@ -3550,7 +3550,7 @@ 3); } } -#endif // CONFIG_REFERENCE_BUFFER +#endif // CONFIG_REFERENCE_BUFFER || CONFIG_OBU static void write_sb_size(const AV1_COMMON *cm, struct aom_write_bit_buffer *wb) { @@ -4627,7 +4627,6 @@ static uint32_t write_sequence_header_obu(AV1_COMP *cpi, uint8_t *const dst) { AV1_COMMON *const cm = &cpi->common; - SequenceHeader *const seq_params = &cm->seq_params; struct aom_write_bit_buffer wb = { dst, 0 }; uint32_t size = 0; @@ -4635,36 +4634,7 @@ aom_wb_write_literal(&wb, 0, 4); -#if CONFIG_FRAME_SIZE - int num_bits_width = 16; - int num_bits_height = 16; - int max_frame_width = cm->width; - int max_frame_height = cm->height; - - seq_params->num_bits_width = num_bits_width; - seq_params->num_bits_height = num_bits_height; - seq_params->max_frame_width = max_frame_width; - seq_params->max_frame_height = max_frame_height; - - aom_wb_write_literal(&wb, num_bits_width - 1, 4); - aom_wb_write_literal(&wb, num_bits_height - 1, 4); - aom_wb_write_literal(&wb, max_frame_width - 1, num_bits_width); - aom_wb_write_literal(&wb, max_frame_height - 1, num_bits_height); -#endif - - seq_params->frame_id_numbers_present_flag = FRAME_ID_NUMBERS_PRESENT_FLAG; - aom_wb_write_literal(&wb, seq_params->frame_id_numbers_present_flag, 1); - if (seq_params->frame_id_numbers_present_flag) { - seq_params->frame_id_length = FRAME_ID_LENGTH; - seq_params->delta_frame_id_length = DELTA_FRAME_ID_LENGTH; - // We must always have delta_frame_id_length < frame_id_length, - // in order for a frame to be referenced with a unique delta. - // Avoid wasting bits by using a coding that enforces this restriction. - aom_wb_write_literal(&wb, seq_params->delta_frame_id_length - 2, 4); - aom_wb_write_literal( - &wb, - seq_params->frame_id_length - seq_params->delta_frame_id_length - 1, 3); - } + write_sequence_header(cm, &wb); // color_config write_bitdepth_colorspace_sampling(cm, &wb);