diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-06-19 09:40:11 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-06-19 18:34:05 +0200 |
commit | 213883eb5127b447ec23d8a5d7b28d572b77adf8 (patch) | |
tree | 2407f57e84f9a2e2bc41e407e43a0043bcc24643 /ext | |
parent | bf003caf9d75d05aed9cfefda3cde025520edc89 (diff) | |
download | gstreamer-plugins-bad-213883eb5127b447ec23d8a5d7b28d572b77adf8.tar.gz |
hlsdemux: Directly convert GErrors to error messages
This will make sure that we don't leak debug information into the actual
error message string and keep it behind the debug string.
Diffstat (limited to 'ext')
-rw-r--r-- | ext/hls/gsthlsdemux.c | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c index 5ad3646c6..a366abf52 100644 --- a/ext/hls/gsthlsdemux.c +++ b/ext/hls/gsthlsdemux.c @@ -44,6 +44,15 @@ #include <gst/base/gsttypefindhelper.h> #include "gsthlsdemux.h" +#define GST_ELEMENT_ERROR_FROM_ERROR(el, err) G_STMT_START { \ + gchar *__dbg = g_strdup (err->message); \ + GST_WARNING_OBJECT (el, "error: %s", __dbg); \ + gst_element_message_full (GST_ELEMENT(el), GST_MESSAGE_ERROR, \ + err->domain, err->code, \ + NULL, __dbg, __FILE__, GST_FUNCTION, __LINE__); \ + g_clear_error (&err); \ +} G_STMT_END + static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src_%u", GST_PAD_SRC, GST_PAD_SOMETIMES, @@ -459,10 +468,7 @@ gst_hls_demux_src_event (GstPad * pad, GstObject * parent, GstEvent * event) gst_uri_downloader_reset (demux->downloader); if (!gst_hls_demux_update_playlist (demux, FALSE, &err)) { g_rec_mutex_unlock (&demux->stream_lock); - gst_element_post_message (GST_ELEMENT_CAST (demux), - gst_message_new_error (GST_OBJECT_CAST (demux), err, - "Could not switch playlist")); - g_clear_error (&err); + GST_ELEMENT_ERROR_FROM_ERROR (demux, err); gst_event_unref (event); return FALSE; } @@ -488,10 +494,7 @@ gst_hls_demux_src_event (GstPad * pad, GstObject * parent, GstEvent * event) if (!gst_hls_demux_update_playlist (demux, FALSE, &err)) { g_rec_mutex_unlock (&demux->stream_lock); - gst_element_post_message (GST_ELEMENT_CAST (demux), - gst_message_new_error (GST_OBJECT_CAST (demux), err, - "Could not switch playlist")); - g_clear_error (&err); + GST_ELEMENT_ERROR_FROM_ERROR (demux, err); gst_event_unref (event); return FALSE; } @@ -1210,10 +1213,7 @@ gst_hls_demux_stream_loop (GstHLSDemux * demux) GST_DEBUG_OBJECT (demux, "Retrying now"); return; } else { - gst_element_post_message (GST_ELEMENT_CAST (demux), - gst_message_new_error (GST_OBJECT_CAST (demux), err, - "Could not fetch the next fragment")); - g_clear_error (&err); + GST_ELEMENT_ERROR_FROM_ERROR (demux, err); goto pause_task; } } @@ -1366,10 +1366,7 @@ gst_hls_demux_updates_loop (GstHLSDemux * demux) gst_m3u8_client_set_current (demux->client, child); if (!gst_hls_demux_update_playlist (demux, FALSE, &err)) { - gst_element_post_message (GST_ELEMENT_CAST (demux), - gst_message_new_error (GST_OBJECT_CAST (demux), err, - "Could not fetch the child playlist")); - g_error_free (err); + GST_ELEMENT_ERROR_FROM_ERROR (demux, err); goto error; } } @@ -1423,10 +1420,7 @@ gst_hls_demux_updates_loop (GstHLSDemux * demux) gst_util_uint64_scale (gst_m3u8_client_get_target_duration (demux->client), G_USEC_PER_SEC, 2 * GST_SECOND); } else { - gst_element_post_message (GST_ELEMENT_CAST (demux), - gst_message_new_error (GST_OBJECT_CAST (demux), err, - "Could not update the playlist")); - g_error_free (err); + GST_ELEMENT_ERROR_FROM_ERROR (demux, err); goto error; } } else { |