Always prefix OBUs with a size field. - Make the add_4bytes_obusize experiment part of the obu experiment. - Remove the add_4bytes_obusize experiment flags. - Update the encoder, decoder, and tooling sources. BUG=aomedia:1125 Change-Id: Ia5c443c855e52618257b39c44ca2632703bf83fd
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c index 23073e8..15adb74 100644 --- a/av1/decoder/decodeframe.c +++ b/av1/decoder/decodeframe.c
@@ -1797,12 +1797,7 @@ aom_internal_error(error_info, AOM_CODEC_CORRUPT_FRAME, "Truncated packet or corrupt tile size"); } else { -#if !CONFIG_OBU || CONFIG_ADD_4BYTES_OBUSIZE size = data_end - *data; -#else - size = mem_get_varsize(*data, tile_size_bytes); - *data += tile_size_bytes; -#endif } buf->data = *data; @@ -1838,6 +1833,7 @@ for (int r = 0; r < tile_rows; ++r) { for (int c = 0; c < tile_cols; ++c, ++tc) { TileBufferDec *const buf = &tile_buffers[r][c]; + #if CONFIG_OBU const int is_last = (tc == endTile); const size_t hdr_offset = 0;
diff --git a/av1/decoder/obu.c b/av1/decoder/obu.c index 6416ece..67e9bb9 100644 --- a/av1/decoder/obu.c +++ b/av1/decoder/obu.c
@@ -169,14 +169,10 @@ av1_init_read_bit_buffer(pbi, &rb, data + PRE_OBU_SIZE_BYTES, data_end); -// every obu is preceded by PRE_OBU_SIZE_BYTES-byte size of obu (obu header + -// payload size) -// The obu size is only needed for tile group OBUs -#if CONFIG_ADD_4BYTES_OBUSIZE + // every obu is preceded by PRE_OBU_SIZE_BYTES-byte size of obu (obu header + // + payload size) + // The obu size is only needed for tile group OBUs const size_t obu_size = mem_get_le32(data); -#else - const size_t obu_size = (size_t)(data_end - data); -#endif const OBU_TYPE obu_type = read_obu_header(&rb, &obu_header_size); data += (PRE_OBU_SIZE_BYTES + obu_header_size);
diff --git a/av1/decoder/obu.h b/av1/decoder/obu.h index fec25fb..fe7d2ad 100644 --- a/av1/decoder/obu.h +++ b/av1/decoder/obu.h
@@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Alliance for Open Media. All rights reserved + * Copyright (c) 2017, Alliance for Open Media. All rights reserved * * This source code is subject to the terms of the BSD 2 Clause License and * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License