[Bug 710253] New: Pipeline stalls after sending FLUSH_STOP event to it
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Oct 16 11:31:29 CEST 2013
https://bugzilla.gnome.org/show_bug.cgi?id=710253
GStreamer | gstreamer (core) | 1.0.6
Summary: Pipeline stalls after sending FLUSH_STOP event to it
Classification: Platform
Product: GStreamer
Version: 1.0.6
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: 4ernov at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
I experience difficulties with flushing out the data from the pipeline out of
my application. I asked about the preferred way to do it for several times in
mailing-list, but, unfortunately, with no success. I'm trying to flush the
pipeline using the same techniques it's done in some GStreamer elements, but
unfortunately pipeline is stalled right after I send FLUSH_STOP event to it.
My pipeline consists of two branches:
appsrc -> decodebin -> queue -> autoaudiosink
appsrc -> decodebin -> queue -> videoscale -> videoconvert -> autovideosink
I have my data received by network, I just depacketize it, set PTS according to
pipeline's running time and push to appsrc.
Here's the code where I send FLUSH_START and right after that FLUSH_STOP to
pipeline:
GST_INFO_OBJECT(pipeline(), "flushing pipeline...");
guint32 seq_num = gst_util_seqnum_next();
GST_INFO_OBJECT(pipeline(), "sending flush start...");
GstEvent* flush_start = gst_event_new_flush_start();
gst_event_set_seqnum(flush_start, seq_num);
gboolean ret = FALSE;
ret = gst_element_send_event(GST_ELEMENT(pipeline()), flush_start);
if (!ret)
GST_INFO_OBJECT(pipeline(), "failed to send flush-start event");
GST_INFO_OBJECT(pipeline(), "sending flush stop...");
GstEvent* flush_stop = gst_event_new_flush_stop(FALSE);
gst_event_set_seqnum(flush_stop, seq_num);
ret = gst_element_send_event(GST_ELEMENT(pipeline()), flush_stop);
if (!ret)
GST_INFO_OBJECT(pipeline(), "failed to send flush-stop event");
Log with GST_LEVEL_DEBUG loglevel is attached.
As far as I can see, the problem is that in spite of I explicitly set to not
reset time when creating FLUSH_STOP event, new_segment is created anyway so
time is efficiently reset.
I tried to set seq_num for events, to set reset_time to TRUE and actually reset
PTS of input packets starting from 0, but nothing actually helped.
--
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