gpt4 book ai didi

ios - x264 编码使用 x264_picture_clean 崩溃

转载 作者:行者123 更新时间:2023-12-04 23:03:06 24 4
gpt4 key购买 nike

当我使用 iphone 编码 CMSampleBufferRef To H264 时,它在 x264_picture_clean 处崩溃我不知道怎么处理

enter image description here

x264_picture_t* pPic_in; 

这是我关于 pPic_in 的初始化
pPic_in = (x264_picture_t*)malloc(sizeof(x264_picture_t));
pPic_out = (x264_picture_t*)malloc(sizeof(x264_picture_t));

x264_picture_init(pPic_out);

x264_picture_init(pPic_in);
x264_picture_alloc(pPic_in, csp, pParam->i_width, pParam->i_height);

pPic_in->img.i_stride[0] = width;
pPic_in->img.i_stride[1] = width / 2;
pPic_in->img.i_stride[2] = width / 2;
pPic_in->img.i_plane = 3;

我在这里设置数据
    picture_buf = yuv420_data;
pPic_in->img.plane[0] = picture_buf;
pPic_in->img.plane[1] = picture_buf + y_size;
pPic_in->img.plane[2] = picture_buf + y_size*5/4;

它看起来不错,当我在我的 iphone 上运行它时,但有时它会崩溃
x264_picture_clean

这是崩溃时有关 pPic_in 的更多详细信息
enter image description here

非常感谢

最佳答案

我怀疑这个错误的发生是因为 x264_picture_clean试图释放分配给 img.plane[0] 的内存:

x264_free( pic->img.plane[0] );

(见 x264/common.c )

但是 img.plane[0]现在指向 yuv420_data , 而不是 x264_picture_alloc 内部分配的内存.

由于 x264_picture_clean基本上只是释放 img.plane[0] 指向的分配内存并重新初始化 pPic_in ,您可能可以跳过调用 x264_picture_clean没有内存泄漏。 (如果 yuv420_data 是动态分配的,您仍然需要在别处释放它)。

顺便说一句, x264_picture_initx264_picture_alloc 内调用.

关于ios - x264 编码使用 x264_picture_clean 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43798255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com