Dav*_*vid 3 c++ opencv segmentation-fault
我正在使用 Opencv,试图复制一些从网络摄像头捕获的帧。复制框架时__memcpy_ssse3(),第 160 行或 1675 行出现分段错误。
gdb 显示:
0 __memmove_ssse3 () 在 ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S:1675
1 0xb75ec6d0 在 cv::Mat::copyTo (this=0xbfca3450, _dst=...) 在 /home/david/opencv/OpenCV-2.4.2/modules/core/src/copy.cpp:181
2 0xb75984f6 在 cv::Mat::Mat (this=0xbfca358c, img=0xb1300c90, copyData=true) 在 /home/david/opencv/OpenCV-2.4.2/modules/core/src/matrix.cpp:510
调用它的函数是cv::MAt::Mat(IplImg *I, bool copy)。
当我打开 USB 摄像头或文件时,一切都很完美,但是当尝试通过 IP 从网络摄像头读取视频流时,它会在一分钟后崩溃。
我尝试在不支持 ssse3 的情况下构建 ffmpeg 和 opencv,并且我的应用程序也使用-mno-seee3标志编译。
Opencv版本是2.4.2,但是2.3.1也存在这个问题。ffmpeg 版本是 11.1,8.X 也有同样的问题。gcc 版本是 4.6.3,Ubuntu 的分支。处理器是Intel core2。
任何提示?
SSE 操作中的分段错误是由于内存未对齐造成的。尝试通过-mpreferred-stack-boundary=4 -mstackrealign看看是否可以清除它。如果是,那么您需要检查您的堆栈以找出哪个代码未对齐它。
| 归档时间: |
|
| 查看次数: |
11715 次 |
| 最近记录: |