[Bug 696057] New: udpsink does not work with IPv4 addresses on MacOSX

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Mar 18 07:11:55 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=696057
  GStreamer | gst-plugins | 1.x

           Summary: udpsink does not work with IPv4 addresses on MacOSX
    Classification: Platform
           Product: GStreamer
           Version: 1.x
        OS/Version: Mac OS
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: Jack.Jansen at cwi.nl
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


udpsink does not work with IPv4 destination addresses on MacOSX. Tried on both
10.7 and 10.8. All systems were multihomed and IPv6 configured to "automatic",
in case that matters.

The easiest way to see the problem is as follows:
   $ gst-launch-1.0 -v audiotestsrc  ! mulawenc ! rtppcmupay  ! udpsink
host="localhost" port="13002"
works fine.
   $ gst-launch-1.0 -v audiotestsrc  ! mulawenc ! rtppcmupay  ! udpsink
host="127.0.0.1" port="13002"
fails, with errors
   WARNING: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Error
sending UDP packet
   Additional debug info:
   gstmultiudpsink.c(545): gst_multiudpsink_render ():
/GstPipeline:pipeline0/GstUDPSink:udpsink0:
   Reason: Error sending message: Invalid argument

The problem turns out to be (after an incredible amount of debugging:-) that
gstmultiudpsink opens an IPv6 socket, and then does a sendmsg() to an IPv4
address.

Apparently this works on Linux, but not on BSD systems, see for example
<http://stackoverflow.com/questions/8087478/using-sendto-on-a-ipv6-socket-to-send-to-a-ipv4-address>.

The workaround is to use force-ipv4=true on udpsink, obviously. However, I
think that at the very least a better error message would be in place. Even
better would be converting the IPv4 address to its ::ffff: form.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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