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
25extern "C" {
26#endif
27
28/* Include controls common to both the encoder and decoder */
29#include "aom/aom.h"
30
45
50typedef struct Accounting Accounting;
51
52#ifndef AOM_INSPECTION_H_
55typedef void (*aom_inspect_cb)(void *decoder, void *ctx);
56
57#endif
58
71
78typedef struct {
80 const unsigned char *buf;
82 int idx;
86
99
107#define AOM_MAX_TILE_COLS 64
115#define AOM_MAX_TILE_ROWS 64
116
135
147
159
174
185
470
484#define AOM_CTRL_AOMD_GET_LAST_REF_UPDATES
485
487#define AOM_CTRL_AOMD_GET_FRAME_CORRUPTED
488
490#define AOM_CTRL_AOMD_GET_LAST_REF_USED
491
493#define AOM_CTRL_AV1D_GET_FRAME_SIZE
494
496#define AOM_CTRL_AV1D_GET_DISPLAY_SIZE
497
499#define AOM_CTRL_AV1D_GET_BIT_DEPTH
500
502#define AOM_CTRL_AV1D_GET_IMG_FORMAT
503
505#define AOM_CTRL_AV1D_GET_TILE_SIZE
506
508#define AOM_CTRL_AV1D_GET_TILE_COUNT
509
511#define AOM_CTRL_AV1_INVERT_TILE_DECODE_ORDER
512
514#define AOM_CTRL_AV1_SET_SKIP_LOOP_FILTER
515
517#define AOM_CTRL_AV1_GET_ACCOUNTING
518
520#define AOM_CTRL_AOMD_GET_LAST_QUANTIZER
521
523#define AOM_CTRL_AV1_SET_DECODE_TILE_ROW
524
525AOM_CTRL_USE_TYPE(AV1_SET_DECODE_TILE_COL, int)
526#define AOM_CTRL_AV1_SET_DECODE_TILE_COL
527
529#define AOM_CTRL_AV1_SET_TILE_MODE
530
532#define AOM_CTRL_AV1D_GET_FRAME_HEADER_INFO
533
535#define AOM_CTRL_AV1D_GET_TILE_DATA
536
538#define AOM_CTRL_AV1D_SET_EXT_REF_PTR
539
541#define AOM_CTRL_AV1D_EXT_TILE_DEBUG
542
544#define AOM_CTRL_AV1D_SET_ROW_MT
545
547#define AOM_CTRL_AV1D_SET_IS_ANNEXB
548
550#define AOM_CTRL_AV1D_SET_OPERATING_POINT
551
553#define AOM_CTRL_AV1D_SET_OUTPUT_ALL_LAYERS
554
556#define AOM_CTRL_AV1_SET_INSPECTION_CALLBACK
557
559#define AOM_CTRL_AV1D_SET_SKIP_FILM_GRAIN
560
562#define AOM_CTRL_AOMD_GET_FWD_KF_PRESENT
563
565#define AOM_CTRL_AOMD_GET_FRAME_FLAGS
566
568#define AOM_CTRL_AOMD_GET_ALTREF_PRESENT
569
571#define AOM_CTRL_AOMD_GET_TILE_INFO
572
575#define AOM_CTRL_AOMD_GET_SCREEN_CONTENT_TOOLS_INFO
576
578#define AOM_CTRL_AOMD_GET_STILL_PICTURE
579
581#define AOMD_CTRL_AOMD_GET_SB_SIZE
582
584#define AOMD_CTRL_AOMD_GET_SHOW_EXISTING_FRAME_FLAG
585
587#define AOMD_CTRL_AOMD_GET_S_FRAME_INFO
588
590#define AOM_CTRL_AOMD_GET_SHOW_FRAME_FLAG
591
593#define AOM_CTRL_AOMD_GET_BASE_Q_IDX
594
596#define AOM_CTRL_AOMD_GET_ORDER_HINT
597
598// The AOM_CTRL_USE_TYPE macro can't be used with AV1D_GET_MI_INFO because
599// AV1D_GET_MI_INFO takes more than one parameter.
600#define AOM_CTRL_AV1D_GET_MI_INFO
603#ifdef __cplusplus
604} // extern "C"
605#endif
606
607#endif // AOM_AOM_AOMDX_H_
Provides controls common to both the AOM encoder and decoder.
enum aom_img_fmt aom_img_fmt_t
List of supported image formats.
struct aom_screen_content_tools_info aom_screen_content_tools_info
Structure to hold information about screen content tools.
void(* aom_inspect_cb)(void *decoder, void *ctx)
Definition aomdx.h:55
aom_codec_iface_t aom_codec_av1_dx_algo
A single instance of the AV1 decoder.
aom_dec_control_id
AOM decoder control functions.
Definition aomdx.h:195
struct Accounting Accounting
Definition aomdx.h:50
aom_codec_iface_t * aom_codec_av1_dx(void)
The interface to the AV1 decoder.
struct aom_still_picture_info aom_still_picture_info
Structure to hold information about still image coding.
#define AOM_MAX_TILE_ROWS
Max number of tile rows.
Definition aomdx.h:115
#define AOM_MAX_TILE_COLS
Max number of tile columns.
Definition aomdx.h:107
struct aom_s_frame_info aom_s_frame_info
Structure to hold information about S_FRAME.
struct aom_tile_info aom_tile_info
Structure to hold information about tiles in a frame.
struct aom_inspect_init aom_inspect_init
Structure to hold inspection callback and context.
struct av1_ext_ref_frame av1_ext_ref_frame_t
Structure to hold the external reference frame pointer.
struct aom_tile_data aom_tile_data
Structure to hold a tile's start address and size in the bitstream.
@ AOMD_GET_LAST_REF_USED
Codec control function to get info on which reference frames were used by the last decode,...
Definition aomdx.h:209
@ AV1_SET_TILE_MODE
Codec control function to set the tile coding mode, unsigned int parameter.
Definition aomdx.h:316
@ AOMD_GET_FRAME_CORRUPTED
Codec control function to check if the indicated frame is corrupted, int* parameter.
Definition aomdx.h:204
@ AV1D_GET_FRAME_SIZE
Codec control function to get the dimensions that the current frame is decoded at,...
Definition aomdx.h:217
@ AV1D_SET_SKIP_FILM_GRAIN
Codec control function to set the skip film grain flag, int parameter.
Definition aomdx.h:390
@ AOMD_GET_TILE_INFO
Codec control function to get tile information of the previous frame decoded, aom_tile_info* paramete...
Definition aomdx.h:414
@ AV1D_SET_IS_ANNEXB
Codec control function to indicate whether bitstream is in Annex-B format, unsigned int parameter.
Definition aomdx.h:352
@ AV1D_GET_TILE_COUNT
Codec control function to get the tile count in a tile list, unsigned int* parameter.
Definition aomdx.h:248
@ AOMD_GET_BASE_Q_IDX
Codec control function to get the base q index of a frame, int* parameter.
Definition aomdx.h:455
@ AOMD_GET_SB_SIZE
Codec control function to get superblock size, aom_superblock_size_t* parameter.
Definition aomdx.h:436
@ AOMD_GET_SHOW_EXISTING_FRAME_FLAG
Codec control function to check if the previous frame decoded has show existing frame flag set,...
Definition aomdx.h:441
@ AOMD_GET_ORDER_HINT
Codec control function to get the order hint of a frame, unsigned int* parameter.
Definition aomdx.h:460
@ AOMD_GET_ALTREF_PRESENT
Codec control function to check the presence of altref frames, int* parameter.
Definition aomdx.h:407
@ AOMD_GET_SHOW_FRAME_FLAG
Codec control function to get the show frame flag, int* parameter.
Definition aomdx.h:450
@ AV1_SET_SKIP_LOOP_FILTER
Codec control function to set the skip loop filter flag, int parameter.
Definition aomdx.h:278
@ AV1D_SET_ROW_MT
Codec control function to enable the row based multi-threading of decoding, unsigned int parameter.
Definition aomdx.h:347
@ AV1D_GET_TILE_SIZE
Codec control function to get the width and height (in pixels) of the tiles in a tile list,...
Definition aomdx.h:243
@ AV1D_GET_DISPLAY_SIZE
Codec control function to get the current frame's intended display dimensions (as specified in the wr...
Definition aomdx.h:225
@ AV1D_SET_OUTPUT_ALL_LAYERS
Codec control function to indicate whether to output one frame per temporal unit (the default),...
Definition aomdx.h:374
@ AOMD_GET_SCREEN_CONTENT_TOOLS_INFO
Codec control function to get screen content tools information, aom_screen_content_tools_info* parame...
Definition aomdx.h:423
@ AV1D_SET_OPERATING_POINT
Codec control function to indicate which operating point to use, int parameter.
Definition aomdx.h:362
@ AOMD_GET_LAST_QUANTIZER
Codec control function to get last decoded frame quantizer, int* parameter.
Definition aomdx.h:297
@ AV1D_GET_MI_INFO
Codec control function to get the info of a 4x4 block. Parameters: int mi_row, int mi_col,...
Definition aomdx.h:468
@ AOMD_GET_FRAME_FLAGS
Codec control function to get the frame flags of the previous frame decoded, int* parameter.
Definition aomdx.h:402
@ AV1_GET_ACCOUNTING
Codec control function to retrieve a pointer to the Accounting struct, takes Accounting** as paramete...
Definition aomdx.h:290
@ AOMD_GET_LAST_REF_UPDATES
Codec control function to get info on which reference frames were updated by the last decode,...
Definition aomdx.h:199
@ AV1_SET_BYTE_ALIGNMENT
Codec control function to set the byte alignment of the planes in the reference buffers,...
Definition aomdx.h:257
@ AV1_SET_DECODE_TILE_ROW
Codec control function to set the range of tile decoding, int parameter.
Definition aomdx.h:307
@ AV1_INVERT_TILE_DECODE_ORDER
Codec control function to invert the decoding order to from right to left, int parameter.
Definition aomdx.h:269
@ AOMD_GET_STILL_PICTURE
Codec control function to get the still picture coding information, aom_still_picture_info* parameter...
Definition aomdx.h:428
@ AV1D_GET_IMG_FORMAT
Codec control function to get the image format of the stream, aom_img_fmt_t* parameter.
Definition aomdx.h:235
@ AV1D_GET_BIT_DEPTH
Codec control function to get the bit depth of the stream, unsigned int* parameter.
Definition aomdx.h:230
@ AOMD_GET_FWD_KF_PRESENT
Codec control function to check the presence of forward key frames, int* parameter.
Definition aomdx.h:395
@ AOMD_GET_S_FRAME_INFO
Codec control function to get the S_FRAME coding information, aom_s_frame_info* parameter.
Definition aomdx.h:446
@ AV1D_GET_TILE_DATA
Codec control function to get the start address and size of a tile in the coded bitstream,...
Definition aomdx.h:326
@ AV1D_SET_EXT_REF_PTR
Codec control function to set the external references' pointers in the decoder, av1_ext_ref_frame_t* ...
Definition aomdx.h:334
@ AV1_SET_INSPECTION_CALLBACK
Codec control function to set an aom_inspect_cb callback that is invoked each time a frame is decoded...
Definition aomdx.h:382
@ AV1D_GET_FRAME_HEADER_INFO
Codec control function to get the frame header information of an encoded frame, aom_tile_data* parame...
Definition aomdx.h:321
@ AV1D_EXT_TILE_DEBUG
Codec control function to enable the ext-tile software debug and testing code in the decoder,...
Definition aomdx.h:339
@ AOM_DECODER_CTRL_ID_START
Start point of control IDs for aom_dec_control_id. Any new common control IDs should be added above.
Definition aom.h:81
#define AOM_CTRL_USE_TYPE(id, typ)
Creates type checking mechanisms for aom_codec_control.
Definition aom_codec.h:551
const struct aom_codec_iface aom_codec_iface_t
Codec interface structure.
Definition aom_codec.h:271
enum aom_superblock_size aom_superblock_size_t
Superblock size selection.
Structure to collect a buffer index when inspecting.
Definition aomdx.h:78
const unsigned char * buf
Definition aomdx.h:80
int show_existing
Definition aomdx.h:84
int idx
Definition aomdx.h:82
Image Descriptor.
Definition aom_image.h:182
Structure to hold inspection callback and context.
Definition aomdx.h:64
void * inspect_ctx
Definition aomdx.h:69
aom_inspect_cb inspect_cb
Definition aomdx.h:66
Structure to hold information about S_FRAME.
Definition aomdx.h:153
int is_s_frame_at_altref
Definition aomdx.h:157
int is_s_frame
Definition aomdx.h:155
Structure to hold information about screen content tools.
Definition aomdx.h:166
int force_integer_mv
Definition aomdx.h:172
int allow_intrabc
Definition aomdx.h:170
int allow_screen_content_tools
Definition aomdx.h:168
Structure to hold information about still image coding.
Definition aomdx.h:141
int is_reduced_still_picture_hdr
Definition aomdx.h:145
int is_still_picture
Definition aomdx.h:143
Structure to hold a tile's start address and size in the bitstream.
Definition aomdx.h:91
const void * coded_tile_data
Definition aomdx.h:95
size_t coded_tile_data_size
Definition aomdx.h:93
size_t extra_size
Definition aomdx.h:97
Structure to hold information about tiles in a frame.
Definition aomdx.h:123
int tile_heights[64]
Definition aomdx.h:131
int tile_rows
Definition aomdx.h:127
int tile_columns
Definition aomdx.h:125
int num_tile_groups
Definition aomdx.h:133
int tile_widths[64]
Definition aomdx.h:129
Structure to hold the external reference frame pointer.
Definition aomdx.h:179
int num
Definition aomdx.h:183
aom_image_t * img
Definition aomdx.h:181