vpx_encoder.h File Reference
Common Algorithm Interface » Encoder Algorithm Interface

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

`#include "./vpx_codec.h"`
`#include "./vpx_ext_ratectrl.h"`
`#include "./vpx_tpl.h"`

Go to the source code of this file.

## Data Structures

struct | vpx_fixed_buf
| Generic fixed size buffer structure. More...
struct | vpx_codec_cx_pkt
| Encoder output packet. More...
struct | vpx_codec_enc_output_cx_cb_pair
| Callback function pointer / user data pair storage. More...
struct | vpx_rational
| Rational Number. More...
struct | vpx_codec_enc_cfg
| Encoder configuration structure. More...
struct | vpx_svc_parameters
| vp9 svc extra configure parameters More...

## Macros

#define | VPX_TS_MAX_PERIODICITY 16
#define | VPX_TS_MAX_LAYERS 5
#define | VPX_MAX_LAYERS 12
#define | VPX_SS_MAX_LAYERS 5
#define | VPX_SS_DEFAULT_LAYERS 1
#define | VPX_ENCODER_ABI_VERSION
| Current ABI version number.
#define | VPX_CODEC_CAP_PSNR 0x10000
| Encoder capabilities bitfield.
#define | VPX_CODEC_CAP_OUTPUT_PARTITION 0x20000
#define | VPX_CODEC_USE_PSNR 0x10000
| Initialization-time Feature Enabling.
#define | VPX_CODEC_USE_OUTPUT_PARTITION 0x20000
| Make the encoder output one partition at a time.
#define | VPX_CODEC_USE_HIGHBITDEPTH 0x40000
#define | VPX_FRAME_IS_KEY 0x1u
#define | VPX_FRAME_IS_DROPPABLE 0x2u
| frame can be dropped without affecting the stream (no future frame depends on this one)
#define | VPX_FRAME_IS_INVISIBLE 0x4u
| frame should be decoded but will not be shown
#define | VPX_FRAME_IS_FRAGMENT 0x8u
| this is a fragment of the encoded frame
#define | VPX_ERROR_RESILIENT_DEFAULT 0x1u
| Improve resiliency against losses of whole frames.
#define | VPX_ERROR_RESILIENT_PARTITIONS 0x2u
| 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 | VPX_EFLAG_FORCE_KF (1 << 0)
#define | vpx_codec_enc_init(ctx, iface, cfg, flags) vpx_codec_enc_init_ver(ctx, iface, cfg, flags, VPX_ENCODER_ABI_VERSION)
| Convenience macro for vpx_codec_enc_init_ver()
#define | vpx_codec_enc_init_multi(ctx, iface, cfg, num_enc, flags, dsf)
| Convenience macro for vpx_codec_enc_init_multi_ver()
#define | VPX_DL_REALTIME (1)
| deadline parameter analogous to VPx REALTIME mode.
#define | VPX_DL_GOOD_QUALITY (1000000)
| deadline parameter analogous to VPx GOOD QUALITY mode.
#define | VPX_DL_BEST_QUALITY (0)
| deadline parameter analogous to VPx BEST QUALITY mode.

## Typedefs

typedef struct vpx_fixed_buf | vpx_fixed_buf_t
| Generic fixed size buffer structure.
typedef int64_t | vpx_codec_pts_t
| Time Stamp Type.
typedef uint32_t | vpx_codec_frame_flags_t
| Compressed Frame Flags.
typedef uint32_t | vpx_codec_er_flags_t
| Error Resilient flags.
typedef struct vpx_codec_cx_pkt | vpx_codec_cx_pkt_t
| Encoder output packet.
typedef void(* | vpx_codec_enc_output_cx_pkt_cb_fn_t) (vpx_codec_cx_pkt_t *pkt, void *user_data)
| Encoder return output buffer callback.
typedef struct vpx_codec_enc_output_cx_cb_pair | vpx_codec_priv_output_cx_pkt_cb_pair_t
| Callback function pointer / user data pair storage.
typedef struct vpx_rational | vpx_rational_t
| Rational Number.
typedef enum vpx_enc_pass | vpx_enc_pass
| Multi-pass Encoding Pass.
typedef long | vpx_enc_frame_flags_t
| Encoded Frame Flags.
typedef struct vpx_codec_enc_cfg | vpx_codec_enc_cfg_t
| Encoder configuration structure.
typedef struct vpx_svc_parameters | vpx_svc_extra_cfg_t
| vp9 svc extra configure parameters

## Enumerations

enum | vpx_codec_cx_pkt_kind { VPX_CODEC_CX_FRAME_PKT , VPX_CODEC_STATS_PKT , VPX_CODEC_FPMB_STATS_PKT , VPX_CODEC_PSNR_PKT , VPX_CODEC_CUSTOM_PKT = 256 }
| Encoder output packet variants. More...
enum | vpx_enc_pass { VPX_RC_ONE_PASS , VPX_RC_FIRST_PASS , VPX_RC_LAST_PASS }
| Multi-pass Encoding Pass. More...
enum | vpx_rc_mode { VPX_VBR , VPX_CBR , VPX_CQ , VPX_Q }
| Rate control mode. More...
enum | vpx_kf_mode { VPX_KF_FIXED , VPX_KF_AUTO , VPX_KF_DISABLED = 0 }
| Keyframe placement mode. More...

## Functions

vpx_codec_err_t | vpx_codec_enc_init_ver (vpx_codec_ctx_t *ctx, vpx_codec_iface_t *iface, const vpx_codec_enc_cfg_t *cfg, vpx_codec_flags_t flags, int ver)
| Initialize an encoder instance.
vpx_codec_err_t | vpx_codec_enc_init_multi_ver (vpx_codec_ctx_t *ctx, vpx_codec_iface_t *iface, vpx_codec_enc_cfg_t *cfg, int num_enc, vpx_codec_flags_t flags, vpx_rational_t *dsf, int ver)
| Initialize multi-encoder instance.
vpx_codec_err_t | vpx_codec_enc_config_default (vpx_codec_iface_t *iface, vpx_codec_enc_cfg_t *cfg, unsigned int usage)
| Get a default configuration.
vpx_codec_err_t | vpx_codec_enc_config_set (vpx_codec_ctx_t *ctx, const vpx_codec_enc_cfg_t *cfg)
| Set or change configuration.
vpx_fixed_buf_t * | vpx_codec_get_global_headers (vpx_codec_ctx_t *ctx)
| Get global stream headers.
vpx_codec_err_t | vpx_codec_encode (vpx_codec_ctx_t *ctx, const vpx_image_t *img, vpx_codec_pts_t pts, unsigned long duration, vpx_enc_frame_flags_t flags, unsigned long deadline)
| Encode a frame.
vpx_codec_err_t | vpx_codec_set_cx_data_buf (vpx_codec_ctx_t *ctx, const vpx_fixed_buf_t *buf, unsigned int pad_before, unsigned int pad_after)
| Set compressed data output buffer.
const vpx_codec_cx_pkt_t * | vpx_codec_get_cx_data (vpx_codec_ctx_t *ctx, vpx_codec_iter_t *iter)
| Encoded data iterator.
const vpx_image_t * | vpx_codec_get_preview_frame (vpx_codec_ctx_t *ctx)
| Get Preview Frame.

## Detailed Description

Describes the encoder algorithm interface to applications.

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