AOMedia Codec SDK
Data Structures | Macros | Typedefs | Enumerations | Functions
aom_codec.h File Reference

Describes the codec algorithm interface to applications. More...

#include "aom/aom_image.h"
#include "aom/aom_integer.h"

Go to the source code of this file.

Data Structures

struct  aom_codec_ctx
 Codec context structure. More...
 
struct  cfg_options
 Config Options. More...
 

Macros

#define AOM_DEPRECATED
 Decorator indicating a function is deprecated.
 
#define AOM_DECLSPEC_DEPRECATED
 Decorator indicating a function is deprecated.
More...
 
#define AOM_UNUSED
 Decorator indicating a function is potentially unused.
 
#define ATTRIBUTE_PACKED
 Decorator indicating that given struct/union/enum is packed.
 
#define AOM_CODEC_ABI_VERSION
 Current ABI version number.
 
#define AOM_CODEC_CAP_DECODER   0x1
 
#define AOM_CODEC_CAP_ENCODER   0x2
 
#define AOM_VERSION_MAJOR(v)   ((v >> 16) & 0xff)
 
#define AOM_VERSION_MINOR(v)   ((v >> 8) & 0xff)
 
#define AOM_VERSION_PATCH(v)   ((v >> 0) & 0xff)
 
#define aom_codec_version_major()   ((aom_codec_version() >> 16) & 0xff)
 Return the version major number.
 
#define aom_codec_version_minor()   ((aom_codec_version() >> 8) & 0xff)
 Return the version minor number.
 
#define aom_codec_version_patch()   ((aom_codec_version() >> 0) & 0xff)
 Return the version patch number.
 
#define aom_codec_control(ctx, id, data)
 aom_codec_control wrapper macro More...
 
#define AOM_CTRL_USE_TYPE(id, typ)
 aom_codec_control type definition macro More...
 
#define AOM_CTRL_USE_TYPE_DEPRECATED(id, typ)
 aom_codec_control deprecated type definition macro More...
 
#define AOM_CTRL_VOID(id)
 aom_codec_control void type definition macro More...
 

Typedefs

typedef long aom_codec_caps_t
 Codec capabilities bitfield. More...
 
typedef long aom_codec_flags_t
 Initialization-time Feature Enabling. More...
 
typedef const struct aom_codec_iface aom_codec_iface_t
 Codec interface structure. More...
 
typedef struct aom_codec_priv aom_codec_priv_t
 Codec private data structure. More...
 
typedef const void * aom_codec_iter_t
 Iterator. More...
 
typedef struct aom_codec_ctx aom_codec_ctx_t
 Codec context structure. More...
 
typedef enum aom_bit_depth aom_bit_depth_t
 Bit depth for codec

  • This enumeration determines the bit depth of the codec.

 
typedef enum aom_superblock_size aom_superblock_size_t
 Superblock size selection. More...
 
typedef struct cfg_options cfg_options_t
 Config Options. More...
 

Enumerations

enum  aom_codec_err_t {
  AOM_CODEC_OK, AOM_CODEC_ERROR, AOM_CODEC_MEM_ERROR, AOM_CODEC_ABI_MISMATCH,
  AOM_CODEC_INCAPABLE, AOM_CODEC_UNSUP_BITSTREAM, AOM_CODEC_UNSUP_FEATURE, AOM_CODEC_CORRUPT_FRAME,
  AOM_CODEC_INVALID_PARAM, AOM_CODEC_LIST_END
}
 Algorithm return codes. More...
 
enum  aom_bit_depth { AOM_BITS_8 = 8, AOM_BITS_10 = 10, AOM_BITS_12 = 12 }
 Bit depth for codec

  • This enumeration determines the bit depth of the codec.
More...
 
enum  aom_superblock_size { AOM_SUPERBLOCK_SIZE_64X64, AOM_SUPERBLOCK_SIZE_128X128, AOM_SUPERBLOCK_SIZE_DYNAMIC }
 Superblock size selection. More...
 
enum  OBU_TYPE {
  OBU_SEQUENCE_HEADER = 1, OBU_TEMPORAL_DELIMITER = 2, OBU_FRAME_HEADER = 3, OBU_TILE_GROUP = 4,
  OBU_METADATA = 5, OBU_FRAME = 6, OBU_REDUNDANT_FRAME_HEADER = 7, OBU_TILE_LIST = 8,
  OBU_PADDING = 15
}
 OBU types.
 
enum  OBU_METADATA_TYPE {
  OBU_METADATA_TYPE_AOM_RESERVED_0 = 0, OBU_METADATA_TYPE_HDR_CLL = 1, OBU_METADATA_TYPE_HDR_MDCV = 2, OBU_METADATA_TYPE_SCALABILITY = 3,
  OBU_METADATA_TYPE_ITUT_T35 = 4, OBU_METADATA_TYPE_TIMECODE = 5
}
 OBU metadata types.
 

Functions

int aom_codec_version (void)
 Return the version information (as an integer) More...
 
const char * aom_codec_version_str (void)
 Return the version information (as a string) More...
 
const char * aom_codec_version_extra_str (void)
 Return the version information (as a string) More...
 
const char * aom_codec_build_config (void)
 Return the build configuration. More...
 
const char * aom_codec_iface_name (aom_codec_iface_t *iface)
 Return the name for a given interface. More...
 
const char * aom_codec_err_to_string (aom_codec_err_t err)
 Convert error number to printable string. More...
 
const char * aom_codec_error (aom_codec_ctx_t *ctx)
 Retrieve error synopsis for codec context. More...
 
const char * aom_codec_error_detail (aom_codec_ctx_t *ctx)
 Retrieve detailed error information for codec context. More...
 
aom_codec_err_t aom_codec_destroy (aom_codec_ctx_t *ctx)
 Destroy a codec instance. More...
 
aom_codec_caps_t aom_codec_get_caps (aom_codec_iface_t *iface)
 Get the capabilities of an algorithm. More...
 
aom_codec_err_t aom_codec_control_ (aom_codec_ctx_t *ctx, int ctrl_id,...)
 Control algorithm. More...
 
const char * aom_obu_type_to_string (OBU_TYPE type)
 Returns string representation of OBU_TYPE. More...
 

Detailed Description

Describes the codec algorithm interface to applications.

This file describes the interface between an application and a video codec algorithm.

An application instantiates a specific codec instance by using aom_codec_init() and a pointer to the algorithm's interface structure:

    my_app.c:
      extern aom_codec_iface_t my_codec;
      {
          aom_codec_ctx_t algo;
          res = aom_codec_init(&algo, &my_codec);
      }
    

Once initialized, the instance is manged using other functions from the aom_codec_* family.