Bug 52264

Summary: gstrtspsrc - multicast missing udp buffer-size setting - no way to set udp duffer-size
Product: GStreamer SDK Reporter: aha.unsworth
Component: Windows SDK DistributionAssignee: bugs
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: medium    
Version: 2012.5   
Hardware: x86 (IA32)   
OS: Windows (All)   
See Also: https://bugzilla.gnome.org/show_bug.cgi?id=680245
Whiteboard:
i915 platform: i915 features:

Description aha.unsworth 2012-07-19 11:50:14 UTC
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[0]), "buffer-size",
          src->udp_buffer_size, NULL);

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).

Regards,

Aha Unsworth
Comment 1 Sebastian Dröge (slomo) 2013-02-19 12:55:41 UTC
Thanks, could you provide a patch for this problem?
Comment 2 Thiago Santos 2013-05-08 19:06:33 UTC
Pushed your fix. Should be available in the next release.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.