频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
mjpg-streamer学习笔记10-----自己写客服端_编译调试
2016-10-25 09:48:07         来源:qingkongyeyue的博客  
收藏   我要投稿

1、编译调试

(1)将客户端程序上传到服务器

(2)进入到客户端目录,进行make操作

(3)出现错误解决错误

我们用到线程相关的结构体,所以要包含pthread.h这个头文件。

 

\

 

没有声明函数atol

 

\

 

看使用这个函数需要包含什么头文件

 

\

 

没有定义函数pthread_create,但我们明明包含了相关的头文件,用到创建线程,依赖于一个库,

 

\

 

因而需要在顶层makefile中,添加一个依赖的库文件pthread。

 

\

 

2、后续操作

(1)编译通过,生成mjpg-streamer-client应用程序

 

\

 

(2)在开发板运行mjpg-streamer软件,在虚拟机上通过无线网卡链接wifi热点。进入文本模式,输入用户名和密码,进入客户端路径,运行客户端,参数跟的是开发板的IP地址

 

\

 

(3)能看到视频数据,但是一瞬间,就卡住了。

我们要调试程序需要看他的打印信息,但是一运行程序,马上调用到了vga相关的操作,这样是看不到打印信息的。修改代码,暂时将vga操作的代码注释掉,先看打印信息,看问题出在哪里,找到问题后再将控制台打开。将清屏函数注释掉

 

\

 

修改crt.c里面的init函数

将vga相关的操作注释掉

 

\

 

在主函数中

 

\

 

(4)重新 make,运行客户端

 

\

 

查看打印信息

发送一个请求以后,就会收到服务器发过来的报文,报文

\

 

接下来接收视频数据,当接受到的数据是JPEG 数据,成功过转化,然后返回值是0,然后接收第二帧数据,不是JPEG 数据,返回值是-1,表示转换失败。然后出现段错误,然后程序就卡死啦。

 

\

 

(5)接下来寻找段错误是什么原因导致的

通过加打印的方式找出段错误出现的位置在哪里

最终发现在convert函数里面

 

\

 

进入Mjpeg2RgbConvert函数。

当接收到一帧图片不是jpeg格式,将执行以下if分支,在if分支里面将(实际像素数据空间)aucPixelDatas给释放掉了,第二次接收又要操作这个空间,但是这个空间已经被释放掉了,自然而然会引发段错误,因而要将

 

\

删掉,就可以把段错误给解决了。

 

 

\
点击复制链接 与好友分享!回本站首页
上一篇:第五章-信源编码(二)
下一篇:Git简要教程
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站