static gboolean __bus_watch_cb(GstBus *bus, GstMessage *message, gpointer user_data)
{
webrtc_s *webrtc = (webrtc_s *)user_data;
- GError *err = NULL;
GstState gst_state_old = GST_STATE_VOID_PENDING;
GstState gst_state_new = GST_STATE_VOID_PENDING;
GstState gst_state_pending = GST_STATE_VOID_PENDING;
switch (GST_MESSAGE_TYPE(message)) {
case GST_MESSAGE_ERROR: {
+ g_autoptr(GError) err = NULL;
+ g_autofree gchar *debug = NULL;
webrtc_error_e error = WEBRTC_ERROR_INVALID_OPERATION;
- gst_message_parse_error(message, &err, NULL);
- LOG_ERROR("webrtc[%p] Error[from %s]: message[%s], code[%d]",
+ gst_message_parse_error(message, &err, &debug);
+
+ LOG_ERROR("webrtc[%p] Error[from %s, message:%s, code:%d] Debug[%s]",
webrtc, GST_OBJECT_NAME(GST_OBJECT_CAST(GST_ELEMENT(GST_MESSAGE_SRC(message)))),
- err->message, err->code);
+ err->message, err->code, debug ? debug : "none");
if (err->domain == GST_RESOURCE_ERROR)
error = WEBRTC_ERROR_RESOURCE_FAILED;
error = WEBRTC_ERROR_STREAM_FAILED;
__invoke_error_cb(webrtc, error);
-
- g_error_free(err);
break;
}