[Live-devel] Birates in Video-Streams

Ross Finlayson finlayson at live.com
Tue Aug 10 09:18:28 PDT 2004


>I discussed this problem with some collegues. You can compare the memory 
>defined by rmem_size as a queue. If this queue is full the data inside is 
>overwritten by the operating system. So there are artefacts in the video. 
>If this size is big enough the queue wouldn't overflow and no artefacts appear.
>But which value is big enough? In our tests we determine a value of 2 MB 
>for a video of 2500kpbs. But what about videos of higher bitrates?

You'll just have to figure out a buffer size that works.  Once again, this 
is an *operating system* issue.

>And another problem is setting this rmem_maxsize value. This value could 
>only be changed by root. So you have to call your system administrator 
>cause you would see a streaming video. I don't know about your system 
>administrator but here they aren't really happy about this questions. :-)

That's why you can, instead, call "increaseReceiveBufferTo()" in your 
receiver (application) code.

>I think it would be better if you have your own queue on the programmers 
>side. If you are using queues inside your source code you can solve this 
>problem very easy.

No, because, once again, this is an operating system issue.  If the OS's 
socket receive buffer is too small, then chances are, it would overflow no 
matter how frequently the receiver code tried to read from it.  (Also, 
making extra copies of data in user space adds overhead.)



	Ross Finlayson
	LIVE.COM
	<http://www.live.com/>



More information about the live-devel mailing list