#include <stdlib.h>
#include <string.h>
#include "./vpx_config.h"
#include "./vpx_version.h"
#include "vpx/internal/vpx_codec_internal.h"
#include "vpx/vp8dx.h"
#include "vpx/vpx_decoder.h"
#include "vpx_dsp/bitreader_buffer.h"
#include "vpx_dsp/vpx_dsp_common.h"
#include "vp9/common/vp9_alloccommon.h"
#include "vp9/common/vp9_frame_buffers.h"
#include "vp9/decoder/vp9_decodeframe.h"
#include "vp9/vp9_dx_iface.h"
#include "vp9/vp9_iface_common.h"
#define VP9_CAP_POSTPROC …
static vpx_codec_err_t decoder_init(vpx_codec_ctx_t *ctx,
vpx_codec_priv_enc_mr_cfg_t *data) { … }
static vpx_codec_err_t decoder_destroy(vpx_codec_alg_priv_t *ctx) { … }
static int parse_bitdepth_colorspace_sampling(BITSTREAM_PROFILE profile,
struct vpx_read_bit_buffer *rb) { … }
static vpx_codec_err_t decoder_peek_si_internal(
const uint8_t *data, unsigned int data_sz, vpx_codec_stream_info_t *si,
int *is_intra_only, vpx_decrypt_cb decrypt_cb, void *decrypt_state) { … }
static vpx_codec_err_t decoder_peek_si(const uint8_t *data,
unsigned int data_sz,
vpx_codec_stream_info_t *si) { … }
static vpx_codec_err_t decoder_get_si(vpx_codec_alg_priv_t *ctx,
vpx_codec_stream_info_t *si) { … }
static void set_error_detail(vpx_codec_alg_priv_t *ctx,
const char *const error) { … }
static vpx_codec_err_t update_error_state(
vpx_codec_alg_priv_t *ctx, const struct vpx_internal_error_info *error) { … }
static vpx_codec_err_t init_buffer_callbacks(vpx_codec_alg_priv_t *ctx) { … }
static void set_default_ppflags(vp8_postproc_cfg_t *cfg) { … }
static void set_ppflags(const vpx_codec_alg_priv_t *ctx, vp9_ppflags_t *flags) { … }
#undef ERROR
#define ERROR(str) …
#define RANGE_CHECK(p, memb, lo, hi) …
static vpx_codec_err_t init_decoder(vpx_codec_alg_priv_t *ctx) { … }
static INLINE void check_resync(vpx_codec_alg_priv_t *const ctx,
const VP9Decoder *const pbi) { … }
static vpx_codec_err_t decode_one(vpx_codec_alg_priv_t *ctx,
const uint8_t **data, unsigned int data_sz,
void *user_priv) { … }
static vpx_codec_err_t decoder_decode(vpx_codec_alg_priv_t *ctx,
const uint8_t *data, unsigned int data_sz,
void *user_priv) { … }
static vpx_image_t *decoder_get_frame(vpx_codec_alg_priv_t *ctx,
vpx_codec_iter_t *iter) { … }
static vpx_codec_err_t decoder_set_fb_fn(
vpx_codec_alg_priv_t *ctx, vpx_get_frame_buffer_cb_fn_t cb_get,
vpx_release_frame_buffer_cb_fn_t cb_release, void *cb_priv) { … }
static vpx_codec_err_t ctrl_set_reference(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_copy_reference(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_get_reference(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_set_postproc(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_get_quantizer(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_get_last_ref_updates(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_get_frame_corrupted(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_get_frame_size(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_get_render_size(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_get_bit_depth(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_set_invert_tile_order(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_set_decryptor(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_set_byte_alignment(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_set_skip_loop_filter(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_set_spatial_layer_svc(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_set_row_mt(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_err_t ctrl_enable_lpf_opt(vpx_codec_alg_priv_t *ctx,
va_list args) { … }
static vpx_codec_ctrl_fn_map_t decoder_ctrl_maps[] = …;
#ifndef VERSION_STRING
#define VERSION_STRING
#endif
CODEC_INTERFACE(vpx_codec_vp9_dx) = …;