diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-07-17 10:53:30 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-04-17 20:11:46 +0200 |
commit | 774866ad62c3a0359705ef106584be3d6b3087e4 (patch) | |
tree | afac0e3b60879d241b2465f5f1f360c03fcea5aa /sys/androidmedia/gstamcaudiodec.c | |
parent | 589407a077fb645d805b86494d9d7fc56a104a64 (diff) | |
download | gstreamer-plugins-bad-774866ad62c3a0359705ef106584be3d6b3087e4.tar.gz |
androidmedia: Handle queue/release errors non-fatal
They can happen sometimes as a transient problem, e.g. if there
is a problem in the stream. Only handle them as fatal if many of
them happen in a row.
Diffstat (limited to 'sys/androidmedia/gstamcaudiodec.c')
-rw-r--r-- | sys/androidmedia/gstamcaudiodec.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/sys/androidmedia/gstamcaudiodec.c b/sys/androidmedia/gstamcaudiodec.c index 034591ed5..d381eec39 100644 --- a/sys/androidmedia/gstamcaudiodec.c +++ b/sys/androidmedia/gstamcaudiodec.c @@ -43,6 +43,16 @@ GST_DEBUG_CATEGORY_STATIC (gst_amc_audio_dec_debug_category); #define GST_CAT_DEFAULT gst_amc_audio_dec_debug_category +#define GST_AUDIO_DECODER_ERROR_FROM_ERROR(el, err) G_STMT_START { \ + gchar *__dbg = g_strdup (err->message); \ + GstAudioDecoder *__dec = GST_AUDIO_DECODER (el); \ + GST_WARNING_OBJECT (el, "error: %s", __dbg); \ + _gst_audio_decoder_error (__dec, 1, \ + err->domain, err->code, \ + NULL, __dbg, __FILE__, GST_FUNCTION, __LINE__); \ + g_clear_error (&err); \ +} G_STMT_END + /* prototypes */ static void gst_amc_audio_dec_finalize (GObject * object); @@ -630,7 +640,7 @@ format_error: } failed_release: { - GST_ELEMENT_ERROR_FROM_ERROR (self, err); + GST_AUDIO_DECODER_ERROR_FROM_ERROR (self, err); gst_pad_push_event (GST_AUDIO_DECODER_SRC_PAD (self), gst_event_new_eos ()); gst_pad_pause_task (GST_AUDIO_DECODER_SRC_PAD (self)); self->downstream_flow_ret = GST_FLOW_ERROR; @@ -1193,7 +1203,7 @@ dequeue_error: } queue_error: { - GST_ELEMENT_ERROR_FROM_ERROR (self, err); + GST_AUDIO_DECODER_ERROR_FROM_ERROR (self, err); if (minfo.data) gst_buffer_unmap (inbuf, &minfo); if (inbuf) |