For receiving video data via RTSP when the video is sent via multicast there is no way to specify the udpsrc buffer-size.
Look at function gst_rtspsrc_stream_configure_mcast in file gstrtspsrc.c, there is a missing call to set udp buffer-size.
It should have the below code:
if (src->udp_buffer_size != 0)
g_object_set (G_OBJECT (stream->udpsrc), "buffer-size",
This is a problem as you do not get a change to set the udpsrc buffer-size, why? Because gstrtspsrc tries connecting with other options first, i.e. udp unicast, when it gets round to multicast it has already created the udpsrc, then just deletes it and creates a new one for multicast, but does not set the udpsrc buffer-size, and as it has already created the udpsrc and signalled the creation it appears you do not get a signal for udpsrc removed and re-created, so for multicast the udpsrc buffer-size is 0 (zero).
Why is this an issue?
On windows the native network buffer is not large and with video i-frames being huge the buffer is to small and you get i-frame corruption, it looks terrible, and there is no (easy) way to set the udpsrc buffer-size.
A lot of video sources are multicast so this is a bit of an issue, but at least the fix is simple (provided above).
Thanks, could you provide a patch for this problem?
Pushed your fix. Should be available in the next release.