int avpicture_alloc(AVPicture *picture,
enum PixelFormat pix_fmt, int width, int height)
{
- int size;
- void *ptr;
-
- size = avpicture_fill(picture, NULL, pix_fmt, width, height);
- if(size<0)
- goto fail;
- ptr = av_malloc(size);
- if (!ptr)
- goto fail;
- avpicture_fill(picture, ptr, pix_fmt, width, height);
- if(picture->data[1] && !picture->data[2])
- ff_set_systematic_pal2((uint32_t*)picture->data[1], pix_fmt);
+ int ret;
+
+ if ((ret = av_image_alloc(picture->data, picture->linesize, width, height, pix_fmt, 1)) < 0) {
+ memset(picture, 0, sizeof(AVPicture));
+ return ret;
+ }
return 0;
- fail:
- memset(picture, 0, sizeof(AVPicture));
- return -1;
}
void avpicture_free(AVPicture *picture)