[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