ms_retvm_if(ms_node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "streamer is NULL");
+ ms_retvm_if(ms_streamer->nodes_table == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "streamer->nodes_table is NULL");
ms_retvm_if(ms_streamer->state > MEDIA_STREAMER_STATE_IDLE, MEDIA_STREAMER_ERROR_INVALID_STATE, "Error: Media streamer must be in IDLE state");
ms_retvm_if(ms_streamer != ms_node->parent_streamer, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Node [%s] added into another Media Streamer object", ms_node->name);
ms_debug_fenter();
ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "streamer is NULL");
+ ms_retvm_if(ms_streamer->nodes_table == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "streamer->nodes_table is NULL");
ms_retvm_if(ms_streamer->state > MEDIA_STREAMER_STATE_IDLE, MEDIA_STREAMER_ERROR_INVALID_STATE, "Error: Media streamer must be in IDLE state");
ms_retvm_if(ms_node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
ms_retvm_if(ms_node->parent_streamer != NULL, MEDIA_STREAMER_ERROR_INVALID_OPERATION, "Node [%s] already added into Media Streamer object", ms_node->name);
ms_debug_fenter();
ms_retvm_if(ms_src == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "source is NULL");
+ ms_retvm_if(callback == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "callback is NULL");
if (!ms_src->callbacks_structure) {
src_callback = (media_streamer_callback_s *) calloc(1, sizeof(media_streamer_callback_s));
ms_debug_fenter();
ms_retvm_if(ms_sink == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "sink is NULL");
+ ms_retvm_if(callback == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "callback is NULL");
sink_callbacks = ms_sink->callbacks_structure;
if (!sink_callbacks) {
ms_debug_fenter();
ms_retvm_if(ms_sink == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "sink is NULL");
+ ms_retvm_if(callback == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "callback is NULL");
sink_callbacks = ms_sink->callbacks_structure;
if (!sink_callbacks) {
ms_retvm_if(ms_src_node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "src_node is NULL");
ms_retvm_if(ms_dest_node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "dest_node is NULL");
- ms_retvm_if(src_pad_name == NULL, MEDIA_STREAMER_ERROR_INVALID_OPERATION, "src_pad_name is NULL");
- ms_retvm_if(sink_pad_name == NULL, MEDIA_STREAMER_ERROR_INVALID_OPERATION, "sink_pad_name is NULL");
link_ret = gst_element_link_pads(ms_src_node->gst_element, src_pad_name, ms_dest_node->gst_element, sink_pad_name);
void __ms_generate_dots(GstElement *bin, gchar *name_tag)
{
gchar *dot_name;
- ms_retm_if(bin == NULL, "Handle is NULL");
+ ms_retm_if(bin == NULL, "bin is NULL");
if (!name_tag)
dot_name = g_strdup(DOT_FILE_NAME);
ms_debug_fenter();
+ ms_retvm_if(gst_bin == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "gst_bin is NULL");
+
bin_name = gst_element_get_name(gst_bin);
ghost_pad = gst_ghost_pad_new_no_target(ghost_pad_name, pad_direction);
if (gst_element_add_pad(GST_ELEMENT(gst_bin), ghost_pad)) {
ms_debug_fenter();
- ms_retvm_if(!gst_element || !pad_name || !ghost_pad_name || !gst_bin, FALSE, "Handle is NULL");
+ ms_retvm_if(!gst_element, FALSE, "gst_element is NULL");
+ ms_retvm_if(!pad_name, FALSE, "pad_name is NULL");
+ ms_retvm_if(!gst_bin, FALSE, "gst_bin is NULL");
element_pad = gst_element_get_static_pad(gst_element, pad_name);
element_pad = gst_element_get_request_pad(gst_element, pad_name);
ghost_pad = gst_ghost_pad_new(ghost_pad_name, element_pad);
+ ms_retvm_if(!ghost_pad, FALSE, "ghost_pad is NULL");
+
gst_pad_set_active(ghost_pad, TRUE);
ret = gst_element_add_pad(GST_ELEMENT(gst_bin), ghost_pad);
ms_debug_fenter();
+ ms_retvm_if(!pad, FALSE, "pad is NULL");
+
if (!gst_pad_is_linked(pad))
return TRUE;
ms_debug_fenter();
+ ms_retvm_if(!pad, NULL, "pad is NULL");
+
if (!gst_pad_is_linked(pad)) {
ms_info("Pad [%s:%s] is not linked yet", GST_DEBUG_PAD_NAME(pad));
return NULL;
}
peer_pad = gst_pad_get_peer(pad);
- ms_retvm_if(!peer_pad, FALSE, "Fail to get peer pad");
+ ms_retvm_if(!peer_pad, NULL, "Fail to get peer pad");
ret = gst_pad_get_parent_element(peer_pad);
if (!ret) {
ms_debug_fenter();
+ ms_retvm_if(!element, FALSE, "element is NULL");
+
pad_iterator = gst_element_iterate_pads(element);
while (GST_ITERATOR_OK == gst_iterator_next(pad_iterator, &elem)) {
pad = (GstPad *) g_value_get_object(&elem);
ms_debug_fenter();
+ ms_retvm_if(!element, FALSE, "element is NULL");
+
parent = (GstElement *) gst_element_get_parent(element);
/* Remove node's element from bin that decreases ref count */
ms_debug_fenter();
+ ms_retvm_if(!bin, FALSE, "bin is NULL");
+ ms_retvm_if(!element, FALSE, "element is NULL");
+
parent = (GstElement *) gst_element_get_parent(element);
/* Add node's element into bin and increases ref count if needed */
ms_debug_fenter();
+ ms_retvm_if(!element_pad, NULL, "element_pad is NULL");
+
pad_caps = gst_pad_query_caps(element_pad, 0);
MS_GET_CAPS_TYPE(pad_caps, pad_type);
gst_caps_unref(pad_caps);
ms_debug_fenter();
+ ms_retvm_if(!previous_element, NULL, "previous_element is NULL");
+ ms_retvm_if(!node_klass_type, NULL, "node_klass_type is NULL");
+ ms_retvm_if(!node_klass_type->klass_name, NULL, "node_klass_type->klass_name is NULL");
+ ms_retvm_if(!node_klass_type->default_name, NULL, "node_klass_type->default_name is NULL");
+
if (prev_elem_src_pad) {
/* Check if previous element`s source pad is connected with element */
ms_debug_fenter();
+ ms_retvm_if(!previous_element, FALSE, "previous_element is NULL");
+ ms_retvm_if(!found_element, FALSE, "found_element is NULL");
+
if (prev_elem_src_pad) {
peer_element = __ms_pad_get_peer_element(prev_elem_src_pad);
if (!gst_pad_is_linked(prev_elem_src_pad)) {
GstElement *found_element = NULL;
gboolean elements_linked = FALSE;
const gchar *found_klass = NULL;
+ GstIterator *bin_iterator = NULL;
ms_debug_fenter();
- GstIterator *bin_iterator = gst_bin_iterate_sorted(GST_BIN(search_bin));
+ ms_retvm_if(!previous_element, NULL, "previous_element is NULL");
+ ms_retvm_if(!search_bin, NULL, "search_bin is NULL");
+ ms_retvm_if(!node_klass_type, NULL, "node_klass_type is NULL");
+ ms_retvm_if(!node_klass_type->default_name, NULL, "node_klass_type->default_name is NULL");
+
+ bin_iterator = gst_bin_iterate_sorted(GST_BIN(search_bin));
+
while (GST_ITERATOR_OK == gst_iterator_next(bin_iterator, &element_value)) {
found_element = (GstElement *) g_value_get_object(&element_value);
found_klass = gst_element_factory_get_klass(gst_element_get_factory(found_element));
}
g_value_reset(&element_value);
}
+
g_value_unset(&element_value);
gst_iterator_free(bin_iterator);
return elements_linked ? found_element : NULL;
}
-int __ms_factory_rank_compare(GstPluginFeature * first_feature, GstPluginFeature * second_feature)
+int __ms_factory_rank_compare(GstPluginFeature *first_feature, GstPluginFeature *second_feature)
{
ms_debug_fenter();
+
+ ms_retvm_if(!first_feature, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "first_feature is NULL");
+ ms_retvm_if(!second_feature, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "second_feature is NULL");
+
ms_debug_fleave();
return (gst_plugin_feature_get_rank(second_feature) - gst_plugin_feature_get_rank(first_feature));
}
GstElement *found_element = NULL;
node_info_s *node_klass_type = NULL;
- ms_debug_fenter();
+ ms_retvm_if(!previous_element, NULL, "previous_element is NULL");
+ ms_retvm_if(!bin_to_find_in, NULL, "bin_to_find_in is NULL");
- if (!previous_element)
- return NULL;
+ ms_debug_fenter();
node_klass_type = __ms_node_get_klass_by_its_type(node_type);
ms_debug_fenter();
- ms_retvm_if(!ms_streamer, GST_AUTOPLUG_SELECT_TRY, "Handle is NULL");
+ ms_retvm_if(!factory, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "factory is NULL");
+ ms_retvm_if(!ms_streamer, GST_AUTOPLUG_SELECT_TRY, "data is NULL");
factory_name = GST_OBJECT_NAME(factory);
klass = gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS);
ms_debug_fenter();
+ ms_retvm_if(!a, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "a is NULL");
+ ms_retvm_if(!b, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "b is NULL");
+
a_pad = GST_PAD(a);
b_pad = GST_PAD(b);
ms_debug_fenter();
- ms_retm_if(ms_streamer == NULL, "Handle is NULL");
+ ms_retm_if(new_pad == NULL, "new_pad is NULL");
+ ms_retm_if(ms_streamer == NULL, "user_data is NULL");
g_mutex_lock(&ms_streamer->mutex_lock);
ms_debug_fenter();
+ ms_retm_if(src_pad == NULL, "src_pad is NULL");
+ ms_retm_if(ms_streamer == NULL, "ms_streamer is NULL");
+
found_element = gst_pad_get_parent_element(src_pad);
new_pad_type = __ms_get_pad_type(src_pad);
ms_debug_fenter();
- ms_retm_if(ms_streamer == NULL, "Handle is NULL");
+ ms_retm_if(decodebin == NULL, "decodebin is NULL");
+ ms_retm_if(ms_streamer == NULL, "user_data is NULL");
g_mutex_lock(&ms_streamer->mutex_lock);
ms_debug_fenter();
- ms_retvm_if(!ms_streamer, NULL, "Handle is NULL");
+ ms_retvm_if(!ms_streamer, NULL, "ms_streamer is NULL");
decodebin = __ms_element_create(DEFAULT_DECODEBIN, name);
__ms_bin_add_element(ms_streamer->transform_bin, decodebin, TRUE);
ms_debug_fenter();
+ ms_retvm_if(!ms_streamer, FALSE, "ms_streamer is NULL");
+ ms_retvm_if(!source_pad, FALSE, "source_pad is NULL");
+
/* Getting Depayloader */
parent_rtp_element = gst_pad_get_parent_element(source_pad);
ms_debug_fenter();
- ms_retm_if(ms_node == NULL, "Handle is NULL");
+ ms_retm_if(new_pad == NULL, "new_pad is NULL");
+ ms_retm_if(ms_node == NULL, "ms_node is NULL");
ms_debug("Pad [%s] added on [%s]", GST_PAD_NAME(new_pad), GST_ELEMENT_NAME(src));
if (g_str_has_prefix(GST_PAD_NAME(new_pad), "recv_rtp_src")) {
ms_debug_fenter();
- ms_retvm_if(gst_element == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
+ ms_retvm_if(gst_element == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "gst_element is NULL");
ret_state = gst_element_set_state(gst_element, gst_state);
ms_debug_fenter();
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+
video_enc_src_caps = gst_caps_new_simple("video/mpeg", "mpegversion", G_TYPE_INT, 4, NULL);
video_enc_sink_caps = gst_caps_new_empty_simple("video/x-raw");
video_enc_plug_info.info = &(nodes_info[0]);
ms_debug_fenter();
+ ms_retvm_if(!ms_node, NULL, "ms_node is NULL");
+
val = (GValue *)g_object_get_data(G_OBJECT(ms_node->gst_element), MEDIA_STREAMER_PARAM_URI);
uri = g_value_get_string(val);
protocol = gst_uri_is_valid(uri) ? gst_uri_get_protocol(uri) : NULL;
ms_debug_fenter();
- ms_retvm_if(ms_node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
+ ms_retvm_if(ms_node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_node is NULL");
if (!auto_plug) {
plugin_name = __ms_ini_get_string("node type 1:adaptive", DEFAULT_ADAPTIVE_SOURCE);
GstElementFactory *factory = NULL;
const gchar *factory_klass = NULL;
- ms_debug_fenter();
-
if (!GST_IS_ELEMENT_FACTORY(feature))
return FALSE;
}
- ms_debug_fleave();
-
return FALSE;
}
ms_debug_fenter();
+ ms_retvm_if(plug_info == NULL, NULL, "plug_info is NULL");
+
MS_GET_CAPS_TYPE(plug_info->src_caps, src_type);
MS_GET_CAPS_TYPE(plug_info->sink_caps, sink_type);
ms_debug_fenter();
+ ms_retvm_if(plug_info == NULL, NULL, "plug_info is NULL");
+
MS_GET_CAPS_TYPE(plug_info->src_caps, src_type);
MS_GET_CAPS_TYPE(plug_info->sink_caps, sink_type);
ms_debug_fenter();
+ ms_retvm_if(plug_info == NULL, NULL, "plug_info is NULL");
+
MS_GET_CAPS_TYPE(plug_info->src_caps, src_type);
MS_GET_CAPS_TYPE(plug_info->sink_caps, sink_type);
ms_debug_fenter();
+ ms_retvm_if(plug_info == NULL, NULL, "plug_info is NULL");
+
enc_caps = plug_info->src_caps;
if (!enc_caps) {
enc_caps = gst_caps_from_string(MEDIA_STREAMER_DEFAULT_VIDEO_FORMAT);
ms_debug_fenter();
+ ms_retvm_if(plug_info == NULL, NULL, "plug_info is NULL");
+
dec_caps = plug_info->sink_caps;
if (!dec_caps) {
dec_caps = gst_caps_from_string(MEDIA_STREAMER_DEFAULT_VIDEO_FORMAT);
ms_debug_fenter();
+ ms_retvm_if(plug_info == NULL, NULL, "plug_info is NULL");
+
enc_caps = plug_info->src_caps;
if (!enc_caps) {
enc_caps = gst_caps_from_string(MEDIA_STREAMER_DEFAULT_AUDIO_FORMAT);
ms_debug_fenter();
- ms_retvm_if(!ms_node, MEDIA_STREAMER_ERROR_INVALID_OPERATION, "Handle is NULL");
+ ms_retvm_if(!ms_node, MEDIA_STREAMER_ERROR_INVALID_OPERATION, "ms_node is NULL");
rtpbin = __ms_element_create("rtpbin", "rtpbin");
ms_retvm_if(!rtpbin, FALSE, "Error: creating elements for rtp container");
ms_debug_fenter();
ms_retvm_if(!ms_streamer, FALSE, "Error: invalid Media Streamer handle.");
- ms_retvm_if(!error, FALSE, "Error: invalid error handle.");
ms_retvm_if(!message, FALSE, "Error: invalid bus message handle.");
+ ms_retvm_if(!error, FALSE, "Error: invalid error handle.");
if (error->domain == GST_CORE_ERROR)
ret_error = MEDIA_STREAMER_ERROR_INVALID_OPERATION;
GstElement *parent_element = NULL;
GstEvent *event = NULL;
- ms_debug_fenter();
-
parent_element = gst_pad_get_parent_element(pad);
if (!parent_element) {
ms_error("filed to get parent_elem");
MS_SAFE_UNREF(parent_element);
- ms_debug_fleave();
-
return GST_PAD_PROBE_PASS;
}
gchar *state_transition_name = NULL;
GstState state_old = 0, state_new = 0, state_pending = 0;
- ms_debug_fenter();
-
ms_streamer = (media_streamer_s *) userdata;
ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
ms_retvm_if(ms_streamer->pipeline == NULL, MEDIA_STREAMER_ERROR_INVALID_STATE, "Pipeline doesn`t exist");
}
case GST_MESSAGE_ASYNC_DONE:{
+ ms_debug("GST_MESSAGE_ASYNC_DONE");
if (GST_MESSAGE_SRC(message) == GST_OBJECT(ms_streamer->pipeline)
&& ms_streamer->is_seeking) {
}
}
- ms_debug_fleave();
-
return TRUE;
}
ms_debug_fenter();
- ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
/* initialize gstreamer with configured parameter */
ret = __ms_gstreamer_init(ms_streamer);
ms_debug_fenter();
+ ms_retvm_if(gst_element == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "gst_element is NULL");
+ ms_retvm_if(pad_name_array == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "pad_name_array is NULL");
+ ms_retvm_if(pads_count == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "pads_count is NULL");
+
if (pad_type == GST_PAD_SRC) {
pad_iterator = gst_element_iterate_src_pads(gst_element);
} else if (pad_type == GST_PAD_SINK) {
ms_debug_fenter();
- ms_retvm_if(gst_element == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Element handle is NULL");
+ ms_retvm_if(gst_element == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "gst_element is NULL");
+ ms_retvm_if(pad_name == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "pad_name is NULL");
+ ms_retvm_if(fmt == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "fmt is NULL");
+
pad = gst_element_get_static_pad(gst_element, pad_name);
ms_retvm_if(pad == NULL, MEDIA_STREAMER_ERROR_INVALID_OPERATION, "Fail to get pad [%s] from element [%s].", pad_name, GST_ELEMENT_NAME(gst_element));
ms_debug_fenter();
- ms_retm_if(ms_streamer == NULL, "Handle is NULL");
+ ms_retm_if(ms_streamer == NULL, "user_data is NULL");
+ ms_retm_if(new_pad == NULL, "new_pad is NULL");
g_mutex_lock(&ms_streamer->mutex_lock);
{
ms_debug_fenter();
- ms_retvm_if(!ms_streamer, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
- ms_retvm_if(!demux_node, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
+ ms_retvm_if(!ms_streamer, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+ ms_retvm_if(!demux_node, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "demux_node is NULL");
__ms_signal_create(&ms_streamer->autoplug_sig_list, demux_node->gst_element, "pad-added", G_CALLBACK(__demux_newpad_cb), ms_streamer);
__ms_signal_create(&ms_streamer->autoplug_sig_list, demux_node->gst_element, "no-more-pads", G_CALLBACK(__demux_nomore_pads_cb), ms_streamer);
ms_debug_fenter();
+ ms_retm_if(!typefind, "typefind is NULL");
+ ms_retm_if(!ms_streamer, "data is NULL");
+
adaptive_sink = (media_streamer_node_s *)g_hash_table_lookup(ms_streamer->nodes_table, "adaptive_sink");
src_pad = gst_element_get_static_pad(typefind, "src");
ms_debug_fenter();
+ ms_retvm_if(!ms_streamer, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+ ms_retvm_if(!src_element, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "src_element is NULL");
+
src_pad = gst_element_get_static_pad(src_element, "src");
+ ms_retvm_if(src_pad == NULL, MEDIA_STREAMER_ERROR_INVALID_OPERATION,
+ "Error getting static_pad [src_pad]");
typefind = gst_element_factory_make("typefind", "typefinder");
ms_retvm_if(typefind == NULL, MEDIA_STREAMER_ERROR_INVALID_OPERATION,
int __ms_http_server_create(media_streamer_http_server_h *server, char *ip_address, char *port)
{
- ms_retvm_if(server == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
- //ms_retvm_if(ip_address == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "IP address is NULL");
+ _ms_http_server_s *ms_server;
+ int iport;
+
+ ms_debug_fenter();
+
+ ms_retvm_if(server == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "server is NULL");
ms_retvm_if(port == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Port is NULL");
- _ms_http_server_s *ms_server = (_ms_http_server_s *) calloc(1, sizeof(_ms_http_server_s));
+ ms_server = (_ms_http_server_s *) calloc(1, sizeof(_ms_http_server_s));
ms_retvm_if(ms_server == NULL, MEDIA_STREAMER_ERROR_INVALID_OPERATION, "Error allocation memory");
- const int iport = atoi(port);
+ iport = atoi(port);
ms_server->server = soup_server_new(SOUP_SERVER_PORT, iport, NULL);
if (!ms_server->server) {
ms_info("http server created successfully");
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
int __ms_http_server_destroy(media_streamer_http_server_h server)
{
- ms_retvm_if(server == NULL, MEDIA_STREAMER_ERROR_NONE, "Handle is NULL");
_ms_http_server_s *hserver = (_ms_http_server_s *) server;
+ ms_debug_fenter();
+
+ ms_retvm_if(hserver == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "server is NULL");
+
/* Stop server first */
__ms_http_server_stop(server);
/* Destroy URIs hash table */
- g_hash_table_destroy(hserver->uri_table);
+ if (hserver->uri_table) {
+ g_hash_table_destroy(hserver->uri_table);
+ } else {
+ ms_error("uri_table is NULL");
+ }
if (hserver->server)
g_object_unref(hserver->server);
MS_SAFE_GFREE(hserver);
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
int __ms_http_server_start(media_streamer_http_server_h server)
{
- ms_retvm_if(server == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
-
_ms_http_server_s *hserver = (_ms_http_server_s *) server;
+ ms_debug_fenter();
+
+ ms_retvm_if(hserver == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "server is NULL");
+ ms_retvm_if(hserver->server == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "hserver->server is NULL");
+
soup_server_add_handler(hserver->server, NULL,
__ms_http_server_connection_handle_cb, hserver, NULL);
soup_server_run_async(hserver->server);
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
int __ms_http_server_stop(media_streamer_http_server_h server)
{
- ms_retvm_if(server == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
_ms_http_server_s *hserver = (_ms_http_server_s *) server;
+ ms_debug_fenter();
+
+ ms_retvm_if(hserver == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "server is NULL");
+ ms_retvm_if(hserver->server == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "hserver->server is NULL");
+
soup_server_disconnect(hserver->server);
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
int __ms_http_server_register_uri(media_streamer_http_server_h server, char *uri, char *file_path)
{
- ms_retvm_if(server == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
+ _ms_http_server_s *hserver = (_ms_http_server_s *) server;
+
+ ms_retvm_if(hserver == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "server is NULL");
ms_retvm_if(uri == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "URI address is NULL");
ms_retvm_if(file_path == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "File path is NULL");
- _ms_http_server_s *hserver = (_ms_http_server_s *) server;
+ ms_debug_fenter();
if (!hserver->uri_table) {
ms_error("Failed to register URI. Table is NULL");
g_hash_table_insert(hserver->uri_table, uri, file_path);
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
int __ms_http_server_unregister_uri(media_streamer_http_server_h server, char *uri)
{
- ms_retvm_if(server == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
- ms_retvm_if(uri == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "URI address is NULL");
-
_ms_http_server_s *hserver = (_ms_http_server_s *) server;
+ ms_debug_fenter();
+
+ ms_retvm_if(hserver == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "server is NULL");
+ ms_retvm_if(uri == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "URI address is NULL");
+
if (!hserver->uri_table) {
ms_error("Failed to unregister URI. Table is NULL");
return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
}
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
struct stat stat_results = {0, };
int file_open = 0;
+ ms_debug_fenter();
+
+ ms_retvm_if(content == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "content is NULL");
+ ms_retvm_if(size == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "size is NULL");
+
if (!file_path || !strlen(file_path))
return MEDIA_STREAMER_ERROR_INVALID_PARAMETER;
close(file_open);
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
const char *path, GHashTable *query, SoupClientContext *client, gpointer user_data)
{
_ms_http_server_s *hserver = (_ms_http_server_s *) user_data;
-
- /* Close connetion if handle is NULL */
- ms_retm_if(hserver == NULL, "Handle is NULL");
-
SoupMessageHeadersIter iter;
const char *name, *value;
+ char *content = NULL;
+ gsize size = 0;
+ char *mime_type = NULL;
+ char *fs_dir = NULL;
+ char *file_path = NULL;
+ const char *extension = NULL;
+
+ /* Close connetion if handle is NULL */
+ ms_retm_if(hserver == NULL, "server is NULL");
+ ms_retm_if(msg == NULL || msg->method == NULL || msg->request_headers == NULL, "msg is NULL");
+ ms_retm_if(path == NULL, "path is NULL");
ms_debug("%s %s HTTP/1.%d", msg->method, path,
soup_message_get_http_version(msg));
soup_message_headers_iter_init(&iter, msg->request_headers);
while (soup_message_headers_iter_next(&iter, &name, &value))
ms_debug("%s: %s", name, value);
- if (msg->request_body->length)
+ if (msg->request_body->length && msg->request_body->data)
ms_debug("%s", msg->request_body->data);
if (msg->method == SOUP_METHOD_GET || msg->method == SOUP_METHOD_HEAD) {
ms_info("Received read event");
/* Extract file path with URI. First symbol is '/' */
- char *fs_dir = (char *)g_hash_table_lookup(hserver->uri_table, "adaptive_path");
- char *file_path = g_strjoin(NULL, fs_dir, path+1, NULL);
- const char *extension = get_filename_ext(path+1);
- char *content = NULL;
- gsize size = 0;
- char *mime_type = NULL;
+ fs_dir = (char *)g_hash_table_lookup(hserver->uri_table, "adaptive_path");
+ file_path = g_strjoin(NULL, fs_dir, path+1, NULL);
+ extension = get_filename_ext(path+1);
mime_type_get_mime_type(extension, &mime_type);
soup_message_set_status(msg, SOUP_STATUS_NOT_IMPLEMENTED);
soup_message_set_status(msg, SOUP_STATUS_OK);
}
+
+ ms_debug_fleave();
+
}
ms_debug_fenter();
ms_retvm_if(node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
- ms_retvm_if(out_fmt == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "out_fmt is NULL");
sink_caps = in_fmt ? __ms_create_caps_from_fmt(in_fmt) : NULL;
src_caps = out_fmt ? __ms_create_caps_from_fmt(out_fmt) : NULL;
ms_retvm_if(nodes_table == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "nodes_table is NULL");
ms_retvm_if(ms_node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_node is NULL");
+ ms_retvm_if(ms_node->name == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_node->name is NULL");
if (g_hash_table_contains(nodes_table, ms_node->name)) {
ms_debug("Current Node [%s] already added into Media Streamer", ms_node->name);
ms_retvm_if(item == NULL, FALSE, "item is NULL");
ms_retvm_if(g_ret == NULL, FALSE, "ret is NULL");
- ms_retvm_if(user_data == NULL, FALSE, "user_data is NULL");
ms_debug_fenter();
ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
ms_retvm_if(node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
+ ms_retvm_if(node->gst_element == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node->gst_element is NULL");
/* Create and start http server */
err_code = __ms_http_server_create(&ms_streamer->http_server, NULL, DEFAULT_HTTP_PORT);
ms_debug_fenter();
- ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+ ms_retvm_if(ms_streamer->nodes_table == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer->nodes_table is NULL");
+ ms_retvm_if(ms_streamer->src_bin == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer->src_bin is NULL");
+ ms_retvm_if(ms_streamer->transform_bin == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer->transform_bin is NULL");
rtp_node = (media_streamer_node_s *)g_hash_table_lookup(ms_streamer->nodes_table, "rtp_container");
demux = (media_streamer_node_s *)g_hash_table_find(ms_streamer->nodes_table, (GHRFunc)demux_find, NULL);
ms_retvm_if(ms_streamer == NULL, FALSE, "ms_streamer is NULL");
ms_retvm_if(bin == NULL, FALSE, "bin is NULL");
+ ms_retvm_if(ms_streamer->nodes_table == NULL, FALSE, "ms_streamer->nodes_table is NULL");
bin_iterator = gst_bin_iterate_elements(GST_BIN(bin));
it_res = gst_iterator_next(bin_iterator, &element);
ms_debug_fenter();
ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
+ ms_retvm_if(ms_streamer->nodes_table == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer->nodes_table is NULL");
ret = __ms_state_change(ms_streamer, MEDIA_STREAMER_STATE_IDLE);
if (ret != MEDIA_STREAMER_ERROR_NONE)
ms_retvm_if(item == NULL, FALSE, "item is NULL");
ms_retvm_if(ms_streamer == NULL, FALSE, "ms_streamer is NULL");
+ ms_retvm_if(ms_streamer->nodes_table == NULL, FALSE, "ms_streamer->nodes_table is NULL");
ms_retvm_if(ret == NULL, FALSE, "ret is NULL");
g_value_set_boolean(ret, FALSE);
"microphone",
};
-static void __ms_node_get_dpm_check_needed(media_streamer_node_s *node,
- media_streamer_policy_type_e *policy) {
- int subtype = node->subtype;
+static void __ms_node_get_dpm_check_needed(media_streamer_node_s *node, media_streamer_policy_type_e *policy)
+{
+ int subtype;
+
+ ms_debug_fenter();
+
+ ms_retm_if(node == NULL, "node is NULL");
+ ms_retm_if(policy == NULL, "policy is NULL");
+
+ subtype = node->subtype;
ms_debug("Checking policy for node type %d, subtype %d", node->type, subtype);
switch (subtype) {
case MEDIA_STREAMER_NODE_SRC_TYPE_CAMERA:
case MEDIA_STREAMER_NODE_SRC_TYPE_VIDEO_CAPTURE:
- *policy = POLICY_TYPE_CAMERA;
+ *policy = POLICY_TYPE_CAMERA;
break;
case MEDIA_STREAMER_NODE_SRC_TYPE_AUDIO_CAPTURE:
- *policy = POLICY_TYPE_MIC;
+ *policy = POLICY_TYPE_MIC;
break;
default:
break;
}
+
+ ms_debug_fleave();
+
}
static void __ms_node_policy_changed_cb(const char *name, const char *value, void *user_data)
{
- if (user_data == NULL)
- return;
+ media_streamer_node_s *node;
+ media_streamer_s *streamer;
+
+ ms_debug_fenter();
- media_streamer_node_s *node = (media_streamer_node_s *) user_data;
- media_streamer_s *streamer = (media_streamer_s *) node->parent_streamer;
+ ms_retm_if(user_data == NULL, "user_data is NULL");
+
+ node = (media_streamer_node_s *) user_data;
+ streamer = (media_streamer_s *) node->parent_streamer;
ms_info("Received policy_changed_cb from node [%s]", node->name);
/* Here we perform action to release resources relases that
ms_info("Interuption will not be handled because interrupted_cb is NULL");
}
g_mutex_unlock(&streamer->mutex_lock);
+
+ ms_debug_fleave();
+
}
int __ms_node_policy_init(media_streamer_node_s *node)
int ret = MEDIA_STREAMER_ERROR_NONE;
const char *policy_name = NULL;
+ ms_debug_fenter();
+
+ ms_retvm_if(node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
+
/* Check if node require policy manager */
__ms_node_get_dpm_check_needed(node, &policy);
if (POLICY_TYPE_NONE == policy) {
ms_debug("DPM initialized");
}
+ ms_debug_fleave();
+
return ret;
}
media_streamer_policy_type_e policy = POLICY_TYPE_NONE;
int ret = MEDIA_STREAMER_ERROR_NONE;
+ ms_debug_fenter();
+
+ ms_retvm_if(node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
+
/* Check if node require policy manager */
__ms_node_get_dpm_check_needed(node, &policy);
if (POLICY_TYPE_NONE == policy) {
dpm_manager_destroy(node->dpm_handle);
node->dpm_handle = NULL;
+ ms_debug_fleave();
+
return ret;
}
int dpm_state = DPM_ALLOWED;
int dpm_ret = DPM_ERROR_NONE;
+ ms_debug_fenter();
+
+ ms_retvm_if(node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
+
/* Check if node require policy manager */
__ms_node_get_dpm_check_needed(node, &policy);
if (POLICY_TYPE_NONE == policy) {
ms_info("get DPM state failed, continue too work");
}
+ ms_debug_fleave();
+
return ret;
}
static gboolean __ms_node_resources_is_needed_by_platform(media_streamer_node_s *node)
{
- media_streamer_node_type_e type = node->type;
- int subtype = node->subtype;
char *model_name, *platform_processor;
gboolean ret = FALSE;
+ media_streamer_node_type_e type;
+ int subtype;
+
+ ms_debug_fenter();
+
+ ms_retvm_if(node == NULL, FALSE, "node is NULL");
+
+ type = node->type;
+ subtype = node->subtype;
/* Checking for model_name and processor because some resources
are platform dependent */
MS_SAFE_FREE(model_name);
MS_SAFE_FREE(platform_processor);
+ ms_debug_fleave();
+
return ret;
}
-static gboolean __ms_node_get_resources_needed(media_streamer_node_s *node,
- mm_resource_manager_res_type_e *resource) {
- media_streamer_node_type_e type = node->type;
- int subtype = node->subtype;
+static gboolean __ms_node_get_resources_needed(media_streamer_node_s *node, mm_resource_manager_res_type_e *resource)
+{
+ media_streamer_node_type_e type;
+ int subtype;
+
+ ms_debug_fenter();
+
+ ms_retvm_if(node == NULL, FALSE, "node is NULL");
+ ms_retvm_if(resource == NULL, FALSE, "resource is NULL");
+
+ type = node->type;
+ subtype = node->subtype;
ms_debug("Checking resources for node type %d, subtype %d", type, subtype);
break;
}
+ ms_debug_fleave();
+
return FALSE;
}
int _ms_node_resource_acquire(media_streamer_node_s *node)
{
mm_resource_manager_res_type_e resource;
- mm_resource_manager_h resource_manager = node->parent_streamer->resource_manager;
+ mm_resource_manager_h resource_manager;
+
+ ms_debug_fenter();
+
+ ms_retvm_if(node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
+
+ resource_manager = node->parent_streamer->resource_manager;
/* Check if node require resource manager */
if (!__ms_node_get_resources_needed(node, &resource)) {
return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
}
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
int _ms_node_resource_release(media_streamer_node_s *node)
{
- mm_resource_manager_h resource_manager = node->parent_streamer->resource_manager;
+ mm_resource_manager_h resource_manager;
+
+ ms_debug_fenter();
+
+ ms_retvm_if(node == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
+
+ resource_manager = node->parent_streamer->resource_manager;
if (node->resource == NULL) {
ms_error("Resources were not acquired for Node [%p]. Skipping...", node);
node->resource = NULL;
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
{
int ret = MEDIA_STREAMER_ERROR_NONE;
- ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
ms_retvm_if(ms_streamer->state == state, MEDIA_STREAMER_ERROR_NONE, "Media streamer already in this state");
if (!ms_streamer->is_interrupted) {
}
}
+ ms_debug_fleave();
+
return ret;
}
int __ms_create(media_streamer_s *ms_streamer)
{
int ret = MEDIA_STREAMER_ERROR_NONE;
+
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+
__ms_load_ini_settings(&ms_streamer->ini);
ms_streamer->nodes_table = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, __ms_node_remove_from_table);
return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
}
+ ms_debug_fleave();
+
return ret;
}
int __ms_get_position(media_streamer_s *ms_streamer, int *time)
{
- ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
- ms_retvm_if(time == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Return value is NULL");
-
gint64 current = GST_CLOCK_TIME_NONE;
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+ ms_retvm_if(time == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Return value is NULL");
+
if (!gst_element_query_position(ms_streamer->pipeline, GST_FORMAT_TIME, ¤t)) {
ms_error("Could not query current position.");
return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
ms_info("Media streamer queried position at [%d] msec successfully.", *time);
}
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
int __ms_get_duration(media_streamer_s *ms_streamer, int *time)
{
- ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
- ms_retvm_if(time == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Return value is NULL");
-
gint64 duration = GST_CLOCK_TIME_NONE;
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+ ms_retvm_if(time == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Return value is NULL");
+
if (!gst_element_query_duration(ms_streamer->pipeline, GST_FORMAT_TIME, &duration)) {
ms_error("Could not query current duration.");
return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
ms_info("Media streamer queried duration [%d] msec successfully.", *time);
}
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
int __ms_streamer_seek(media_streamer_s *ms_streamer, int g_time, bool flag)
{
- ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "Handle is NULL");
-
GstSeekFlags seek_flag;
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+
if (flag)
seek_flag = GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE;
else
ms_info("Media streamer pipeline seeked successfully to [%d] position", g_time);
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
{
int ret = MEDIA_STREAMER_ERROR_NONE;
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+
g_mutex_lock(&ms_streamer->mutex_lock);
ret = __ms_state_change(ms_streamer, MEDIA_STREAMER_STATE_NONE);
g_mutex_clear(&ms_streamer->mutex_lock);
MS_SAFE_FREE(ms_streamer);
+ ms_debug_fleave();
+
return ret;
}
{
int ret = MEDIA_STREAMER_ERROR_NONE;
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+
/* Acquire resources for src bin */
ret = __ms_bin_foreach_elements(GST_BIN(ms_streamer->src_bin),
_ms_node_resouces_acquire_iter, ms_streamer);
return ret;
}
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
{
int ret = MEDIA_STREAMER_ERROR_NONE;
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+
/* Release resources for src bin */
ret = __ms_bin_foreach_elements(GST_BIN(ms_streamer->src_bin),
_ms_node_resouces_release_iter, ms_streamer);
return ret;
}
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
{
int ret = MEDIA_STREAMER_ERROR_NONE;
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+
/* According to state graph we need to handle only this two states
* and different transotions into them */
if (state == MEDIA_STREAMER_STATE_IDLE) {
ms_debug("Ignoring state for resource managements");
}
+ ms_debug_fleave();
+
return ret;
}
static gboolean __ms_resource_node_find(gpointer key, gpointer value, gpointer user_data)
{
+ ms_debug_fenter();
+
+ ms_retvm_if(key == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "key is NULL");
+ ms_retvm_if(value == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "value is NULL");
+
+ ms_debug_fleave();
+
return ((media_streamer_node_s *)value)->resource ==
(mm_resource_manager_res_h)user_data;
}
static int __ms_resource_release_cb(mm_resource_manager_h rm,
mm_resource_manager_res_h resource_h, void *user_data)
{
- ms_retvm_if(user_data == NULL, FALSE, "user_data is NULL");
-
media_streamer_s *streamer = (media_streamer_s *) user_data;
media_streamer_node_s *node;
+
+ ms_debug_fenter();
+
+ ms_retvm_if(resource_h == NULL, FALSE, "resource_h is NULL");
+ ms_retvm_if(streamer == NULL, FALSE, "user_data is NULL");
+
ms_info("Received release_cb for streamer %p", streamer);
/* Here we perform action to release resources that
}
g_mutex_unlock(&streamer->mutex_lock);
+ ms_debug_fleave();
+
return FALSE;
}
{
int ret = MEDIA_STREAMER_ERROR_NONE;
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+
/* Acquire resources for src bin */
ret = __ms_bin_foreach_elements(GST_BIN(ms_streamer->src_bin),
_ms_node_policy_check_iter, ms_streamer);
return ret;
}
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
{
int ret = MEDIA_STREAMER_ERROR_NONE;
+ ms_debug_fenter();
+
+ ms_retvm_if(ms_streamer == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "ms_streamer is NULL");
+
/* According to state graph we need to handle only this state
* and different transotions into them */
if (state == MEDIA_STREAMER_STATE_READY) {
ms_debug("Ignoring state for policy managements");
}
+ ms_debug_fleave();
+
return ret;
}
{
gchar *result_str = NULL;
+ ms_debug_fenter();
+
ms_retvm_if(ini_path == NULL, NULL, "Invalid ini path");
if (__ms_get_ini_instance() == NULL) {
else
result_str = default_str;
}
+
+ ms_debug_fleave();
+
return result_str ? g_strdup(result_str) : NULL;
}
dictionary *__ms_get_ini_instance(void)
{
static dictionary *instance = NULL;
+
+ ms_debug_fenter();
+
if (NULL == instance) {
dictionary *ms_dict = NULL;
__ms_check_ini_status();
instance = ms_dict;
}
+ ms_debug_fleave();
+
return instance;
}
void __ms_ini_read_list(const char *key, gchar ***list)
{
+ char *str;
+
+ ms_debug_fenter();
+
ms_retm_if(!__ms_get_ini_instance() || !list || !key, "Handle is NULL");
/* Read exclude elements list */
- gchar *str = iniparser_getstring(__ms_get_ini_instance(), key, NULL);
+ str = iniparser_getstring(__ms_get_ini_instance(), key, NULL);
if (str && strlen(str) > 0) {
gchar *strtmp = g_strdup(str);
g_strstrip(strtmp);
*list = g_strsplit(strtmp, ",", 10);
MS_SAFE_FREE(strtmp);
}
+
+ ms_debug_fleave();
+
}
void __ms_load_ini_settings(media_streamer_ini_t *ini)
{
+
+ ms_debug_fenter();
+
/* get ini values */
memset(ini, 0, sizeof(media_streamer_ini_t));
/* general */
ms_debug("Media Streamer param [generate_dot] : %d", ini->generate_dot);
ms_debug("Media Streamer param [use_decodebin] : %d", ini->use_decodebin);
+
+ ms_debug_fleave();
+
}
static void __ms_check_ini_status(void)
int file_size = 0;
int status = 0;
+ ms_debug_fenter();
+
if (fp == NULL) {
ms_debug("Failed to get media streamer ini file.");
} else {
ms_error("failed to delete corrupted ini");
}
}
+
+ ms_debug_fleave();
+
}
const gchar *__ms_convert_mime_to_string_format(media_format_mimetype_e mime)
{
gchar *format_name = NULL;
int it_format;
+
+ ms_debug_fenter();
+
for (it_format = 0; format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
if (mime == format_table[it_format].format) {
format_name = format_table[it_format].format_name;
}
}
+ ms_debug_fleave();
+
return format_name;
}
{
media_format_mimetype_e mime = MEDIA_FORMAT_NATIVE_VIDEO;
int it_format;
+
+ ms_debug_fenter();
+
for (it_format = 0; format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
if (g_strrstr(format_type, format_table[it_format].format_name)) {
mime = format_table[it_format].format;
}
}
+ ms_debug_fleave();
+
return mime;
}
void __ms_signal_create(GList **sig_list, GstElement *obj, const char *sig_name, GCallback cb, gpointer user_data)
{
+ media_streamer_signal_s *sig_data;
+
+ ms_debug_fenter();
+
ms_retm_if(!sig_list || !obj || !sig_name, "Empty signal data!");
- media_streamer_signal_s *sig_data = (media_streamer_signal_s *) g_try_malloc(sizeof(media_streamer_signal_s));
+ sig_data = (media_streamer_signal_s *) g_try_malloc(sizeof(media_streamer_signal_s));
if (!sig_data) {
ms_error("Failed to create signal [%s] for object [%s]", sig_name, GST_OBJECT_NAME(obj));
return;
ms_error("Failed to connect signal [%s] for object [%s]", sig_name, GST_OBJECT_NAME(obj));
MS_SAFE_GFREE(sig_data);
}
+
+ ms_debug_fleave();
}
void __ms_signal_destroy(void *data)
{
media_streamer_signal_s *sig_data = (media_streamer_signal_s *) data;
+
+ ms_debug_fenter();
+
ms_retm_if(!sig_data, "Empty signal data!");
if (sig_data->obj && GST_IS_ELEMENT(sig_data->obj)) {
}
}
MS_SAFE_GFREE(sig_data);
+
+ ms_debug_fleave();
}
void __ms_param_value_destroy(gpointer data)
{
GValue *val = (GValue *)data;
+
+ ms_debug_fenter();
+
ms_retm_if(!data, "Empty object data!");
if (GST_VALUE_HOLDS_CAPS(val)) {
g_value_unset(val);
}
MS_SAFE_GFREE(val);
+
+ ms_debug_fleave();
}
int __ms_util_uri_path_check(const char *file_uri)
struct stat stat_results = {0, };
int file_open = 0;
+ ms_debug_fenter();
+
if (!file_uri || !strlen(file_uri))
return MEDIA_STREAMER_ERROR_INVALID_PARAMETER;
close(file_open);
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}
{
media_streamer_s *streamer = (media_streamer_s *) user_data;
+ ms_debug_fenter();
+
if (!GST_BIN_NUMCHILDREN(bin)) {
ms_debug("No elements were added to bin [%s]. Skipping... ",
GST_ELEMENT_NAME(bin));
break;
}
+ ms_debug_fleave();
+
return MEDIA_STREAMER_ERROR_NONE;
}