blob: 1d88bbb4255c40bd57ead6c89b63611855af7ccb [file] [log] [blame]
/*
* Copyright 2020 Google LLC
*
*/
/*
* Copyright (c) 2020, Alliance for Open Media. All rights reserved
*
* This source code is subject to the terms of the BSD 2 Clause License and
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
* was not distributed with this source code in the LICENSE file, you can
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
* Media Patent License 1.0 was not distributed with this source code in the
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
#ifndef AV1_CORE_H_
#define AV1_CORE_H_
#include "av1/decoder/decoder.h"
#include "aom/aom_frame_buffer.h"
#include "av1\common\blockd.h"
#include "av1\common\onyxc_int.h"
#ifdef __cplusplus
extern "C" {
#endif
int av1_query_memory_requirements(aom_codec_dec_cfg_t *cfg);
int av1_create_gpu_decoder(struct Av1Core **dec, aom_codec_dec_cfg_t *cfg);
void av1_allocate_pbi(struct Av1Core *dec, AV1Decoder **ppbi, BufferPool **pbp);
void av1_destroy_gpu_decoder(struct Av1Core *dec);
void av1_drain_gpu_decoder(struct Av1Core *dec);
int av1_decode_frame_gpu(AV1Decoder *pbi);
void av1_release_fb_callback(void *priv, YV12_BUFFER_CONFIG *ybf);
int av1_reallocate_frame_buffer(void *priv, YV12_BUFFER_CONFIG *ybf, int width, int height, int upscaled_width,
int hbd);
void av1_setup_frame(AV1Decoder *pbi, AV1_COMMON *cm);
void av1_setup_macroblockd(AV1Decoder *pbi, AV1_COMMON *cm, ThreadData *thread_data, TileInfo *tile);
void av1_setup_sec_data(AV1Decoder *pbi, AV1_COMMON *cm, ThreadData *thread_data);
void av1_setup_ext_coef_buffer(AV1Decoder *pbi, AV1_COMMON *cm, ThreadData *thread_data);
void av1_mi_push_block(AV1Decoder *pbi, AV1_COMMON *cm, MACROBLOCKD *xd);
void av1_intra_palette(AV1Decoder *pbi, MB_MODE_INFO *mi, Av1ColorMapParam *params, int plane);
void av1_show_frame(AV1Decoder *pbi, YV12_BUFFER_CONFIG *buf, int is_visible);
void av1_decode_sef(AV1Decoder *pbi);
int get_output_frame(AV1Decoder *pbi, aom_image_t *dst);
void av1_setup_context_buffers(AV1Decoder *pbi);
#ifdef __cplusplus
}
#endif
#endif