diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-pipeline.c.gcov.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-pipeline.c.gcov.html
index c51491c5..706201ce 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-pipeline.c.gcov.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-pipeline.c.gcov.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-pipeline.c
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-pipeline.c
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
82.6 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
94.0 %
@@ -315,69 +315,69 @@
253 : * @brief Internal function to get the tensors info from the element caps. 254 : */ 255 : static gboolean
- 256 12436 : get_tensors_info_from_caps (GstCaps * caps, GstTensorsInfo * info,
+ 256 13126 : get_tensors_info_from_caps (GstCaps * caps, GstTensorsInfo * info, 257 : gboolean * is_flexible) 258 : { 259 : GstStructure *s; 260 : GstTensorsConfig config; 261 : guint i, n_caps;
- 262 12436 : gboolean found = FALSE;
+ 262 13126 : gboolean found = FALSE; 263 :
- 264 12436 : n_caps = gst_caps_get_size (caps);
+ 264 13126 : n_caps = gst_caps_get_size (caps); 265 :
- 266 12443 : for (i = 0; i < n_caps; i++) {
- 267 12437 : s = gst_caps_get_structure (caps, i);
- 268 12437 : found = gst_tensors_config_from_structure (&config, s);
+ 266 13133 : for (i = 0; i < n_caps; i++) {
+ 267 13127 : s = gst_caps_get_structure (caps, i);
+ 268 13127 : found = gst_tensors_config_from_structure (&config, s); 269 :
- 270 12437 : if (found) {
- 271 12430 : gst_tensors_info_free (info);
- 272 12430 : gst_tensors_info_copy (info, &config.info);
- 273 12430 : *is_flexible = gst_tensors_config_is_flexible (&config);
+ 270 13127 : if (found) {
+ 271 13120 : gst_tensors_info_free (info);
+ 272 13120 : gst_tensors_info_copy (info, &config.info);
+ 273 13120 : *is_flexible = gst_tensors_config_is_flexible (&config); 274 : } 275 :
- 276 12437 : gst_tensors_config_free (&config);
- 277 12437 : if (found)
- 278 12430 : break;
+ 276 13127 : gst_tensors_config_free (&config);
+ 277 13127 : if (found)
+ 278 13120 : break; 279 : } 280 :
- 281 12436 : return found;
+ 281 13126 : return found; 282 : } 283 : 284 : /** 285 : * @brief Handle a sink element for registered ml_pipeline_sink_cb 286 : */ 287 : static void
- 288 6251 : cb_sink_event (GstElement * e, GstBuffer * b, gpointer user_data)
+ 288 6598 : cb_sink_event (GstElement * e, GstBuffer * b, gpointer user_data) 289 : {
- 290 6251 : ml_pipeline_element *elem = user_data;
+ 290 6598 : ml_pipeline_element *elem = user_data; 291 : 292 : /** @todo CRITICAL if the pipeline is being killed, don't proceed! */ 293 : GstMemory *mem[ML_TENSOR_SIZE_LIMIT]; 294 : GstMapInfo map[ML_TENSOR_SIZE_LIMIT]; 295 : guint i, num_tensors; 296 : GList *l;
- 297 6251 : ml_tensors_data_s *_data = NULL;
+ 297 6598 : ml_tensors_data_s *_data = NULL; 298 : GstTensorsInfo gst_info; 299 : int status; 300 :
- 301 6251 : gst_tensors_info_init (&gst_info);
- 302 6251 : gst_info.num_tensors = num_tensors = gst_tensor_buffer_get_count (b);
+ 301 6598 : gst_tensors_info_init (&gst_info);
+ 302 6598 : gst_info.num_tensors = num_tensors = gst_tensor_buffer_get_count (b); 303 : 304 : /* Set tensor data. The handle for tensors-info in data should be added. */ 305 : status =
- 306 6251 : _ml_tensors_data_create_no_alloc (NULL, (ml_tensors_data_h *) & _data);
- 307 6251 : if (status != ML_ERROR_NONE) {
+ 306 6598 : _ml_tensors_data_create_no_alloc (NULL, (ml_tensors_data_h *) & _data);
+ 307 6598 : if (status != ML_ERROR_NONE) { 308 0 : _ml_loge (_ml_detail 309 : ("Failed to allocate memory for tensors data in sink callback, which is registered by ml_pipeline_sink_register ()."));
- 310 6251 : return;
+ 310 6598 : return; 311 : } 312 :
- 313 6251 : g_mutex_lock (&elem->lock);
+ 313 6598 : g_mutex_lock (&elem->lock); 314 :
- 315 6251 : _data->num_tensors = num_tensors;
- 316 12979 : for (i = 0; i < num_tensors; i++) {
- 317 6728 : mem[i] = gst_tensor_buffer_get_nth_memory (b, i);
- 318 6728 : if (!gst_memory_map (mem[i], &map[i], GST_MAP_READ)) {
+ 315 6598 : _data->num_tensors = num_tensors;
+ 316 13673 : for (i = 0; i < num_tensors; i++) {
+ 317 7075 : mem[i] = gst_tensor_buffer_get_nth_memory (b, i);
+ 318 7075 : if (!gst_memory_map (mem[i], &map[i], GST_MAP_READ)) { 319 0 : _ml_loge (_ml_detail 320 : ("Failed to map the output in sink '%s' callback, which is registered by ml_pipeline_sink_register ()", 321 : elem->name));
@@ -386,12 +386,12 @@
324 0 : goto error; 325 : } 326 :
- 327 6728 : _data->tensors[i].data = map[i].data;
- 328 6728 : _data->tensors[i].size = map[i].size;
+ 327 7075 : _data->tensors[i].data = map[i].data;
+ 328 7075 : _data->tensors[i].size = map[i].size; 329 : } 330 : 331 : /** @todo This assumes that padcap is static */
- 332 6251 : if (elem->sink == NULL) {
+ 332 6598 : if (elem->sink == NULL) { 333 28 : gboolean found = FALSE; 334 28 : gboolean flexible = FALSE; 335 :
@@ -423,7 +423,7 @@
361 : } 362 : 363 : /* Prepare output and set data. */
- 364 6251 : if (elem->is_flexible_tensor) {
+ 364 6598 : if (elem->is_flexible_tensor) { 365 : GstTensorMetaInfo meta; 366 : gsize hsize; 367 :
@@ -439,10 +439,10 @@
377 9 : _data->tensors[i].size = map[i].size - hsize; 378 : } 379 : } else {
- 380 6248 : gst_tensors_info_copy (&gst_info, &elem->tensors_info);
+ 380 6595 : gst_tensors_info_copy (&gst_info, &elem->tensors_info); 381 : 382 : /* Compare output info and buffer if gst-buffer is not flexible. */
- 383 6248 : if (gst_info.num_tensors != num_tensors) {
+ 383 6595 : if (gst_info.num_tensors != num_tensors) { 384 0 : _ml_loge (_ml_detail 385 : ("The sink event of [%s] cannot be handled because the number of tensors mismatches.", 386 : elem->name));
@@ -452,15 +452,15 @@
390 0 : goto error; 391 : } 392 :
- 393 12967 : for (i = 0; i < num_tensors; i++) {
- 394 6719 : size_t sz = gst_tensors_info_get_size (&gst_info, i);
+ 393 13661 : for (i = 0; i < num_tensors; i++) {
+ 394 7066 : size_t sz = gst_tensors_info_get_size (&gst_info, i); 395 : 396 : /* Not configured, yet. */
- 397 6719 : if (sz == 0)
+ 397 7066 : if (sz == 0) 398 0 : _ml_loge (_ml_detail 399 : ("The caps for sink(%s) is not configured.", elem->name)); 400 :
- 401 6719 : if (sz != map[i].size) {
+ 401 7066 : if (sz != map[i].size) { 402 0 : _ml_loge (_ml_detail 403 : ("The sink event of [%s] cannot be handled because the tensor dimension mismatches.", 404 : elem->name));
@@ -473,35 +473,35 @@
411 : } 412 : 413 : /* Create new output info, data handle should be updated here. */
- 414 6251 : _ml_tensors_info_create_from_gst (&_data->info, &gst_info);
+ 414 6598 : _ml_tensors_info_create_from_gst (&_data->info, &gst_info); 415 : 416 : /* Iterate e->handles, pass the data to them */
- 417 12508 : for (l = elem->handles; l != NULL; l = l->next) {
+ 417 13202 : for (l = elem->handles; l != NULL; l = l->next) { 418 : ml_pipeline_sink_cb callback;
- 419 6257 : ml_pipeline_common_elem *sink = l->data;
- 420 6257 : if (sink->callback_info == NULL)
+ 419 6604 : ml_pipeline_common_elem *sink = l->data;
+ 420 6604 : if (sink->callback_info == NULL) 421 3 : continue; 422 :
- 423 6254 : callback = sink->callback_info->sink_cb;
- 424 6254 : if (callback)
- 425 6254 : callback (_data, _data->info, sink->callback_info->sink_pdata);
+ 423 6601 : callback = sink->callback_info->sink_cb;
+ 424 6601 : if (callback)
+ 425 6601 : callback (_data, _data->info, sink->callback_info->sink_pdata); 426 : 427 : /** @todo Measure time. Warn if it takes long. Kill if it takes too long. */ 428 : } 429 :
- 430 6251 : error:
- 431 6251 : g_mutex_unlock (&elem->lock);
+ 430 6598 : error:
+ 431 6598 : g_mutex_unlock (&elem->lock); 432 :
- 433 12979 : for (i = 0; i < num_tensors; i++) {
- 434 6728 : gst_memory_unmap (mem[i], &map[i]);
- 435 6728 : gst_memory_unref (mem[i]);
+ 433 13673 : for (i = 0; i < num_tensors; i++) {
+ 434 7075 : gst_memory_unmap (mem[i], &map[i]);
+ 435 7075 : gst_memory_unref (mem[i]); 436 : } 437 :
- 438 6251 : _ml_tensors_data_destroy_internal (_data, FALSE);
- 439 6251 : _data = NULL;
+ 438 6598 : _ml_tensors_data_destroy_internal (_data, FALSE);
+ 439 6598 : _data = NULL; 440 :
- 441 6251 : gst_tensors_info_free (&gst_info);
- 442 6251 : return;
+ 441 6598 : gst_tensors_info_free (&gst_info);
+ 442 6598 : return; 443 : } 444 : 445 : /**
@@ -1559,29 +1559,29 @@
1497 : * @brief Parse tensors info of src element. 1498 : */ 1499 : static int
- 1500 12408 : ml_pipeline_src_parse_tensors_info (ml_pipeline_element * elem)
+ 1500 13098 : ml_pipeline_src_parse_tensors_info (ml_pipeline_element * elem) 1501 : {
- 1502 12408 : GstCaps *caps = NULL;
- 1503 12408 : gboolean found = FALSE, flexible = FALSE;
+ 1502 13098 : GstCaps *caps = NULL;
+ 1503 13098 : gboolean found = FALSE, flexible = FALSE; 1504 :
- 1505 12408 : if (elem->src == NULL) {
+ 1505 13098 : if (elem->src == NULL) { 1506 41 : elem->src = gst_element_get_static_pad (elem->element, "src"); 1507 : } 1508 :
- 1509 12408 : if (elem->src == NULL) {
+ 1509 13098 : if (elem->src == NULL) { 1510 0 : _ml_error_report 1511 : ("Failed to get the src pad of the element[%s]. The designated source element does not have available src pad? For the detail, please check the GStreamer log messages.", 1512 : elem->name);
- 1513 12408 : return ML_ERROR_STREAMS_PIPE;
+ 1513 13098 : return ML_ERROR_STREAMS_PIPE; 1514 : } 1515 : 1516 : /* If caps is given, use it. e.g. Use cap "image/png" when the pipeline is */ 1517 : /* given as "appsrc caps=image/png ! pngdec ! ... " */
- 1518 12408 : caps = gst_pad_get_current_caps (elem->src);
- 1519 12408 : if (!caps)
- 1520 12344 : caps = gst_pad_get_allowed_caps (elem->src);
+ 1518 13098 : caps = gst_pad_get_current_caps (elem->src);
+ 1519 13098 : if (!caps)
+ 1520 13034 : caps = gst_pad_get_allowed_caps (elem->src); 1521 :
- 1522 12408 : if (!caps) {
+ 1522 13098 : if (!caps) { 1523 0 : _ml_logw 1524 : ("Cannot find caps. The pipeline is not yet negotiated for src element [%s].", 1525 : elem->name);
@@ -1590,10 +1590,10 @@
1528 0 : return ML_ERROR_TRY_AGAIN; 1529 : } 1530 :
- 1531 12408 : found = get_tensors_info_from_caps (caps, &elem->tensors_info, &flexible);
+ 1531 13098 : found = get_tensors_info_from_caps (caps, &elem->tensors_info, &flexible); 1532 :
- 1533 12408 : if (found) {
- 1534 12402 : elem->is_flexible_tensor = flexible;
+ 1533 13098 : if (found) {
+ 1534 13092 : elem->is_flexible_tensor = flexible; 1535 : } else { 1536 6 : if (gst_caps_is_fixed (caps)) { 1537 5 : GstStructure *st = gst_caps_get_structure (caps, 0);
@@ -1601,8 +1601,8 @@
1539 : } 1540 : } 1541 :
- 1542 12408 : gst_caps_unref (caps);
- 1543 12408 : return ML_ERROR_NONE;
+ 1542 13098 : gst_caps_unref (caps);
+ 1543 13098 : return ML_ERROR_NONE; 1544 : } 1545 : 1546 : /**
@@ -1698,7 +1698,7 @@
1636 : * @brief Push a data frame to a src (more info in nnstreamer.h) 1637 : */ 1638 : int
- 1639 6225 : ml_pipeline_src_input_data (ml_pipeline_src_h h, ml_tensors_data_h data,
+ 1639 6570 : ml_pipeline_src_input_data (ml_pipeline_src_h h, ml_tensors_data_h data, 1640 : ml_pipeline_buf_policy_e policy) 1641 : { 1642 : GstBuffer *buffer;
@@ -1710,18 +1710,18 @@
1648 : ml_tensors_data_s *_data; 1649 : unsigned int i; 1650 :
- 1651 12450 : handle_init (src, h);
+ 1651 13140 : handle_init (src, h); 1652 :
- 1653 6225 : _data = (ml_tensors_data_s *) data;
- 1654 6225 : if (!_data) {
+ 1653 6570 : _data = (ml_tensors_data_s *) data;
+ 1654 6570 : if (!_data) { 1655 1 : _ml_error_report 1656 : ("The given parameter, data (ml_tensors_data_h), is NULL. It should be a valid ml_tensor_data_h instance, which is usually created by ml_tensors_data_create()."); 1657 1 : ret = ML_ERROR_INVALID_PARAMETER; 1658 1 : goto unlock_return; 1659 : }
- 1660 6224 : G_LOCK_UNLESS_NOLOCK (*_data);
+ 1660 6569 : G_LOCK_UNLESS_NOLOCK (*_data); 1661 :
- 1662 6224 : if (_data->num_tensors < 1 || _data->num_tensors > ML_TENSOR_SIZE_LIMIT) {
+ 1662 6569 : if (_data->num_tensors < 1 || _data->num_tensors > ML_TENSOR_SIZE_LIMIT) { 1663 0 : _ml_error_report 1664 : ("The number of tensors of the given data (ml_tensors_data_h) is invalid. The number of tensors of data is %u. It should be between 1 and %u.", 1665 : _data->num_tensors, ML_TENSOR_SIZE_LIMIT);
@@ -1729,9 +1729,9 @@
1667 0 : goto dont_destroy_data; 1668 : } 1669 :
- 1670 6224 : ret = ml_pipeline_src_parse_tensors_info (elem);
+ 1670 6569 : ret = ml_pipeline_src_parse_tensors_info (elem); 1671 :
- 1672 6224 : if (ret != ML_ERROR_NONE) {
+ 1672 6569 : if (ret != ML_ERROR_NONE) { 1673 0 : if (ret == ML_ERROR_TRY_AGAIN) 1674 0 : _ml_error_report_continue 1675 : ("The pipeline is not ready to accept input streams. The input is ignored.");
@@ -1741,8 +1741,8 @@
1679 0 : goto dont_destroy_data; 1680 : } 1681 :
- 1682 6224 : if (!elem->is_media_stream && !elem->is_flexible_tensor) {
- 1683 6217 : if (elem->tensors_info.num_tensors != _data->num_tensors) {
+ 1682 6569 : if (!elem->is_media_stream && !elem->is_flexible_tensor) {
+ 1683 6562 : if (elem->tensors_info.num_tensors != _data->num_tensors) { 1684 0 : _ml_error_report 1685 : ("The src push of [%s] cannot be handled because the number of tensors in a frame mismatches. %u != %u", 1686 : elem->name, elem->tensors_info.num_tensors, _data->num_tensors);
@@ -1751,10 +1751,10 @@
1689 0 : goto dont_destroy_data; 1690 : } 1691 :
- 1692 12587 : for (i = 0; i < _data->num_tensors; i++) {
- 1693 6372 : size_t sz = gst_tensors_info_get_size (&elem->tensors_info, i);
+ 1692 13277 : for (i = 0; i < _data->num_tensors; i++) {
+ 1693 6717 : size_t sz = gst_tensors_info_get_size (&elem->tensors_info, i); 1694 :
- 1695 6372 : if (sz != _data->tensors[i].size) {
+ 1695 6717 : if (sz != _data->tensors[i].size) { 1696 2 : _ml_error_report 1697 : ("The given input tensor size (%d'th, %zu bytes) mismatches the source pad (%zu bytes)", 1698 : i, _data->tensors[i].size, sz);
@@ -1766,21 +1766,21 @@
1704 : } 1705 : 1706 : /* Create buffer to be pushed from buf[] */
- 1707 6222 : buffer = gst_buffer_new ();
- 1708 6222 : _ml_tensors_info_copy_from_ml (&gst_info, _data->info);
+ 1707 6567 : buffer = gst_buffer_new ();
+ 1708 6567 : _ml_tensors_info_copy_from_ml (&gst_info, _data->info); 1709 :
- 1710 12605 : for (i = 0; i < _data->num_tensors; i++) {
+ 1710 13295 : for (i = 0; i < _data->num_tensors; i++) { 1711 : GstTensorInfo *_gst_tensor_info =
- 1712 6383 : gst_tensors_info_get_nth_info (&gst_info, i);
- 1713 6383 : mem_data = _data->tensors[i].data;
- 1714 6383 : mem_size = _data->tensors[i].size;
+ 1712 6728 : gst_tensors_info_get_nth_info (&gst_info, i);
+ 1713 6728 : mem_data = _data->tensors[i].data;
+ 1714 6728 : mem_size = _data->tensors[i].size; 1715 :
- 1716 6383 : mem = tmp = gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY,
+ 1716 6728 : mem = tmp = gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, 1717 : mem_data, mem_size, 0, mem_size, mem_data, 1718 : (policy == ML_PIPELINE_BUF_POLICY_AUTO_FREE) ? g_free : NULL); 1719 : 1720 : /* flex tensor, append header. */
- 1721 6383 : if (elem->is_flexible_tensor) {
+ 1721 6728 : if (elem->is_flexible_tensor) { 1722 : GstTensorMetaInfo meta; 1723 : 1724 9 : gst_tensor_info_convert_to_meta (_gst_tensor_info, &meta);
@@ -1789,76 +1789,76 @@
1727 9 : gst_memory_unref (tmp); 1728 : } 1729 :
- 1730 6383 : gst_tensor_buffer_append_memory (buffer, mem, _gst_tensor_info);
+ 1730 6728 : gst_tensor_buffer_append_memory (buffer, mem, _gst_tensor_info); 1731 : /** @todo Verify that gst_buffer_append lists tensors/gstmem in the correct order */ 1732 : } 1733 :
- 1734 6222 : gst_tensors_info_free (&gst_info);
+ 1734 6567 : gst_tensors_info_free (&gst_info); 1735 : 1736 : /* Unlock if it's not auto-free. We do not know when it'll be freed. */
- 1737 6222 : if (policy != ML_PIPELINE_BUF_POLICY_AUTO_FREE)
+ 1737 6567 : if (policy != ML_PIPELINE_BUF_POLICY_AUTO_FREE) 1738 55 : G_UNLOCK_UNLESS_NOLOCK (*_data); 1739 : 1740 : /* Push the data! */
- 1741 6222 : gret = gst_app_src_push_buffer (GST_APP_SRC (elem->element), buffer);
+ 1741 6567 : gret = gst_app_src_push_buffer (GST_APP_SRC (elem->element), buffer); 1742 : 1743 : /* Free data ptr if buffer policy is auto-free */
- 1744 6222 : if (policy == ML_PIPELINE_BUF_POLICY_AUTO_FREE) {
- 1745 6167 : G_UNLOCK_UNLESS_NOLOCK (*_data);
- 1746 6167 : _ml_tensors_data_destroy_internal (_data, FALSE);
- 1747 6167 : _data = NULL;
+ 1744 6567 : if (policy == ML_PIPELINE_BUF_POLICY_AUTO_FREE) {
+ 1745 6512 : G_UNLOCK_UNLESS_NOLOCK (*_data);
+ 1746 6512 : _ml_tensors_data_destroy_internal (_data, FALSE);
+ 1747 6512 : _data = NULL; 1748 : } 1749 :
- 1750 6222 : if (gret == GST_FLOW_FLUSHING) {
+ 1750 6567 : if (gret == GST_FLOW_FLUSHING) { 1751 0 : _ml_logw 1752 : ("The pipeline is not in PAUSED/PLAYING. The input may be ignored."); 1753 0 : ret = ML_ERROR_TRY_AGAIN;
- 1754 6222 : } else if (gret == GST_FLOW_EOS) {
+ 1754 6567 : } else if (gret == GST_FLOW_EOS) { 1755 0 : _ml_logw ("THe pipeline is in EOS state. The input is ignored."); 1756 0 : ret = ML_ERROR_STREAMS_PIPE; 1757 : } 1758 :
- 1759 6222 : goto unlock_return;
+ 1759 6567 : goto unlock_return; 1760 : 1761 2 : dont_destroy_data: 1762 2 : G_UNLOCK_UNLESS_NOLOCK (*_data); 1763 :
- 1764 6225 : handle_exit (h);
+ 1764 6570 : handle_exit (h); 1765 : } 1766 : 1767 : /** 1768 : * @brief Internal function to fetch ml_pipeline_src_callbacks_s pointer 1769 : */ 1770 : static ml_pipeline_src_callbacks_s *
- 1771 6137 : get_app_src_callback (ml_pipeline_common_elem * src_h, void **data)
+ 1771 6482 : get_app_src_callback (ml_pipeline_common_elem * src_h, void **data) 1772 : {
- 1773 6137 : ml_pipeline_src_callbacks_s *src_cb = NULL;
+ 1773 6482 : ml_pipeline_src_callbacks_s *src_cb = NULL; 1774 :
- 1775 6137 : if (src_h->callback_info) {
- 1776 6137 : src_cb = &src_h->callback_info->src_cb;
- 1777 6137 : *data = src_h->callback_info->src_pdata;
+ 1775 6482 : if (src_h->callback_info) {
+ 1776 6482 : src_cb = &src_h->callback_info->src_cb;
+ 1777 6482 : *data = src_h->callback_info->src_pdata; 1778 : } 1779 :
- 1780 6137 : return src_cb;
+ 1780 6482 : return src_cb; 1781 : } 1782 : 1783 : /** 1784 : * @brief Internal function for appsrc callback - need_data. 1785 : */ 1786 : static void
- 1787 6137 : _pipe_src_cb_need_data (GstAppSrc * src, guint length, gpointer user_data)
+ 1787 6482 : _pipe_src_cb_need_data (GstAppSrc * src, guint length, gpointer user_data) 1788 : { 1789 : ml_pipeline_common_elem *src_h;
- 1790 6137 : ml_pipeline_src_callbacks_s *src_cb = NULL;
- 1791 6137 : void *pdata = NULL;
+ 1790 6482 : ml_pipeline_src_callbacks_s *src_cb = NULL;
+ 1791 6482 : void *pdata = NULL; 1792 :
- 1793 6137 : src_h = (ml_pipeline_common_elem *) user_data;
- 1794 6137 : if (!src_h)
+ 1793 6482 : src_h = (ml_pipeline_common_elem *) user_data;
+ 1794 6482 : if (!src_h) 1795 0 : return; 1796 :
- 1797 6137 : src_cb = get_app_src_callback (src_h, &pdata);
- 1798 6137 : if (src_cb && src_cb->need_data)
- 1799 6137 : src_cb->need_data (src_h, length, pdata);
+ 1797 6482 : src_cb = get_app_src_callback (src_h, &pdata);
+ 1798 6482 : if (src_cb && src_cb->need_data)
+ 1799 6482 : src_cb->need_data (src_h, length, pdata); 1800 : } 1801 : 1802 : /**
@@ -1944,27 +1944,27 @@
1882 : * @brief Gets a handle for the tensors metadata of given src node. 1883 : */ 1884 : int
- 1885 6141 : ml_pipeline_src_get_tensors_info (ml_pipeline_src_h h, ml_tensors_info_h * info)
+ 1885 6486 : ml_pipeline_src_get_tensors_info (ml_pipeline_src_h h, ml_tensors_info_h * info) 1886 : {
- 1887 6141 : handle_init (src, h);
+ 1887 6486 : handle_init (src, h); 1888 :
- 1889 6141 : if (info == NULL) {
+ 1889 6486 : if (info == NULL) { 1890 0 : _ml_error_report 1891 : ("The parameter, info (ml_tensors_info_h *), is NULL. It should be a valid pointer to a ml_tensors_info_h instance, which is usually created by ml_tensors_info_create()."); 1892 0 : ret = ML_ERROR_INVALID_PARAMETER; 1893 0 : goto unlock_return; 1894 : } 1895 :
- 1896 6141 : ret = ml_pipeline_src_parse_tensors_info (elem);
+ 1896 6486 : ret = ml_pipeline_src_parse_tensors_info (elem); 1897 :
- 1898 6141 : if (ret == ML_ERROR_NONE) {
- 1899 6141 : ret = _ml_tensors_info_create_from_gst (info, &elem->tensors_info);
+ 1898 6486 : if (ret == ML_ERROR_NONE) {
+ 1899 6486 : ret = _ml_tensors_info_create_from_gst (info, &elem->tensors_info); 1900 : } else { 1901 0 : _ml_error_report_continue 1902 : ("ml_pipeline_src_parse_tensors_info () has returned error; it cannot fetch input tensor info (metadata of input stream) for the given ml_pipeline_src_h handle (h). ml_pipeline_src_get_tensors_info () cannot continue."); 1903 : } 1904 :
- 1905 6141 : handle_exit (h);
+ 1905 6486 : handle_exit (h); 1906 : } 1907 : 1908 : /****************************************************
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.func-c.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.func-c.html
index d1586e70..f345ffc6 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.func-c.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.func-c.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c - functions
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c - functions
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
75.1 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
92.3 %
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.func.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.func.html
index 50e86f56..a7e6daf0 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.func.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.func.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c - functions
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c - functions
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
75.1 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
92.3 %
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.gcov.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.gcov.html
index 5149d0cc..1921bfe0 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.gcov.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c.gcov.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-inference-single.c
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
75.1 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
92.3 %
@@ -1298,10 +1298,10 @@
1236 80 : ML_SINGLE_HANDLE_UNLOCK (single_h); 1237 : 1238 : /** Wait until invoke process is finished */
- 1239 1273 : while (invoking) {
- 1240 1193 : _ml_logd ("Wait 1 ms until invoke is finished and close the handle.");
- 1241 1193 : g_usleep (1000);
- 1242 1193 : invoking = single_h->invoking;
+ 1239 1168 : while (invoking) {
+ 1240 1088 : _ml_logd ("Wait 1 ms until invoke is finished and close the handle.");
+ 1241 1088 : g_usleep (1000);
+ 1242 1088 : invoking = single_h->invoking; 1243 : /** 1244 : * single_h->invoking is the only protected value here and we are 1245 : * doing a read-only operation and do not need to project its value
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.func-c.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.func-c.html
index 8fc5a614..e8ac5920 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.func-c.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.func-c.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c - functions
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c - functions
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
88.0 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
100.0 %
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.func.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.func.html
index e4c4232d..d5ec185a 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.func.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.func.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c - functions
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c - functions
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
88.0 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
100.0 %
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.gcov.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.gcov.html
index 1ae457f9..1d5dcd29 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.gcov.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c.gcov.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-agent-client.c
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
88.0 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
100.0 %
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.func-c.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.func-c.html
index b647fa48..c0e036db 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.func-c.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.func-c.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c - functions
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c - functions
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
84.3 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
100.0 %
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.func.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.func.html
index 7fc3a9ae..97d946cd 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.func.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.func.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c - functions
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c - functions
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
84.3 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
100.0 %
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.gcov.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.gcov.html
index d7a3ef9c..6d762160 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.gcov.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c.gcov.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-extension.c
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0
Lines:
84.3 %
@@ -37,7 +37,7 @@
Test Date:
-
2024-12-30 05:17:05
+
2024-12-30 05:22:48
Functions:
100.0 %
diff --git a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-offloading.c.func-c.html b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-offloading.c.func-c.html
index 1cdac564..53dc6b61 100644
--- a/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-offloading.c.func-c.html
+++ b/testresult/ml-api/capi-machine-learning-inference-1.8.6/c/src/ml-api-service-offloading.c.func-c.html
@@ -4,7 +4,7 @@
- LCOV - ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-offloading.c - functions
+ LCOV - ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0 - capi-machine-learning-inference-1.8.6/c/src/ml-api-service-offloading.c - functions
@@ -28,7 +28,7 @@
Test:
-
ML API 1.8.6-0 gichan-jang/api#48ca203121742beeae4e812d81565013cd585491
+
ML API 1.8.6-0 nnstreamer/api#eba2cbed9702a44dbaf42fe53368e72c419751a0