Thank you Matt and Ross.

My code is already calling increaseReceiveBufferTo(2000000) for the video and 100000 for the audio. I added a call to increaseSendBufferTo(20000000) on the server side but it didn't make a difference.

My preliminary investigation tells me that I'm receiving all the packets (I added TRACEs in MultiFramedRTPSource::networkReadHandler). I will look into MultiFramedRTPSource::doGetNextFrame1.

See below.

Matt Schuckmann wrote:
Chances are your socket receiver buffers in the OS are too small.
Try increasing them with calls to setReceiveBufferTo() or increaseReceiveBufferTo(), I think you can find examples of this in the OpenRTSP example and I think there are some references to this in the FAQ. Check out the FAQ because there maybe some registry/config settings (in the case of windows) you need to change to allow bigger buffers.

There are companion methods for the send buffers on the server side but I don't think your having a problem with that if WireShark shows all the data is making it to the client.

On the server side, when the frame is larger than the destination buffer, I copy as much as I can. The remaining data will be copied when doGetNextFrame is called again.
I'd be interested to know if this works because I got the impression that it doesn't.
It seems to be working. I modified unsigned OutPacketBuffer::maxSize = 600000 instead of 60000. But it works with the smaller value.


There is a similar buffer on the client side that is used to pass data to the afterGettingFrame() method of your videoSink, if the data is too big for that buffer then the numTrucatedBytes parameter is set to number of bytes that are lost and as far as I can tell that data is gone.
I don't think I've come across a case where this has occurred but in theory it could happen, I'm still not sure how you'd increase this buffer size.

Another thing you might try is to have your H.264 encoder slice up the frames into multiple slices, I think this will push your NAL packet sizes down which should reduce the buffer size requirements. I haven't tired this either but I've been meaning to just to see what happens.
I currently can't configure it to encode multiple slices which is a pain since my S/W decoder is multi-threaded.

Regards,

Georges

Matt S.
iMove Inc.
[email protected]
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to