[Bug 740867] New: dashdemux not flushing stream on pipeline stop for live content
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Fri Nov 28 08:56:34 PST 2014
https://bugzilla.gnome.org/show_bug.cgi?id=740867
GStreamer | gst-plugins-bad | 1.4.3
Summary: dashdemux not flushing stream on pipeline stop for
live content
Classification: Platform
Product: GStreamer
Version: 1.4.3
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-bad
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: samuelh at rd.bbc.co.uk
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created an attachment (id=291732)
--> (https://bugzilla.gnome.org/attachment.cgi?id=291732)
Condensed log of dashdemux comparing a working case to a failure case.
When running a live DASH stream, dashdemux isn't properly ending its session
leading to a hang in GStreamer as it waits.
I've narrowed the actual cause of the hang down to the call to gst_task_join at
around line 1046 in gstdashdemux.c, this never returns as whatever thread it's
running never returns as it's trying to continuously download segments.
Instead, each thread seems to be waiting in gst_dash_demux_download_wait, and
then tries to go off and get more segments.
I've attached a file containing two excerpts of the logs taken from a working
on-demand stream and a failing live stream, showing the differences in what
happens after the stream is stopped. An MPD which recreates the flaw is
available here http://rdmedia.bbc.co.uk/dash/testmpds/multiperiod/bbb.php
I can't quite figure out why it's broken so I'm posting here just in case
anyone else has any ideas. As far as I can see there's no while loops for it to
get stuck in and it should reach the end of gst_dash_demux_stream_download_loop
at which point it will get picked up by the gst_task_join that's waiting but it
never gets there.
It's also worth noting that when dashdemux says that it's fetching the next
fragment, the upstream http src never actually gets anything (but crucially the
httpsrc is still instantiated as it never receives the READY_TO_NULL event to
shutdown).
Best Regards,
Sam
--
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