state_transition_name = g_strdup_printf("Old[GST_STATE_%s] New[GST_STATE_%s] Pending[GST_STATE_%s]",
gst_element_state_get_name(gst_state_old), gst_element_state_get_name(gst_state_new),
gst_element_state_get_name(gst_state_pending));
- ms_info("GST_MESSAGE_STATE_CHANGED: [%s] %s. ", GST_OBJECT_NAME(GST_MESSAGE_SRC(message)), state_transition_name);
+ ms_info("GST_MESSAGE_STATE_CHANGED: %s", state_transition_name);
ms_generate_dots(ms_streamer->pipeline, state_transition_name);
MS_SAFE_GFREE(state_transition_name);
return ret;
}
+static const char *g_gst_element_get_state_ret_str_arr[] = {
+ "GST_STATE_CHANGE_FAILURE",
+ "GST_STATE_CHANGE_SUCCESS",
+ "GST_STATE_CHANGE_ASYNC",
+ "GST_STATE_CHANGE_NO_PREROLL"
+};
+
void ms_pipeline_get_state(media_streamer_s *ms_streamer)
{
GstState state_old = GST_STATE_NULL, state_new = GST_STATE_NULL;
GstStateChangeReturn ret_state = -1;
- ms_debug_fenter();
-
ms_retm_if(ms_streamer == NULL, "ms_streamer is NULL");
ms_retm_if(ms_streamer->pipeline == NULL, "ms_streamer->pipeline is NULL");
ret_state = gst_element_get_state(ms_streamer->pipeline, &state_old, &state_new, GST_CLOCK_TIME_NONE);
- if (ret_state == GST_STATE_CHANGE_SUCCESS)
- ms_info("Got state for [%s]: old [%s], new [%s]", GST_ELEMENT_NAME(ms_streamer->pipeline), gst_element_state_get_name(state_old), gst_element_state_get_name(state_new));
+ if (ret_state == GST_STATE_CHANGE_FAILURE)
+ ms_error("Failed to gst_element_get_state()");
else
- ms_error("Couldn`t get state for [%s]", GST_ELEMENT_NAME(ms_streamer->pipeline));
-
- ms_debug_fleave();
+ ms_info("[%s] Got state: old [%s], new [%s]", g_gst_element_get_state_ret_str_arr[ret_state],
+ gst_element_state_get_name(state_old), gst_element_state_get_name(state_new));
}
GstCaps *ms_create_caps_from_fmt(media_format_h fmt)