}
//LCOV_EXCL_START
-/* The appsink has got eos */
-static void sink_eos(GstElement *sink, gpointer *data)
+static void __ms_sink_eos_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_eos_cb eos_cb = NULL;
- ms_debug_fenter();
-
ms_retm_if(ms_sink == NULL, "data is NULL");
- if (ms_sink->callbacks_structure != NULL) {
- sink_callbacks = (media_streamer_sink_callbacks_s *) ms_sink->callbacks_structure;
- eos_cb = (media_streamer_sink_eos_cb) sink_callbacks->eos_cb.callback;
-
- if (eos_cb)
- eos_cb((media_streamer_node_h) ms_sink, sink_callbacks->eos_cb.user_data);
+ if (!ms_sink->callbacks_structure) {
+ ms_debug("callbacks_structure is NULL");
+ return;
}
- ms_debug_fleave();
+ sink_callbacks = (media_streamer_sink_callbacks_s *) ms_sink->callbacks_structure;
+ eos_cb = (media_streamer_sink_eos_cb) sink_callbacks->eos_cb.callback;
+
+ if (eos_cb) {
+ ms_debug("=====> invoke eos callback(%p)", eos_cb);
+ eos_cb((media_streamer_node_h) ms_sink, sink_callbacks->eos_cb.user_data);
+ ms_debug("<===== end of the callback");
+ } else {
+ ms_debug("eos callback is NULL");
+ }
}
//LCOV_EXCL_STOP
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_sample_cb), node);
- ms_signal_create(&node->sig_list, node->gst_element, "eos", G_CALLBACK(sink_eos), node);
+ ms_signal_create(&node->sig_list, node->gst_element, "eos", G_CALLBACK(__ms_sink_eos_cb), node);
}
break;
case MEDIA_STREAMER_NODE_SINK_TYPE_ADAPTIVE: