[Bug 722370] New: rtprtxsend: push rtx buffers from a different thread to avoid long retransmission delays

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Jan 16 11:55:38 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=722370
  GStreamer | gst-plugins-good | git

           Summary: rtprtxsend: push rtx buffers from a different thread
                    to avoid long retransmission delays
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: kiagiadakis.george at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


This is a follow-up on https://bugzilla.gnome.org/show_bug.cgi?id=711084 for
one of the patches that were not commited.

The problem essentially is that currently rtprtxsend pushes retransmission
buffers from its chain() function, which requires chain() to be called, i.e.
there need to be some "master stream" buffers ready to be sent in order to send
rtx buffers for older requests. This introduces a retransmission delay that can
be critical for stream reconstruction on the receiver end and is unnecessary.

This patch attempts to fix this by having a separate thread that pushes
retransmission buffers as soon as they are requested.

On this attempt, the new thread only pushes retransmission buffers, as Wim
mentioned it should in https://bugzilla.gnome.org/show_bug.cgi?id=711084#c68.
Also, some unit tests that were fixed in order to have a deterministic output
and not fail at random due to the new thread.

Please note that there are still two unit tests failing at random:
rtprtx::test_drop_multiple_sender and rtprtx::test_drop_one_sender. These unit
tests are quite complex and weird, but despite having analyzed them fully, I am
unable to find a reason for their failure. It looks like some rtx buffers are
lost between rtprtxsend and rtprtxreceive in their pipelines, sometimes. At
this point, I'm all for removing them, since they do not offer much in my
opinion. The functionality is more or less also tested in the rest of the
tests, which work fine.

The code can be found here:
http://cgit.collabora.com/git/user/gkiagia/gst-plugins-good.git/log/?h=rtxsend-new-thread

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