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);