[Bug 781721] New: inter: Add overflow-mode property and alternative "block" mode
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Apr 25 14:00:51 UTC 2017
https://bugzilla.gnome.org/show_bug.cgi?id=781721
Bug ID: 781721
Summary: inter: Add overflow-mode property and alternative
"block" mode
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: enhancement
Priority: Normal
Component: gst-plugins-bad
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: dv at pseudoterminal.org
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Right now, the inter elements discard existing data if the channel is full.
This is undesirable if one wants to use inter elements for creating a
"producer" and a "consumer" pipeline. Example:
gst-launch-1.0 audiotestsrc ! interaudiosink sync=false interaudiosrc !
alsasink
This will output a corrupted sine wave and use 100% CPU, which is because
interaudiosink will output data as fast as the CPU allows - if the channel is
full, it just flushes the oldest samples until there is enough room for new
ones.
This current behavior is retained and remains the default; it is now called the
"flush" mode. The overflow-mode property introduces an alternative behavior,
the "block" mode. In this mode, if the channel is full, inter*sink elements
block until the channel has enough free space. With intervideo and interaudio,
this means that the sink elements block until the corresponding src elements
have read out the last buffer (= the channel has a capacity of exactly one
buffer). With interaudio, this means that the interaudiosink element blocks
until the interaudiosrc element has retrieved period-time nanoseconds of audio
data from the channel.
NOTE: This is a first version that does not include tests yet. Also, the
intersub element changes have not been tested yet because so far I could not
construct a test pipeline because the intersubsink sink caps are incompatible
with existing subtitle parsers (perhaps a good topic for a separate intersub
bugfix?).
--
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