求助live555的teardownMediaSession问题

coloriy 2010-12-10 12:24:13
live555库接收rtsp视频流,关闭视频流循环时,调用teardownMediaSession,总是死机,即语句执行到这句就死了,doEventLoop仍然再循环,同时双核cpu占用率达到了50%,如果在停止接收时,不调用该语句,而直接停止我的GetNextFrame线程是可以退出的,但是怕不安全,是不是会导致服务器端由于没有收到正常的teardown消息而造成异常呢?

有没有高手遇到过类似问题?分析vlc和mplayer代码,它的确调用了teardownMediaSession语句,但是我的却死锁在该句了,还请高手指点。
...全文
258 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
coloriy 2011-01-26
  • 打赏
  • 举报
回复
cpu问题是因为版本不一致造成的
coloriy 2011-01-18
  • 打赏
  • 举报
回复
问题已经解决,是需要建立两个客户端连接,但是,cpu占用50%的问题仍然没有解决
coloriy 2010-12-11
  • 打赏
  • 举报
回复
后来发现新版中说这个接口比较老,建议使用sendTeardownCommand 说这类接口是新接口,还有个问题,就是我如果打开多个客户端连接,是不是需要建立多个类似这样的东西呢:

m_pTaskSheduler = BasicTaskScheduler::createNew();
m_pUsageEnv = BasicUsageEnvironment::createNew(*m_pTaskSheduler);
m_pRtspClient = RTSPClient::createNew(*m_pUsageEnv, m_strUrl.c_str(), 0, "VxLive");
bestilyq 2010-12-11
  • 打赏
  • 举报
回复
应该不需要每个RTSPClient都创建BasicTaskScheduler和BasicUsageEnvironment吧,只要创建一次就可以了,但是每次都创建也没有错,可以看看createNew的实现。
bestilyq 2010-12-10
  • 打赏
  • 举报
回复
你发出TEARDOWN之后有没有收到服务器的回应,在接收回应处加超时看看。

2,543

社区成员

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

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