[Bug 768933] New: stream: socket used by the multiudpsink is modified

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Jul 18 18:29:39 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=768933

            Bug ID: 768933
           Summary: stream: socket used by the multiudpsink is modified
    Classification: Platform
           Product: GStreamer
           Version: unspecified
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-rtsp-server
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: xclaesse at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

I haven't checked with wireshark if this is effectively happens, but reading
the code I'm understanding this:

When a media is shared and a 2nd client connects, it will allocate a new UDP
socket for it and set it on the udpsink in alloc_ports_one_family(). My
understanding is the source ip/port of future buffers sent to 1st client will
suddenly change, no?

Also there is theoretically a race I think:
1) client1 connects and addr1 is allocated for him. An udpsrc is created. The
multiudpsink now uses addr1.
2) client2 connects and addr2 is allocated for him. Another udpsrc is created.
The multiudpsink now uses addr2.
3) first buffer goes out of the multiudpsink, so with the packet will have
"source" addr2.
4) Since RTSP clients uses the source address from udp package to know where to
reply, both clients will reply on addr2.

I've talked about this with Olivier CrĂȘte, and he thinks there is no reason to
allocate new socket/udpsrc for every client. According to him, udpsrc can
receive from any clients, and rtpbin is capable of filtering which buffer comes
from which client. Current code puts every udpsrc into a funnel anyway.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list