From: Sangchul Lee Date: Mon, 29 Mar 2021 11:13:19 +0000 (+0900) Subject: media_streamer_node: Return missing GstFlowReturn value at the end of new-sample... X-Git-Tag: submit/tizen/20210401.070457~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F11%2F256111%2F1;p=platform%2Fcore%2Fapi%2Fmediastreamer.git media_streamer_node: Return missing GstFlowReturn value at the end of new-sample signal callback Log are added and function name is renamed. [Version] 0.1.136 [Issue type] Bug fix Change-Id: Ifccbc0a7b35b928100ff75966214bc6cec257223 Signed-off-by: Sangchul Lee --- diff --git a/packaging/capi-media-streamer.spec b/packaging/capi-media-streamer.spec index bc5b87e..8c28c9a 100644 --- a/packaging/capi-media-streamer.spec +++ b/packaging/capi-media-streamer.spec @@ -1,6 +1,6 @@ Name: capi-media-streamer Summary: A Media Streamer API -Version: 0.1.135 +Version: 0.1.136 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/media_streamer_node.c b/src/media_streamer_node.c index 585537a..57e455b 100644 --- a/src/media_streamer_node.c +++ b/src/media_streamer_node.c @@ -1149,25 +1149,31 @@ int ms_src_node_create(media_streamer_node_s *node) } /* The appsink has received a buffer */ -static void __ms_sink_new_buffer_cb(GstElement *sink, gpointer *data) +static GstFlowReturn __ms_sink_new_sample_cb(GstElement *sink, gpointer *data) { - media_streamer_node_s *ms_sink = (media_streamer_node_s *) data; - media_streamer_sink_callbacks_s *sink_callbacks = NULL; - media_streamer_sink_data_ready_cb data_ready_cb = NULL; + media_streamer_node_s *ms_sink = (media_streamer_node_s *)data; + media_streamer_sink_callbacks_s *sink_callbacks; + media_streamer_sink_data_ready_cb data_ready_cb; - ms_debug_fenter(); + ms_retvm_if(ms_sink == NULL, GST_FLOW_ERROR, "data is NULL"); - ms_retm_if(ms_sink == NULL, "data is NULL"); + if (!ms_sink->callbacks_structure) { + ms_debug("callbacks_structure is NULL"); + return GST_FLOW_OK; + } - if (ms_sink->callbacks_structure != NULL) { - sink_callbacks = (media_streamer_sink_callbacks_s *) ms_sink->callbacks_structure; - data_ready_cb = (media_streamer_sink_data_ready_cb) sink_callbacks->data_ready_cb.callback; + sink_callbacks = (media_streamer_sink_callbacks_s *)ms_sink->callbacks_structure; + data_ready_cb = (media_streamer_sink_data_ready_cb)sink_callbacks->data_ready_cb.callback; - if (data_ready_cb) - data_ready_cb((media_streamer_node_h) ms_sink, sink_callbacks->data_ready_cb.user_data); + if (data_ready_cb) { + ms_debug("=====> invoke data ready callback(%p)", data_ready_cb); + data_ready_cb((media_streamer_node_h)ms_sink, sink_callbacks->data_ready_cb.user_data); + ms_debug("<===== end of the callback"); + } else { + ms_debug("data ready callback is NULL"); } - ms_debug_fleave(); + return GST_FLOW_OK; } //LCOV_EXCL_START @@ -1244,7 +1250,7 @@ int ms_sink_node_create(media_streamer_node_s *node) node->gst_element = ms_element_create(plugin_name, NULL); if (node->gst_element) { g_object_set(G_OBJECT(node->gst_element), "emit-signals", TRUE, NULL); - ms_signal_create(&node->sig_list, node->gst_element, "new-sample", G_CALLBACK(__ms_sink_new_buffer_cb), node); + ms_signal_create(&node->sig_list, node->gst_element, "new-sample", G_CALLBACK(__ms_sink_new_sample_cb), node); ms_signal_create(&node->sig_list, node->gst_element, "eos", G_CALLBACK(sink_eos), node); } break;