AOMedia Codec SDK: External Frame Buffer Functions

AOMedia Codec SDK

Functions
External Frame Buffer Functions
Common Algorithm Interface » Decoder Algorithm Interface

## Functions
aom_codec_err_t | aom_codec_set_frame_buffer_functions (aom_codec_ctx_t *ctx, aom_get_frame_buffer_cb_fn_t cb_get, aom_release_frame_buffer_cb_fn_t cb_release, void *cb_priv)
| Pass in external frame buffers for the decoder to use. More...

## Detailed Description

The following function is required to be implemented for all decoders that advertise the AOM_CODEC_CAP_EXTERNAL_FRAME_BUFFER capability. Calling this function for codecs that don't advertise this capability will result in an error code being returned, usually AOM_CODEC_INCAPABLE.

## Function Documentation

## ◆ aom_codec_set_frame_buffer_functions()

aom_codec_err_t aom_codec_set_frame_buffer_functions | ( | aom_codec_ctx_t * | ctx,
|  | aom_get_frame_buffer_cb_fn_t | cb_get,
|  | aom_release_frame_buffer_cb_fn_t | cb_release,
|  | void * | cb_priv
| ) |  |

Pass in external frame buffers for the decoder to use.

Registers functions to be called when libaom needs a frame buffer to decode the current frame and a function to be called when libaom does not internally reference the frame buffer. This set function must be called before the first call to decode or libaom will assume the default behavior of allocating frame buffers internally.

Parameters

  [in] | ctx | Pointer to this instance's context
  [in] | cb_get | Pointer to the get callback function
  [in] | cb_release | Pointer to the release callback function
  [in] | cb_priv | Callback's private data

Return values

  AOM_CODEC_OK | External frame buffers will be used by libaom.
  AOM_CODEC_INVALID_PARAM | One or more of the callbacks were NULL.
  AOM_CODEC_ERROR | Decoder context not initialized.
  AOM_CODEC_INCAPABLE | Algorithm not capable of using external frame buffers.

Note
  When decoding AV1, the application may be required to pass in at least AOM_MAXIMUM_WORK_BUFFERS external frame buffers.