93#ifndef AOM_AOM_AOM_CODEC_H_
94#define AOM_AOM_AOM_CODEC_H_
101#include "aom/aom_integer.h"
104#ifndef AOM_DEPRECATED
106#define AOM_DEPRECATED __attribute__((deprecated))
107#elif defined(_MSC_VER)
108#define AOM_DEPRECATED
110#define AOM_DEPRECATED
114#ifndef AOM_DECLSPEC_DEPRECATED
116#define AOM_DECLSPEC_DEPRECATED
117#elif defined(_MSC_VER)
119#define AOM_DECLSPEC_DEPRECATED __declspec(deprecated)
121#define AOM_DECLSPEC_DEPRECATED
127#elif defined(__GNUC__) || defined(__clang__)
128#define AOM_UNUSED __attribute__((unused))
134#ifndef ATTRIBUTE_PACKED
136#define ATTRIBUTE_PACKED __attribute__((packed))
137#elif defined(_MSC_VER)
138#define ATTRIBUTE_PACKED
140#define ATTRIBUTE_PACKED
152#define AOM_CODEC_ABI_VERSION (7 + AOM_IMAGE_ABI_VERSION)
218#define AOM_CODEC_CAP_DECODER 0x1
219#define AOM_CODEC_CAP_ENCODER 0x2
245#define AOM_CODEC_USE_EXPERIMENTAL 0x1
288#define AOM_FRAME_IS_KEY 0x1u
291#define AOM_FRAME_IS_DROPPABLE 0x2u
293#define AOM_FRAME_IS_INTRAONLY 0x10u
295#define AOM_FRAME_IS_SWITCH 0x20u
297#define AOM_FRAME_IS_ERROR_RESILIENT 0x40u
299#define AOM_FRAME_IS_DELAYED_RANDOM_ACCESS_POINT 0x80u
373#define aom_codec_version_major() ((aom_codec_version() >> 16) & 0xff)
376#define aom_codec_version_minor() ((aom_codec_version() >> 8) & 0xff)
379#define aom_codec_version_patch() ((aom_codec_version() >> 0) & 0xff)
542#define AOM_CODEC_CONTROL_TYPECHECKED(ctx, id, data) \
543 aom_codec_control_typechecked_##id(ctx, id, data)
551#define AOM_CTRL_USE_TYPE(id, typ) \
552 static aom_codec_err_t aom_codec_control_typechecked_##id( \
553 aom_codec_ctx_t *, int, typ) AOM_UNUSED; \
554 static aom_codec_err_t aom_codec_control_typechecked_##id( \
555 aom_codec_ctx_t *ctx, int ctrl, typ data) { \
556 return aom_codec_control(ctx, ctrl, data); \
558 typedef typ aom_codec_control_type_##id;
563 OBU_SEQUENCE_HEADER = 1,
564 OBU_TEMPORAL_DELIMITER = 2,
565 OBU_FRAME_HEADER = 3,
569 OBU_REDUNDANT_FRAME_HEADER = 7,
576 OBU_METADATA_TYPE_AOM_RESERVED_0 = 0,
577 OBU_METADATA_TYPE_HDR_CLL = 1,
578 OBU_METADATA_TYPE_HDR_MDCV = 2,
579 OBU_METADATA_TYPE_SCALABILITY = 3,
580 OBU_METADATA_TYPE_ITUT_T35 = 4,
581 OBU_METADATA_TYPE_TIMECODE = 5,
Describes the aom image descriptor and associated operations.
long aom_codec_caps_t
Codec capabilities bitfield.
Definition aom_codec.h:217
const char * aom_codec_iface_name(aom_codec_iface_t *iface)
Return the name for a given interface.
enum aom_bit_depth aom_bit_depth_t
Bit depth for codecThis enumeration determines the bit depth of the codec.
aom_codec_err_t aom_codec_control(aom_codec_ctx_t *ctx, int ctrl_id,...)
Algorithm Control.
long aom_codec_flags_t
Initialization-time Feature Enabling.
Definition aom_codec.h:232
struct aom_codec_ctx aom_codec_ctx_t
Codec context structure.
struct aom_codec_priv aom_codec_priv_t
Codec private data structure.
Definition aom_codec.h:278
const struct aom_codec_iface aom_codec_iface_t
Codec interface structure.
Definition aom_codec.h:271
const char * aom_codec_version_str(void)
Return the version information (as a string)
aom_codec_caps_t aom_codec_get_caps(aom_codec_iface_t *iface)
Get the capabilities of an algorithm.
aom_bit_depth
Bit depth for codecThis enumeration determines the bit depth of the codec.
Definition aom_codec.h:335
OBU_TYPE
OBU types.
Definition aom_codec.h:562
const char * aom_codec_build_config(void)
Return the build configuration.
aom_codec_err_t aom_codec_set_option(aom_codec_ctx_t *ctx, const char *name, const char *value)
Key & Value API.
const char * aom_codec_error(const aom_codec_ctx_t *ctx)
Retrieve error synopsis for codec context.
int64_t aom_codec_pts_t
Time Stamp Type.
Definition aom_codec.h:252
enum aom_superblock_size aom_superblock_size_t
Superblock size selection.
aom_codec_err_t aom_codec_destroy(aom_codec_ctx_t *ctx)
Destroy a codec instance.
const char * aom_codec_err_to_string(aom_codec_err_t err)
Convert error number to printable string.
aom_codec_err_t
Algorithm return codes.
Definition aom_codec.h:155
OBU_METADATA_TYPE
OBU metadata types.
Definition aom_codec.h:575
int aom_codec_version(void)
Return the version information (as an integer)
aom_superblock_size
Superblock size selection.
Definition aom_codec.h:347
#define ATTRIBUTE_PACKED
Decorator indicating that given struct/union/enum is packed.
Definition aom_codec.h:140
const char * aom_codec_error_detail(const aom_codec_ctx_t *ctx)
Retrieve detailed error information for codec context.
const void * aom_codec_iter_t
Iterator.
Definition aom_codec.h:305
const char * aom_obu_type_to_string(OBU_TYPE type)
Returns string representation of OBU_TYPE.
uint32_t aom_codec_frame_flags_t
Compressed Frame Flags.
Definition aom_codec.h:287
const char * aom_codec_version_extra_str(void)
Return the version information (as a string)
@ AOM_BITS_12
Definition aom_codec.h:338
@ AOM_BITS_8
Definition aom_codec.h:336
@ AOM_BITS_10
Definition aom_codec.h:337
@ AOM_CODEC_INVALID_PARAM
An application-supplied parameter is not valid.
Definition aom_codec.h:200
@ AOM_CODEC_ERROR
Unspecified error.
Definition aom_codec.h:160
@ AOM_CODEC_UNSUP_BITSTREAM
The given bitstream is not supported.
Definition aom_codec.h:176
@ AOM_CODEC_LIST_END
An iterator reached the end of list.
Definition aom_codec.h:205
@ AOM_CODEC_ABI_MISMATCH
ABI version mismatch.
Definition aom_codec.h:166
@ AOM_CODEC_CORRUPT_FRAME
The coded data for this stream is corrupt or incomplete.
Definition aom_codec.h:195
@ AOM_CODEC_UNSUP_FEATURE
Encoded bitstream uses an unsupported feature.
Definition aom_codec.h:185
@ AOM_CODEC_MEM_ERROR
Memory operation failed.
Definition aom_codec.h:163
@ AOM_CODEC_INCAPABLE
Algorithm does not have required capability.
Definition aom_codec.h:169
@ AOM_CODEC_OK
Operation completed without error.
Definition aom_codec.h:157
@ AOM_SUPERBLOCK_SIZE_128X128
Definition aom_codec.h:349
@ AOM_SUPERBLOCK_SIZE_64X64
Definition aom_codec.h:348
@ AOM_SUPERBLOCK_SIZE_DYNAMIC
Definition aom_codec.h:350
Codec context structure.
Definition aom_codec.h:315
const char * name
Definition aom_codec.h:316
aom_codec_iface_t * iface
Definition aom_codec.h:317
const struct aom_codec_dec_cfg * dec
Definition aom_codec.h:323
aom_codec_err_t err
Definition aom_codec.h:318
aom_codec_priv_t * priv
Definition aom_codec.h:328
union aom_codec_ctx::@0 config
aom_codec_flags_t init_flags
Definition aom_codec.h:320
const char * err_detail
Definition aom_codec.h:319
Initialization Configurations.
Definition aom_decoder.h:91
Encoder configuration structure.
Definition aom_encoder.h:387