summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-06-19 09:40:11 +0200
committerSebastian Dröge <sebastian@centricular.com>2014-06-19 18:34:05 +0200
commit213883eb5127b447ec23d8a5d7b28d572b77adf8 (patch)
tree2407f57e84f9a2e2bc41e407e43a0043bcc24643 /ext
parentbf003caf9d75d05aed9cfefda3cde025520edc89 (diff)
downloadgstreamer-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.c34
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 {