From 4aa2874ab1d06072dc2c8576a907a51e056b5ccc Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Thu, 27 Jun 2013 13:02:02 +0200 Subject: [PATCH] lavc/avcodec.h: extend documentation for AVPicture API --- libavcodec/avcodec.h | 71 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 55 insertions(+), 16 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index f0ccfee940..71bb7d977f 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3092,11 +3092,13 @@ typedef struct AVHWAccel { */ /** - * four components are given, that's all. - * the last component is alpha + * Picture data structure. + * + * Up to four components can be stored into it, the last component is + * alpha. */ typedef struct AVPicture { - uint8_t *data[AV_NUM_DATA_POINTERS]; + uint8_t *data[AV_NUM_DATA_POINTERS]; ///< pointers to the image data planes int linesize[AV_NUM_DATA_POINTERS]; ///< number of bytes per line } AVPicture; @@ -4286,15 +4288,18 @@ void av_resample_close(struct AVResampleContext *c); */ /** - * Allocate memory for a picture. Call avpicture_free() to free it. + * Allocate memory for the pixels of a picture and setup the AVPicture + * fields for it. + * + * Call avpicture_free() to free it. * - * @see avpicture_fill() + * @param picture the picture structure to be filled in + * @param pix_fmt the pixel format of the picture + * @param width the width of the picture + * @param height the height of the picture + * @return zero if successful, a negative error code otherwise * - * @param picture the picture to be filled in - * @param pix_fmt the format of the picture - * @param width the width of the picture - * @param height the height of the picture - * @return zero if successful, a negative value if not + * @see av_image_alloc(), avpicture_fill() */ int avpicture_alloc(AVPicture *picture, enum AVPixelFormat pix_fmt, int width, int height); @@ -4308,8 +4313,25 @@ int avpicture_alloc(AVPicture *picture, enum AVPixelFormat pix_fmt, int width, i void avpicture_free(AVPicture *picture); /** - * Fill in the AVPicture fields, always assume a linesize alignment of - * 1. + * Setup the picture fields based on the specified image parameters + * and the provided image data buffer. + * + * The picture fields are filled in by using the image data buffer + * pointed to by ptr. + * + * If ptr is NULL, the function will fill only the picture linesize + * array and return the required size for the image buffer. + * + * To allocate an image buffer and fill the picture data in one call, + * use avpicture_alloc(). + * + * @param picture the picture to be filled in + * @param ptr buffer where the image data is stored, or NULL + * @param pix_fmt the pixel format of the image + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @return the size in bytes required for src, a negative error code + * in case of failure * * @see av_image_fill_arrays() */ @@ -4317,19 +4339,36 @@ int avpicture_fill(AVPicture *picture, const uint8_t *ptr, enum AVPixelFormat pix_fmt, int width, int height); /** - * Copy pixel data from an AVPicture into a buffer, always assume a - * linesize alignment of 1. + * Copy pixel data from an AVPicture into a buffer. + * + * avpicture_get_size() can be used to compute the required size for + * the buffer to fill. + * + * @param src source picture with filled data + * @param pix_fmt picture pixel format + * @param width picture width + * @param height picture height + * @param dest destination buffer + * @param dest_size destination buffer size in bytes + * @return the number of bytes written to dest, or a negative value + * (error code) on error, for example if the destination buffer is not + * big enough * * @see av_image_copy_to_buffer() */ -int avpicture_layout(const AVPicture* src, enum AVPixelFormat pix_fmt, +int avpicture_layout(const AVPicture *src, enum AVPixelFormat pix_fmt, int width, int height, unsigned char *dest, int dest_size); /** * Calculate the size in bytes that a picture of the given width and height * would occupy if stored in the given picture format. - * Always assume a linesize alignment of 1. + * + * @param pix_fmt picture pixel format + * @param width picture width + * @param height picture height + * @return the computed picture buffer size or a negative error code + * in case of error * * @see av_image_get_buffer_size(). */ -- 2.11.0