1*77c1e3ccSAndroid Build Coastguard Worker /* 2*77c1e3ccSAndroid Build Coastguard Worker * Copyright (c) 2016, Alliance for Open Media. All rights reserved. 3*77c1e3ccSAndroid Build Coastguard Worker * 4*77c1e3ccSAndroid Build Coastguard Worker * This source code is subject to the terms of the BSD 2 Clause License and 5*77c1e3ccSAndroid Build Coastguard Worker * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License 6*77c1e3ccSAndroid Build Coastguard Worker * was not distributed with this source code in the LICENSE file, you can 7*77c1e3ccSAndroid Build Coastguard Worker * obtain it at www.aomedia.org/license/software. If the Alliance for Open 8*77c1e3ccSAndroid Build Coastguard Worker * Media Patent License 1.0 was not distributed with this source code in the 9*77c1e3ccSAndroid Build Coastguard Worker * PATENTS file, you can obtain it at www.aomedia.org/license/patent. 10*77c1e3ccSAndroid Build Coastguard Worker */ 11*77c1e3ccSAndroid Build Coastguard Worker 12*77c1e3ccSAndroid Build Coastguard Worker /*!\defgroup aom_decoder AOMedia AOM/AV1 Decoder 13*77c1e3ccSAndroid Build Coastguard Worker * \ingroup aom 14*77c1e3ccSAndroid Build Coastguard Worker * 15*77c1e3ccSAndroid Build Coastguard Worker * @{ 16*77c1e3ccSAndroid Build Coastguard Worker */ 17*77c1e3ccSAndroid Build Coastguard Worker /*!\file 18*77c1e3ccSAndroid Build Coastguard Worker * \brief Provides definitions for using AOM or AV1 within the aom Decoder 19*77c1e3ccSAndroid Build Coastguard Worker * interface. 20*77c1e3ccSAndroid Build Coastguard Worker */ 21*77c1e3ccSAndroid Build Coastguard Worker #ifndef AOM_AOM_AOMDX_H_ 22*77c1e3ccSAndroid Build Coastguard Worker #define AOM_AOM_AOMDX_H_ 23*77c1e3ccSAndroid Build Coastguard Worker 24*77c1e3ccSAndroid Build Coastguard Worker #ifdef __cplusplus 25*77c1e3ccSAndroid Build Coastguard Worker extern "C" { 26*77c1e3ccSAndroid Build Coastguard Worker #endif 27*77c1e3ccSAndroid Build Coastguard Worker 28*77c1e3ccSAndroid Build Coastguard Worker /* Include controls common to both the encoder and decoder */ 29*77c1e3ccSAndroid Build Coastguard Worker #include "aom/aom.h" 30*77c1e3ccSAndroid Build Coastguard Worker 31*77c1e3ccSAndroid Build Coastguard Worker /*!\name Algorithm interface for AV1 32*77c1e3ccSAndroid Build Coastguard Worker * 33*77c1e3ccSAndroid Build Coastguard Worker * This interface provides the capability to decode AV1 streams. 34*77c1e3ccSAndroid Build Coastguard Worker * @{ 35*77c1e3ccSAndroid Build Coastguard Worker */ 36*77c1e3ccSAndroid Build Coastguard Worker 37*77c1e3ccSAndroid Build Coastguard Worker /*!\brief A single instance of the AV1 decoder. 38*77c1e3ccSAndroid Build Coastguard Worker *\deprecated This access mechanism is provided for backwards compatibility; 39*77c1e3ccSAndroid Build Coastguard Worker * prefer aom_codec_av1_dx(). 40*77c1e3ccSAndroid Build Coastguard Worker */ 41*77c1e3ccSAndroid Build Coastguard Worker extern aom_codec_iface_t aom_codec_av1_dx_algo; 42*77c1e3ccSAndroid Build Coastguard Worker /*!\brief The interface to the AV1 decoder. 43*77c1e3ccSAndroid Build Coastguard Worker */ 44*77c1e3ccSAndroid Build Coastguard Worker extern aom_codec_iface_t *aom_codec_av1_dx(void); 45*77c1e3ccSAndroid Build Coastguard Worker 46*77c1e3ccSAndroid Build Coastguard Worker /*!@} - end algorithm interface member group */ 47*77c1e3ccSAndroid Build Coastguard Worker 48*77c1e3ccSAndroid Build Coastguard Worker /** Data structure that stores bit accounting for debug 49*77c1e3ccSAndroid Build Coastguard Worker */ 50*77c1e3ccSAndroid Build Coastguard Worker typedef struct Accounting Accounting; 51*77c1e3ccSAndroid Build Coastguard Worker 52*77c1e3ccSAndroid Build Coastguard Worker #ifndef AOM_INSPECTION_H_ 53*77c1e3ccSAndroid Build Coastguard Worker /** Callback that inspects decoder frame data. 54*77c1e3ccSAndroid Build Coastguard Worker */ 55*77c1e3ccSAndroid Build Coastguard Worker typedef void (*aom_inspect_cb)(void *decoder, void *ctx); 56*77c1e3ccSAndroid Build Coastguard Worker 57*77c1e3ccSAndroid Build Coastguard Worker #endif 58*77c1e3ccSAndroid Build Coastguard Worker 59*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Structure to hold inspection callback and context. 60*77c1e3ccSAndroid Build Coastguard Worker * 61*77c1e3ccSAndroid Build Coastguard Worker * Defines a structure to hold the inspection callback function and calling 62*77c1e3ccSAndroid Build Coastguard Worker * context. 63*77c1e3ccSAndroid Build Coastguard Worker */ 64*77c1e3ccSAndroid Build Coastguard Worker typedef struct aom_inspect_init { 65*77c1e3ccSAndroid Build Coastguard Worker /*! Inspection callback. */ 66*77c1e3ccSAndroid Build Coastguard Worker aom_inspect_cb inspect_cb; 67*77c1e3ccSAndroid Build Coastguard Worker 68*77c1e3ccSAndroid Build Coastguard Worker /*! Inspection context. */ 69*77c1e3ccSAndroid Build Coastguard Worker void *inspect_ctx; 70*77c1e3ccSAndroid Build Coastguard Worker } aom_inspect_init; 71*77c1e3ccSAndroid Build Coastguard Worker 72*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Structure to collect a buffer index when inspecting. 73*77c1e3ccSAndroid Build Coastguard Worker * 74*77c1e3ccSAndroid Build Coastguard Worker * Defines a structure to hold the buffer and return an index 75*77c1e3ccSAndroid Build Coastguard Worker * when calling decode from inspect. This enables us to decode 76*77c1e3ccSAndroid Build Coastguard Worker * non showable sub frames. 77*77c1e3ccSAndroid Build Coastguard Worker */ 78*77c1e3ccSAndroid Build Coastguard Worker typedef struct { 79*77c1e3ccSAndroid Build Coastguard Worker /*! Pointer for new position in compressed buffer after decoding 1 OBU. */ 80*77c1e3ccSAndroid Build Coastguard Worker const unsigned char *buf; 81*77c1e3ccSAndroid Build Coastguard Worker /*! Index into reference buffer array to see result of decoding 1 OBU. */ 82*77c1e3ccSAndroid Build Coastguard Worker int idx; 83*77c1e3ccSAndroid Build Coastguard Worker /*! Is a show existing frame. */ 84*77c1e3ccSAndroid Build Coastguard Worker int show_existing; 85*77c1e3ccSAndroid Build Coastguard Worker } Av1DecodeReturn; 86*77c1e3ccSAndroid Build Coastguard Worker 87*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Structure to hold a tile's start address and size in the bitstream. 88*77c1e3ccSAndroid Build Coastguard Worker * 89*77c1e3ccSAndroid Build Coastguard Worker * Defines a structure to hold a tile's start address and size in the bitstream. 90*77c1e3ccSAndroid Build Coastguard Worker */ 91*77c1e3ccSAndroid Build Coastguard Worker typedef struct aom_tile_data { 92*77c1e3ccSAndroid Build Coastguard Worker /*! Tile data size. */ 93*77c1e3ccSAndroid Build Coastguard Worker size_t coded_tile_data_size; 94*77c1e3ccSAndroid Build Coastguard Worker /*! Tile's start address. */ 95*77c1e3ccSAndroid Build Coastguard Worker const void *coded_tile_data; 96*77c1e3ccSAndroid Build Coastguard Worker /*! Extra size information. */ 97*77c1e3ccSAndroid Build Coastguard Worker size_t extra_size; 98*77c1e3ccSAndroid Build Coastguard Worker } aom_tile_data; 99*77c1e3ccSAndroid Build Coastguard Worker 100*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Max number of tile columns 101*77c1e3ccSAndroid Build Coastguard Worker * 102*77c1e3ccSAndroid Build Coastguard Worker * This is the limit of number of tile columns allowed within a frame. 103*77c1e3ccSAndroid Build Coastguard Worker * 104*77c1e3ccSAndroid Build Coastguard Worker * Currently same as "MAX_TILE_COLS" in AV1, the maximum that AV1 supports. 105*77c1e3ccSAndroid Build Coastguard Worker * 106*77c1e3ccSAndroid Build Coastguard Worker */ 107*77c1e3ccSAndroid Build Coastguard Worker #define AOM_MAX_TILE_COLS 64 108*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Max number of tile rows 109*77c1e3ccSAndroid Build Coastguard Worker * 110*77c1e3ccSAndroid Build Coastguard Worker * This is the limit of number of tile rows allowed within a frame. 111*77c1e3ccSAndroid Build Coastguard Worker * 112*77c1e3ccSAndroid Build Coastguard Worker * Currently same as "MAX_TILE_ROWS" in AV1, the maximum that AV1 supports. 113*77c1e3ccSAndroid Build Coastguard Worker * 114*77c1e3ccSAndroid Build Coastguard Worker */ 115*77c1e3ccSAndroid Build Coastguard Worker #define AOM_MAX_TILE_ROWS 64 116*77c1e3ccSAndroid Build Coastguard Worker 117*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Structure to hold information about tiles in a frame. 118*77c1e3ccSAndroid Build Coastguard Worker * 119*77c1e3ccSAndroid Build Coastguard Worker * Defines a structure to hold a frame's tile information, namely 120*77c1e3ccSAndroid Build Coastguard Worker * number of tile columns, number of tile_rows, and the width and 121*77c1e3ccSAndroid Build Coastguard Worker * height of each tile. 122*77c1e3ccSAndroid Build Coastguard Worker */ 123*77c1e3ccSAndroid Build Coastguard Worker typedef struct aom_tile_info { 124*77c1e3ccSAndroid Build Coastguard Worker /*! Indicates the number of tile columns. */ 125*77c1e3ccSAndroid Build Coastguard Worker int tile_columns; 126*77c1e3ccSAndroid Build Coastguard Worker /*! Indicates the number of tile rows. */ 127*77c1e3ccSAndroid Build Coastguard Worker int tile_rows; 128*77c1e3ccSAndroid Build Coastguard Worker /*! Indicates the tile widths in units of SB. */ 129*77c1e3ccSAndroid Build Coastguard Worker int tile_widths[AOM_MAX_TILE_COLS]; 130*77c1e3ccSAndroid Build Coastguard Worker /*! Indicates the tile heights in units of SB. */ 131*77c1e3ccSAndroid Build Coastguard Worker int tile_heights[AOM_MAX_TILE_ROWS]; 132*77c1e3ccSAndroid Build Coastguard Worker /*! Indicates the number of tile groups present in a frame. */ 133*77c1e3ccSAndroid Build Coastguard Worker int num_tile_groups; 134*77c1e3ccSAndroid Build Coastguard Worker } aom_tile_info; 135*77c1e3ccSAndroid Build Coastguard Worker 136*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Structure to hold information about still image coding. 137*77c1e3ccSAndroid Build Coastguard Worker * 138*77c1e3ccSAndroid Build Coastguard Worker * Defines a structure to hold a information regarding still picture 139*77c1e3ccSAndroid Build Coastguard Worker * and its header type. 140*77c1e3ccSAndroid Build Coastguard Worker */ 141*77c1e3ccSAndroid Build Coastguard Worker typedef struct aom_still_picture_info { 142*77c1e3ccSAndroid Build Coastguard Worker /*! Video is a single frame still picture */ 143*77c1e3ccSAndroid Build Coastguard Worker int is_still_picture; 144*77c1e3ccSAndroid Build Coastguard Worker /*! Use full header for still picture */ 145*77c1e3ccSAndroid Build Coastguard Worker int is_reduced_still_picture_hdr; 146*77c1e3ccSAndroid Build Coastguard Worker } aom_still_picture_info; 147*77c1e3ccSAndroid Build Coastguard Worker 148*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Structure to hold information about S_FRAME. 149*77c1e3ccSAndroid Build Coastguard Worker * 150*77c1e3ccSAndroid Build Coastguard Worker * Defines a structure to hold a information regarding S_FRAME 151*77c1e3ccSAndroid Build Coastguard Worker * and its position. 152*77c1e3ccSAndroid Build Coastguard Worker */ 153*77c1e3ccSAndroid Build Coastguard Worker typedef struct aom_s_frame_info { 154*77c1e3ccSAndroid Build Coastguard Worker /*! Indicates if current frame is S_FRAME */ 155*77c1e3ccSAndroid Build Coastguard Worker int is_s_frame; 156*77c1e3ccSAndroid Build Coastguard Worker /*! Indicates if current S_FRAME is present at ALTREF frame*/ 157*77c1e3ccSAndroid Build Coastguard Worker int is_s_frame_at_altref; 158*77c1e3ccSAndroid Build Coastguard Worker } aom_s_frame_info; 159*77c1e3ccSAndroid Build Coastguard Worker 160*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Structure to hold information about screen content tools. 161*77c1e3ccSAndroid Build Coastguard Worker * 162*77c1e3ccSAndroid Build Coastguard Worker * Defines a structure to hold information about screen content 163*77c1e3ccSAndroid Build Coastguard Worker * tools, namely: allow_screen_content_tools, allow_intrabc, and 164*77c1e3ccSAndroid Build Coastguard Worker * force_integer_mv. 165*77c1e3ccSAndroid Build Coastguard Worker */ 166*77c1e3ccSAndroid Build Coastguard Worker typedef struct aom_screen_content_tools_info { 167*77c1e3ccSAndroid Build Coastguard Worker /*! Are screen content tools allowed */ 168*77c1e3ccSAndroid Build Coastguard Worker int allow_screen_content_tools; 169*77c1e3ccSAndroid Build Coastguard Worker /*! Is intrabc allowed */ 170*77c1e3ccSAndroid Build Coastguard Worker int allow_intrabc; 171*77c1e3ccSAndroid Build Coastguard Worker /*! Is integer mv forced */ 172*77c1e3ccSAndroid Build Coastguard Worker int force_integer_mv; 173*77c1e3ccSAndroid Build Coastguard Worker } aom_screen_content_tools_info; 174*77c1e3ccSAndroid Build Coastguard Worker 175*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Structure to hold the external reference frame pointer. 176*77c1e3ccSAndroid Build Coastguard Worker * 177*77c1e3ccSAndroid Build Coastguard Worker * Define a structure to hold the external reference frame pointer. 178*77c1e3ccSAndroid Build Coastguard Worker */ 179*77c1e3ccSAndroid Build Coastguard Worker typedef struct av1_ext_ref_frame { 180*77c1e3ccSAndroid Build Coastguard Worker /*! Start pointer of external references. */ 181*77c1e3ccSAndroid Build Coastguard Worker aom_image_t *img; 182*77c1e3ccSAndroid Build Coastguard Worker /*! Number of available external references. */ 183*77c1e3ccSAndroid Build Coastguard Worker int num; 184*77c1e3ccSAndroid Build Coastguard Worker } av1_ext_ref_frame_t; 185*77c1e3ccSAndroid Build Coastguard Worker 186*77c1e3ccSAndroid Build Coastguard Worker /*!\enum aom_dec_control_id 187*77c1e3ccSAndroid Build Coastguard Worker * \brief AOM decoder control functions 188*77c1e3ccSAndroid Build Coastguard Worker * 189*77c1e3ccSAndroid Build Coastguard Worker * This set of macros define the control functions available for the AOM 190*77c1e3ccSAndroid Build Coastguard Worker * decoder interface. 191*77c1e3ccSAndroid Build Coastguard Worker * The range for decoder control ID is >= 256. 192*77c1e3ccSAndroid Build Coastguard Worker * 193*77c1e3ccSAndroid Build Coastguard Worker * \sa #aom_codec_control(aom_codec_ctx_t *ctx, int ctrl_id, ...) 194*77c1e3ccSAndroid Build Coastguard Worker */ 195*77c1e3ccSAndroid Build Coastguard Worker enum aom_dec_control_id { 196*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get info on which reference frames were 197*77c1e3ccSAndroid Build Coastguard Worker * updated by the last decode, int* parameter 198*77c1e3ccSAndroid Build Coastguard Worker */ 199*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_LAST_REF_UPDATES = AOM_DECODER_CTRL_ID_START, 200*77c1e3ccSAndroid Build Coastguard Worker 201*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to check if the indicated frame is 202*77c1e3ccSAndroid Build Coastguard Worker corrupted, int* parameter 203*77c1e3ccSAndroid Build Coastguard Worker */ 204*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_FRAME_CORRUPTED, 205*77c1e3ccSAndroid Build Coastguard Worker 206*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get info on which reference frames were 207*77c1e3ccSAndroid Build Coastguard Worker * used by the last decode, int* parameter 208*77c1e3ccSAndroid Build Coastguard Worker */ 209*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_LAST_REF_USED, 210*77c1e3ccSAndroid Build Coastguard Worker 211*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the dimensions that the current 212*77c1e3ccSAndroid Build Coastguard Worker * frame is decoded at, int* parameter 213*77c1e3ccSAndroid Build Coastguard Worker * 214*77c1e3ccSAndroid Build Coastguard Worker * This may be different to the intended display size for the frame as 215*77c1e3ccSAndroid Build Coastguard Worker * specified in the wrapper or frame header (see AV1D_GET_DISPLAY_SIZE). 216*77c1e3ccSAndroid Build Coastguard Worker */ 217*77c1e3ccSAndroid Build Coastguard Worker AV1D_GET_FRAME_SIZE, 218*77c1e3ccSAndroid Build Coastguard Worker 219*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the current frame's intended display 220*77c1e3ccSAndroid Build Coastguard Worker * dimensions (as specified in the wrapper or frame header), int* parameter 221*77c1e3ccSAndroid Build Coastguard Worker * 222*77c1e3ccSAndroid Build Coastguard Worker * This may be different to the decoded dimensions of this frame (see 223*77c1e3ccSAndroid Build Coastguard Worker * AV1D_GET_FRAME_SIZE). 224*77c1e3ccSAndroid Build Coastguard Worker */ 225*77c1e3ccSAndroid Build Coastguard Worker AV1D_GET_DISPLAY_SIZE, 226*77c1e3ccSAndroid Build Coastguard Worker 227*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the bit depth of the stream, 228*77c1e3ccSAndroid Build Coastguard Worker * unsigned int* parameter 229*77c1e3ccSAndroid Build Coastguard Worker */ 230*77c1e3ccSAndroid Build Coastguard Worker AV1D_GET_BIT_DEPTH, 231*77c1e3ccSAndroid Build Coastguard Worker 232*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the image format of the stream, 233*77c1e3ccSAndroid Build Coastguard Worker * aom_img_fmt_t* parameter 234*77c1e3ccSAndroid Build Coastguard Worker */ 235*77c1e3ccSAndroid Build Coastguard Worker AV1D_GET_IMG_FORMAT, 236*77c1e3ccSAndroid Build Coastguard Worker 237*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the width and height (in pixels) of 238*77c1e3ccSAndroid Build Coastguard Worker * the tiles in a tile list, unsigned int* parameter 239*77c1e3ccSAndroid Build Coastguard Worker * 240*77c1e3ccSAndroid Build Coastguard Worker * Tile width is in the high 16 bits of the output value, and tile height is 241*77c1e3ccSAndroid Build Coastguard Worker * in the low 16 bits of the output value. 242*77c1e3ccSAndroid Build Coastguard Worker */ 243*77c1e3ccSAndroid Build Coastguard Worker AV1D_GET_TILE_SIZE, 244*77c1e3ccSAndroid Build Coastguard Worker 245*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the tile count in a tile list, 246*77c1e3ccSAndroid Build Coastguard Worker * unsigned int* parameter 247*77c1e3ccSAndroid Build Coastguard Worker */ 248*77c1e3ccSAndroid Build Coastguard Worker AV1D_GET_TILE_COUNT, 249*77c1e3ccSAndroid Build Coastguard Worker 250*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to set the byte alignment of the planes in 251*77c1e3ccSAndroid Build Coastguard Worker * the reference buffers, int parameter 252*77c1e3ccSAndroid Build Coastguard Worker * 253*77c1e3ccSAndroid Build Coastguard Worker * Valid values are power of 2, from 32 to 1024. A value of 0 sets 254*77c1e3ccSAndroid Build Coastguard Worker * legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly 255*77c1e3ccSAndroid Build Coastguard Worker * follows Y plane, and V plane directly follows U plane. Default value is 0. 256*77c1e3ccSAndroid Build Coastguard Worker */ 257*77c1e3ccSAndroid Build Coastguard Worker AV1_SET_BYTE_ALIGNMENT, 258*77c1e3ccSAndroid Build Coastguard Worker 259*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to invert the decoding order to from right to 260*77c1e3ccSAndroid Build Coastguard Worker * left, int parameter 261*77c1e3ccSAndroid Build Coastguard Worker * 262*77c1e3ccSAndroid Build Coastguard Worker * The function is used in a test to confirm the decoding independence of tile 263*77c1e3ccSAndroid Build Coastguard Worker * columns. The function may be used in application where this order 264*77c1e3ccSAndroid Build Coastguard Worker * of decoding is desired. int parameter 265*77c1e3ccSAndroid Build Coastguard Worker * 266*77c1e3ccSAndroid Build Coastguard Worker * TODO(yaowu): Rework the unit test that uses this control, and in a future 267*77c1e3ccSAndroid Build Coastguard Worker * release, this test-only control shall be removed. 268*77c1e3ccSAndroid Build Coastguard Worker */ 269*77c1e3ccSAndroid Build Coastguard Worker AV1_INVERT_TILE_DECODE_ORDER, 270*77c1e3ccSAndroid Build Coastguard Worker 271*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to set the skip loop filter flag, int 272*77c1e3ccSAndroid Build Coastguard Worker * parameter 273*77c1e3ccSAndroid Build Coastguard Worker * 274*77c1e3ccSAndroid Build Coastguard Worker * Valid values are integers. The decoder will skip the loop filter 275*77c1e3ccSAndroid Build Coastguard Worker * when its value is set to nonzero. If the loop filter is skipped the 276*77c1e3ccSAndroid Build Coastguard Worker * decoder may accumulate decode artifacts. The default value is 0. 277*77c1e3ccSAndroid Build Coastguard Worker */ 278*77c1e3ccSAndroid Build Coastguard Worker AV1_SET_SKIP_LOOP_FILTER, 279*77c1e3ccSAndroid Build Coastguard Worker 280*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to retrieve a pointer to the Accounting 281*77c1e3ccSAndroid Build Coastguard Worker * struct, takes Accounting** as parameter 282*77c1e3ccSAndroid Build Coastguard Worker * 283*77c1e3ccSAndroid Build Coastguard Worker * If called before a frame has been decoded, this returns AOM_CODEC_ERROR. 284*77c1e3ccSAndroid Build Coastguard Worker * The caller should ensure that AOM_CODEC_OK is returned before attempting 285*77c1e3ccSAndroid Build Coastguard Worker * to dereference the Accounting pointer. 286*77c1e3ccSAndroid Build Coastguard Worker * 287*77c1e3ccSAndroid Build Coastguard Worker * \attention When configured with -DCONFIG_ACCOUNTING=0, the default, this 288*77c1e3ccSAndroid Build Coastguard Worker * returns AOM_CODEC_INCAPABLE. 289*77c1e3ccSAndroid Build Coastguard Worker */ 290*77c1e3ccSAndroid Build Coastguard Worker AV1_GET_ACCOUNTING, 291*77c1e3ccSAndroid Build Coastguard Worker 292*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get last decoded frame quantizer, 293*77c1e3ccSAndroid Build Coastguard Worker * int* parameter 294*77c1e3ccSAndroid Build Coastguard Worker * 295*77c1e3ccSAndroid Build Coastguard Worker * Returned value uses internal quantizer scale defined by the codec. 296*77c1e3ccSAndroid Build Coastguard Worker */ 297*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_LAST_QUANTIZER, 298*77c1e3ccSAndroid Build Coastguard Worker 299*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to set the range of tile decoding, int 300*77c1e3ccSAndroid Build Coastguard Worker * parameter 301*77c1e3ccSAndroid Build Coastguard Worker * 302*77c1e3ccSAndroid Build Coastguard Worker * A value that is greater and equal to zero indicates only the specific 303*77c1e3ccSAndroid Build Coastguard Worker * row/column is decoded. A value that is -1 indicates the whole row/column 304*77c1e3ccSAndroid Build Coastguard Worker * is decoded. A special case is both values are -1 that means the whole 305*77c1e3ccSAndroid Build Coastguard Worker * frame is decoded. 306*77c1e3ccSAndroid Build Coastguard Worker */ 307*77c1e3ccSAndroid Build Coastguard Worker AV1_SET_DECODE_TILE_ROW, 308*77c1e3ccSAndroid Build Coastguard Worker AV1_SET_DECODE_TILE_COL, 309*77c1e3ccSAndroid Build Coastguard Worker 310*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to set the tile coding mode, unsigned int 311*77c1e3ccSAndroid Build Coastguard Worker * parameter 312*77c1e3ccSAndroid Build Coastguard Worker * 313*77c1e3ccSAndroid Build Coastguard Worker * - 0 = tiles are coded in normal tile mode 314*77c1e3ccSAndroid Build Coastguard Worker * - 1 = tiles are coded in large-scale tile mode 315*77c1e3ccSAndroid Build Coastguard Worker */ 316*77c1e3ccSAndroid Build Coastguard Worker AV1_SET_TILE_MODE, 317*77c1e3ccSAndroid Build Coastguard Worker 318*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the frame header information of an 319*77c1e3ccSAndroid Build Coastguard Worker * encoded frame, aom_tile_data* parameter 320*77c1e3ccSAndroid Build Coastguard Worker */ 321*77c1e3ccSAndroid Build Coastguard Worker AV1D_GET_FRAME_HEADER_INFO, 322*77c1e3ccSAndroid Build Coastguard Worker 323*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the start address and size of a 324*77c1e3ccSAndroid Build Coastguard Worker * tile in the coded bitstream, aom_tile_data* parameter. 325*77c1e3ccSAndroid Build Coastguard Worker */ 326*77c1e3ccSAndroid Build Coastguard Worker AV1D_GET_TILE_DATA, 327*77c1e3ccSAndroid Build Coastguard Worker 328*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to set the external references' pointers in 329*77c1e3ccSAndroid Build Coastguard Worker * the decoder, av1_ext_ref_frame_t* parameter. 330*77c1e3ccSAndroid Build Coastguard Worker * 331*77c1e3ccSAndroid Build Coastguard Worker * This is used while decoding the tile list OBU in large-scale tile coding 332*77c1e3ccSAndroid Build Coastguard Worker * mode. 333*77c1e3ccSAndroid Build Coastguard Worker */ 334*77c1e3ccSAndroid Build Coastguard Worker AV1D_SET_EXT_REF_PTR, 335*77c1e3ccSAndroid Build Coastguard Worker 336*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to enable the ext-tile software debug and 337*77c1e3ccSAndroid Build Coastguard Worker * testing code in the decoder, unsigned int parameter 338*77c1e3ccSAndroid Build Coastguard Worker */ 339*77c1e3ccSAndroid Build Coastguard Worker AV1D_EXT_TILE_DEBUG, 340*77c1e3ccSAndroid Build Coastguard Worker 341*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to enable the row based multi-threading of 342*77c1e3ccSAndroid Build Coastguard Worker * decoding, unsigned int parameter 343*77c1e3ccSAndroid Build Coastguard Worker * 344*77c1e3ccSAndroid Build Coastguard Worker * - 0 = disabled 345*77c1e3ccSAndroid Build Coastguard Worker * - 1 = enabled (default) 346*77c1e3ccSAndroid Build Coastguard Worker */ 347*77c1e3ccSAndroid Build Coastguard Worker AV1D_SET_ROW_MT, 348*77c1e3ccSAndroid Build Coastguard Worker 349*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to indicate whether bitstream is in 350*77c1e3ccSAndroid Build Coastguard Worker * Annex-B format, unsigned int parameter 351*77c1e3ccSAndroid Build Coastguard Worker */ 352*77c1e3ccSAndroid Build Coastguard Worker AV1D_SET_IS_ANNEXB, 353*77c1e3ccSAndroid Build Coastguard Worker 354*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to indicate which operating point to use, 355*77c1e3ccSAndroid Build Coastguard Worker * int parameter 356*77c1e3ccSAndroid Build Coastguard Worker * 357*77c1e3ccSAndroid Build Coastguard Worker * A scalable stream may define multiple operating points, each of which 358*77c1e3ccSAndroid Build Coastguard Worker * defines a set of temporal and spatial layers to be processed. The 359*77c1e3ccSAndroid Build Coastguard Worker * operating point index may take a value between 0 and 360*77c1e3ccSAndroid Build Coastguard Worker * operating_points_cnt_minus_1 (which is at most 31). 361*77c1e3ccSAndroid Build Coastguard Worker */ 362*77c1e3ccSAndroid Build Coastguard Worker AV1D_SET_OPERATING_POINT, 363*77c1e3ccSAndroid Build Coastguard Worker 364*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to indicate whether to output one frame per 365*77c1e3ccSAndroid Build Coastguard Worker * temporal unit (the default), or one frame per spatial layer, int parameter 366*77c1e3ccSAndroid Build Coastguard Worker * 367*77c1e3ccSAndroid Build Coastguard Worker * In a scalable stream, each temporal unit corresponds to a single "frame" 368*77c1e3ccSAndroid Build Coastguard Worker * of video, and within a temporal unit there may be multiple spatial layers 369*77c1e3ccSAndroid Build Coastguard Worker * with different versions of that frame. 370*77c1e3ccSAndroid Build Coastguard Worker * For video playback, only the highest-quality version (within the 371*77c1e3ccSAndroid Build Coastguard Worker * selected operating point) is needed, but for some use cases it is useful 372*77c1e3ccSAndroid Build Coastguard Worker * to have access to multiple versions of a frame when they are available. 373*77c1e3ccSAndroid Build Coastguard Worker */ 374*77c1e3ccSAndroid Build Coastguard Worker AV1D_SET_OUTPUT_ALL_LAYERS, 375*77c1e3ccSAndroid Build Coastguard Worker 376*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to set an aom_inspect_cb callback that is 377*77c1e3ccSAndroid Build Coastguard Worker * invoked each time a frame is decoded, aom_inspect_init* parameter 378*77c1e3ccSAndroid Build Coastguard Worker * 379*77c1e3ccSAndroid Build Coastguard Worker * \attention When configured with -DCONFIG_INSPECTION=0, the default, this 380*77c1e3ccSAndroid Build Coastguard Worker * returns AOM_CODEC_INCAPABLE. 381*77c1e3ccSAndroid Build Coastguard Worker */ 382*77c1e3ccSAndroid Build Coastguard Worker AV1_SET_INSPECTION_CALLBACK, 383*77c1e3ccSAndroid Build Coastguard Worker 384*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to set the skip film grain flag, int 385*77c1e3ccSAndroid Build Coastguard Worker * parameter 386*77c1e3ccSAndroid Build Coastguard Worker * 387*77c1e3ccSAndroid Build Coastguard Worker * Valid values are integers. The decoder will skip the film grain when its 388*77c1e3ccSAndroid Build Coastguard Worker * value is set to nonzero. The default value is 0. 389*77c1e3ccSAndroid Build Coastguard Worker */ 390*77c1e3ccSAndroid Build Coastguard Worker AV1D_SET_SKIP_FILM_GRAIN, 391*77c1e3ccSAndroid Build Coastguard Worker 392*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to check the presence of forward key frames, 393*77c1e3ccSAndroid Build Coastguard Worker * int* parameter 394*77c1e3ccSAndroid Build Coastguard Worker */ 395*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_FWD_KF_PRESENT, 396*77c1e3ccSAndroid Build Coastguard Worker 397*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the frame flags of the previous frame 398*77c1e3ccSAndroid Build Coastguard Worker * decoded, int* parameter 399*77c1e3ccSAndroid Build Coastguard Worker * 400*77c1e3ccSAndroid Build Coastguard Worker * This will return a flag of type aom_codec_frame_flags_t. 401*77c1e3ccSAndroid Build Coastguard Worker */ 402*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_FRAME_FLAGS, 403*77c1e3ccSAndroid Build Coastguard Worker 404*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to check the presence of altref frames, int* 405*77c1e3ccSAndroid Build Coastguard Worker * parameter 406*77c1e3ccSAndroid Build Coastguard Worker */ 407*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_ALTREF_PRESENT, 408*77c1e3ccSAndroid Build Coastguard Worker 409*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get tile information of the previous frame 410*77c1e3ccSAndroid Build Coastguard Worker * decoded, aom_tile_info* parameter 411*77c1e3ccSAndroid Build Coastguard Worker * 412*77c1e3ccSAndroid Build Coastguard Worker * This will return a struct of type aom_tile_info. 413*77c1e3ccSAndroid Build Coastguard Worker */ 414*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_TILE_INFO, 415*77c1e3ccSAndroid Build Coastguard Worker 416*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get screen content tools information, 417*77c1e3ccSAndroid Build Coastguard Worker * aom_screen_content_tools_info* parameter 418*77c1e3ccSAndroid Build Coastguard Worker * 419*77c1e3ccSAndroid Build Coastguard Worker * It returns a struct of type aom_screen_content_tools_info, which contains 420*77c1e3ccSAndroid Build Coastguard Worker * the header flags allow_screen_content_tools, allow_intrabc, and 421*77c1e3ccSAndroid Build Coastguard Worker * force_integer_mv. 422*77c1e3ccSAndroid Build Coastguard Worker */ 423*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_SCREEN_CONTENT_TOOLS_INFO, 424*77c1e3ccSAndroid Build Coastguard Worker 425*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the still picture coding information, 426*77c1e3ccSAndroid Build Coastguard Worker * aom_still_picture_info* parameter 427*77c1e3ccSAndroid Build Coastguard Worker */ 428*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_STILL_PICTURE, 429*77c1e3ccSAndroid Build Coastguard Worker 430*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get superblock size, 431*77c1e3ccSAndroid Build Coastguard Worker * aom_superblock_size_t* parameter 432*77c1e3ccSAndroid Build Coastguard Worker * 433*77c1e3ccSAndroid Build Coastguard Worker * It returns an enum, indicating the superblock size read from the sequence 434*77c1e3ccSAndroid Build Coastguard Worker * header(0 for BLOCK_64X64 and 1 for BLOCK_128X128) 435*77c1e3ccSAndroid Build Coastguard Worker */ 436*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_SB_SIZE, 437*77c1e3ccSAndroid Build Coastguard Worker 438*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to check if the previous frame 439*77c1e3ccSAndroid Build Coastguard Worker * decoded has show existing frame flag set, int* parameter 440*77c1e3ccSAndroid Build Coastguard Worker */ 441*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_SHOW_EXISTING_FRAME_FLAG, 442*77c1e3ccSAndroid Build Coastguard Worker 443*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the S_FRAME coding information, 444*77c1e3ccSAndroid Build Coastguard Worker * aom_s_frame_info* parameter 445*77c1e3ccSAndroid Build Coastguard Worker */ 446*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_S_FRAME_INFO, 447*77c1e3ccSAndroid Build Coastguard Worker 448*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the show frame flag, int* parameter 449*77c1e3ccSAndroid Build Coastguard Worker */ 450*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_SHOW_FRAME_FLAG, 451*77c1e3ccSAndroid Build Coastguard Worker 452*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the base q index of a frame, int* 453*77c1e3ccSAndroid Build Coastguard Worker * parameter 454*77c1e3ccSAndroid Build Coastguard Worker */ 455*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_BASE_Q_IDX, 456*77c1e3ccSAndroid Build Coastguard Worker 457*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the order hint of a frame, unsigned 458*77c1e3ccSAndroid Build Coastguard Worker * int* parameter 459*77c1e3ccSAndroid Build Coastguard Worker */ 460*77c1e3ccSAndroid Build Coastguard Worker AOMD_GET_ORDER_HINT, 461*77c1e3ccSAndroid Build Coastguard Worker 462*77c1e3ccSAndroid Build Coastguard Worker /*!\brief Codec control function to get the info of a 4x4 block. 463*77c1e3ccSAndroid Build Coastguard Worker * Parameters: int mi_row, int mi_col, and MB_MODE_INFO*. 464*77c1e3ccSAndroid Build Coastguard Worker * 465*77c1e3ccSAndroid Build Coastguard Worker * \note This only returns a shallow copy, so all pointer members should not 466*77c1e3ccSAndroid Build Coastguard Worker * be used. 467*77c1e3ccSAndroid Build Coastguard Worker */ 468*77c1e3ccSAndroid Build Coastguard Worker AV1D_GET_MI_INFO, 469*77c1e3ccSAndroid Build Coastguard Worker }; 470*77c1e3ccSAndroid Build Coastguard Worker 471*77c1e3ccSAndroid Build Coastguard Worker /*!\cond */ 472*77c1e3ccSAndroid Build Coastguard Worker /*!\brief AOM decoder control function parameter type 473*77c1e3ccSAndroid Build Coastguard Worker * 474*77c1e3ccSAndroid Build Coastguard Worker * Defines the data types that AOMD control functions take. 475*77c1e3ccSAndroid Build Coastguard Worker * 476*77c1e3ccSAndroid Build Coastguard Worker * \note Additional common controls are defined in aom.h. 477*77c1e3ccSAndroid Build Coastguard Worker * 478*77c1e3ccSAndroid Build Coastguard Worker * \note For each control ID "X", a macro-define of 479*77c1e3ccSAndroid Build Coastguard Worker * AOM_CTRL_X is provided. It is used at compile time to determine 480*77c1e3ccSAndroid Build Coastguard Worker * if the control ID is supported by the libaom library available, 481*77c1e3ccSAndroid Build Coastguard Worker * when the libaom version cannot be controlled. 482*77c1e3ccSAndroid Build Coastguard Worker */ 483*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_LAST_REF_UPDATES, int *) 484*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_LAST_REF_UPDATES 485*77c1e3ccSAndroid Build Coastguard Worker 486*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_FRAME_CORRUPTED, int *) 487*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_FRAME_CORRUPTED 488*77c1e3ccSAndroid Build Coastguard Worker 489*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_LAST_REF_USED, int *) 490*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_LAST_REF_USED 491*77c1e3ccSAndroid Build Coastguard Worker 492*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_GET_FRAME_SIZE, int *) 493*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_GET_FRAME_SIZE 494*77c1e3ccSAndroid Build Coastguard Worker 495*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_GET_DISPLAY_SIZE, int *) 496*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_GET_DISPLAY_SIZE 497*77c1e3ccSAndroid Build Coastguard Worker 498*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_GET_BIT_DEPTH, unsigned int *) 499*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_GET_BIT_DEPTH 500*77c1e3ccSAndroid Build Coastguard Worker 501*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_GET_IMG_FORMAT, aom_img_fmt_t *) 502*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_GET_IMG_FORMAT 503*77c1e3ccSAndroid Build Coastguard Worker 504*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_GET_TILE_SIZE, unsigned int *) 505*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_GET_TILE_SIZE 506*77c1e3ccSAndroid Build Coastguard Worker 507*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_GET_TILE_COUNT, unsigned int *) 508*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_GET_TILE_COUNT 509*77c1e3ccSAndroid Build Coastguard Worker 510*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1_INVERT_TILE_DECODE_ORDER, int) 511*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1_INVERT_TILE_DECODE_ORDER 512*77c1e3ccSAndroid Build Coastguard Worker 513*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1_SET_SKIP_LOOP_FILTER, int) 514*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1_SET_SKIP_LOOP_FILTER 515*77c1e3ccSAndroid Build Coastguard Worker 516*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1_GET_ACCOUNTING, Accounting **) 517*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1_GET_ACCOUNTING 518*77c1e3ccSAndroid Build Coastguard Worker 519*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_LAST_QUANTIZER, int *) 520*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_LAST_QUANTIZER 521*77c1e3ccSAndroid Build Coastguard Worker 522*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1_SET_DECODE_TILE_ROW, int) 523*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1_SET_DECODE_TILE_ROW 524*77c1e3ccSAndroid Build Coastguard Worker 525*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1_SET_DECODE_TILE_COL, int) 526*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1_SET_DECODE_TILE_COL 527*77c1e3ccSAndroid Build Coastguard Worker 528*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1_SET_TILE_MODE, unsigned int) 529*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1_SET_TILE_MODE 530*77c1e3ccSAndroid Build Coastguard Worker 531*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_GET_FRAME_HEADER_INFO, aom_tile_data *) 532*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_GET_FRAME_HEADER_INFO 533*77c1e3ccSAndroid Build Coastguard Worker 534*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_GET_TILE_DATA, aom_tile_data *) 535*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_GET_TILE_DATA 536*77c1e3ccSAndroid Build Coastguard Worker 537*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_SET_EXT_REF_PTR, av1_ext_ref_frame_t *) 538*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_SET_EXT_REF_PTR 539*77c1e3ccSAndroid Build Coastguard Worker 540*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_EXT_TILE_DEBUG, unsigned int) 541*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_EXT_TILE_DEBUG 542*77c1e3ccSAndroid Build Coastguard Worker 543*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_SET_ROW_MT, unsigned int) 544*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_SET_ROW_MT 545*77c1e3ccSAndroid Build Coastguard Worker 546*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_SET_IS_ANNEXB, unsigned int) 547*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_SET_IS_ANNEXB 548*77c1e3ccSAndroid Build Coastguard Worker 549*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_SET_OPERATING_POINT, int) 550*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_SET_OPERATING_POINT 551*77c1e3ccSAndroid Build Coastguard Worker 552*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_SET_OUTPUT_ALL_LAYERS, int) 553*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_SET_OUTPUT_ALL_LAYERS 554*77c1e3ccSAndroid Build Coastguard Worker 555*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1_SET_INSPECTION_CALLBACK, aom_inspect_init *) 556*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1_SET_INSPECTION_CALLBACK 557*77c1e3ccSAndroid Build Coastguard Worker 558*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AV1D_SET_SKIP_FILM_GRAIN, int) 559*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_SET_SKIP_FILM_GRAIN 560*77c1e3ccSAndroid Build Coastguard Worker 561*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_FWD_KF_PRESENT, int *) 562*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_FWD_KF_PRESENT 563*77c1e3ccSAndroid Build Coastguard Worker 564*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_FRAME_FLAGS, int *) 565*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_FRAME_FLAGS 566*77c1e3ccSAndroid Build Coastguard Worker 567*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_ALTREF_PRESENT, int *) 568*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_ALTREF_PRESENT 569*77c1e3ccSAndroid Build Coastguard Worker 570*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_TILE_INFO, aom_tile_info *) 571*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_TILE_INFO 572*77c1e3ccSAndroid Build Coastguard Worker 573*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_SCREEN_CONTENT_TOOLS_INFO, 574*77c1e3ccSAndroid Build Coastguard Worker aom_screen_content_tools_info *) 575*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_SCREEN_CONTENT_TOOLS_INFO 576*77c1e3ccSAndroid Build Coastguard Worker 577*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_STILL_PICTURE, aom_still_picture_info *) 578*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_STILL_PICTURE 579*77c1e3ccSAndroid Build Coastguard Worker 580*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_SB_SIZE, aom_superblock_size_t *) 581*77c1e3ccSAndroid Build Coastguard Worker #define AOMD_CTRL_AOMD_GET_SB_SIZE 582*77c1e3ccSAndroid Build Coastguard Worker 583*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_SHOW_EXISTING_FRAME_FLAG, int *) 584*77c1e3ccSAndroid Build Coastguard Worker #define AOMD_CTRL_AOMD_GET_SHOW_EXISTING_FRAME_FLAG 585*77c1e3ccSAndroid Build Coastguard Worker 586*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_S_FRAME_INFO, aom_s_frame_info *) 587*77c1e3ccSAndroid Build Coastguard Worker #define AOMD_CTRL_AOMD_GET_S_FRAME_INFO 588*77c1e3ccSAndroid Build Coastguard Worker 589*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_SHOW_FRAME_FLAG, int *) 590*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_SHOW_FRAME_FLAG 591*77c1e3ccSAndroid Build Coastguard Worker 592*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_BASE_Q_IDX, int *) 593*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_BASE_Q_IDX 594*77c1e3ccSAndroid Build Coastguard Worker 595*77c1e3ccSAndroid Build Coastguard Worker AOM_CTRL_USE_TYPE(AOMD_GET_ORDER_HINT, unsigned int *) 596*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AOMD_GET_ORDER_HINT 597*77c1e3ccSAndroid Build Coastguard Worker 598*77c1e3ccSAndroid Build Coastguard Worker // The AOM_CTRL_USE_TYPE macro can't be used with AV1D_GET_MI_INFO because 599*77c1e3ccSAndroid Build Coastguard Worker // AV1D_GET_MI_INFO takes more than one parameter. 600*77c1e3ccSAndroid Build Coastguard Worker #define AOM_CTRL_AV1D_GET_MI_INFO 601*77c1e3ccSAndroid Build Coastguard Worker /*!\endcond */ 602*77c1e3ccSAndroid Build Coastguard Worker /*! @} - end defgroup aom_decoder */ 603*77c1e3ccSAndroid Build Coastguard Worker #ifdef __cplusplus 604*77c1e3ccSAndroid Build Coastguard Worker } // extern "C" 605*77c1e3ccSAndroid Build Coastguard Worker #endif 606*77c1e3ccSAndroid Build Coastguard Worker 607*77c1e3ccSAndroid Build Coastguard Worker #endif // AOM_AOM_AOMDX_H_ 608