[Live-devel] NIC overruns on IBM stbx25xx embedded platform
Ross Finlayson
finlayson at live.com
Wed Apr 27 08:51:02 PDT 2005
>The MediaMVP device uses a smc91111 nic, with only a
>tiny on-chip buffer. I've tried increasing the kernel's RX buffers
>with no improvement.
Are you sure you did that properly? This is what I would do to try to fix
the problem (it worked for "MPlayer" - see "libmpdemux/demux_rtp.cpp" in
the "MPlayer" source code).
In particular, after a successful call to "subsession->initiate()", you can
do the following:
int rtpSocketNum = subsession->rtpSource()->RTPgs()->socketNum();
increaseReceiveBufferTo(*env, rtpSocketNum, desiredReceiveBufferSize);
For "MPlayer", I use a 'desiredReceiveBufferSize' of 100,000 bytes for an
audio stream, and 2,000,000 bytes for a video stream. This is probably
being much too conservative, but they are values that work for MPlayer.
>I believe (please correct me if
>I'm wrong) overruns are an indication that the nics
>interrupts aren't being handled fast enough to
>transfer the data from the on-chip buffer to the
>kernel's buffer (ie not the same as dropped)
Not necessarily. That is one possible cause, but they could also be caused
by the packets overflowing the kernel's receive buffer before the
user-level application (in this case, your RTSP client) gets to read
them. In that case, increasing the kernel's receive buffer should solve
the problem.
Ross Finlayson
LIVE.COM
<http://www.live.com/>
More information about the live-devel
mailing list