After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 562572 - multiudpsink handles errors in _render() too aggressively
multiudpsink handles errors in _render() too aggressively
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 0.10.14
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-11-28 14:35 UTC by Peter Kjellerstedt
Modified: 2009-01-23 08:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Make gst_multiudpsink_render() ignore errors from sendto() (2.00 KB, patch)
2008-11-28 14:35 UTC, Peter Kjellerstedt
committed Details | Review

Description Peter Kjellerstedt 2008-11-28 14:35:00 UTC
The code in gst_multiudpsink_render() treats all errors from sendto() except EINTR, EAGAIN and EPERM as so serious that it returns GST_FLOW_ERROR. This regardless of how many clients the multiudpsink has. This causes e.g. a temporary network failure (ENETUNREACH) to terminate the pipeline, eventhough it would have been better off just ignoring the error and then continue delivery as soon as the network is restored.

The attached patch makes gst_multiudpsink_render() ignore all errors. This works fine for cases where there is some other control protocol active (e.g., RTSP) which will terminate the pipeline if the client isn't reachable for a while, but may be too lax for pure UDP pipelines. Maybe there needs to be a property which controls whether errors from sendto() are to be ignored, or propagated?
Comment 1 Peter Kjellerstedt 2008-11-28 14:35:46 UTC
Created attachment 123611 [details] [review]
Make gst_multiudpsink_render() ignore errors from sendto()
Comment 2 Wim Taymans 2008-11-28 15:12:13 UTC
        Patch by: Peter Kjellerstedt <pkj at axis com>

        * gst/udp/gstmultiudpsink.c: (gst_multiudpsink_render):
        Make gst_multiudpsink_render() ignore errors from sendto() instead of
        breaking streaming. Emit a warning instead. Fixes #562572.