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"
24#include "aom_util/aom_pthread.h"
26struct aom_write_bit_buffer;
40 uint8_t *frame_header;
41 size_t obu_header_byte_offset;
46 struct aom_write_bit_buffer *saved_wb;
50 uint8_t *tile_data_curr;
52 uint8_t obu_extn_header;
53 uint32_t obu_header_size;
58 int is_last_tile_in_tg;
63 uint64_t abs_sum_level;
71 pthread_mutex_t *mutex_;
74 PackBSTileOrder pack_bs_tile_order[MAX_TILES];
88uint32_t av1_write_sequence_header_obu(
const SequenceHeader *seq_params,
93uint32_t av1_write_obu_header(AV1LevelParams *
const level_params,
94 int *frame_header_count,
OBU_TYPE obu_type,
95 int obu_extension, uint8_t *
const dst);
97int av1_write_uleb_obu_size(
size_t obu_header_size,
size_t obu_payload_size,
102void av1_pack_tile_info(
struct AV1_COMP *
const cpi,
struct ThreadData *
const td,
103 PackBSParams *
const pack_bs_params);
105void av1_write_last_tile_info(
106 struct AV1_COMP *
const cpi,
const FrameHeaderInfo *fh_info,
107 struct aom_write_bit_buffer *saved_wb,
size_t *curr_tg_data_size,
108 uint8_t *curr_tg_start, uint32_t *
const total_size,
109 uint8_t **tile_data_start,
int *
const largest_tile_id,
110 int *
const is_first_tg, uint32_t obu_header_size, uint8_t obu_extn_header);
118 int *
const largest_tile_id);
121 TX_TYPE tx_type, TX_SIZE tx_size, aom_writer *w);
123void av1_reset_pack_bs_thread_data(
struct ThreadData *
const td);
125void av1_accumulate_pack_bs_thread_data(
struct AV1_COMP *
const cpi,
126 struct ThreadData
const *td);
128void av1_write_obu_tg_tile_headers(
struct AV1_COMP *
const cpi,
130 PackBSParams *
const pack_bs_params,
133int av1_neg_interleave(
int x,
int ref,
int max);
OBU_TYPE
OBU types.
Definition aom_codec.h:545
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:2866
Variables related to current coding block.
Definition blockd.h:570