[Bug 759503] New: Stopping a stream very soon after starting asserts
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Dec 15 08:07:24 PST 2015
https://bugzilla.gnome.org/show_bug.cgi?id=759503
Bug ID: 759503
Summary: Stopping a stream very soon after starting asserts
Classification: Platform
Product: GStreamer
Version: 1.6.2
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gstreamer (core)
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: davecraig at unbalancedaudio.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
When I run the attached example code on my target hardware it asserts when the
millisecond delay hits around 300ms. The original assert was intermittent and
racey, so there's an additional change required to open up the race. In
gstbaseparse.c:
/* should have caps by now */
if (!gst_pad_has_current_caps (parse->srcpad))
goto no_caps;
+ /* Open up race.. */
+ g_usleep (100000);
if (G_UNLIKELY (!parse->priv->checked_media)) {
/* have caps; check identity */
gst_base_parse_check_media (parse);
}
The resulting assert is identical to the one mentioned in bug 755123 comment
11. The summary of what appears to be happening is...
Inside gst_base_parse_push_frame, it checks to see whether the srcpad has caps
before carrying on. In our crash situation this test passes, but the caps have
gone (because another thread has put the pad into FLUSHING mode) by further
down the function when it calls gst_aac_parse_pre_push_frame.
Although gst_pad_set_active appears to only set the pad to FLUSHING on return
from gst_pad_activate_mode, pre_activate inside gst_pad_activate_mode has
already set the pad to FLUSHING.
--
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