use leb128 for metadata type and use value 4 for ITU-T T.35

Change-Id: I830f072f4b630a8a89593561f1bc293c998c064f
diff --git a/aom/aom_codec.h b/aom/aom_codec.h
index 097d621..a6c68cd 100644
--- a/aom/aom_codec.h
+++ b/aom/aom_codec.h
@@ -494,11 +494,11 @@
 
 /*!\brief OBU metadata types. */
 typedef enum {
-  OBU_METADATA_TYPE_PRIVATE_DATA = 0,
+  OBU_METADATA_TYPE_AOM_RESERVED_0 = 0,
   OBU_METADATA_TYPE_HDR_CLL = 1,
   OBU_METADATA_TYPE_HDR_MDCV = 2,
   OBU_METADATA_TYPE_SCALABILITY = 3,
-  OBU_METADATA_TYPE_DECODER_MODEL = 4,
+  OBU_METADATA_TYPE_ITUT_T35 = 4,
   OBU_METADATA_TYPE_TIMECODE = 5,
 } OBU_METADATA_TYPE;
 
diff --git a/av1/decoder/obu.c b/av1/decoder/obu.c
index 6a6944c..c08d4d5 100644
--- a/av1/decoder/obu.c
+++ b/av1/decoder/obu.c
@@ -318,10 +318,10 @@
   return header_size + tg_payload_size;
 }
 
-static void read_metadata_private_data(const uint8_t *data, size_t sz) {
+static void read_metadata_itut_t35(const uint8_t *data, size_t sz) {
+  struct aom_read_bit_buffer rb = { data, data + sz, 0, NULL, NULL };
   for (size_t i = 0; i < sz; i++) {
-    mem_get_le16(data);
-    data += 2;
+    aom_rb_read_literal(&rb, 8);
   }
 }
 
@@ -421,19 +421,23 @@
 }
 
 static size_t read_metadata(const uint8_t *data, size_t sz) {
-  if (sz < 2) return sz;  // Invalid data size.
-  const OBU_METADATA_TYPE metadata_type = (OBU_METADATA_TYPE)mem_get_le16(data);
-
-  if (metadata_type == OBU_METADATA_TYPE_PRIVATE_DATA) {
-    read_metadata_private_data(data + 2, sz - 2);
+  size_t type_length;
+  uint64_t type_value;
+  OBU_METADATA_TYPE metadata_type;
+  if (aom_uleb_decode(data, sz, &type_value, &type_length) < 0) {
+    return sz;
+  }
+  metadata_type = (OBU_METADATA_TYPE)type_value;
+  if (metadata_type == OBU_METADATA_TYPE_ITUT_T35) {
+    read_metadata_itut_t35(data + type_length, sz - type_length);
   } else if (metadata_type == OBU_METADATA_TYPE_HDR_CLL) {
-    read_metadata_hdr_cll(data + 2, sz - 2);
+    read_metadata_hdr_cll(data + type_length, sz - type_length);
   } else if (metadata_type == OBU_METADATA_TYPE_HDR_MDCV) {
-    read_metadata_hdr_mdcv(data + 2, sz - 2);
+    read_metadata_hdr_mdcv(data + type_length, sz - type_length);
   } else if (metadata_type == OBU_METADATA_TYPE_SCALABILITY) {
-    read_metadata_scalability(data + 2, sz - 2);
+    read_metadata_scalability(data + type_length, sz - type_length);
   } else if (metadata_type == OBU_METADATA_TYPE_TIMECODE) {
-    read_metadata_timecode(data + 2, sz - 2);
+    read_metadata_timecode(data + type_length, sz - type_length);
   }
 
   return sz;