gpt4 book ai didi

c++ - ffmpeg sws_scale 上的段错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:23:40 25 4
gpt4 key购买 nike

我正在尝试使用 ffmpeg 的 sws_scale 函数将 AVFrame 从 JPEG(YUV 像素格式)转换为 RGB24 格式。我按如下方式设置 SwsContext:

struct SwsContext *sws_ctx = NULL;
int frameFinished;
AVPacket packet;
// initialize SWS context for software scaling
sws_ctx = sws_getContext(pCodecCtx->width,
pCodecCtx->height,
pCodecCtx->pix_fmt,
pCodecCtx->width,
pCodecCtx->height,
AV_PIX_FMT_RGB24,
SWS_BICUBIC,
NULL, NULL, NULL
);

然后,我使用以下命令执行 sws_scale

sws_scale(sws_ctx,
(uint8_t const * const *)pFrame->data,
pFrame->linesize,
0,
pCodecCtx->height,
pFrameRGB->data,
pFrameRGB->linesize);

这给了我一个段错误,虽然我不确定为什么。我已经尝试通过打印、高度和线宽来检查这些值,并且所有内容似乎都具有有效值。

最佳答案

对于以后遇到此问题的任何人,我的问题是我没有正确初始化 pFramepFrameRGB。首先必须使用 av_frame_alloc() 为帧结构分配内存,然后必须使用 av_image_alloc() 分配数据缓冲区。

关于c++ - ffmpeg sws_scale 上的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175124/

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