[Live-devel] MPEG video artifacts

Ross Finlayson finlayson at live.com
Tue Nov 25 09:12:31 PST 2003


>I experienced similar problems in the past, and in my case they were due
>to data loss happening in the socket.
>It seems that live.com uses the socket's internal buffer to buffer
>incoming MPEG data, and such buffer is too small.
>Mplayer's demux_rtp.cpp increases the socket's buffer size, by calling
>increaseReceiveBufferTo() in demux_open_rtp(); unfortunately, the new
>value is still too small for high-bitrate streams (such as DVD VOBs or
>DVB TSs).
>I don't know if testMPEG1or2VideoReceiver increases the buffer size or
>not.

Yes, the buffer size is set to 50 kBytes by default.  (See 
"liveMedia/MultiFramedRTPSource.cpp")  However, applications can increase 
this value further (as "MPlayer" does, in "libmpemux/demux_rtp.cpp").

>Note that you
>will probably have to increase /proc/sys/net/core/rmem_max too.

Interesting...  How does this interact with the 'traditional' (and more 
portable) method of setting a socket's buffer size: calling 
"setsockopt(socket, SOL_SOCKET, SO_RCVBUF, ...)" (which is how 
"increaseReceiveBufferTo()" is implemented)?  I.e., if once uses the 
"setsockopt(socket, SOL_SOCKET, SO_RCVBUF, ...)" method, then does this 
mean that you don't need to change "/proc/sys/net/core/rmem_max" also?  (Do 
any Linux kernel experts out there know the answer to this.)


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



More information about the live-devel mailing list