12 #ifndef AOM_AV1_ENCODER_BITSTREAM_H_
13 #define AOM_AV1_ENCODER_BITSTREAM_H_
19 #include "av1/common/av1_common_int.h"
20 #include "av1/common/blockd.h"
22 #include "av1/encoder/level.h"
23 #include "aom_dsp/bitwriter.h"
25 struct aom_write_bit_buffer;
39 uint8_t *frame_header;
40 size_t obu_header_byte_offset;
45 struct aom_write_bit_buffer *saved_wb;
49 uint8_t *tile_data_curr;
51 uint8_t obu_extn_header;
52 uint32_t obu_header_size;
57 int is_last_tile_in_tg;
62 uint64_t abs_sum_level;
68 #if CONFIG_MULTITHREAD
70 pthread_mutex_t *mutex_;
73 PackBSTileOrder pack_bs_tile_order[MAX_TILES];
87 uint32_t av1_write_sequence_header_obu(
const SequenceHeader *seq_params,
92 uint32_t av1_write_obu_header(AV1LevelParams *
const level_params,
93 int *frame_header_count,
OBU_TYPE obu_type,
94 int obu_extension, uint8_t *
const dst);
96 int av1_write_uleb_obu_size(
size_t obu_header_size,
size_t obu_payload_size,
101 void av1_pack_tile_info(
struct AV1_COMP *
const cpi,
struct ThreadData *
const td,
102 PackBSParams *
const pack_bs_params);
104 void av1_write_last_tile_info(
105 struct AV1_COMP *
const cpi,
const FrameHeaderInfo *fh_info,
106 struct aom_write_bit_buffer *saved_wb,
size_t *curr_tg_data_size,
107 uint8_t *curr_tg_start, uint32_t *
const total_size,
108 uint8_t **tile_data_start,
int *
const largest_tile_id,
109 int *
const is_first_tg, uint32_t obu_header_size, uint8_t obu_extn_header);
117 int *
const largest_tile_id);
120 TX_TYPE tx_type, TX_SIZE tx_size, aom_writer *w);
122 void av1_reset_pack_bs_thread_data(
struct ThreadData *
const td);
124 void av1_accumulate_pack_bs_thread_data(
struct AV1_COMP *
const cpi,
125 struct ThreadData
const *td);
127 void av1_write_obu_tg_tile_headers(
struct AV1_COMP *
const cpi,
129 PackBSParams *
const pack_bs_params,
132 int av1_neg_interleave(
int x,
int ref,
int max);
OBU_TYPE
OBU types.
Definition: aom_codec.h:546
int av1_pack_bitstream(struct AV1_COMP *const cpi, uint8_t *dst, size_t *size, int *const largest_tile_id)
Pack the bitstream for one frame.
Top level common structure used by both encoder and decoder.
Definition: av1_common_int.h:752
Top level encoder structure.
Definition: encoder.h:2872
Variables related to current coding block.
Definition: blockd.h:570