| /* | |
| * 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 | |
| * was not distributed with this source code in the LICENSE file, you can | |
| * obtain it at www.aomedia.org/license/software. If the Alliance for Open | |
| * Media Patent License 1.0 was not distributed with this source code in the | |
| * PATENTS file, you can obtain it at www.aomedia.org/license/patent. | |
| */ | |
| #ifndef TOOLS_OBU_PARSER_H_ | |
| #define TOOLS_OBU_PARSER_H_ | |
| #include <cstdint> | |
| namespace aom_tools { | |
| // TODO(tomfinegan): The OBU and OBU metadata types are currently defined in | |
| // av1/common/enums.h, which is not part of the libaom's public API. They are | |
| // duped here until that's dealt with. | |
| enum ObuType { | |
| OBU_SEQUENCE_HEADER = 1, | |
| OBU_TEMPORAL_DELIMITER = 2, | |
| OBU_FRAME_HEADER = 3, | |
| OBU_TILE_GROUP = 4, | |
| OBU_METADATA = 5, | |
| OBU_PADDING = 15, | |
| }; | |
| enum ObuMetadataType { | |
| OBU_METADATA_TYPE_PRIVATE_DATA = 0, | |
| OBU_METADATA_TYPE_HDR_CLL = 1, | |
| OBU_METADATA_TYPE_HDR_MDCV = 2, | |
| }; | |
| struct ObuExtensionHeader { | |
| int temporal_id; | |
| int spatial_id; | |
| int quality_id; | |
| bool reserved_flag; | |
| }; | |
| struct ObuHeader { | |
| int type; | |
| int reserved; | |
| bool has_extension; | |
| ObuExtensionHeader ext_header; | |
| }; | |
| // Print information obtained from OBU(s) in data until data is exhausted or an | |
| // error occurs. Returns true when all data is consumed successfully. | |
| bool DumpObu(const uint8_t *data, int length); | |
| } // namespace aom_tools | |
| #endif // TOOLS_OBU_PARSER_H_ |