AOMedia Codec SDK
Data Structures | Macros | Typedefs | Enumerations | Functions

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

#include "aom/aom_codec.h"

Go to the source code of this file.

Data Structures

struct  aom_fixed_buf
 Generic fixed size buffer structure. More...
 
struct  aom_codec_cx_pkt
 Encoder output packet. More...
 
struct  aom_rational
 Rational Number. More...
 
struct  aom_codec_enc_cfg
 Encoder configuration structure. More...
 

Macros

#define AOM_ENCODER_ABI_VERSION
 Current ABI version number.
 
#define AOM_CODEC_CAP_PSNR   0x10000
 Encoder capabilities bitfield. More...
 
#define AOM_CODEC_CAP_OUTPUT_PARTITION   0x20000
 
#define AOM_CODEC_CAP_HIGHBITDEPTH   0x40000
 
#define AOM_CODEC_USE_PSNR   0x10000
 Initialization-time Feature Enabling. More...
 
#define AOM_CODEC_USE_OUTPUT_PARTITION   0x20000
 Make the encoder output one partition at a time.
 
#define AOM_CODEC_USE_HIGHBITDEPTH   0x40000
 
#define AOM_FRAME_IS_KEY   0x1
 
#define AOM_FRAME_IS_DROPPABLE   0x2
 frame can be dropped without affecting the stream (no future frame depends on this one)
 
#define AOM_FRAME_IS_INVISIBLE   0x4
 frame should be decoded but will not be shown
 
#define AOM_FRAME_IS_FRAGMENT   0x8
 this is a fragment of the encoded frame
 
#define AOM_ERROR_RESILIENT_DEFAULT   0x1
 Improve resiliency against losses of whole frames.
 
#define AOM_ERROR_RESILIENT_PARTITIONS   0x2
 The frame partitions are independently decodable by the bool decoder, meaning that partitions can be decoded even though earlier partitions have been lost. Note that intra prediction is still done over the partition boundary.
 
#define AOM_EFLAG_FORCE_KF   (1 << 0)
 
#define MAX_TILE_WIDTHS   64
 Maximum number of tile widths in tile widths array. More...
 
#define MAX_TILE_HEIGHTS   64
 Maximum number of tile heights in tile heights array. More...
 
#define aom_codec_enc_init(ctx, iface, cfg, flags)   aom_codec_enc_init_ver(ctx, iface, cfg, flags, AOM_ENCODER_ABI_VERSION)
 Convenience macro for aom_codec_enc_init_ver() More...
 
#define aom_codec_enc_init_multi(ctx, iface, cfg, num_enc, flags, dsf)
 Convenience macro for aom_codec_enc_init_multi_ver() More...
 

Typedefs

typedef struct aom_fixed_buf aom_fixed_buf_t
 Generic fixed size buffer structure. More...
 
typedef int64_t aom_codec_pts_t
 Time Stamp Type. More...
 
typedef uint32_t aom_codec_frame_flags_t
 Compressed Frame Flags. More...
 
typedef uint32_t aom_codec_er_flags_t
 Error Resilient flags. More...
 
typedef struct aom_codec_cx_pkt aom_codec_cx_pkt_t
 Encoder output packet. More...
 
typedef struct aom_rational aom_rational_t
 Rational Number. More...
 
typedef long aom_enc_frame_flags_t
 Encoded Frame Flags. More...
 
typedef struct aom_codec_enc_cfg aom_codec_enc_cfg_t
 Encoder configuration structure. More...
 

Enumerations

enum  aom_codec_cx_pkt_kind {
  AOM_CODEC_CX_FRAME_PKT, AOM_CODEC_STATS_PKT, AOM_CODEC_FPMB_STATS_PKT, AOM_CODEC_PSNR_PKT,
  AOM_CODEC_CUSTOM_PKT = 256
}
 Encoder output packet variants. More...
 
enum  aom_enc_pass { AOM_RC_ONE_PASS, AOM_RC_FIRST_PASS, AOM_RC_LAST_PASS }
 Multi-pass Encoding Pass. More...
 
enum  aom_rc_mode { AOM_VBR, AOM_CBR, AOM_CQ, AOM_Q }
 Rate control mode. More...
 
enum  aom_kf_mode { AOM_KF_FIXED, AOM_KF_AUTO, AOM_KF_DISABLED = 0 }
 Keyframe placement mode. More...
 

Functions

aom_codec_err_t aom_codec_enc_init_ver (aom_codec_ctx_t *ctx, aom_codec_iface_t *iface, const aom_codec_enc_cfg_t *cfg, aom_codec_flags_t flags, int ver)
 Initialize an encoder instance. More...
 
aom_codec_err_t aom_codec_enc_init_multi_ver (aom_codec_ctx_t *ctx, aom_codec_iface_t *iface, aom_codec_enc_cfg_t *cfg, int num_enc, aom_codec_flags_t flags, aom_rational_t *dsf, int ver)
 Initialize multi-encoder instance. More...
 
aom_codec_err_t aom_codec_enc_config_default (aom_codec_iface_t *iface, aom_codec_enc_cfg_t *cfg, unsigned int reserved)
 Get a default configuration. More...
 
aom_codec_err_t aom_codec_enc_config_set (aom_codec_ctx_t *ctx, const aom_codec_enc_cfg_t *cfg)
 Set or change configuration. More...
 
aom_fixed_buf_taom_codec_get_global_headers (aom_codec_ctx_t *ctx)
 Get global stream headers. More...
 
aom_codec_err_t aom_codec_encode (aom_codec_ctx_t *ctx, const aom_image_t *img, aom_codec_pts_t pts, unsigned long duration, aom_enc_frame_flags_t flags)
 Encode a frame. More...
 
aom_codec_err_t aom_codec_set_cx_data_buf (aom_codec_ctx_t *ctx, const aom_fixed_buf_t *buf, unsigned int pad_before, unsigned int pad_after)
 Set compressed data output buffer. More...
 
const aom_codec_cx_pkt_taom_codec_get_cx_data (aom_codec_ctx_t *ctx, aom_codec_iter_t *iter)
 Encoded data iterator. More...
 
const aom_image_taom_codec_get_preview_frame (aom_codec_ctx_t *ctx)
 Get Preview Frame. More...
 

Detailed Description

Describes the encoder algorithm interface to applications.

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

Macro Definition Documentation

#define MAX_TILE_WIDTHS   64

Maximum number of tile widths in tile widths array.

This define gives the maximum number of elements in the tile_widths array.

#define MAX_TILE_HEIGHTS   64

Maximum number of tile heights in tile heights array.

This define gives the maximum number of elements in the tile_heights array.