diff options
Diffstat (limited to 'third_party/aom/av1/decoder/decodeframe.h')
-rw-r--r-- | third_party/aom/av1/decoder/decodeframe.h | 64 |
1 files changed, 44 insertions, 20 deletions
diff --git a/third_party/aom/av1/decoder/decodeframe.h b/third_party/aom/av1/decoder/decodeframe.h index 0e7eb6a1d..330cedcdc 100644 --- a/third_party/aom/av1/decoder/decodeframe.h +++ b/third_party/aom/av1/decoder/decodeframe.h @@ -19,35 +19,59 @@ extern "C" { struct AV1Decoder; struct aom_read_bit_buffer; -#if CONFIG_REFERENCE_BUFFER -/* Placeholder for now */ -void read_sequence_header(SequenceHeader *seq_params, - struct aom_read_bit_buffer *rb); -#endif +// Reads the middle part of the sequence header OBU (from +// frame_width_bits_minus_1 to enable_restoration) into cm->seq_params (a +// SequenceHeader). Reports errors by calling rb->error_handler() or +// aom_internal_error(). +void read_sequence_header(AV1_COMMON *cm, struct aom_read_bit_buffer *rb); -void av1_read_frame_size(struct aom_read_bit_buffer *rb, int *width, - int *height); +void av1_read_frame_size(struct aom_read_bit_buffer *rb, int num_bits_width, + int num_bits_height, int *width, int *height); BITSTREAM_PROFILE av1_read_profile(struct aom_read_bit_buffer *rb); -// This function is now obsolete -void av1_decode_frame(struct AV1Decoder *pbi, const uint8_t *data, - const uint8_t *data_end, const uint8_t **p_data_end); -size_t av1_decode_frame_headers_and_setup(struct AV1Decoder *pbi, - const uint8_t *data, - const uint8_t *data_end, - const uint8_t **p_data_end); +// Returns 0 on success. Sets pbi->common.error.error_code and returns -1 on +// failure. +int av1_check_trailing_bits(struct AV1Decoder *pbi, + struct aom_read_bit_buffer *rb); + +int av1_decode_frame_headers_and_setup(struct AV1Decoder *pbi, + struct aom_read_bit_buffer *rb, + const uint8_t *data, + const uint8_t **p_data_end, + int trailing_bits_present); void av1_decode_tg_tiles_and_wrapup(struct AV1Decoder *pbi, const uint8_t *data, const uint8_t *data_end, const uint8_t **p_data_end, int startTile, int endTile, int initialize_flag); -#if CONFIG_OBU -// replaces av1_decode_frame -void av1_decode_frame_from_obus(struct AV1Decoder *pbi, const uint8_t *data, - const uint8_t *data_end, - const uint8_t **p_data_end); -#endif +// Implements the color_config() function in the spec. Reports errors by +// calling rb->error_handler() or aom_internal_error(). +void av1_read_color_config(AV1_COMMON *cm, struct aom_read_bit_buffer *rb, + int allow_lowbitdepth); + +// Implements the timing_info() function in the spec. Reports errors by calling +// rb->error_handler(). +void av1_read_timing_info_header(AV1_COMMON *cm, + struct aom_read_bit_buffer *rb); + +// Implements the decoder_model_info() function in the spec. Reports errors by +// calling rb->error_handler(). +void av1_read_decoder_model_info(AV1_COMMON *cm, + struct aom_read_bit_buffer *rb); + +// Implements the operating_parameters_info() function in the spec. Reports +// errors by calling rb->error_handler() or aom_internal_error(). +void av1_read_op_parameters_info(AV1_COMMON *const cm, + struct aom_read_bit_buffer *rb, int op_num); + +struct aom_read_bit_buffer *av1_init_read_bit_buffer( + struct AV1Decoder *pbi, struct aom_read_bit_buffer *rb, const uint8_t *data, + const uint8_t *data_end); + +void av1_free_mc_tmp_buf(void *td, int use_highbd); + +void av1_set_single_tile_decoding_mode(AV1_COMMON *const cm); #ifdef __cplusplus } // extern "C" |