[Bug 749066] New: gstasfdemux goes to EOS when demux->packet >= demux->num_packets and seeking
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Thu May 7 04:46:10 PDT 2015
https://bugzilla.gnome.org/show_bug.cgi?id=749066
Bug ID: 749066
Summary: gstasfdemux goes to EOS when demux->packet >=
demux->num_packets and seeking
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-ugly
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: vov at bang-olufsen.dk
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Playing a WMA audio file over http (something that allows seeking ex. DLNA).
Playback has reached the last seconds of the track so that:
This code path from gst_asf_demux_chain has already been executed:
if (G_UNLIKELY (demux->num_packets != 0 && demux->packet >= 0
&& demux->packet >= demux->num_packets)) {
demux->state = GST_ASF_DEMUX_STATE_INDEX;
}
Issuing a seek on pipeline element.
After seeking you think the playback is going to start from the position you
seeked to, but it also might happen that the gst_asf_demux_chain returns EOS,
because the following code path is executed where result ==
GST_ASF_DEMUX_CHECK_HEADER_NO:
case GST_ASF_DEMUX_STATE_INDEX:{
gint result = gst_asf_demux_check_header (demux);
if (result == GST_ASF_DEMUX_CHECK_HEADER_NEED_DATA) /* need more
data */
break;
if (result == GST_ASF_DEMUX_CHECK_HEADER_NO) {
/* we don't care about this, probably an index */
/* TODO maybe would be smarter to skip all the indices
* until we got a new header or EOS to decide */
GST_LOG_OBJECT (demux, "Received index object, its EOS");
goto eos;
} else {
GST_INFO_OBJECT (demux, "Chained asf starting");
/* cleanup and get ready for a chained asf */
gst_asf_demux_reset (demux, TRUE);
/* fall through */
}
}
--
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