diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 99cd1d1381..e0904ccf0d 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1524,6 +1524,20 @@ void img_resample(ImgReSampleContext *s, void img_resample_close(ImgReSampleContext *s); +/** + * Allocate memory for a picture. Call avpicture_free to free it. + * + * @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 0 if successful, -1 if not. + */ +int avpicture_alloc(AVPicture *picture, int pix_fmt, int width, int height); + +/* Free a picture previously allocated by avpicture_alloc. */ +void avpicture_free(AVPicture *picture); + int avpicture_fill(AVPicture *picture, uint8_t *ptr, int pix_fmt, int width, int height); int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height, diff --git a/libavcodec/imgconvert.c b/libavcodec/imgconvert.c index 98ab7d53d6..f154e4437e 100644 --- a/libavcodec/imgconvert.c +++ b/libavcodec/imgconvert.c @@ -1613,7 +1613,7 @@ static ConvertEntry convert_table[PIX_FMT_NB][PIX_FMT_NB] = { }, }; -static int avpicture_alloc(AVPicture *picture, +int avpicture_alloc(AVPicture *picture, int pix_fmt, int width, int height) { unsigned int size; @@ -1630,7 +1630,7 @@ static int avpicture_alloc(AVPicture *picture, return -1; } -static void avpicture_free(AVPicture *picture) +void avpicture_free(AVPicture *picture) { av_free(picture->data[0]); }