}
//LCOV_EXCL_START
-static gboolean __ms_parse_gst_error(media_streamer_s *ms_streamer, GstMessage *message, GError *error)
+static void __ms_trigger_error_cb(media_streamer_s *ms_streamer, GError *error)
{
media_streamer_error_e ret_error = MEDIA_STREAMER_ERROR_NONE;
- ms_retvm_if(!ms_streamer, FALSE, "ms_streamer is NULL");
- ms_retvm_if(!message, FALSE, "message is NULL");
- ms_retvm_if(!error, FALSE, "error is NULL");
+ ms_retm_if(!ms_streamer, "ms_streamer is NULL");
+ ms_retm_if(!error, "error is NULL");
if (error->domain == GST_RESOURCE_ERROR)
ret_error = MEDIA_STREAMER_ERROR_RESOURCE_CONFLICT;
else
ret_error = MEDIA_STREAMER_ERROR_INVALID_OPERATION;
- /* post error to application */
if (ms_streamer->error_cb.callback) {
media_streamer_error_cb error_cb = (media_streamer_error_cb) ms_streamer->error_cb.callback;
error_cb((media_streamer_h) ms_streamer, ret_error, ms_streamer->error_cb.user_data);
}
ms_error("error[%s], ret[0x%x]", error->message, ret_error);
-
- return TRUE;
}
//LCOV_EXCL_STOP
case GST_MESSAGE_ERROR:
gst_message_parse_error(message, &err, &debug);
- /* Transform gst error code to media streamer error code.
- * then post it to application if needed */
- __ms_parse_gst_error(ms_streamer, message, err);
-
ms_error("Error from [%s]: %s", GST_OBJECT_NAME(GST_OBJECT_CAST(GST_ELEMENT(GST_MESSAGE_SRC(message)))), err->message);
+ __ms_trigger_error_cb(ms_streamer, err);
+
g_error_free(err);
MS_SAFE_GFREE(debug);
break;