----------八百里加急。。。求高人解答-----------

生活简单到无聊 2010-12-23 06:03:11
SwsContext *pSwsCtx = NULL;
int dst_width = src_width;
int dst_height = src_height;

pSwsCtx = sws_getContext(352, 288, PIX_FMT_RGB24,
352, 288, PIX_FMT_YUV420P,
SWS_BICUBIC, NULL, NULL, NULL);
if(!pSwsCtx)
return -1;

if(sws_scale(pSwsCtx, src->data, src->linesize,0, src_height, dst->data, dst->linesize)<= 0)
return -1;

return 0;



为什么到sws_scale会发生中断错误:0xC0000005: 读取位置 0x01b74000 时发生访问冲突
...全文
222 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodluckgg 2011-07-01
  • 打赏
  • 举报
回复
我的问题更奇怪,在SP3的机器上写的程序也跑的好好的,要在笔记本上测试结果就在sws_scale上出错!
笔记本是SP2的,试过关闭SSSE3,MMX2重编译库后还是要错,CPU分别是I5,T7600,不知道怎么弄了!
错误提示是内存不能为"written".
而且,只要在设置CONTEXT的时候不缩放,也就是输出的图像大小不变的话,是不会错的。
可愁死我了。
kondong 2010-12-27
  • 打赏
  • 举报
回复
这两个参数没有用到,是352, 288吗?
int dst_width = src_width;
int dst_height = src_height;
AudioAEC 2010-12-26
  • 打赏
  • 举报
回复
应该是没有分配好相关的内存。
  • 打赏
  • 举报
回复
根本不能执行啊。。。运行到这就出错。。。
zoulie 2010-12-23
  • 打赏
  • 举报
回复
你判断下函数的返回正确否?
  • 打赏
  • 举报
回复
没人给力么?
  • 打赏
  • 举报
回复
哎。。郁闷死了。。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oexpress 的回复:]
sws_scale函数的参数不对,有可能是DSTbuffer的太小了,不能存下SCALE后的数据
[/Quote]
但是dst中的buffer不是由我负责分配的。。是由库函数负责的呀。。。怎么会出现这种情况呢?

AVFrame *dst;
dst = avcodec_alloc_frame();

所以我觉得参数应该没问题。。
CyberLogix 2010-12-23
  • 打赏
  • 举报
回复
sws_scale函数的参数不对,有可能是DSTbuffer的太小了,不能存下SCALE后的数据
dengzikun 2010-12-23
  • 打赏
  • 举报
回复
应该是参数问题导致内存访问越界。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧