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"
25struct 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;
70 pthread_mutex_t *mutex_;
73 PackBSTileOrder pack_bs_tile_order[MAX_TILES];
84uint32_t av1_write_sequence_header_obu(
const SequenceHeader *seq_params,
89uint32_t av1_write_obu_header(AV1LevelParams *
const level_params,
90 int *frame_header_count,
OBU_TYPE obu_type,
91 int obu_extension, uint8_t *
const dst);
93int av1_write_uleb_obu_size(
size_t obu_header_size,
size_t obu_payload_size,
98void av1_pack_tile_info(
struct AV1_COMP *
const cpi,
struct ThreadData *
const td,
99 PackBSParams *
const pack_bs_params);
101void av1_write_last_tile_info(
102 struct AV1_COMP *
const cpi,
const FrameHeaderInfo *fh_info,
103 struct aom_write_bit_buffer *saved_wb,
size_t *curr_tg_data_size,
104 uint8_t *curr_tg_start, uint32_t *
const total_size,
105 uint8_t **tile_data_start,
int *
const largest_tile_id,
106 int *
const is_first_tg, uint32_t obu_header_size, uint8_t obu_extn_header);
114 int *
const largest_tile_id);
117 TX_TYPE tx_type, TX_SIZE tx_size, aom_writer *w);
119void av1_reset_pack_bs_thread_data(
struct ThreadData *
const td);
121void av1_accumulate_pack_bs_thread_data(
struct AV1_COMP *
const cpi,
122 struct ThreadData
const *td);
124void av1_write_obu_tg_tile_headers(
struct AV1_COMP *
const cpi,
126 PackBSParams *
const pack_bs_params,
129int av1_neg_interleave(
int x,
int ref,
int max);
OBU_TYPE
OBU types.
Definition: aom_codec.h:542
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:750
Variables related to current coding block.
Definition: blockd.h:577