[Bug 797334] New: Potential Error Case is Ignored by GstAudioRingBuffer
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed Oct 24 23:26:19 UTC 2018
https://bugzilla.gnome.org/show_bug.cgi?id=797334
Bug ID: 797334
Summary: Potential Error Case is Ignored by GstAudioRingBuffer
Classification: Platform
Product: GStreamer
Version: git master
OS: All
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-base
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: astandley at linear-systems.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
In trying to debug issues behind Bug 797329
(https://bugzilla.gnome.org/show_bug.cgi?id=797329) it was discovered that an
error case seems to be completely ignored by the GstAudioRingBuffer.
default_commit 'skips' the writing of a segment to the output buffer when the
read pointers has surpassed the write pointer (diff < 0), but still advances
the write pointer by the segment size. The intention appearing to be that this
should advance the write pointer a segment ahead of the read pointer, and allow
the next segment to write.
The issue is that default_commit's return indicates that the full segment was
written, and fails to track this error internally. Thus, the potential error
state were the write pointer never catches up to the read pointer (and the
rendering is for all intents broken), appears to be undetectable.
* Due to no internal error tracking GstAudioRingBuffer will have no idea that
it has skipped the millionth segment in a row.
* Due to GstAudioRingBuffer indicating by it's return that full segment was
written and advancing the write pointer, higher level elements appear to have
no way of knowing a segment was drop. Thus they appear to have no way of
tracking how many segments have been successively dropped, and detecting if
this exceeds an error threshold.
I am sure that the error state is a rare one, and in this case caused by an
unrelated issue. However never detecting an error state in the pipeline seems
bad.
--
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