FFmpeg函数记录2

1.av_image_alloc

指定一张图片的大小(宽w、高h),像素格式(pix_fmt),填补相应的指针和线宽.

int av_image_alloc(uint8_t *pointers[4], int linesizes[4], int w, int h, enum AVPixelFormat pix_fmt, int align);

例子:

AVFrame *frameVideoOut = av_frame_alloc();
if (frameVideoOut)
{
frameVideoOut->format = AV_PIX_FMT_BGR24;
frameVideoOut->width = videoStream->codec->width;
frameVideoOut->height = videoStream->codec->height;
//指定一张图片的大小(宽w、高h),像素格式(pix_fmt),填补相应的指针和线宽.
if (av_image_alloc(frameVideoOut->data, frameVideoOut->linesize, frameVideoOut->width, frameVideoOut->height, AV_PIX_FMT_BGR24, 16) < 0)

{//失败

                        }

                    }

        用完释放:

         if (frameVideoOut)
{
if (frameVideoOut->data != NULL)
{
//释放内存之后将目标指针设置为NULL
av_freep(&frameVideoOut->data[0]);
av_freep(&frameVideoOut->data[1]);
av_freep(&frameVideoOut->data[2]);
}
av_frame_free(&frameVideoOut);

}

2.av_freep

原型:void av_freep(void *ptr);

功能释放av_malloc()或 av_realloc()等家族创建的空间并置为NULL。

猜你喜欢

转载自blog.csdn.net/xionglifei2014/article/details/80281852