Skip identical sequence headers after the first

BUG=aomedia:1480

Change-Id: I96b41b460aa19160af05715031e1d8e0bf2c1160
diff --git a/av1/decoder/obu.c b/av1/decoder/obu.c
index 5306c4c..5f09523 100644
--- a/av1/decoder/obu.c
+++ b/av1/decoder/obu.c
@@ -276,6 +276,8 @@
   int is_first_tg_obu_received = 1;
   int frame_header_received = 0;
   int frame_header_size = 0;
+  int seq_header_received = 0;
+  size_t seq_header_size = 0;
 #if CONFIG_SCALABILITY
   uint8_t obu_extension_header = 0;
 #endif
@@ -358,7 +360,19 @@
         obu_payload_size = read_temporal_delimiter_obu();
         break;
       case OBU_SEQUENCE_HEADER:
-        obu_payload_size = read_sequence_header_obu(pbi, &rb);
+        if (!seq_header_received) {
+          obu_payload_size = read_sequence_header_obu(pbi, &rb);
+          seq_header_size = obu_payload_size;
+          seq_header_received = 1;
+        } else {
+          // Seeing another sequence header, skip as all sequence headers
+          // are requred to be identical.
+          if (obu_size - obu_header_size != seq_header_size) {
+            cm->error.error_code = AOM_CODEC_CORRUPT_FRAME;
+            return;
+          }
+          obu_payload_size = seq_header_size;
+        }
         break;
       case OBU_FRAME_HEADER:
         // Only decode first frame header received