[Bug 741542] videodecoder / audio decoder no need to send GST_ELEMENT_ERROR when track corrupt

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Jan 5 21:22:27 PST 2015


https://bugzilla.gnome.org/show_bug.cgi?id=741542
  GStreamer | gst-plugins-base | 1.4.1

--- Comment #5 from Lyon <lyon.wang at freescale.com> 2015-01-06 05:22:22 UTC ---
Hi, I've met an use case below, could anybody give us some advice:

When there is corrupt audio track in the stream (say there is unrecoverable
error we met). is there anyway good way to stop the audio track and without
stop the whole stream?

I see in the gstaudiodecoder.c, there is a function gst_audio_decoder_error(),
which will send error message and return GST_FLOW_ERROR when error(say deocding
error) is exceed the max count. However, I don't see it will return
GST_FLOW_EOS to upstream or push eos event to downstream.

I tried in the audio decoder subclass to return GST_FLOW_EOS to upstream, but
sometimes the video track data full in the queue will block the whole preroll
and there is no chance for the upstream demux to send eos event downstream
(which will cause it hang in preroll). So I also push eos event to downstream
in subclass when meeting the unrecoverable error, it can solved the problem.

I was wondering if this mechanism (return EOS upstream and push eos event
downstream meanwhile)can be used in the baseclass (audio decoder) in
gst_audio_decoder_error().

-- 
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