| /* |
| * Copyright (c) 2019, Alliance for Open Media. All rights reserved |
| * |
| * This source code is subject to the terms of the BSD 2 Clause License and |
| * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License |
| * was not distributed with this source code in the LICENSE file, you can |
| * obtain it at www.aomedia.org/license/software. If the Alliance for Open |
| * Media Patent License 1.0 was not distributed with this source code in the |
| * PATENTS file, you can obtain it at www.aomedia.org/license/patent. |
| */ |
| |
| /*!\file |
| * \brief Describes the internal functions associated with the aom image |
| * descriptor. |
| * |
| */ |
| #ifndef AOM_AOM_INTERNAL_AOM_IMAGE_INTERNAL_H_ |
| #define AOM_AOM_INTERNAL_AOM_IMAGE_INTERNAL_H_ |
| |
| #include "aom/aom_image.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef void *(*aom_alloc_img_data_cb_fn_t)(void *priv, size_t size); |
| |
| /*!\brief Open a descriptor, allocating storage for the underlying image by |
| * using the provided callback function. |
| * |
| * Returns a descriptor for storing an image of the given format. The storage |
| * for the image is allocated by using the provided callback function. Unlike |
| * aom_img_alloc(), the returned descriptor does not own the storage for the |
| * image. The caller is responsible for freeing the storage for the image. |
| * |
| * Note: If the callback function is invoked and succeeds, |
| * aom_img_alloc_with_cb() is guaranteed to succeed. Therefore, if |
| * aom_img_alloc_with_cb() fails, the caller is assured that no storage was |
| * allocated. |
| * |
| * \param[in] img Pointer to storage for descriptor. If this parameter |
| * is NULL, the storage for the descriptor will be |
| * allocated on the heap. |
| * \param[in] fmt Format for the image |
| * \param[in] d_w Width of the image |
| * \param[in] d_h Height of the image |
| * \param[in] align Alignment, in bytes, of the image buffer and |
| * each row in the image (stride). |
| * \param[in] alloc_cb Callback function used to allocate storage for the |
| * image. |
| * \param[in] cb_priv The first argument ('priv') for the callback |
| * function. |
| * |
| * \return Returns a pointer to the initialized image descriptor. If the img |
| * parameter is non-null, the value of the img parameter will be |
| * returned. |
| */ |
| aom_image_t *aom_img_alloc_with_cb(aom_image_t *img, aom_img_fmt_t fmt, |
| unsigned int d_w, unsigned int d_h, |
| unsigned int align, |
| aom_alloc_img_data_cb_fn_t alloc_cb, |
| void *cb_priv); |
| |
| #ifdef __cplusplus |
| } // extern "C" |
| #endif |
| |
| #endif // AOM_AOM_INTERNAL_AOM_IMAGE_INTERNAL_H_ |