当前位置: 技术问答>linux和unix
询问一个关于实时传输的问题
来源: 互联网 发布时间:2015-10-28
本文导语: 想开发一个实时传输的程序,就是一方往一个缓冲区里写数据,另一方不停的从缓冲区里拿数据,然后发送,请问各位,这样一个程序需要用什么样的模型,比如消费者-生产者模型、读者-写者模型。。。。。 谢谢 ...
想开发一个实时传输的程序,就是一方往一个缓冲区里写数据,另一方不停的从缓冲区里拿数据,然后发送,请问各位,这样一个程序需要用什么样的模型,比如消费者-生产者模型、读者-写者模型。。。。。
谢谢
谢谢
|
就是使用两个大的缓冲区,当一个缓冲区满了就放另一个,这样不用每次都在等待对方取数据啊
比如在应用层开一个线程收数据,每次收完帧数据就放在一个缓冲区内,假设这个缓冲区只能存放十帧,那么到了第十一帧就放在第二个缓冲区,并置一个全局标识,主线程首先会根据标识去取哪个缓冲区的数据,而收数据的线程放满第二个缓冲区的时候,同样查看一个标识,通过这个标识看第一个缓冲区内的数据是否被取走,如还未取走就向主线程发一个信号,主线程收到信号后,就只重置标识,不再取当前数据,相当于舍掉了一些帧数据(在它播放速度没有采集速度快的时候),此时,主线程就通知收数据的线程可以放数据了。。。。。。
我想上面的流程有点类似于流式媒体传输的方式
比如在应用层开一个线程收数据,每次收完帧数据就放在一个缓冲区内,假设这个缓冲区只能存放十帧,那么到了第十一帧就放在第二个缓冲区,并置一个全局标识,主线程首先会根据标识去取哪个缓冲区的数据,而收数据的线程放满第二个缓冲区的时候,同样查看一个标识,通过这个标识看第一个缓冲区内的数据是否被取走,如还未取走就向主线程发一个信号,主线程收到信号后,就只重置标识,不再取当前数据,相当于舍掉了一些帧数据(在它播放速度没有采集速度快的时候),此时,主线程就通知收数据的线程可以放数据了。。。。。。
我想上面的流程有点类似于流式媒体传输的方式
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。