[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