AOMedia AV1 Codec
aomdx.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016, Alliance for Open Media. All rights reserved
3  *
4  * 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.
10  */
11 
21 #ifndef AOM_AOM_AOMDX_H_
22 #define AOM_AOM_AOMDX_H_
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Include controls common to both the encoder and decoder */
29 #include "aom/aom.h"
30 
45 
50 typedef struct Accounting Accounting;
51 
52 #ifndef AOM_INSPECTION_H_
53 
55 typedef void (*aom_inspect_cb)(void *decoder, void *ctx);
56 
57 #endif
58 
64 typedef struct aom_inspect_init {
67 
69  void *inspect_ctx;
71 
78 typedef struct {
80  const unsigned char *buf;
82  int idx;
86 
91 typedef struct aom_tile_data {
95  const void *coded_tile_data;
97  size_t extra_size;
99 
107 #define AOM_MAX_TILE_COLS 64
108 
115 #define AOM_MAX_TILE_ROWS 64
116 
123 typedef struct aom_tile_info {
134 } aom_tile_info;
135 
141 typedef struct aom_still_picture_info {
147 
153 typedef struct aom_s_frame_info {
159 
174 
179 typedef struct av1_ext_ref_frame {
183  int num;
185 
200 
205 
210 
217 
224 
229 
234 
238 
243 
252 
264 
273 
285 
292 
302  AV1_SET_DECODE_TILE_COL,
303 
310 
315 
320 
328 
333 
341 
346 
356 
368 
376 
384 
388 
393 
396 
401 
408 
412 
419 
424 
428 };
429 
443 #define AOM_CTRL_AOMD_GET_LAST_REF_UPDATES
444 
446 #define AOM_CTRL_AOMD_GET_FRAME_CORRUPTED
447 
449 #define AOM_CTRL_AOMD_GET_LAST_REF_USED
450 
452 #define AOM_CTRL_AOMD_GET_LAST_QUANTIZER
453 
455 #define AOM_CTRL_AOMD_GET_FWD_KF_PRESENT
456 
458 #define AOM_CTRL_AOMD_GET_ALTREF_PRESENT
459 
461 #define AOM_CTRL_AOMD_GET_FRAME_FLAGS
462 
464 #define AOM_CTRL_AOMD_GET_TILE_INFO
465 
468 #define AOM_CTRL_AOMD_GET_SCREEN_CONTENT_TOOLS_INFO
469 
471 #define AOM_CTRL_AOMD_GET_STILL_PICTURE
472 
474 #define AOMD_CTRL_AOMD_GET_SB_SIZE
475 
477 #define AOMD_CTRL_AOMD_GET_SHOW_EXISTING_FRAME_FLAG
478 
480 #define AOMD_CTRL_AOMD_GET_S_FRAME_INFO
481 
483 #define AOM_CTRL_AV1D_GET_DISPLAY_SIZE
484 
485 AOM_CTRL_USE_TYPE(AV1D_GET_BIT_DEPTH, unsigned int *)
486 #define AOM_CTRL_AV1D_GET_BIT_DEPTH
487 
489 #define AOM_CTRL_AV1D_GET_IMG_FORMAT
490 
491 AOM_CTRL_USE_TYPE(AV1D_GET_TILE_SIZE, unsigned int *)
492 #define AOM_CTRL_AV1D_GET_TILE_SIZE
493 
494 AOM_CTRL_USE_TYPE(AV1D_GET_TILE_COUNT, unsigned int *)
495 #define AOM_CTRL_AV1D_GET_TILE_COUNT
496 
498 #define AOM_CTRL_AV1D_GET_FRAME_SIZE
499 
501 #define AOM_CTRL_AV1_INVERT_TILE_DECODE_ORDER
502 
504 #define AOM_CTRL_AV1_GET_ACCOUNTING
505 
507 #define AOM_CTRL_AV1_SET_DECODE_TILE_ROW
508 
509 AOM_CTRL_USE_TYPE(AV1_SET_DECODE_TILE_COL, int)
510 #define AOM_CTRL_AV1_SET_DECODE_TILE_COL
511 
513 #define AOM_CTRL_AV1_SET_TILE_MODE
514 
516 #define AOM_CTRL_AV1D_GET_FRAME_HEADER_INFO
517 
519 #define AOM_CTRL_AV1D_GET_TILE_DATA
520 
522 #define AOM_CTRL_AV1D_SET_EXT_REF_PTR
523 
525 #define AOM_CTRL_AV1D_EXT_TILE_DEBUG
526 
527 AOM_CTRL_USE_TYPE(AV1D_SET_ROW_MT, unsigned int)
528 #define AOM_CTRL_AV1D_SET_ROW_MT
529 
531 #define AOM_CTRL_AV1D_SET_SKIP_FILM_GRAIN
532 
534 #define AOM_CTRL_AV1D_SET_IS_ANNEXB
535 
537 #define AOM_CTRL_AV1D_SET_OPERATING_POINT
538 
540 #define AOM_CTRL_AV1D_SET_OUTPUT_ALL_LAYERS
541 
543 #define AOM_CTRL_AV1_SET_INSPECTION_CALLBACK
544 
546 #ifdef __cplusplus
547 } // extern "C"
548 #endif
549 
550 #endif // AOM_AOM_AOMDX_H_
int allow_screen_content_tools
Definition: aomdx.h:168
Codec control function to set the skip film grain flag, int parameter.
Definition: aomdx.h:383
aom_codec_iface_t * aom_codec_av1_dx(void)
The interface to the AV1 decoder.
int show_existing
Definition: aomdx.h:84
Codec control function to check the presence of forward key frames.
Definition: aomdx.h:387
void(* aom_inspect_cb)(void *decoder, void *ctx)
Definition: aomdx.h:55
struct aom_tile_data aom_tile_data
Structure to hold a tile's start address and size in the bitstream.
Codec control function to get the frame header information of an encoded frame, unsigned int* paramet...
Definition: aomdx.h:314
Codec control function to indicate which operating point to use, int parameter.
Definition: aomdx.h:355
int num_tile_groups
Definition: aomdx.h:133
aom_inspect_cb inspect_cb
Definition: aomdx.h:66
Codec control function to get the S_FRAME coding information.
Definition: aomdx.h:427
Codec control function to get the tile count in a tile list, int* parameter.
Definition: aomdx.h:242
int tile_rows
Definition: aomdx.h:127
enum aom_img_fmt aom_img_fmt_t
List of supported image formats.
Codec control function to get tile information of the previous frame decoded. This will return a stru...
Definition: aomdx.h:400
Codec control function to indicate whether bitstream is in Annex-B format, unsigned int parameter...
Definition: aomdx.h:345
int idx
Definition: aomdx.h:82
Codec control function to get the start address and size of a tile in the coded bitstream, aom_tile_data* parameter.
Definition: aomdx.h:319
Provides controls common to both the AOM encoder and decoder.
Codec control function to get the size of the tile, unsigned int parameter.
Definition: aomdx.h:237
Structure to hold information about screen content tools.
Definition: aomdx.h:166
aom_codec_iface_t aom_codec_av1_dx_algo
A single instance of the AV1 decoder.
const unsigned char * buf
Definition: aomdx.h:80
int is_s_frame_at_altref
Definition: aomdx.h:157
struct aom_inspect_init aom_inspect_init
Structure to hold inspection callback and context.
Codec control function to set the external references' pointers in the decoder, av1_ext_ref_frame_t* ...
Definition: aomdx.h:327
Codec control function to get the dimensions that the current frame is decoded at, int* parameter. This may be different to the intended display size for the frame as specified in the wrapper or frame header (see AV1D_GET_DISPLAY_SIZE).
Definition: aomdx.h:216
Image Descriptor.
Definition: aom_image.h:171
Codec control function to get the still picture coding information.
Definition: aomdx.h:411
Structure to hold a tile's start address and size in the bitstream.
Definition: aomdx.h:91
Codec control function to check if the indicated frame is corrupted, int* parameter.
Definition: aomdx.h:204
Codec control function to check if the previous frame decoded has show existing frame flag set...
Definition: aomdx.h:423
const struct aom_codec_iface aom_codec_iface_t
Codec interface structure.
Definition: aom_codec.h:254
struct aom_screen_content_tools_info aom_screen_content_tools_info
Structure to hold information about screen content tools.
Codec control function to get the frame flags of the previous frame decoded. This will return a flag ...
Definition: aomdx.h:392
Codec control function to invert the decoding order to from right to left, int parameter.
Definition: aomdx.h:263
Codec control function to get info on which reference frames were updated by the last decode...
Definition: aomdx.h:199
#define AOM_CTRL_USE_TYPE(id, typ)
Creates typechecking mechanisms for aom_codec_control.
Definition: aom_codec.h:530
Codec control function to get the image format of the stream, aom_img_fmt_t* parameter.
Definition: aomdx.h:233
int allow_intrabc
Definition: aomdx.h:170
Codec control function to get superblock size. It returns an integer, indicating the superblock size ...
Definition: aomdx.h:418
Codec control function to enable the ext-tile software debug and testing code in the decoder...
Definition: aomdx.h:332
enum aom_superblock_size aom_superblock_size_t
Superblock size selection.
Codec control function to enable the row based multi-threading of decoding, unsigned int parameter...
Definition: aomdx.h:340
Codec control function to check the presence of altref frames.
Definition: aomdx.h:395
Codec control function to set an aom_inspect_cb callback that is invoked each time a frame is decoded...
Definition: aomdx.h:375
#define AOM_MAX_TILE_ROWS
Max number of tile rows.
Definition: aomdx.h:115
size_t extra_size
Definition: aomdx.h:97
int tile_columns
Definition: aomdx.h:125
void * inspect_ctx
Definition: aomdx.h:69
Codec control function to get screen content tools information. It returns a struct of type aom_scree...
Definition: aomdx.h:407
#define AOM_MAX_TILE_COLS
Max number of tile columns.
Definition: aomdx.h:107
int force_integer_mv
Definition: aomdx.h:172
Codec control function to get last decoded frame quantizer, int* parameter.
Definition: aomdx.h:291
Codec control function to set the byte alignment of the planes in the reference buffers, int parameter.
Definition: aomdx.h:251
struct aom_tile_info aom_tile_info
Structure to hold information about tiles in a frame.
int tile_heights[64]
Definition: aomdx.h:131
struct aom_s_frame_info aom_s_frame_info
Structure to hold information about S_FRAME.
Structure to hold information about S_FRAME.
Definition: aomdx.h:153
Structure to hold inspection callback and context.
Definition: aomdx.h:64
Codec control function to set the range of tile decoding, int parameter.
Definition: aomdx.h:301
size_t coded_tile_data_size
Definition: aomdx.h:93
Start point of control IDs for aom_dec_control_id. Any new common control IDs should be added above...
Definition: aom.h:81
Codec control function to set the tile coding mode, int parameter.
Definition: aomdx.h:309
aom_image_t * img
Definition: aomdx.h:181
const void * coded_tile_data
Definition: aomdx.h:95
Codec control function to indicate whether to output one frame per temporal unit (the default)...
Definition: aomdx.h:367
Codec control function to get info on which reference frames were used by the last decode...
Definition: aomdx.h:209
int num
Definition: aomdx.h:183
Structure to hold the external reference frame pointer.
Definition: aomdx.h:179
aom_dec_control_id
AOM decoder control functions.
Definition: aomdx.h:195
Codec control function to get the bit depth of the stream, unsigned int* parameter.
Definition: aomdx.h:228
int tile_widths[64]
Definition: aomdx.h:129
int is_reduced_still_picture_hdr
Definition: aomdx.h:145
Codec control function to set the skip loop filter flag, int parameter.
Definition: aomdx.h:272
int is_s_frame
Definition: aomdx.h:155
Structure to collect a buffer index when inspecting.
Definition: aomdx.h:78
Structure to hold information about tiles in a frame.
Definition: aomdx.h:123
Structure to hold information about still image coding.
Definition: aomdx.h:141
int is_still_picture
Definition: aomdx.h:143
struct aom_still_picture_info aom_still_picture_info
Structure to hold information about still image coding.
Codec control function to get the current frame's intended display dimensions (as specified in the wr...
Definition: aomdx.h:223
struct av1_ext_ref_frame av1_ext_ref_frame_t
Structure to hold the external reference frame pointer.
struct Accounting Accounting
Definition: aomdx.h:50
Codec control function to retrieve a pointer to the Accounting struct, takes Accounting** as paramete...
Definition: aomdx.h:284