blob: 569ec9f72926f3ac7fd755c0eae64757b4049916 [file] [log] [blame]
Yaowu Xuc27fc142016-08-22 16:08:15 -07001/*
Yaowu Xu2ab7ff02016-09-02 12:04:54 -07002 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
Yaowu Xuc27fc142016-08-22 16:08:15 -07003 *
Yaowu Xu2ab7ff02016-09-02 12:04:54 -07004 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
Yaowu Xuc27fc142016-08-22 16:08:15 -070010 */
11
Yaowu Xuf883b422016-08-30 14:01:10 -070012#ifndef AV1_ENCODER_ENCODEFRAME_H_
13#define AV1_ENCODER_ENCODEFRAME_H_
Yaowu Xuc27fc142016-08-22 16:08:15 -070014
Yaowu Xuf883b422016-08-30 14:01:10 -070015#include "aom/aom_integer.h"
Angie Chiangb14b73f2017-04-13 16:26:00 -070016#include "av1/common/blockd.h"
17#include "av1/common/enums.h"
Yaowu Xuc27fc142016-08-22 16:08:15 -070018
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23struct macroblock;
24struct yv12_buffer_config;
Yaowu Xuf883b422016-08-30 14:01:10 -070025struct AV1_COMP;
Yaowu Xuc27fc142016-08-22 16:08:15 -070026struct ThreadData;
27
Yaowu Xuf883b422016-08-30 14:01:10 -070028void av1_setup_src_planes(struct macroblock *x,
29 const struct yv12_buffer_config *src, int mi_row,
30 int mi_col);
Yaowu Xuc27fc142016-08-22 16:08:15 -070031
Yaowu Xuf883b422016-08-30 14:01:10 -070032void av1_encode_frame(struct AV1_COMP *cpi);
Yaowu Xuc27fc142016-08-22 16:08:15 -070033
Yaowu Xuf883b422016-08-30 14:01:10 -070034void av1_init_tile_data(struct AV1_COMP *cpi);
35void av1_encode_tile(struct AV1_COMP *cpi, struct ThreadData *td, int tile_row,
36 int tile_col);
Yaowu Xuc27fc142016-08-22 16:08:15 -070037
Angie Chiangb14b73f2017-04-13 16:26:00 -070038void av1_update_tx_type_count(const struct AV1Common *cm, MACROBLOCKD *xd,
Angie Chiangcd9b03f2017-04-16 13:37:13 -070039#if CONFIG_TXK_SEL
Jingning Han7eab9ff2017-07-06 10:12:54 -070040 int blk_row, int blk_col, int block, int plane,
Angie Chiangb14b73f2017-04-13 16:26:00 -070041#endif
42 BLOCK_SIZE bsize, TX_SIZE tx_size,
43 FRAME_COUNTS *counts);
44
Yaowu Xuc27fc142016-08-22 16:08:15 -070045#ifdef __cplusplus
46} // extern "C"
47#endif
48
Yaowu Xuf883b422016-08-30 14:01:10 -070049#endif // AV1_ENCODER_ENCODEFRAME_H_