[Bug 723473] New: [PATCH] rtpbasepayload: wait for all buffers in a list to be sent before flushing
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Sun Feb 2 05:23:16 PST 2014
https://bugzilla.gnome.org/show_bug.cgi?id=723473
GStreamer | gst-plugins-base | git
Summary: [PATCH] rtpbasepayload: wait for all buffers in a list
to be sent before flushing
Classification: Platform
Product: GStreamer
Version: git
OS/Version: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-base
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: vincent.penquerch at collabora.co.uk
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created an attachment (id=267846)
View: https://bugzilla.gnome.org/attachment.cgi?id=267846
Review: https://bugzilla.gnome.org/review?bug=723473&attachment=267846
locking patch
Pushing a buffer list locks the payloader's source pad only
when pushing a buffer. If an intervening flush comes through,
this means only the first few buffers may be pushed before
the soure pad becomes flushing. This could cause a spurious
discontinuity, so we lock the (recursive) stream lock on the
source pad to ensure all buffers are pushed atomically.
However, there are two cases where one needs the flush to
break in the middle of a list:
- when the flush is triggered by a seek from downstream (in
this case, since downstream will block till the original
request finishes, it will not process any further buffers
(if it does both in the same thread anyway)).
- when a state change occurs
Not 100% sure about this. It fixes a spurious discontinuity in a test case, but
the need for exceptions feels a bit unfortunate.
--
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