From 9d3c0016718876bcb363489d559d6f0a68cb3dc4 Mon Sep 17 00:00:00 2001 From: nnsuite Date: Sun, 5 Jan 2025 20:35:52 +0000 Subject: [PATCH] 2025-01-05 : Update test coverage result. Signed-off-by: nnsuite --- testresult/cmd_line | 2 +- testresult/coverage_badge.svg | 2 +- testresult/index-sort-f.html | 74 +- testresult/index-sort-l.html | 66 +- testresult/index.html | 52 +- .../ext/nnstreamer/extra/index-sort-f.html | 6 +- .../ext/nnstreamer/extra/index-sort-l.html | 6 +- .../ext/nnstreamer/extra/index.html | 6 +- .../nnstreamer_grpc_common.cc.func-c.html | 6 +- .../extra/nnstreamer_grpc_common.cc.func.html | 6 +- .../extra/nnstreamer_grpc_common.cc.gcov.html | 6 +- .../nnstreamer_grpc_common.h.func-c.html | 6 +- .../extra/nnstreamer_grpc_common.h.func.html | 6 +- .../extra/nnstreamer_grpc_common.h.gcov.html | 6 +- .../nnstreamer_grpc_flatbuf.cc.func-c.html | 6 +- .../nnstreamer_grpc_flatbuf.cc.func.html | 6 +- .../nnstreamer_grpc_flatbuf.cc.gcov.html | 26 +- .../nnstreamer_grpc_flatbuf.h.func-c.html | 6 +- .../extra/nnstreamer_grpc_flatbuf.h.func.html | 6 +- .../extra/nnstreamer_grpc_flatbuf.h.gcov.html | 6 +- .../nnstreamer_grpc_protobuf.cc.func-c.html | 6 +- .../nnstreamer_grpc_protobuf.cc.func.html | 6 +- .../nnstreamer_grpc_protobuf.cc.gcov.html | 16 +- .../nnstreamer_grpc_protobuf.h.func-c.html | 6 +- .../nnstreamer_grpc_protobuf.h.func.html | 6 +- .../nnstreamer_grpc_protobuf.h.gcov.html | 6 +- .../extra/nnstreamer_protobuf.cc.func-c.html | 10 +- .../extra/nnstreamer_protobuf.cc.func.html | 10 +- .../extra/nnstreamer_protobuf.cc.gcov.html | 136 +- .../nnstreamer_python3_helper.cc.func-c.html | 6 +- .../nnstreamer_python3_helper.cc.func.html | 6 +- .../nnstreamer_python3_helper.cc.gcov.html | 6 +- .../nnstreamer/registerer/grpc.c.func-c.html | 6 +- .../nnstreamer/registerer/grpc.c.func.html | 6 +- .../nnstreamer/registerer/grpc.c.gcov.html | 6 +- .../nnstreamer/registerer/index-sort-f.html | 6 +- .../nnstreamer/registerer/index-sort-l.html | 6 +- .../ext/nnstreamer/registerer/index.html | 6 +- .../registerer/tizensensor.c.func-c.html | 6 +- .../registerer/tizensensor.c.func.html | 6 +- .../registerer/tizensensor.c.gcov.html | 6 +- .../tensor_converter/index-sort-f.html | 6 +- .../tensor_converter/index-sort-l.html | 6 +- .../nnstreamer/tensor_converter/index.html | 6 +- .../tensor_converter_flatbuf.cc.func-c.html | 6 +- .../tensor_converter_flatbuf.cc.func.html | 6 +- .../tensor_converter_flatbuf.cc.gcov.html | 6 +- .../tensor_converter_flexbuf.cc.func-c.html | 6 +- .../tensor_converter_flexbuf.cc.func.html | 6 +- .../tensor_converter_flexbuf.cc.gcov.html | 6 +- .../tensor_converter_protobuf.cc.func-c.html | 8 +- .../tensor_converter_protobuf.cc.func.html | 8 +- .../tensor_converter_protobuf.cc.gcov.html | 10 +- .../tensor_converter_python3.cc.func-c.html | 6 +- .../tensor_converter_python3.cc.func.html | 6 +- .../tensor_converter_python3.cc.gcov.html | 6 +- .../tensor_converter_util.c.func-c.html | 6 +- .../tensor_converter_util.c.func.html | 6 +- .../tensor_converter_util.c.gcov.html | 6 +- .../box_properties/index-sort-f.html | 42 +- .../box_properties/index-sort-l.html | 42 +- .../tensor_decoder/box_properties/index.html | 32 +- .../mobilenetssd.cc.func-c.html | 28 +- .../box_properties/mobilenetssd.cc.func.html | 28 +- .../box_properties/mobilenetssd.cc.gcov.html | 594 ++--- .../mobilenetssdpp.cc.func-c.html | 6 +- .../mobilenetssdpp.cc.func.html | 6 +- .../mobilenetssdpp.cc.gcov.html | 6 +- .../mppalmdetection.cc.func-c.html | 6 +- .../mppalmdetection.cc.func.html | 6 +- .../mppalmdetection.cc.gcov.html | 8 +- .../box_properties/ovdetection.cc.func-c.html | 22 +- .../box_properties/ovdetection.cc.func.html | 22 +- .../box_properties/ovdetection.cc.gcov.html | 286 +-- .../box_properties/yolo.cc.func-c.html | 135 +- .../box_properties/yolo.cc.func.html | 135 +- .../box_properties/yolo.cc.gcov.html | 1254 ++++++----- .../tensor_decoder/index-sort-f.html | 40 +- .../tensor_decoder/index-sort-l.html | 40 +- .../ext/nnstreamer/tensor_decoder/index.html | 28 +- .../tensordec-boundingbox.cc.func-c.html | 106 +- .../tensordec-boundingbox.cc.func.html | 106 +- .../tensordec-boundingbox.cc.gcov.html | 1968 +++++++++-------- .../tensordec-boundingbox.h.func-c.html | 26 +- .../tensordec-boundingbox.h.func.html | 26 +- .../tensordec-boundingbox.h.gcov.html | 466 ++-- .../tensordec-directvideo.c.func-c.html | 6 +- .../tensordec-directvideo.c.func.html | 6 +- .../tensordec-directvideo.c.gcov.html | 6 +- .../tensordec-flatbuf.cc.func-c.html | 6 +- .../tensordec-flatbuf.cc.func.html | 6 +- .../tensordec-flatbuf.cc.gcov.html | 6 +- .../tensordec-flexbuf.cc.func-c.html | 6 +- .../tensordec-flexbuf.cc.func.html | 6 +- .../tensordec-flexbuf.cc.gcov.html | 6 +- .../tensordec-imagelabel.c.func-c.html | 6 +- .../tensordec-imagelabel.c.func.html | 6 +- .../tensordec-imagelabel.c.gcov.html | 6 +- .../tensordec-imagesegment.c.func-c.html | 6 +- .../tensordec-imagesegment.c.func.html | 6 +- .../tensordec-imagesegment.c.gcov.html | 6 +- .../tensordec-octetstream.c.func-c.html | 6 +- .../tensordec-octetstream.c.func.html | 6 +- .../tensordec-octetstream.c.gcov.html | 6 +- .../tensordec-pose.c.func-c.html | 12 +- .../tensor_decoder/tensordec-pose.c.func.html | 12 +- .../tensor_decoder/tensordec-pose.c.gcov.html | 118 +- .../tensordec-protobuf.cc.func-c.html | 8 +- .../tensordec-protobuf.cc.func.html | 8 +- .../tensordec-protobuf.cc.gcov.html | 10 +- .../tensordec-python3.cc.func-c.html | 6 +- .../tensordec-python3.cc.func.html | 6 +- .../tensordec-python3.cc.gcov.html | 6 +- .../tensordec-tensor_region.c.func-c.html | 6 +- .../tensordec-tensor_region.c.func.html | 6 +- .../tensordec-tensor_region.c.gcov.html | 6 +- .../tensordecutil.c.func-c.html | 6 +- .../tensor_decoder/tensordecutil.c.func.html | 6 +- .../tensor_decoder/tensordecutil.c.gcov.html | 6 +- .../tensor_filter/index-sort-f.html | 6 +- .../tensor_filter/index-sort-l.html | 6 +- .../ext/nnstreamer/tensor_filter/index.html | 6 +- .../tensor_filter_cpp.cc.func-c.html | 6 +- .../tensor_filter_cpp.cc.func.html | 6 +- .../tensor_filter_cpp.cc.gcov.html | 6 +- .../tensor_filter_cpp.hh.func-c.html | 6 +- .../tensor_filter_cpp.hh.func.html | 6 +- .../tensor_filter_cpp.hh.gcov.html | 6 +- .../tensor_filter_lua.cc.func-c.html | 6 +- .../tensor_filter_lua.cc.func.html | 6 +- .../tensor_filter_lua.cc.gcov.html | 6 +- .../tensor_filter_nnfw.c.func-c.html | 6 +- .../tensor_filter_nnfw.c.func.html | 6 +- .../tensor_filter_nnfw.c.gcov.html | 6 +- .../tensor_filter_onnxruntime.cc.func-c.html | 6 +- .../tensor_filter_onnxruntime.cc.func.html | 6 +- .../tensor_filter_onnxruntime.cc.gcov.html | 6 +- .../tensor_filter_python3.cc.func-c.html | 6 +- .../tensor_filter_python3.cc.func.html | 6 +- .../tensor_filter_python3.cc.gcov.html | 6 +- ...nsor_filter_tensorflow_lite.cc.func-c.html | 16 +- ...tensor_filter_tensorflow_lite.cc.func.html | 16 +- ...tensor_filter_tensorflow_lite.cc.gcov.html | 80 +- .../tensor_filter_trix_engine.cc.func-c.html | 6 +- .../tensor_filter_trix_engine.cc.func.html | 6 +- .../tensor_filter_trix_engine.cc.gcov.html | 6 +- .../tensor_filter_tvm.cc.func-c.html | 6 +- .../tensor_filter_tvm.cc.func.html | 6 +- .../tensor_filter_tvm.cc.gcov.html | 6 +- .../nnstreamer/tensor_sink/index-sort-f.html | 6 +- .../nnstreamer/tensor_sink/index-sort-l.html | 6 +- .../ext/nnstreamer/tensor_sink/index.html | 6 +- .../tensor_sink_grpc.c.func-c.html | 6 +- .../tensor_sink/tensor_sink_grpc.c.func.html | 6 +- .../tensor_sink/tensor_sink_grpc.c.gcov.html | 6 +- .../tensor_source/index-sort-f.html | 6 +- .../tensor_source/index-sort-l.html | 6 +- .../ext/nnstreamer/tensor_source/index.html | 6 +- .../tensor_src_grpc.c.func-c.html | 6 +- .../tensor_source/tensor_src_grpc.c.func.html | 6 +- .../tensor_source/tensor_src_grpc.c.gcov.html | 6 +- .../tensor_src_tizensensor.c.func-c.html | 6 +- .../tensor_src_tizensensor.c.func.html | 6 +- .../tensor_src_tizensensor.c.gcov.html | 6 +- .../gst/datarepo/gstdatarepo.c.func-c.html | 6 +- .../gst/datarepo/gstdatarepo.c.func.html | 6 +- .../gst/datarepo/gstdatarepo.c.gcov.html | 6 +- .../datarepo/gstdatareposink.c.func-c.html | 18 +- .../gst/datarepo/gstdatareposink.c.func.html | 18 +- .../gst/datarepo/gstdatareposink.c.gcov.html | 128 +- .../gst/datarepo/gstdatareposrc.c.func-c.html | 18 +- .../gst/datarepo/gstdatareposrc.c.func.html | 18 +- .../gst/datarepo/gstdatareposrc.c.gcov.html | 52 +- .../gst/datarepo/index-sort-f.html | 16 +- .../gst/datarepo/index-sort-l.html | 16 +- .../nnstreamer-2.4.2/gst/datarepo/index.html | 16 +- .../gst/edge/edge_common.c.func-c.html | 6 +- .../gst/edge/edge_common.c.func.html | 6 +- .../gst/edge/edge_common.c.gcov.html | 6 +- .../gst/edge/edge_elements.c.func-c.html | 6 +- .../gst/edge/edge_elements.c.func.html | 6 +- .../gst/edge/edge_elements.c.gcov.html | 6 +- .../gst/edge/edge_sink.c.func-c.html | 6 +- .../gst/edge/edge_sink.c.func.html | 6 +- .../gst/edge/edge_sink.c.gcov.html | 6 +- .../gst/edge/edge_src.c.func-c.html | 6 +- .../gst/edge/edge_src.c.func.html | 6 +- .../gst/edge/edge_src.c.gcov.html | 6 +- .../gst/edge/index-sort-f.html | 6 +- .../gst/edge/index-sort-l.html | 6 +- .../nnstreamer-2.4.2/gst/edge/index.html | 6 +- .../gst/join/gstjoin.c.func-c.html | 24 +- .../gst/join/gstjoin.c.func.html | 24 +- .../gst/join/gstjoin.c.gcov.html | 162 +- .../gst/join/index-sort-f.html | 6 +- .../gst/join/index-sort-l.html | 6 +- .../nnstreamer-2.4.2/gst/join/index.html | 6 +- .../gst/mqtt/index-sort-f.html | 6 +- .../gst/mqtt/index-sort-l.html | 6 +- .../nnstreamer-2.4.2/gst/mqtt/index.html | 6 +- .../gst/mqtt/mqttcommon.h.func-c.html | 6 +- .../gst/mqtt/mqttcommon.h.func.html | 6 +- .../gst/mqtt/mqttcommon.h.gcov.html | 6 +- .../gst/mqtt/mqttelements.c.func-c.html | 6 +- .../gst/mqtt/mqttelements.c.func.html | 6 +- .../gst/mqtt/mqttelements.c.gcov.html | 6 +- .../gst/mqtt/mqttsink.c.func-c.html | 6 +- .../gst/mqtt/mqttsink.c.func.html | 6 +- .../gst/mqtt/mqttsink.c.gcov.html | 6 +- .../gst/mqtt/mqttsrc.c.func-c.html | 6 +- .../gst/mqtt/mqttsrc.c.func.html | 6 +- .../gst/mqtt/mqttsrc.c.gcov.html | 6 +- .../gst/mqtt/ntputil.c.func-c.html | 6 +- .../gst/mqtt/ntputil.c.func.html | 6 +- .../gst/mqtt/ntputil.c.gcov.html | 6 +- .../gsttensor_aggregator.c.func-c.html | 6 +- .../elements/gsttensor_aggregator.c.func.html | 6 +- .../elements/gsttensor_aggregator.c.gcov.html | 6 +- .../gsttensor_converter.c.func-c.html | 28 +- .../elements/gsttensor_converter.c.func.html | 28 +- .../elements/gsttensor_converter.c.gcov.html | 330 +-- .../elements/gsttensor_crop.c.func-c.html | 6 +- .../elements/gsttensor_crop.c.func.html | 6 +- .../elements/gsttensor_crop.c.gcov.html | 6 +- .../elements/gsttensor_debug.c.func-c.html | 6 +- .../elements/gsttensor_debug.c.func.html | 6 +- .../elements/gsttensor_debug.c.gcov.html | 6 +- .../elements/gsttensor_decoder.c.func-c.html | 10 +- .../elements/gsttensor_decoder.c.func.html | 10 +- .../elements/gsttensor_decoder.c.gcov.html | 60 +- .../elements/gsttensor_demux.c.func-c.html | 6 +- .../elements/gsttensor_demux.c.func.html | 6 +- .../elements/gsttensor_demux.c.gcov.html | 6 +- .../elements/gsttensor_if.c.func-c.html | 6 +- .../elements/gsttensor_if.c.func.html | 6 +- .../elements/gsttensor_if.c.gcov.html | 6 +- .../elements/gsttensor_merge.c.func-c.html | 12 +- .../elements/gsttensor_merge.c.func.html | 12 +- .../elements/gsttensor_merge.c.gcov.html | 56 +- .../elements/gsttensor_mux.c.func-c.html | 20 +- .../elements/gsttensor_mux.c.func.html | 20 +- .../elements/gsttensor_mux.c.gcov.html | 118 +- .../elements/gsttensor_rate.c.func-c.html | 6 +- .../elements/gsttensor_rate.c.func.html | 6 +- .../elements/gsttensor_rate.c.gcov.html | 6 +- .../elements/gsttensor_repo.c.func-c.html | 20 +- .../elements/gsttensor_repo.c.func.html | 12 +- .../elements/gsttensor_repo.c.gcov.html | 52 +- .../elements/gsttensor_reposink.c.func-c.html | 6 +- .../elements/gsttensor_reposink.c.func.html | 6 +- .../elements/gsttensor_reposink.c.gcov.html | 6 +- .../elements/gsttensor_reposrc.c.func-c.html | 6 +- .../elements/gsttensor_reposrc.c.func.html | 6 +- .../elements/gsttensor_reposrc.c.gcov.html | 6 +- .../elements/gsttensor_sink.c.func-c.html | 24 +- .../elements/gsttensor_sink.c.func.html | 24 +- .../elements/gsttensor_sink.c.gcov.html | 120 +- .../gsttensor_sparsedec.c.func-c.html | 6 +- .../elements/gsttensor_sparsedec.c.func.html | 6 +- .../elements/gsttensor_sparsedec.c.gcov.html | 6 +- .../gsttensor_sparseenc.c.func-c.html | 6 +- .../elements/gsttensor_sparseenc.c.func.html | 6 +- .../elements/gsttensor_sparseenc.c.gcov.html | 6 +- .../gsttensor_sparseutil.c.func-c.html | 6 +- .../elements/gsttensor_sparseutil.c.func.html | 6 +- .../elements/gsttensor_sparseutil.c.gcov.html | 22 +- .../elements/gsttensor_split.c.func-c.html | 6 +- .../elements/gsttensor_split.c.func.html | 6 +- .../elements/gsttensor_split.c.gcov.html | 6 +- .../elements/gsttensor_srciio.c.func-c.html | 24 +- .../elements/gsttensor_srciio.c.func.html | 20 +- .../elements/gsttensor_srciio.c.gcov.html | 132 +- .../elements/gsttensor_trainer.c.func-c.html | 14 +- .../elements/gsttensor_trainer.c.func.html | 14 +- .../elements/gsttensor_trainer.c.gcov.html | 62 +- .../gsttensor_transform.c.func-c.html | 12 +- .../elements/gsttensor_transform.c.func.html | 12 +- .../elements/gsttensor_transform.c.gcov.html | 122 +- .../gst/nnstreamer/elements/index-sort-f.html | 14 +- .../gst/nnstreamer/elements/index-sort-l.html | 14 +- .../gst/nnstreamer/elements/index.html | 14 +- .../gst/nnstreamer/hw_accel.c.func-c.html | 6 +- .../gst/nnstreamer/hw_accel.c.func.html | 6 +- .../gst/nnstreamer/hw_accel.c.gcov.html | 6 +- .../gst/nnstreamer/include/index-sort-f.html | 6 +- .../gst/nnstreamer/include/index-sort-l.html | 6 +- .../gst/nnstreamer/include/index.html | 6 +- ...reamer_cppplugin_api_filter.hh.func-c.html | 6 +- ...streamer_cppplugin_api_filter.hh.func.html | 6 +- ...streamer_cppplugin_api_filter.hh.gcov.html | 6 +- .../gst/nnstreamer/index-sort-f.html | 6 +- .../gst/nnstreamer/index-sort-l.html | 6 +- .../gst/nnstreamer/index.html | 6 +- .../gst/nnstreamer/ml_agent.c.func-c.html | 6 +- .../gst/nnstreamer/ml_agent.c.func.html | 6 +- .../gst/nnstreamer/ml_agent.c.gcov.html | 6 +- .../nnstreamer/nnstreamer_conf.c.func-c.html | 18 +- .../nnstreamer/nnstreamer_conf.c.func.html | 18 +- .../nnstreamer/nnstreamer_conf.c.gcov.html | 72 +- .../nnstreamer/nnstreamer_log.c.func-c.html | 8 +- .../gst/nnstreamer/nnstreamer_log.c.func.html | 8 +- .../gst/nnstreamer/nnstreamer_log.c.gcov.html | 22 +- .../nnstreamer_plugin_api_impl.c.func-c.html | 42 +- .../nnstreamer_plugin_api_impl.c.func.html | 42 +- .../nnstreamer_plugin_api_impl.c.gcov.html | 646 +++--- ...treamer_plugin_api_util_impl.c.func-c.html | 86 +- ...nstreamer_plugin_api_util_impl.c.func.html | 80 +- ...nstreamer_plugin_api_util_impl.c.gcov.html | 580 ++--- .../nnstreamer_subplugin.c.func-c.html | 10 +- .../nnstreamer_subplugin.c.func.html | 10 +- .../nnstreamer_subplugin.c.gcov.html | 40 +- .../nnstreamer_watchdog.c.func-c.html | 6 +- .../nnstreamer_watchdog.c.func.html | 6 +- .../nnstreamer_watchdog.c.gcov.html | 6 +- .../nnstreamer/registerer/index-sort-f.html | 6 +- .../nnstreamer/registerer/index-sort-l.html | 6 +- .../gst/nnstreamer/registerer/index.html | 6 +- .../registerer/nnstreamer.c.func-c.html | 6 +- .../registerer/nnstreamer.c.func.html | 6 +- .../registerer/nnstreamer.c.gcov.html | 6 +- .../nnstreamer/tensor_allocator.c.func-c.html | 6 +- .../nnstreamer/tensor_allocator.c.func.html | 6 +- .../nnstreamer/tensor_allocator.c.gcov.html | 6 +- .../gst/nnstreamer/tensor_data.c.func-c.html | 8 +- .../gst/nnstreamer/tensor_data.c.func.html | 8 +- .../gst/nnstreamer/tensor_data.c.gcov.html | 14 +- .../tensor_filter/index-sort-f.html | 6 +- .../tensor_filter/index-sort-l.html | 6 +- .../gst/nnstreamer/tensor_filter/index.html | 6 +- .../tensor_filter/tensor_filter.c.func-c.html | 38 +- .../tensor_filter/tensor_filter.c.func.html | 38 +- .../tensor_filter/tensor_filter.c.gcov.html | 482 ++-- .../tensor_filter_common.c.func-c.html | 18 +- .../tensor_filter_common.c.func.html | 18 +- .../tensor_filter_common.c.gcov.html | 138 +- .../tensor_filter_custom.c.func-c.html | 6 +- .../tensor_filter_custom.c.func.html | 6 +- .../tensor_filter_custom.c.gcov.html | 6 +- .../tensor_filter_custom_easy.c.func-c.html | 8 +- .../tensor_filter_custom_easy.c.func.html | 8 +- .../tensor_filter_custom_easy.c.gcov.html | 26 +- .../tensor_filter_single.c.func-c.html | 6 +- .../tensor_filter_single.c.func.html | 6 +- .../tensor_filter_single.c.gcov.html | 6 +- .../tensor_filter_support_cc.cc.func-c.html | 6 +- .../tensor_filter_support_cc.cc.func.html | 6 +- .../tensor_filter_support_cc.cc.gcov.html | 6 +- .../gst/nnstreamer/tensor_meta.c.func-c.html | 6 +- .../gst/nnstreamer/tensor_meta.c.func.html | 6 +- .../gst/nnstreamer/tensor_meta.c.gcov.html | 6 +- .../nnstreamer/tensor_query/index-sort-f.html | 6 +- .../nnstreamer/tensor_query/index-sort-l.html | 6 +- .../gst/nnstreamer/tensor_query/index.html | 6 +- .../tensor_query_client.c.func-c.html | 8 +- .../tensor_query_client.c.func.html | 8 +- .../tensor_query_client.c.gcov.html | 118 +- .../tensor_query_common.c.func-c.html | 6 +- .../tensor_query_common.c.func.html | 6 +- .../tensor_query_common.c.gcov.html | 6 +- .../tensor_query_server.c.func-c.html | 6 +- .../tensor_query_server.c.func.html | 6 +- .../tensor_query_server.c.gcov.html | 6 +- .../tensor_query_serversink.c.func-c.html | 6 +- .../tensor_query_serversink.c.func.html | 6 +- .../tensor_query_serversink.c.gcov.html | 6 +- .../tensor_query_serversrc.c.func-c.html | 6 +- .../tensor_query_serversrc.c.func.html | 6 +- .../tensor_query_serversrc.c.gcov.html | 6 +- 368 files changed, 6420 insertions(+), 5782 deletions(-) diff --git a/testresult/cmd_line b/testresult/cmd_line index 4e778c3c3..5b7bbfe96 100644 --- a/testresult/cmd_line +++ b/testresult/cmd_line @@ -1 +1 @@ -genhtml -o result unittest-filtered.info -t 'nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342' --ignore-errors source -p /home/abuild/rpmbuild/BUILD +genhtml -o result unittest-filtered.info -t 'nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa' --ignore-errors source -p /home/abuild/rpmbuild/BUILD diff --git a/testresult/coverage_badge.svg b/testresult/coverage_badge.svg index b10e0e289..568528117 100644 --- a/testresult/coverage_badge.svg +++ b/testresult/coverage_badge.svg @@ -1 +1 @@ -coveragecoverage81.75%81.75% \ No newline at end of file +coveragecoverage81.24%81.24% \ No newline at end of file diff --git a/testresult/index-sort-f.html b/testresult/index-sort-f.html index 9b4a7d0a3..39503add1 100644 --- a/testresult/index-sort-f.html +++ b/testresult/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa @@ -28,21 +28,21 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 81.8 % - 24171 - 19760 + 81.2 % + 24348 + 19781 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 93.7 % - 1698 - 1591 + 93.3 % + 1710 + 1596 @@ -103,6 +103,18 @@ 6 4 + + nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties + +
72.3%72.3%
+ + 72.3 % + 763 + 552 + 89.9 % + 69 + 62 + nnstreamer-2.4.2/ext/nnstreamer/tensor_filter @@ -139,6 +151,18 @@ 13 12 + + nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder + +
79.6%79.6%
+ + 79.6 % + 1935 + 1541 + 92.4 % + 157 + 145 + nnstreamer-2.4.2/gst/nnstreamer/elements @@ -146,7 +170,7 @@ 82.8 % 8111 - 6718 + 6715 92.4 % 446 412 @@ -175,18 +199,6 @@ 46 43 - - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties - -
79.7%79.7%
- - 79.7 % - 674 - 537 - 93.4 % - 61 - 57 - nnstreamer-2.4.2/ext/nnstreamer/extra @@ -199,18 +211,6 @@ 117 110 - - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder - -
83.1%83.1%
- - 83.1 % - 1847 - 1534 - 94.8 % - 153 - 145 - nnstreamer-2.4.2/gst/join @@ -262,11 +262,11 @@ nnstreamer-2.4.2/gst/datarepo -
80.7%80.7%
+
80.8%80.8%
- 80.7 % + 80.8 % 1253 - 1011 + 1013 98.2 % 55 54 diff --git a/testresult/index-sort-l.html b/testresult/index-sort-l.html index 12ddfa464..b919b1a42 100644 --- a/testresult/index-sort-l.html +++ b/testresult/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa @@ -28,21 +28,21 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 81.8 % - 24171 - 19760 + 81.2 % + 24348 + 19781 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 93.7 % - 1698 - 1591 + 93.3 % + 1710 + 1596 @@ -103,6 +103,18 @@ 13 12 + + nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties + +
72.3%72.3%
+ + 72.3 % + 763 + 552 + 89.9 % + 69 + 62 + nnstreamer-2.4.2/gst/nnstreamer/tensor_query @@ -140,25 +152,25 @@ 110 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties + nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder -
79.7%79.7%
+
79.6%79.6%
- 79.7 % - 674 - 537 - 93.4 % - 61 - 57 + 79.6 % + 1935 + 1541 + 92.4 % + 157 + 145 nnstreamer-2.4.2/gst/datarepo -
80.7%80.7%
+
80.8%80.8%
- 80.7 % + 80.8 % 1253 - 1011 + 1013 98.2 % 55 54 @@ -194,23 +206,11 @@ 82.8 % 8111 - 6718 + 6715 92.4 % 446 412 - - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder - -
83.1%83.1%
- - 83.1 % - 1847 - 1534 - 94.8 % - 153 - 145 - nnstreamer-2.4.2/gst/edge diff --git a/testresult/index.html b/testresult/index.html index 73fd19e3c..aa2d6b3b1 100644 --- a/testresult/index.html +++ b/testresult/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa @@ -28,21 +28,21 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 81.8 % - 24171 - 19760 + 81.2 % + 24348 + 19781 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 93.7 % - 1698 - 1591 + 93.3 % + 1710 + 1596 @@ -118,26 +118,26 @@ nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder -
83.1%83.1%
+
79.6%79.6%
- 83.1 % - 1847 - 1534 - 94.8 % - 153 + 79.6 % + 1935 + 1541 + 92.4 % + 157 145 nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties -
79.7%79.7%
+
72.3%72.3%
- 79.7 % - 674 - 537 - 93.4 % - 61 - 57 + 72.3 % + 763 + 552 + 89.9 % + 69 + 62 nnstreamer-2.4.2/ext/nnstreamer/tensor_filter @@ -178,11 +178,11 @@ nnstreamer-2.4.2/gst/datarepo -
80.7%80.7%
+
80.8%80.8%
- 80.7 % + 80.8 % 1253 - 1011 + 1013 98.2 % 55 54 @@ -242,7 +242,7 @@ 82.8 % 8111 - 6718 + 6715 92.4 % 446 412 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index-sort-f.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index-sort-f.html index ce1c67b2e..75df36f03 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index-sort-l.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index-sort-l.html index 89a8357d9..4133fdf72 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index.html index 5fd82e291..d6f130192 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.func-c.html index 0869d1de6..3c007a3c4 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.2 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.func.html index c22413fb1..16b10a4bd 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.2 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.gcov.html index 3f50418b7..ef0574c06 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.2 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.func-c.html index e1fa0e8df..d03e5b25c 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.func.html index aab7593e1..bd4c189db 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.gcov.html index 19661d8c4..e0ae92d84 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_common.h @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.func-c.html index ca300fbaf..496d1c587 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.func.html index c5c3bccea..cfd830813 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.gcov.html index 086b14648..ee80880da 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -569,19 +569,19 @@ 507 : bool ok; 508 : 509 : /* 10 msec deadline to wait the next event */ - 510 555 : gpr_timespec deadline = gpr_time_add ( + 510 554 : gpr_timespec deadline = gpr_time_add ( 511 : gpr_now (GPR_CLOCK_MONOTONIC), gpr_time_from_millis (10, GPR_TIMESPAN)); 512 : - 513 555 : switch (completion_queue_->AsyncNext (&tag, &ok, deadline)) { + 513 554 : switch (completion_queue_->AsyncNext (&tag, &ok, deadline)) { 514 23 : case CompletionQueue::GOT_EVENT: 515 23 : static_cast<AsyncCallDataServer *> (tag)->RunState (ok); 516 23 : break; 517 2 : case CompletionQueue::SHUTDOWN: 518 2 : return; - 519 530 : default: - 520 530 : break; + 519 529 : default: + 520 529 : break; 521 : } - 522 553 : } + 522 552 : } 523 : } 524 : 525 : /** @brief gRPC client thread */ @@ -594,22 +594,22 @@ 532 4 : new AsyncCallDataClient (this, client_stub_.get (), &cq); 533 : 534 : /* until the stop is called */ - 535 160 : while (!stop_) { + 535 161 : while (!stop_) { 536 : void *tag; 537 : bool ok; 538 : 539 : /* 10 msec deadline to wait the next event */ - 540 156 : gpr_timespec deadline = gpr_time_add ( + 540 157 : gpr_timespec deadline = gpr_time_add ( 541 : gpr_now (GPR_CLOCK_MONOTONIC), gpr_time_from_millis (10, GPR_TIMESPAN)); 542 : - 543 156 : switch (cq.AsyncNext (&tag, &ok, deadline)) { + 543 157 : switch (cq.AsyncNext (&tag, &ok, deadline)) { 544 34 : case CompletionQueue::GOT_EVENT: 545 34 : static_cast<AsyncCallDataClient *> (tag)->RunState (ok); 546 34 : if (ok == false) 547 0 : return; 548 34 : break; - 549 122 : default: - 550 122 : break; + 549 123 : default: + 550 123 : break; 551 : } 552 : } 553 4 : } diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.func-c.html index 791d4f886..591af7b92 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 60.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.func.html index d033d635b..1d99beb10 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 60.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.gcov.html index ac0e93167..7d12121f7 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_flatbuf.h @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 60.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.func-c.html index 0ae21ba99..ab51c02cf 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.func.html index c398483a9..ba81db361 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.gcov.html index 7b18c142a..fec970780 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -557,22 +557,22 @@ 495 4 : new AsyncCallDataClient (this, client_stub_.get (), &cq); 496 : 497 : /* until the stop is called */ - 498 160 : while (!stop_) { + 498 161 : while (!stop_) { 499 : void *tag; 500 : bool ok; 501 : 502 : /* 10 msec deadline to wait the next event */ - 503 156 : gpr_timespec deadline = gpr_time_add ( + 503 157 : gpr_timespec deadline = gpr_time_add ( 504 : gpr_now (GPR_CLOCK_MONOTONIC), gpr_time_from_millis (10, GPR_TIMESPAN)); 505 : - 506 156 : switch (cq.AsyncNext (&tag, &ok, deadline)) { + 506 157 : switch (cq.AsyncNext (&tag, &ok, deadline)) { 507 34 : case CompletionQueue::GOT_EVENT: 508 34 : static_cast<AsyncCallDataClient *> (tag)->RunState (ok); 509 34 : if (ok == false) 510 0 : return; 511 34 : break; - 512 122 : default: - 513 122 : break; + 512 123 : default: + 513 123 : break; 514 : } 515 : } 516 4 : } diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.func-c.html index 1f097918d..908b9b9df 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 60.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.func.html index 7bab3ac44..e977c0a57 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 60.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.gcov.html index 5b946ce01..c620dd3c5 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_grpc_protobuf.h @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 60.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.func-c.html index b57fe6624..1daa6dea7 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -65,14 +65,14 @@ _Z29gst_tensor_converter_protobufP10_GstBufferP16GstTensorsConfigPv - 82 + 83 _Z27gst_tensor_decoder_protobufPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer - 83 + 84 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.func.html index b967e284b..04d43762f 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -65,14 +65,14 @@ _Z27gst_tensor_decoder_protobufPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer - 83 + 84 _Z29gst_tensor_converter_protobufP10_GstBufferP16GstTensorsConfigPv - 82 + 83 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.gcov.html index 820bd155f..924330c33 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_protobuf.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -94,72 +94,72 @@ 32 : 33 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ 34 : GstFlowReturn - 35 83 : gst_tensor_decoder_protobuf (const GstTensorsConfig *config, + 35 84 : gst_tensor_decoder_protobuf (const GstTensorsConfig *config, 36 : const GstTensorMemory *input, GstBuffer *outbuf) 37 : { 38 : GstMapInfo out_info; 39 : GstMemory *out_mem; 40 : size_t size, outbuf_size; - 41 83 : nnstreamer::protobuf::Tensors tensors; - 42 83 : nnstreamer::protobuf::Tensors::frame_rate *fr = NULL; + 41 84 : nnstreamer::protobuf::Tensors tensors; + 42 84 : nnstreamer::protobuf::Tensors::frame_rate *fr = NULL; 43 : guint num_tensors; 44 : gboolean is_flexible; 45 : GstTensorMetaInfo meta; 46 : GstTensorInfo *_info; 47 : - 48 83 : if (!config || !input || !outbuf) { + 48 84 : if (!config || !input || !outbuf) { 49 3 : ml_loge ("NULL parameter is passed to tensor_decoder::protobuf"); 50 3 : return GST_FLOW_ERROR; 51 : } 52 : - 53 80 : is_flexible = gst_tensors_config_is_flexible (config); + 53 81 : is_flexible = gst_tensors_config_is_flexible (config); 54 : - 55 80 : num_tensors = config->info.num_tensors; - 56 80 : if (num_tensors <= 0 || num_tensors > NNS_TENSOR_SIZE_LIMIT) { + 55 81 : num_tensors = config->info.num_tensors; + 56 81 : if (num_tensors <= 0 || num_tensors > NNS_TENSOR_SIZE_LIMIT) { 57 0 : ml_loge ("The number of input tenosrs " 58 : "exceeds more than NNS_TENSOR_SIZE_LIMIT, %s", 59 : NNS_TENSOR_SIZE_LIMIT_STR); 60 0 : return GST_FLOW_ERROR; 61 : } - 62 80 : tensors.set_num_tensor (num_tensors); + 62 81 : tensors.set_num_tensor (num_tensors); 63 : - 64 80 : fr = tensors.mutable_fr (); - 65 80 : if (!fr) { + 64 81 : fr = tensors.mutable_fr (); + 65 81 : if (!fr) { 66 0 : nns_loge ("Failed to get pointer of tensors / tensordec-protobuf"); 67 0 : return GST_FLOW_ERROR; 68 : } 69 : - 70 80 : fr->set_rate_n (config->rate_n); - 71 80 : fr->set_rate_d (config->rate_d); + 70 81 : fr->set_rate_n (config->rate_n); + 71 81 : fr->set_rate_d (config->rate_d); 72 : - 73 80 : tensors.set_format ( - 74 80 : (nnstreamer::protobuf::Tensors::Tensor_format) config->info.format); + 73 81 : tensors.set_format ( + 74 81 : (nnstreamer::protobuf::Tensors::Tensor_format) config->info.format); 75 : - 76 185 : for (unsigned int i = 0; i < num_tensors; ++i) { - 77 105 : nnstreamer::protobuf::Tensor *tensor = tensors.add_tensor (); + 76 187 : for (unsigned int i = 0; i < num_tensors; ++i) { + 77 106 : nnstreamer::protobuf::Tensor *tensor = tensors.add_tensor (); 78 : - 79 105 : _info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, i); + 79 106 : _info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, i); 80 : - 81 105 : if (is_flexible) { + 81 106 : if (is_flexible) { 82 9 : gst_tensor_meta_info_parse_header (&meta, input[i].data); 83 9 : gst_tensor_meta_info_convert (&meta, _info); 84 : } 85 : - 86 105 : tensor->set_name (_info->name ? _info->name : ""); - 87 105 : tensor->set_type ((nnstreamer::protobuf::Tensor::Tensor_type) _info->type); + 86 106 : tensor->set_name (_info->name ? _info->name : ""); + 87 106 : tensor->set_type ((nnstreamer::protobuf::Tensor::Tensor_type) _info->type); 88 : - 89 1785 : for (int j = 0; j < NNS_TENSOR_RANK_LIMIT; ++j) { - 90 1680 : tensor->add_dimension (_info->dimension[j]); + 89 1802 : for (int j = 0; j < NNS_TENSOR_RANK_LIMIT; ++j) { + 90 1696 : tensor->add_dimension (_info->dimension[j]); 91 : } 92 : - 93 105 : tensor->set_data (input[i].data, (int) input[i].size); + 93 106 : tensor->set_data (input[i].data, (int) input[i].size); 94 : } 95 : - 96 80 : size = tensors.ByteSizeLong (); - 97 80 : outbuf_size = gst_buffer_get_size (outbuf); + 96 81 : size = tensors.ByteSizeLong (); + 97 81 : outbuf_size = gst_buffer_get_size (outbuf); 98 : - 99 80 : if (outbuf_size == 0) { - 100 80 : out_mem = gst_allocator_alloc (NULL, size, NULL); + 99 81 : if (outbuf_size == 0) { + 100 81 : out_mem = gst_allocator_alloc (NULL, size, NULL); 101 : } else { 102 0 : if (outbuf_size < size) { 103 0 : gst_buffer_set_size (outbuf, size); @@ -167,30 +167,30 @@ 105 0 : out_mem = gst_buffer_get_all_memory (outbuf); 106 : } 107 : - 108 80 : if (!gst_memory_map (out_mem, &out_info, GST_MAP_WRITE)) { + 108 81 : if (!gst_memory_map (out_mem, &out_info, GST_MAP_WRITE)) { 109 0 : nns_loge ("Cannot map output memory / tensordec-protobuf"); 110 0 : gst_memory_unref (out_mem); 111 0 : return GST_FLOW_ERROR; 112 : } 113 : - 114 80 : tensors.SerializeToArray (out_info.data, size); + 114 81 : tensors.SerializeToArray (out_info.data, size); 115 : - 116 80 : gst_memory_unmap (out_mem, &out_info); + 116 81 : gst_memory_unmap (out_mem, &out_info); 117 : - 118 80 : if (outbuf_size == 0) - 119 80 : gst_buffer_append_memory (outbuf, out_mem); + 118 81 : if (outbuf_size == 0) + 119 81 : gst_buffer_append_memory (outbuf, out_mem); 120 : else 121 0 : gst_buffer_replace_all_memory (outbuf, out_mem); 122 : - 123 80 : return GST_FLOW_OK; - 124 83 : } + 123 81 : return GST_FLOW_OK; + 124 84 : } 125 : 126 : /** @brief tensor converter plugin's NNStreamerExternalConverter callback */ 127 : GstBuffer * - 128 82 : gst_tensor_converter_protobuf (GstBuffer *in_buf, GstTensorsConfig *config, void *priv_data) + 128 83 : gst_tensor_converter_protobuf (GstBuffer *in_buf, GstTensorsConfig *config, void *priv_data) 129 : { - 130 82 : nnstreamer::protobuf::Tensors tensors; - 131 82 : nnstreamer::protobuf::Tensors::frame_rate *fr = NULL; + 130 83 : nnstreamer::protobuf::Tensors tensors; + 131 83 : nnstreamer::protobuf::Tensors::frame_rate *fr = NULL; 132 : GstTensorInfo *_info; 133 : GstMemory *in_mem, *out_mem; 134 : GstMapInfo in_info; @@ -199,56 +199,56 @@ 137 : gpointer mem_data; 138 : UNUSED (priv_data); 139 : - 140 82 : if (!in_buf || !config) { + 140 83 : if (!in_buf || !config) { 141 2 : ml_loge ("NULL parameter is passed to tensor_converter::protobuf"); 142 2 : return NULL; 143 : } 144 : - 145 80 : in_mem = gst_buffer_get_all_memory (in_buf); - 146 80 : if (!gst_memory_map (in_mem, &in_info, GST_MAP_READ)) { + 145 81 : in_mem = gst_buffer_get_all_memory (in_buf); + 146 81 : if (!gst_memory_map (in_mem, &in_info, GST_MAP_READ)) { 147 0 : nns_loge ("Cannot map input memory / tensor_converter_protobuf"); 148 0 : gst_memory_unref (in_mem); 149 0 : return NULL; 150 : } 151 : - 152 80 : tensors.ParseFromArray (in_info.data, in_info.size); + 152 81 : tensors.ParseFromArray (in_info.data, in_info.size); 153 : - 154 80 : config->info.num_tensors = tensors.num_tensor (); - 155 80 : config->info.format = (tensor_format) tensors.format (); - 156 80 : fr = tensors.mutable_fr (); - 157 80 : config->rate_n = fr->rate_n (); - 158 80 : config->rate_d = fr->rate_d (); - 159 80 : out_buf = gst_buffer_new (); + 154 81 : config->info.num_tensors = tensors.num_tensor (); + 155 81 : config->info.format = (tensor_format) tensors.format (); + 156 81 : fr = tensors.mutable_fr (); + 157 81 : config->rate_n = fr->rate_n (); + 158 81 : config->rate_d = fr->rate_d (); + 159 81 : out_buf = gst_buffer_new (); 160 : - 161 185 : for (guint i = 0; i < config->info.num_tensors; i++) { - 162 105 : const nnstreamer::protobuf::Tensor *tensor = &tensors.tensor (i); - 163 105 : std::string _name = tensor->name (); - 164 105 : const gchar *name = _name.c_str (); + 161 187 : for (guint i = 0; i < config->info.num_tensors; i++) { + 162 106 : const nnstreamer::protobuf::Tensor *tensor = &tensors.tensor (i); + 163 106 : std::string _name = tensor->name (); + 164 106 : const gchar *name = _name.c_str (); 165 : - 166 105 : _info = gst_tensors_info_get_nth_info (&config->info, i); + 166 106 : _info = gst_tensors_info_get_nth_info (&config->info, i); 167 : - 168 106 : _info->name = (name && strlen (name) > 0) ? g_strdup (name) : NULL; - 169 105 : _info->type = (tensor_type) tensor->type (); - 170 1785 : for (guint j = 0; j < NNS_TENSOR_RANK_LIMIT; j++) { - 171 1680 : _info->dimension[j] = tensor->dimension (j); + 168 107 : _info->name = (name && strlen (name) > 0) ? g_strdup (name) : NULL; + 169 106 : _info->type = (tensor_type) tensor->type (); + 170 1802 : for (guint j = 0; j < NNS_TENSOR_RANK_LIMIT; j++) { + 171 1696 : _info->dimension[j] = tensor->dimension (j); 172 : } - 173 105 : mem_size = tensor->data ().length (); - 174 105 : mem_data = _g_memdup (tensor->data ().c_str (), mem_size); + 173 106 : mem_size = tensor->data ().length (); + 174 106 : mem_data = _g_memdup (tensor->data ().c_str (), mem_size); 175 : - 176 105 : out_mem = gst_memory_new_wrapped ( + 176 106 : out_mem = gst_memory_new_wrapped ( 177 : (GstMemoryFlags) 0, mem_data, mem_size, 0, mem_size, mem_data, g_free); 178 : - 179 105 : gst_tensor_buffer_append_memory (out_buf, out_mem, _info); + 179 106 : gst_tensor_buffer_append_memory (out_buf, out_mem, _info); 180 : } 181 : 182 : /** copy timestamps */ - 183 80 : gst_buffer_copy_into ( + 183 81 : gst_buffer_copy_into ( 184 : out_buf, in_buf, (GstBufferCopyFlags) GST_BUFFER_COPY_METADATA, 0, -1); - 185 80 : gst_memory_unmap (in_mem, &in_info); - 186 80 : gst_memory_unref (in_mem); + 185 81 : gst_memory_unmap (in_mem, &in_info); + 186 81 : gst_memory_unref (in_mem); 187 : - 188 80 : return out_buf; - 189 82 : } + 188 81 : return out_buf; + 189 83 : } diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.func-c.html index eb337790e..604902bf8 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 66.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.func.html index 0f6e9acba..698e58e49 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 66.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.gcov.html index 51f0feb41..f9b0eb202 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/extra/nnstreamer_python3_helper.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 66.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.func-c.html index 813eff345..94877f415 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.func.html index e2943060a..eb3698605 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.gcov.html index 8b421dca2..f5e0a0617 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/registerer/grpc.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index-sort-f.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index-sort-f.html index 9cc93f14a..6fbb58d98 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/registerer + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/registerer @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index-sort-l.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index-sort-l.html index 3a86bebc0..2aa411d9d 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/registerer + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/registerer @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index.html index a8a976f24..f3f6fbba0 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/registerer + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/registerer @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.func-c.html index 986e42f10..b04c6c49a 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.func.html index 01be577a8..2b367dae1 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.gcov.html index 635c74d7f..6b1529536 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/registerer/tizensensor.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index-sort-f.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index-sort-f.html index 1707aab8e..fdabf91d1 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 87.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index-sort-l.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index-sort-l.html index a5725a489..4d468c434 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 87.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index.html index 5d7e5f765..24e1b08af 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 87.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.func-c.html index fdaba5b02..1e1fea604 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 89.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.func.html index fa775a34e..1be1816fb 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 89.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.gcov.html index dd195e365..f41ac01e1 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flatbuf.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 89.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.func-c.html index 60d6fa160..c0d0f56ed 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.func.html index 500182871..6c45d57ec 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.gcov.html index a25b7ce15..1b9757b6d 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_flexbuf.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.func-c.html index d5fa6e12e..2862268f1 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -65,7 +65,7 @@ _ZL11pbc_convertP10_GstBufferP16GstTensorsConfigPv - 82 + 83 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.func.html index 761c5bc09..09705effa 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -65,7 +65,7 @@ _ZL11pbc_convertP10_GstBufferP16GstTensorsConfigPv - 82 + 83 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.gcov.html index a6292da67..ff82d8e71 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_protobuf.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -118,10 +118,10 @@ 56 : 57 : /** @brief tensor converter plugin's NNStreamerExternalConverter callback */ 58 : static GstBuffer * - 59 82 : pbc_convert (GstBuffer *in_buf, GstTensorsConfig *config, void *priv_data) + 59 83 : pbc_convert (GstBuffer *in_buf, GstTensorsConfig *config, void *priv_data) 60 : { 61 : UNUSED (priv_data); - 62 82 : return gst_tensor_converter_protobuf (in_buf, config, NULL); + 62 83 : return gst_tensor_converter_protobuf (in_buf, config, NULL); 63 : } 64 : 65 : static gchar converter_subplugin_protobuf[] = "protobuf"; diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.func-c.html index bcddc67d2..e21dff39a 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.func.html index 3d29b7346..f9a5e8af5 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.gcov.html index b188c2f06..cb57404ff 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_python3.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.func-c.html index 674b079c8..8f6c245b5 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 77.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.func.html index d81429c70..54c07e16d 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 77.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.gcov.html index 8b4cb68ad..aad81eb32 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_converter/tensor_converter_util.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 77.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index-sort-f.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index-sort-f.html index 5933b80e3..145d34b2e 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties @@ -28,21 +28,21 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 79.7 % - 674 - 537 + 72.3 % + 763 + 552 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 93.4 % - 61 - 57 + 89.9 % + 69 + 62 @@ -103,6 +103,18 @@ 9 8 + + yolo.cc + +
72.1%72.1%
+ + 72.1 % + 333 + 240 + 90.6 % + 32 + 29 + mobilenetssd.cc @@ -127,18 +139,6 @@ 10 10 - - yolo.cc - -
92.2%92.2%
- - 92.2 % - 244 - 225 - 100.0 % - 24 - 24 -
diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index-sort-l.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index-sort-l.html index 28478bda8..97fe087c5 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties @@ -28,21 +28,21 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 79.7 % - 674 - 537 + 72.3 % + 763 + 552 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 93.4 % - 61 - 57 + 89.9 % + 69 + 62 @@ -91,6 +91,18 @@ 8 5 + + yolo.cc + +
72.1%72.1%
+ + 72.1 % + 333 + 240 + 90.6 % + 32 + 29 + mobilenetssd.cc @@ -127,18 +139,6 @@ 10 10 - - yolo.cc - -
92.2%92.2%
- - 92.2 % - 244 - 225 - 100.0 % - 24 - 24 -
diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index.html index eb230f5bf..ba5ff7642 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties @@ -28,21 +28,21 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 79.7 % - 674 - 537 + 72.3 % + 763 + 552 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 93.4 % - 61 - 57 + 89.9 % + 69 + 62 @@ -130,14 +130,14 @@ yolo.cc -
92.2%92.2%
+
72.1%72.1%
- 92.2 % - 244 - 225 - 100.0 % - 24 - 24 + 72.1 % + 333 + 240 + 90.6 % + 32 + 29 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.func-c.html index f348119b1..fc898a644 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -63,77 +63,77 @@ - _ZN12MobilenetSSD17setOptionInternalEPKc + _ZN12MobilenetSSD17setOptionInternalEPKc 4 - _ZN12MobilenetSSD26mobilenet_ssd_loadBoxPriorEv + _ZN12MobilenetSSD26mobilenet_ssd_loadBoxPriorEv 4 - _ZN12MobilenetSSD6decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN12MobilenetSSD6decodeEPK16GstTensorsConfigPK15GstTensorMemory 8 - _ZN12MobilenetSSDC2Ev + _ZN12MobilenetSSDC2Ev 33 - fini_properties_mobilenetssd + fini_properties_mobilenetssd 33 - init_properties_mobilenetssd + init_properties_mobilenetssd 33 - _ZN12MobilenetSSD15checkCompatibleEPK16GstTensorsConfig + _ZN12MobilenetSSD15checkCompatibleEPK16GstTensorsConfig 36 - _ZL5logitf + _ZL5logitf 37 - _ZN12MobilenetSSDD0Ev + _ZN12MobilenetSSDD0Ev 66 - _ZN12MobilenetSSDD0Ev + _ZN12MobilenetSSDD0Ev 33 - _ZN12MobilenetSSDD2Ev + _ZN12MobilenetSSDD2Ev 33 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.func.html index 99bc28817..801197c87 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -63,77 +63,77 @@ - _ZL5logitf + _ZL5logitf 37 - _ZN12MobilenetSSD15checkCompatibleEPK16GstTensorsConfig + _ZN12MobilenetSSD15checkCompatibleEPK16GstTensorsConfig 36 - _ZN12MobilenetSSD17setOptionInternalEPKc + _ZN12MobilenetSSD17setOptionInternalEPKc 4 - _ZN12MobilenetSSD26mobilenet_ssd_loadBoxPriorEv + _ZN12MobilenetSSD26mobilenet_ssd_loadBoxPriorEv 4 - _ZN12MobilenetSSD6decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN12MobilenetSSD6decodeEPK16GstTensorsConfigPK15GstTensorMemory 8 - _ZN12MobilenetSSDC2Ev + _ZN12MobilenetSSDC2Ev 33 - _ZN12MobilenetSSDD0Ev + _ZN12MobilenetSSDD0Ev 66 - _ZN12MobilenetSSDD0Ev + _ZN12MobilenetSSDD0Ev 33 - _ZN12MobilenetSSDD2Ev + _ZN12MobilenetSSDD2Ev 33 - fini_properties_mobilenetssd + fini_properties_mobilenetssd 33 - init_properties_mobilenetssd + init_properties_mobilenetssd 33 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.gcov.html index fa50800dd..f3d56b73c 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssd.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -180,314 +180,322 @@ 118 : * @param[in] config Tensor configs of the input tensors 119 : * @param[out] results The object returned. (GArray with detectedObject) 120 : */ - 121 : #define _get_objects_mobilenet_ssd(_type, typename, boxprior, boxinput, \ - 122 : detinput, config, results, i_width, i_height, max_detection) \ - 123 : case typename: \ - 124 : { \ - 125 : int d; \ - 126 : _type *boxinput_ = (_type *) boxinput; \ - 127 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); \ - 128 : size_t boxbpi = info->dimension[0]; \ - 129 : _type *detinput_ = (_type *) detinput; \ - 130 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 1); \ - 131 : size_t detbpi = info->dimension[0]; \ - 132 : int num = (DETECTION_MAX > max_detection) ? max_detection : DETECTION_MAX; \ - 133 : detectedObject object = { \ - 134 : .valid = FALSE, .class_id = 0, .x = 0, .y = 0, .width = 0, .height = 0, .prob = .0, .tracking_id = 0 \ - 135 : }; \ - 136 : for (d = 0; d < num; d++) { \ - 137 : _get_object_i_mobilenet_ssd (d, detbpi, boxprior, (boxinput_ + (d * boxbpi)), \ - 138 : (detinput_ + (d * detbpi)), (&object), i_width, i_height); \ - 139 : if (object.valid == TRUE) { \ - 140 : g_array_append_val (results, object); \ - 141 : } \ - 142 : } \ - 143 : } \ - 144 : break - 145 : - 146 : - 147 : /** @brief Macro to simplify calling _get_objects_mobilenet_ssd */ - 148 : #define _get_objects_mobilenet_ssd_(type, typename) \ - 149 : _get_objects_mobilenet_ssd (type, typename, box_priors, (boxes->data), \ - 150 : (detections->data), config, results, i_width, i_height, max_detection) - 151 : - 152 : /** @brief Mathematic inverse of sigmoid function, aka logit */ - 153 : static float - 154 37 : logit (float x) - 155 : { - 156 37 : if (x <= 0.0f) - 157 0 : return -INFINITY; - 158 : - 159 37 : if (x >= 1.0f) - 160 0 : return INFINITY; - 161 : - 162 37 : return log (x / (1.0 - x)); - 163 : } - 164 : - 165 : static BoxProperties *mobilenet = nullptr; + 121 : #define _get_objects_mobilenet_ssd(_type, typename, boxprior, boxinput, \ + 122 : detinput, config, results, i_width, i_height, max_detection) \ + 123 : case typename: \ + 124 : { \ + 125 : int d; \ + 126 : _type *boxinput_ = (_type *) boxinput; \ + 127 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); \ + 128 : size_t boxbpi = info->dimension[0]; \ + 129 : _type *detinput_ = (_type *) detinput; \ + 130 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 1); \ + 131 : size_t detbpi = info->dimension[0]; \ + 132 : int num = (DETECTION_MAX > max_detection) ? max_detection : DETECTION_MAX; \ + 133 : detectedObject object = { \ + 134 : .valid = FALSE, \ + 135 : .class_id = 0, \ + 136 : .x = 0, \ + 137 : .y = 0, \ + 138 : .width = 0, \ + 139 : .height = 0, \ + 140 : .angle = 0, \ + 141 : .prob = .0, \ + 142 : .tracking_id = 0, \ + 143 : }; \ + 144 : for (d = 0; d < num; d++) { \ + 145 : _get_object_i_mobilenet_ssd (d, detbpi, boxprior, (boxinput_ + (d * boxbpi)), \ + 146 : (detinput_ + (d * detbpi)), (&object), i_width, i_height); \ + 147 : if (object.valid == TRUE) { \ + 148 : g_array_append_val (results, object); \ + 149 : } \ + 150 : } \ + 151 : } \ + 152 : break + 153 : + 154 : + 155 : /** @brief Macro to simplify calling _get_objects_mobilenet_ssd */ + 156 : #define _get_objects_mobilenet_ssd_(type, typename) \ + 157 : _get_objects_mobilenet_ssd (type, typename, box_priors, (boxes->data), \ + 158 : (detections->data), config, results, i_width, i_height, max_detection) + 159 : + 160 : /** @brief Mathematic inverse of sigmoid function, aka logit */ + 161 : static float + 162 37 : logit (float x) + 163 : { + 164 37 : if (x <= 0.0f) + 165 0 : return -INFINITY; 166 : - 167 : #ifdef __cplusplus - 168 : extern "C" { - 169 : #endif /* __cplusplus */ - 170 : void init_properties_mobilenetssd (void) __attribute__ ((constructor)); - 171 : void fini_properties_mobilenetssd (void) __attribute__ ((destructor)); - 172 : #ifdef __cplusplus - 173 : } - 174 : #endif /* __cplusplus */ - 175 : - 176 : /** @brief Constructor of MobilenetSSD */ - 177 33 : MobilenetSSD::MobilenetSSD () - 178 : { - 179 33 : params[THRESHOLD_IDX] = DETECTION_THRESHOLD_DEFAULT; - 180 33 : params[Y_SCALE_IDX] = Y_SCALE_DEFAULT; - 181 33 : params[X_SCALE_IDX] = X_SCALE_DEFAULT; - 182 33 : params[H_SCALE_IDX] = H_SCALE_DEFAULT; - 183 33 : params[W_SCALE_IDX] = W_SCALE_DEFAULT; - 184 33 : params[IOU_THRESHOLD_IDX] = THRESHOLD_IOU_DEFAULT; - 185 33 : sigmoid_threshold = logit (DETECTION_THRESHOLD_DEFAULT); - 186 : - 187 33 : max_detection = 0; - 188 33 : total_labels = 0; - 189 33 : box_prior_path = nullptr; - 190 33 : name = g_strdup_printf ("mobilenet-ssd"); - 191 33 : } - 192 : - 193 : /** @brief Destructor of MobilenetSSD */ - 194 66 : MobilenetSSD::~MobilenetSSD () - 195 : { - 196 33 : g_free (name); - 197 66 : } - 198 : - 199 : /** - 200 : * @brief Load box-prior data from a file - 201 : * @param[in/out] bdata The internal data. - 202 : * @return TRUE if loaded and configured. FALSE if failed to do so. - 203 : */ - 204 : int - 205 4 : MobilenetSSD::mobilenet_ssd_loadBoxPrior () - 206 : { - 207 4 : gboolean failed = FALSE; - 208 4 : GError *err = NULL; - 209 : gchar **priors; - 210 4 : gchar *line = NULL; - 211 4 : gchar *contents = NULL; - 212 : guint row; - 213 4 : gint prev_reg = -1; - 214 : - 215 : /* Read file contents */ - 216 4 : if (!g_file_get_contents (box_prior_path, &contents, NULL, &err)) { - 217 0 : GST_ERROR ("Decoder/Bound-Box/SSD's box prior file %s cannot be read: %s", - 218 : box_prior_path, err->message); - 219 0 : g_clear_error (&err); - 220 0 : return FALSE; - 221 : } + 167 37 : if (x >= 1.0f) + 168 0 : return INFINITY; + 169 : + 170 37 : return log (x / (1.0 - x)); + 171 : } + 172 : + 173 : static BoxProperties *mobilenet = nullptr; + 174 : + 175 : #ifdef __cplusplus + 176 : extern "C" { + 177 : #endif /* __cplusplus */ + 178 : void init_properties_mobilenetssd (void) __attribute__ ((constructor)); + 179 : void fini_properties_mobilenetssd (void) __attribute__ ((destructor)); + 180 : #ifdef __cplusplus + 181 : } + 182 : #endif /* __cplusplus */ + 183 : + 184 : /** @brief Constructor of MobilenetSSD */ + 185 33 : MobilenetSSD::MobilenetSSD () + 186 : { + 187 33 : params[THRESHOLD_IDX] = DETECTION_THRESHOLD_DEFAULT; + 188 33 : params[Y_SCALE_IDX] = Y_SCALE_DEFAULT; + 189 33 : params[X_SCALE_IDX] = X_SCALE_DEFAULT; + 190 33 : params[H_SCALE_IDX] = H_SCALE_DEFAULT; + 191 33 : params[W_SCALE_IDX] = W_SCALE_DEFAULT; + 192 33 : params[IOU_THRESHOLD_IDX] = THRESHOLD_IOU_DEFAULT; + 193 33 : sigmoid_threshold = logit (DETECTION_THRESHOLD_DEFAULT); + 194 : + 195 33 : max_detection = 0; + 196 33 : total_labels = 0; + 197 33 : box_prior_path = nullptr; + 198 33 : name = g_strdup_printf ("mobilenet-ssd"); + 199 33 : } + 200 : + 201 : /** @brief Destructor of MobilenetSSD */ + 202 66 : MobilenetSSD::~MobilenetSSD () + 203 : { + 204 33 : g_free (name); + 205 66 : } + 206 : + 207 : /** + 208 : * @brief Load box-prior data from a file + 209 : * @param[in/out] bdata The internal data. + 210 : * @return TRUE if loaded and configured. FALSE if failed to do so. + 211 : */ + 212 : int + 213 4 : MobilenetSSD::mobilenet_ssd_loadBoxPrior () + 214 : { + 215 4 : gboolean failed = FALSE; + 216 4 : GError *err = NULL; + 217 : gchar **priors; + 218 4 : gchar *line = NULL; + 219 4 : gchar *contents = NULL; + 220 : guint row; + 221 4 : gint prev_reg = -1; 222 : - 223 4 : priors = g_strsplit (contents, "\n", -1); - 224 : /* If given prior file is inappropriate, report back to tensor-decoder */ - 225 4 : if (g_strv_length (priors) < BOX_SIZE) { - 226 0 : ml_loge ("The given prior file, %s, should have at least %d lines.\n", - 227 : box_prior_path, BOX_SIZE); - 228 0 : failed = TRUE; - 229 0 : goto error; - 230 : } - 231 : - 232 20 : for (row = 0; row < BOX_SIZE; row++) { - 233 16 : gint column = 0, registered = 0; - 234 : - 235 16 : line = priors[row]; - 236 16 : if (line) { - 237 16 : gchar **list = g_strsplit_set (line, " \t,", -1); - 238 : gchar *word; + 223 : /* Read file contents */ + 224 4 : if (!g_file_get_contents (box_prior_path, &contents, NULL, &err)) { + 225 0 : GST_ERROR ("Decoder/Bound-Box/SSD's box prior file %s cannot be read: %s", + 226 : box_prior_path, err->message); + 227 0 : g_clear_error (&err); + 228 0 : return FALSE; + 229 : } + 230 : + 231 4 : priors = g_strsplit (contents, "\n", -1); + 232 : /* If given prior file is inappropriate, report back to tensor-decoder */ + 233 4 : if (g_strv_length (priors) < BOX_SIZE) { + 234 0 : ml_loge ("The given prior file, %s, should have at least %d lines.\n", + 235 : box_prior_path, BOX_SIZE); + 236 0 : failed = TRUE; + 237 0 : goto error; + 238 : } 239 : - 240 30832 : while ((word = list[column]) != NULL) { - 241 30816 : column++; + 240 20 : for (row = 0; row < BOX_SIZE; row++) { + 241 16 : gint column = 0, registered = 0; 242 : - 243 30816 : if (word && *word) { - 244 30672 : if (registered > DETECTION_MAX) { - 245 0 : GST_WARNING ("Decoder/Bound-Box/SSD's box prior data file has too many priors. %d >= %d", - 246 : registered, DETECTION_MAX); - 247 0 : break; - 248 : } - 249 30672 : box_priors[row][registered] = (gfloat) g_ascii_strtod (word, NULL); - 250 30672 : registered++; - 251 : } - 252 : } - 253 : - 254 16 : g_strfreev (list); - 255 : } - 256 : - 257 16 : if (prev_reg != -1 && prev_reg != registered) { - 258 0 : GST_ERROR ("Decoder/Bound-Box/SSD's box prior data file is not consistent."); - 259 0 : failed = TRUE; - 260 0 : break; - 261 : } - 262 16 : prev_reg = registered; - 263 : } + 243 16 : line = priors[row]; + 244 16 : if (line) { + 245 16 : gchar **list = g_strsplit_set (line, " \t,", -1); + 246 : gchar *word; + 247 : + 248 30832 : while ((word = list[column]) != NULL) { + 249 30816 : column++; + 250 : + 251 30816 : if (word && *word) { + 252 30672 : if (registered > DETECTION_MAX) { + 253 0 : GST_WARNING ("Decoder/Bound-Box/SSD's box prior data file has too many priors. %d >= %d", + 254 : registered, DETECTION_MAX); + 255 0 : break; + 256 : } + 257 30672 : box_priors[row][registered] = (gfloat) g_ascii_strtod (word, NULL); + 258 30672 : registered++; + 259 : } + 260 : } + 261 : + 262 16 : g_strfreev (list); + 263 : } 264 : - 265 4 : error: - 266 4 : g_strfreev (priors); - 267 4 : g_free (contents); - 268 4 : return !failed; - 269 : } - 270 : - 271 : /** @brief Set internal option of MobilenetSSD - 272 : * @param[in] param The option string. - 273 : */ - 274 : int - 275 4 : MobilenetSSD::setOptionInternal (const char *param) - 276 : { - 277 : gchar **options; - 278 : int noptions, idx; - 279 4 : int ret = 1; - 280 : - 281 4 : options = g_strsplit (param, ":", -1); - 282 4 : noptions = g_strv_length (options); - 283 : - 284 4 : if (noptions > (PARAMS_MAX + 1)) - 285 0 : noptions = PARAMS_MAX + 1; - 286 : - 287 4 : if (box_prior_path) { - 288 0 : g_free (box_prior_path); - 289 0 : box_prior_path = nullptr; - 290 : } + 265 16 : if (prev_reg != -1 && prev_reg != registered) { + 266 0 : GST_ERROR ("Decoder/Bound-Box/SSD's box prior data file is not consistent."); + 267 0 : failed = TRUE; + 268 0 : break; + 269 : } + 270 16 : prev_reg = registered; + 271 : } + 272 : + 273 4 : error: + 274 4 : g_strfreev (priors); + 275 4 : g_free (contents); + 276 4 : return !failed; + 277 : } + 278 : + 279 : /** @brief Set internal option of MobilenetSSD + 280 : * @param[in] param The option string. + 281 : */ + 282 : int + 283 4 : MobilenetSSD::setOptionInternal (const char *param) + 284 : { + 285 : gchar **options; + 286 : int noptions, idx; + 287 4 : int ret = 1; + 288 : + 289 4 : options = g_strsplit (param, ":", -1); + 290 4 : noptions = g_strv_length (options); 291 : - 292 4 : box_prior_path = g_strdup (options[0]); - 293 : - 294 4 : if (NULL != box_prior_path) { - 295 4 : ret = mobilenet_ssd_loadBoxPrior (); - 296 4 : if (ret == 0) - 297 0 : goto exit_mobilenet_ssd; + 292 4 : if (noptions > (PARAMS_MAX + 1)) + 293 0 : noptions = PARAMS_MAX + 1; + 294 : + 295 4 : if (box_prior_path) { + 296 0 : g_free (box_prior_path); + 297 0 : box_prior_path = nullptr; 298 : } 299 : - 300 4 : for (idx = 1; idx < noptions; idx++) { - 301 0 : if (strlen (options[idx]) == 0) - 302 0 : continue; - 303 0 : params[idx - 1] = strtod (options[idx], NULL); - 304 : } - 305 : - 306 4 : sigmoid_threshold = logit (params[THRESHOLD_IDX]); + 300 4 : box_prior_path = g_strdup (options[0]); + 301 : + 302 4 : if (NULL != box_prior_path) { + 303 4 : ret = mobilenet_ssd_loadBoxPrior (); + 304 4 : if (ret == 0) + 305 0 : goto exit_mobilenet_ssd; + 306 : } 307 : - 308 4 : return TRUE; - 309 : - 310 0 : exit_mobilenet_ssd: - 311 0 : g_strfreev (options); - 312 0 : return ret; - 313 : } - 314 : - 315 : /** @brief Check compatibility of given tensors config - 316 : * @param[in] config The tensors config to check compatibility - 317 : */ - 318 : int - 319 36 : MobilenetSSD::checkCompatible (const GstTensorsConfig *config) - 320 : { - 321 : const uint32_t *dim1, *dim2; - 322 : int i; - 323 : guint max_label; - 324 36 : GstTensorInfo *info = nullptr; - 325 : - 326 36 : if (!check_tensors (config, MAX_TENSORS)) - 327 20 : return FALSE; - 328 : - 329 : /* Check if the first tensor is compatible */ - 330 16 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); - 331 16 : dim1 = info->dimension; - 332 : - 333 16 : g_return_val_if_fail (dim1[0] == BOX_SIZE, FALSE); - 334 16 : g_return_val_if_fail (dim1[1] == 1, FALSE); - 335 16 : g_return_val_if_fail (dim1[2] > 0, FALSE); + 308 4 : for (idx = 1; idx < noptions; idx++) { + 309 0 : if (strlen (options[idx]) == 0) + 310 0 : continue; + 311 0 : params[idx - 1] = strtod (options[idx], NULL); + 312 : } + 313 : + 314 4 : sigmoid_threshold = logit (params[THRESHOLD_IDX]); + 315 : + 316 4 : return TRUE; + 317 : + 318 0 : exit_mobilenet_ssd: + 319 0 : g_strfreev (options); + 320 0 : return ret; + 321 : } + 322 : + 323 : /** @brief Check compatibility of given tensors config + 324 : * @param[in] config The tensors config to check compatibility + 325 : */ + 326 : int + 327 36 : MobilenetSSD::checkCompatible (const GstTensorsConfig *config) + 328 : { + 329 : const uint32_t *dim1, *dim2; + 330 : int i; + 331 : guint max_label; + 332 36 : GstTensorInfo *info = nullptr; + 333 : + 334 36 : if (!check_tensors (config, MAX_TENSORS)) + 335 20 : return FALSE; 336 : - 337 : /** @todo unused dimension value should be 0 */ - 338 224 : for (i = 3; i < NNS_TENSOR_RANK_LIMIT; i++) - 339 208 : g_return_val_if_fail (dim1[i] == 0 || dim1[i] == 1, FALSE); + 337 : /* Check if the first tensor is compatible */ + 338 16 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); + 339 16 : dim1 = info->dimension; 340 : - 341 : /* Check if the second tensor is compatible */ - 342 16 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 1); - 343 16 : dim2 = info->dimension; + 341 16 : g_return_val_if_fail (dim1[0] == BOX_SIZE, FALSE); + 342 16 : g_return_val_if_fail (dim1[1] == 1, FALSE); + 343 16 : g_return_val_if_fail (dim1[2] > 0, FALSE); 344 : - 345 16 : max_label = dim2[0]; - 346 16 : g_return_val_if_fail (max_label <= total_labels, FALSE); - 347 16 : if (max_label < total_labels) - 348 0 : GST_WARNING ("The given tensor (2nd) has max_label (first dimension: %u) smaller than the number of labels in labels file (%u).", - 349 : max_label, total_labels); - 350 16 : g_return_val_if_fail (dim1[2] == dim2[1], FALSE); - 351 240 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; i++) - 352 224 : g_return_val_if_fail (dim2[i] == 0 || dim2[i] == 1, FALSE); - 353 : - 354 : /* Check consistency with max_detection */ - 355 16 : if (max_detection != 0 && max_detection != dim1[2]) { - 356 0 : GST_ERROR ("Failed to check consistency with max_detection"); - 357 0 : return FALSE; - 358 : } else { - 359 16 : max_detection = dim1[2]; - 360 : } + 345 : /** @todo unused dimension value should be 0 */ + 346 224 : for (i = 3; i < NNS_TENSOR_RANK_LIMIT; i++) + 347 208 : g_return_val_if_fail (dim1[i] == 0 || dim1[i] == 1, FALSE); + 348 : + 349 : /* Check if the second tensor is compatible */ + 350 16 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 1); + 351 16 : dim2 = info->dimension; + 352 : + 353 16 : max_label = dim2[0]; + 354 16 : g_return_val_if_fail (max_label <= total_labels, FALSE); + 355 16 : if (max_label < total_labels) + 356 0 : GST_WARNING ("The given tensor (2nd) has max_label (first dimension: %u) smaller than the number of labels in labels file (%u).", + 357 : max_label, total_labels); + 358 16 : g_return_val_if_fail (dim1[2] == dim2[1], FALSE); + 359 240 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; i++) + 360 224 : g_return_val_if_fail (dim2[i] == 0 || dim2[i] == 1, FALSE); 361 : - 362 16 : if (max_detection > DETECTION_MAX) { - 363 0 : GST_ERROR ("Incoming tensor has too large detection-max : %u", max_detection); - 364 0 : return FALSE; - 365 : } - 366 : - 367 16 : return TRUE; - 368 : } + 362 : /* Check consistency with max_detection */ + 363 16 : if (max_detection != 0 && max_detection != dim1[2]) { + 364 0 : GST_ERROR ("Failed to check consistency with max_detection"); + 365 0 : return FALSE; + 366 : } else { + 367 16 : max_detection = dim1[2]; + 368 : } 369 : - 370 : /** - 371 : * @brief Decode input memory to out buffer - 372 : * @param[in] config The structure of input tensor info. - 373 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. - 374 : */ - 375 : GArray * - 376 8 : MobilenetSSD::decode (const GstTensorsConfig *config, const GstTensorMemory *input) - 377 : { - 378 8 : const GstTensorMemory *boxes, *detections = NULL; - 379 : GArray *results; - 380 8 : const guint num_tensors = config->info.num_tensors; - 381 8 : GstTensorInfo *info = nullptr; - 382 : - 383 : /** - 384 : * @todo 100 is a heuristic number of objects in a picture frame - 385 : * We may have better "heuristics" than this. - 386 : * For the sake of performance, don't make it too small. - 387 : */ - 388 : - 389 : /* Already checked with getOutCaps. Thus, this is an internal bug */ - 390 8 : g_assert (num_tensors >= MAX_TENSORS); - 391 8 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), 100); - 392 : - 393 8 : boxes = &input[0]; - 394 8 : detections = &input[1]; - 395 8 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); + 370 16 : if (max_detection > DETECTION_MAX) { + 371 0 : GST_ERROR ("Incoming tensor has too large detection-max : %u", max_detection); + 372 0 : return FALSE; + 373 : } + 374 : + 375 16 : return TRUE; + 376 : } + 377 : + 378 : /** + 379 : * @brief Decode input memory to out buffer + 380 : * @param[in] config The structure of input tensor info. + 381 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. + 382 : */ + 383 : GArray * + 384 8 : MobilenetSSD::decode (const GstTensorsConfig *config, const GstTensorMemory *input) + 385 : { + 386 8 : const GstTensorMemory *boxes, *detections = NULL; + 387 : GArray *results; + 388 8 : const guint num_tensors = config->info.num_tensors; + 389 8 : GstTensorInfo *info = nullptr; + 390 : + 391 : /** + 392 : * @todo 100 is a heuristic number of objects in a picture frame + 393 : * We may have better "heuristics" than this. + 394 : * For the sake of performance, don't make it too small. + 395 : */ 396 : - 397 8 : switch (info->type) { - 398 0 : _get_objects_mobilenet_ssd_ (uint8_t, _NNS_UINT8); - 399 0 : _get_objects_mobilenet_ssd_ (int8_t, _NNS_INT8); - 400 0 : _get_objects_mobilenet_ssd_ (uint16_t, _NNS_UINT16); - 401 0 : _get_objects_mobilenet_ssd_ (int16_t, _NNS_INT16); - 402 0 : _get_objects_mobilenet_ssd_ (uint32_t, _NNS_UINT32); - 403 0 : _get_objects_mobilenet_ssd_ (int32_t, _NNS_INT32); - 404 0 : _get_objects_mobilenet_ssd_ (uint64_t, _NNS_UINT64); - 405 0 : _get_objects_mobilenet_ssd_ (int64_t, _NNS_INT64); - 406 1395584 : _get_objects_mobilenet_ssd_ (float, _NNS_FLOAT32); - 407 0 : _get_objects_mobilenet_ssd_ (double, _NNS_FLOAT64); - 408 0 : default: - 409 0 : g_assert (0); - 410 : } - 411 8 : nms (results, params[IOU_THRESHOLD_IDX]); - 412 8 : return results; - 413 : } - 414 : - 415 : /** @brief Initialize this object for tensor decoder bounding box */ - 416 : void - 417 33 : init_properties_mobilenetssd () - 418 : { - 419 33 : mobilenet = new MobilenetSSD (); - 420 33 : BoundingBox::addProperties (mobilenet); - 421 33 : } + 397 : /* Already checked with getOutCaps. Thus, this is an internal bug */ + 398 8 : g_assert (num_tensors >= MAX_TENSORS); + 399 8 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), 100); + 400 : + 401 8 : boxes = &input[0]; + 402 8 : detections = &input[1]; + 403 8 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); + 404 : + 405 8 : switch (info->type) { + 406 0 : _get_objects_mobilenet_ssd_ (uint8_t, _NNS_UINT8); + 407 0 : _get_objects_mobilenet_ssd_ (int8_t, _NNS_INT8); + 408 0 : _get_objects_mobilenet_ssd_ (uint16_t, _NNS_UINT16); + 409 0 : _get_objects_mobilenet_ssd_ (int16_t, _NNS_INT16); + 410 0 : _get_objects_mobilenet_ssd_ (uint32_t, _NNS_UINT32); + 411 0 : _get_objects_mobilenet_ssd_ (int32_t, _NNS_INT32); + 412 0 : _get_objects_mobilenet_ssd_ (uint64_t, _NNS_UINT64); + 413 0 : _get_objects_mobilenet_ssd_ (int64_t, _NNS_INT64); + 414 1395584 : _get_objects_mobilenet_ssd_ (float, _NNS_FLOAT32); + 415 0 : _get_objects_mobilenet_ssd_ (double, _NNS_FLOAT64); + 416 0 : default: + 417 0 : g_assert (0); + 418 : } + 419 8 : nms (results, params[IOU_THRESHOLD_IDX], MOBILENET_SSD_BOUNDING_BOX); + 420 8 : return results; + 421 : } 422 : - 423 : /** @brief Destruct this object for tensor decoder bounding box */ + 423 : /** @brief Initialize this object for tensor decoder bounding box */ 424 : void - 425 33 : fini_properties_mobilenetssd () + 425 33 : init_properties_mobilenetssd () 426 : { - 427 33 : delete mobilenet; - 428 33 : } + 427 33 : mobilenet = new MobilenetSSD (); + 428 33 : BoundingBox::addProperties (mobilenet); + 429 33 : } + 430 : + 431 : /** @brief Destruct this object for tensor decoder bounding box */ + 432 : void + 433 33 : fini_properties_mobilenetssd () + 434 : { + 435 33 : delete mobilenet; + 436 33 : } diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.func-c.html index 26ceb3298..826a334d3 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 88.9 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.func.html index 0384ecf82..2019d2c70 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 88.9 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.gcov.html index 4b172b1d3..329ae22e1 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mobilenetssdpp.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 88.9 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.func-c.html index a890b14bb..f63a8103f 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 87.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.func.html index f15ed7821..fb487e324 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 87.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.gcov.html index eb370a42c..d5141ec0e 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/mppalmdetection.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 87.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -426,7 +426,7 @@ 364 0 : default: 365 0 : g_assert (0); 366 : } - 367 4 : nms (results, 0.05f); + 367 4 : nms (results, 0.05f, MP_PALM_DETECTION_BOUNDING_BOX); 368 4 : return results; 369 : } 370 : diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.func-c.html index 84d0dae53..566303025 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 27.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 62.5 % @@ -63,7 +63,7 @@ - _ZN11OVDetection15checkCompatibleEPK16GstTensorsConfig + _ZN11OVDetection15checkCompatibleEPK16GstTensorsConfig 0 @@ -77,49 +77,49 @@ - _ZN11OVDetection6decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN11OVDetection6decodeEPK16GstTensorsConfigPK15GstTensorMemory 0 - _ZN11OVDetectionC2Ev + _ZN11OVDetectionC2Ev 33 - fini_properties_ovdetection + fini_properties_ovdetection 33 - init_properties_ovdetection + init_properties_ovdetection 33 - _ZN11OVDetectionD0Ev + _ZN11OVDetectionD0Ev 66 - _ZN11OVDetectionD0Ev + _ZN11OVDetectionD0Ev 33 - _ZN11OVDetectionD2Ev + _ZN11OVDetectionD2Ev 33 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.func.html index 444d2e326..9fb475ede 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 27.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 62.5 % @@ -63,7 +63,7 @@ - _ZN11OVDetection15checkCompatibleEPK16GstTensorsConfig + _ZN11OVDetection15checkCompatibleEPK16GstTensorsConfig 0 @@ -77,49 +77,49 @@ - _ZN11OVDetection6decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN11OVDetection6decodeEPK16GstTensorsConfigPK15GstTensorMemory 0 - _ZN11OVDetectionC2Ev + _ZN11OVDetectionC2Ev 33 - _ZN11OVDetectionD0Ev + _ZN11OVDetectionD0Ev 66 - _ZN11OVDetectionD0Ev + _ZN11OVDetectionD0Ev 33 - _ZN11OVDetectionD2Ev + _ZN11OVDetectionD2Ev 33 - fini_properties_ovdetection + fini_properties_ovdetection 33 - init_properties_ovdetection + init_properties_ovdetection 33 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.gcov.html index d16d62689..328d5d519 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/ovdetection.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 27.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 62.5 % @@ -107,145 +107,153 @@ 45 : * @param[in] typename nnstreamer enum corresponding to the type 46 : * @param[out] results The object returned. (GArray with detectedObject) 47 : */ - 48 : #define _get_persons_ov(type, inputptr, typename, results) \ - 49 : case typename: \ - 50 : { \ - 51 : type *typed_inputptr = (type *) inputptr; \ - 52 : guint d; \ - 53 : \ - 54 : for (d = 1; d <= DETECTION_MAX; ++d) { \ - 55 : struct { \ - 56 : type image_id; \ - 57 : type label; \ - 58 : type conf; \ - 59 : type x_min; \ - 60 : type y_min; \ - 61 : type x_max; \ - 62 : type y_max; \ - 63 : } desc; \ - 64 : \ - 65 : memcpy (&desc, typed_inputptr, sizeof (desc)); \ - 66 : typed_inputptr += (sizeof (desc) / sizeof (type)); \ - 67 : \ - 68 : if ((int) desc.image_id < 0) { \ - 69 : max_detection = (d - 1); \ - 70 : break; \ - 71 : } \ - 72 : if ((double) desc.conf < OV_PERSON_DETECTION_CONF_THRESHOLD) \ - 73 : continue; \ - 74 : \ - 75 : detectedObject object = { \ - 76 : .valid = FALSE, .class_id = 0, .x = 0, .y = 0, .width = 0, .height = 0, .prob = .0, .tracking_id = 0 \ - 77 : }; \ - 78 : object.class_id = -1; \ - 79 : object.x = (int) (desc.x_min * (type) i_width); \ - 80 : object.y = (int) (desc.y_min * (type) i_height); \ - 81 : object.width = (int) ((desc.x_max - desc.x_min) * (type) i_width); \ - 82 : object.height = (int) ((desc.y_max - desc.y_min) * (type) i_height); \ - 83 : object.prob = 1; \ - 84 : object.valid = TRUE; \ - 85 : g_array_append_val (results, object); \ - 86 : } \ - 87 : } \ - 88 : break - 89 : - 90 : static BoxProperties *ov_detection = nullptr; - 91 : - 92 : #ifdef __cplusplus - 93 : extern "C" { - 94 : #endif /* __cplusplus */ - 95 : void init_properties_ovdetection (void) __attribute__ ((constructor)); - 96 : void fini_properties_ovdetection (void) __attribute__ ((destructor)); - 97 : #ifdef __cplusplus - 98 : } - 99 : #endif /* __cplusplus */ - 100 : - 101 : /** @brief Constructor of OVDetection */ - 102 33 : OVDetection::OVDetection () - 103 : { - 104 33 : name = g_strdup_printf ("ov-person-detection"); - 105 33 : } - 106 : - 107 : /** @brief Destructor of OVDetection */ - 108 66 : OVDetection::~OVDetection () - 109 : { - 110 33 : g_free (name); - 111 66 : } - 112 : - 113 : /** @brief Check compatibility of given tensors config */ - 114 : int - 115 0 : OVDetection::checkCompatible (const GstTensorsConfig *config) - 116 : { - 117 : const guint *dim; - 118 : int i; - 119 0 : GstTensorInfo *info = nullptr; - 120 : UNUSED (total_labels); - 121 : - 122 0 : if (!check_tensors (config, DEFAULT_MAX_TENSORS)) - 123 0 : return FALSE; - 124 : - 125 : /** - 126 : * The shape of the output tensor is [7, N, 1, 1], where N is the maximum - 127 : * number (i.e., 200) of detected bounding boxes. - 128 : */ - 129 0 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); - 130 0 : dim = info->dimension; - 131 0 : g_return_val_if_fail (dim[0] == DEFAULT_SIZE_DETECTION_DESC, FALSE); - 132 0 : g_return_val_if_fail (dim[1] == DETECTION_MAX, FALSE); - 133 0 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; ++i) - 134 0 : g_return_val_if_fail (dim[i] == 0 || dim[i] == 1, FALSE); - 135 : - 136 0 : return TRUE; - 137 : } - 138 : - 139 : /** - 140 : * @brief Decode input memory to out buffer - 141 : * @param[in] config The structure of input tensor info. - 142 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. - 143 : */ - 144 : GArray * - 145 0 : OVDetection::decode (const GstTensorsConfig *config, const GstTensorMemory *input) - 146 : { - 147 0 : GArray *results = NULL; - 148 0 : const guint num_tensors = config->info.num_tensors; - 149 0 : GstTensorInfo *info = nullptr; - 150 : - 151 : /* Already checked with getOutCaps. Thus, this is an internal bug */ - 152 0 : g_assert (num_tensors >= DEFAULT_MAX_TENSORS); - 153 : - 154 0 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), DETECTION_MAX); - 155 0 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); - 156 0 : switch (info->type) { - 157 0 : _get_persons_ov (uint8_t, input[0].data, _NNS_UINT8, results); - 158 0 : _get_persons_ov (int8_t, input[0].data, _NNS_INT8, results); - 159 0 : _get_persons_ov (uint16_t, input[0].data, _NNS_UINT16, results); - 160 0 : _get_persons_ov (int16_t, input[0].data, _NNS_INT16, results); - 161 0 : _get_persons_ov (uint32_t, input[0].data, _NNS_UINT32, results); - 162 0 : _get_persons_ov (int32_t, input[0].data, _NNS_INT32, results); - 163 0 : _get_persons_ov (uint64_t, input[0].data, _NNS_UINT64, results); - 164 0 : _get_persons_ov (int64_t, input[0].data, _NNS_INT64, results); - 165 0 : _get_persons_ov (float, input[0].data, _NNS_FLOAT32, results); - 166 0 : _get_persons_ov (double, input[0].data, _NNS_FLOAT64, results); - 167 0 : default: - 168 0 : g_assert (0); - 169 : } - 170 0 : return results; - 171 : } - 172 : - 173 : /** @brief Initialize this object for tensor decoder bounding box */ - 174 : void - 175 33 : init_properties_ovdetection () - 176 : { - 177 33 : ov_detection = new OVDetection (); - 178 33 : BoundingBox::addProperties (ov_detection); - 179 33 : } + 48 : #define _get_persons_ov(type, inputptr, typename, results) \ + 49 : case typename: \ + 50 : { \ + 51 : type *typed_inputptr = (type *) inputptr; \ + 52 : guint d; \ + 53 : \ + 54 : for (d = 1; d <= DETECTION_MAX; ++d) { \ + 55 : struct { \ + 56 : type image_id; \ + 57 : type label; \ + 58 : type conf; \ + 59 : type x_min; \ + 60 : type y_min; \ + 61 : type x_max; \ + 62 : type y_max; \ + 63 : } desc; \ + 64 : \ + 65 : memcpy (&desc, typed_inputptr, sizeof (desc)); \ + 66 : typed_inputptr += (sizeof (desc) / sizeof (type)); \ + 67 : \ + 68 : if ((int) desc.image_id < 0) { \ + 69 : max_detection = (d - 1); \ + 70 : break; \ + 71 : } \ + 72 : if ((double) desc.conf < OV_PERSON_DETECTION_CONF_THRESHOLD) \ + 73 : continue; \ + 74 : \ + 75 : detectedObject object = { \ + 76 : .valid = FALSE, \ + 77 : .class_id = 0, \ + 78 : .x = 0, \ + 79 : .y = 0, \ + 80 : .width = 0, \ + 81 : .height = 0, \ + 82 : .angle = 0, \ + 83 : .prob = .0, \ + 84 : .tracking_id = 0, \ + 85 : }; \ + 86 : object.class_id = -1; \ + 87 : object.x = (int) (desc.x_min * (type) i_width); \ + 88 : object.y = (int) (desc.y_min * (type) i_height); \ + 89 : object.width = (int) ((desc.x_max - desc.x_min) * (type) i_width); \ + 90 : object.height = (int) ((desc.y_max - desc.y_min) * (type) i_height); \ + 91 : object.prob = 1; \ + 92 : object.valid = TRUE; \ + 93 : g_array_append_val (results, object); \ + 94 : } \ + 95 : } \ + 96 : break + 97 : + 98 : static BoxProperties *ov_detection = nullptr; + 99 : + 100 : #ifdef __cplusplus + 101 : extern "C" { + 102 : #endif /* __cplusplus */ + 103 : void init_properties_ovdetection (void) __attribute__ ((constructor)); + 104 : void fini_properties_ovdetection (void) __attribute__ ((destructor)); + 105 : #ifdef __cplusplus + 106 : } + 107 : #endif /* __cplusplus */ + 108 : + 109 : /** @brief Constructor of OVDetection */ + 110 33 : OVDetection::OVDetection () + 111 : { + 112 33 : name = g_strdup_printf ("ov-person-detection"); + 113 33 : } + 114 : + 115 : /** @brief Destructor of OVDetection */ + 116 66 : OVDetection::~OVDetection () + 117 : { + 118 33 : g_free (name); + 119 66 : } + 120 : + 121 : /** @brief Check compatibility of given tensors config */ + 122 : int + 123 0 : OVDetection::checkCompatible (const GstTensorsConfig *config) + 124 : { + 125 : const guint *dim; + 126 : int i; + 127 0 : GstTensorInfo *info = nullptr; + 128 : UNUSED (total_labels); + 129 : + 130 0 : if (!check_tensors (config, DEFAULT_MAX_TENSORS)) + 131 0 : return FALSE; + 132 : + 133 : /** + 134 : * The shape of the output tensor is [7, N, 1, 1], where N is the maximum + 135 : * number (i.e., 200) of detected bounding boxes. + 136 : */ + 137 0 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); + 138 0 : dim = info->dimension; + 139 0 : g_return_val_if_fail (dim[0] == DEFAULT_SIZE_DETECTION_DESC, FALSE); + 140 0 : g_return_val_if_fail (dim[1] == DETECTION_MAX, FALSE); + 141 0 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; ++i) + 142 0 : g_return_val_if_fail (dim[i] == 0 || dim[i] == 1, FALSE); + 143 : + 144 0 : return TRUE; + 145 : } + 146 : + 147 : /** + 148 : * @brief Decode input memory to out buffer + 149 : * @param[in] config The structure of input tensor info. + 150 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. + 151 : */ + 152 : GArray * + 153 0 : OVDetection::decode (const GstTensorsConfig *config, const GstTensorMemory *input) + 154 : { + 155 0 : GArray *results = NULL; + 156 0 : const guint num_tensors = config->info.num_tensors; + 157 0 : GstTensorInfo *info = nullptr; + 158 : + 159 : /* Already checked with getOutCaps. Thus, this is an internal bug */ + 160 0 : g_assert (num_tensors >= DEFAULT_MAX_TENSORS); + 161 : + 162 0 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), DETECTION_MAX); + 163 0 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); + 164 0 : switch (info->type) { + 165 0 : _get_persons_ov (uint8_t, input[0].data, _NNS_UINT8, results); + 166 0 : _get_persons_ov (int8_t, input[0].data, _NNS_INT8, results); + 167 0 : _get_persons_ov (uint16_t, input[0].data, _NNS_UINT16, results); + 168 0 : _get_persons_ov (int16_t, input[0].data, _NNS_INT16, results); + 169 0 : _get_persons_ov (uint32_t, input[0].data, _NNS_UINT32, results); + 170 0 : _get_persons_ov (int32_t, input[0].data, _NNS_INT32, results); + 171 0 : _get_persons_ov (uint64_t, input[0].data, _NNS_UINT64, results); + 172 0 : _get_persons_ov (int64_t, input[0].data, _NNS_INT64, results); + 173 0 : _get_persons_ov (float, input[0].data, _NNS_FLOAT32, results); + 174 0 : _get_persons_ov (double, input[0].data, _NNS_FLOAT64, results); + 175 0 : default: + 176 0 : g_assert (0); + 177 : } + 178 0 : return results; + 179 : } 180 : - 181 : /** @brief Destruct this object for tensor decoder bounding box */ + 181 : /** @brief Initialize this object for tensor decoder bounding box */ 182 : void - 183 33 : fini_properties_ovdetection () + 183 33 : init_properties_ovdetection () 184 : { - 185 33 : delete ov_detection; - 186 33 : } + 185 33 : ov_detection = new OVDetection (); + 186 33 : BoundingBox::addProperties (ov_detection); + 187 33 : } + 188 : + 189 : /** @brief Destruct this object for tensor decoder bounding box */ + 190 : void + 191 33 : fini_properties_ovdetection () + 192 : { + 193 33 : delete ov_detection; + 194 33 : } diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.func-c.html index 03ec9e96c..d2e8b02f0 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc - functions @@ -28,21 +28,21 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 92.2 % - 244 - 225 + 72.1 % + 333 + 240 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 100.0 % - 24 - 24 + 90.6 % + 32 + 29 @@ -63,189 +63,252 @@ - _ZN6YoloV817setOptionInternalEPKc + _ZN10YoloV8_OBB15checkCompatibleEPK16GstTensorsConfig + + 0 + + + + + _ZN10YoloV8_OBB17setOptionInternalEPKc + + 0 + + + + + _ZN10YoloV8_OBB6decodeEPK16GstTensorsConfigPK15GstTensorMemory + + 0 + + + + + _ZN6YoloV817setOptionInternalEPKc 1 - _ZN6YoloV86decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN6YoloV86decodeEPK16GstTensorsConfigPK15GstTensorMemory 1 - _ZN7YoloV106decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN7YoloV106decodeEPK16GstTensorsConfigPK15GstTensorMemory 1 - _ZN6YoloV517setOptionInternalEPKc + _ZN6YoloV517setOptionInternalEPKc 2 - _ZN7YoloV1017setOptionInternalEPKc + _ZN7YoloV1017setOptionInternalEPKc 2 - _ZN6YoloV56decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN6YoloV56decodeEPK16GstTensorsConfigPK15GstTensorMemory 4 - _ZN6YoloV815checkCompatibleEPK16GstTensorsConfig + _ZN6YoloV815checkCompatibleEPK16GstTensorsConfig 9 - _ZN6YoloV515checkCompatibleEPK16GstTensorsConfig + _ZN6YoloV515checkCompatibleEPK16GstTensorsConfig 18 - _ZN7YoloV1015checkCompatibleEPK16GstTensorsConfig + _ZN7YoloV1015checkCompatibleEPK16GstTensorsConfig 27 - _ZN6YoloV5C2Ev + _ZN10YoloV8_OBBC2Ev 33 - _ZN6YoloV8C2Ev + _ZN6YoloV5C2Ev 33 - _ZN7YoloV10C2Ev + _ZN6YoloV8C2Ev 33 - fini_properties_yolo10 + _ZN7YoloV10C2Ev 33 - fini_properties_yolo5 + fini_properties_yolo10 33 - fini_properties_yolo8 + fini_properties_yolo5 33 - init_properties_yolo10 + fini_properties_yolo8 33 - init_properties_yolo5 + fini_properties_yolo8_obb 33 - init_properties_yolo8 + init_properties_yolo10 33 - _ZN6YoloV5D0Ev + init_properties_yolo5 + + 33 + + + + + init_properties_yolo8 + + 33 + + + + + init_properties_yolo8_obb + + 33 + + + + + _ZN10YoloV8_OBBD0Ev + + 66 + + + + + _ZN10YoloV8_OBBD0Ev + + 33 + + + + + _ZN10YoloV8_OBBD2Ev + + 33 + + + + + _ZN6YoloV5D0Ev 66 - _ZN6YoloV5D0Ev + _ZN6YoloV5D0Ev 33 - _ZN6YoloV5D2Ev + _ZN6YoloV5D2Ev 33 - _ZN6YoloV8D0Ev + _ZN6YoloV8D0Ev 66 - _ZN6YoloV8D0Ev + _ZN6YoloV8D0Ev 33 - _ZN6YoloV8D2Ev + _ZN6YoloV8D2Ev 33 - _ZN7YoloV10D0Ev + _ZN7YoloV10D0Ev 66 - _ZN7YoloV10D0Ev + _ZN7YoloV10D0Ev 33 - _ZN7YoloV10D2Ev + _ZN7YoloV10D2Ev 33 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.func.html index ceb432385..5118c1ad1 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc - functions @@ -28,21 +28,21 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 92.2 % - 244 - 225 + 72.1 % + 333 + 240 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 100.0 % - 24 - 24 + 90.6 % + 32 + 29 @@ -63,189 +63,252 @@ - _ZN6YoloV515checkCompatibleEPK16GstTensorsConfig + _ZN10YoloV8_OBB15checkCompatibleEPK16GstTensorsConfig + + 0 + + + + + _ZN10YoloV8_OBB17setOptionInternalEPKc + + 0 + + + + + _ZN10YoloV8_OBB6decodeEPK16GstTensorsConfigPK15GstTensorMemory + + 0 + + + + + _ZN10YoloV8_OBBC2Ev + + 33 + + + + + _ZN10YoloV8_OBBD0Ev + + 66 + + + + + _ZN10YoloV8_OBBD0Ev + + 33 + + + + + _ZN10YoloV8_OBBD2Ev + + 33 + + + + + _ZN6YoloV515checkCompatibleEPK16GstTensorsConfig 18 - _ZN6YoloV517setOptionInternalEPKc + _ZN6YoloV517setOptionInternalEPKc 2 - _ZN6YoloV56decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN6YoloV56decodeEPK16GstTensorsConfigPK15GstTensorMemory 4 - _ZN6YoloV5C2Ev + _ZN6YoloV5C2Ev 33 - _ZN6YoloV5D0Ev + _ZN6YoloV5D0Ev 66 - _ZN6YoloV5D0Ev + _ZN6YoloV5D0Ev 33 - _ZN6YoloV5D2Ev + _ZN6YoloV5D2Ev 33 - _ZN6YoloV815checkCompatibleEPK16GstTensorsConfig + _ZN6YoloV815checkCompatibleEPK16GstTensorsConfig 9 - _ZN6YoloV817setOptionInternalEPKc + _ZN6YoloV817setOptionInternalEPKc 1 - _ZN6YoloV86decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN6YoloV86decodeEPK16GstTensorsConfigPK15GstTensorMemory 1 - _ZN6YoloV8C2Ev + _ZN6YoloV8C2Ev 33 - _ZN6YoloV8D0Ev + _ZN6YoloV8D0Ev 66 - _ZN6YoloV8D0Ev + _ZN6YoloV8D0Ev 33 - _ZN6YoloV8D2Ev + _ZN6YoloV8D2Ev 33 - _ZN7YoloV1015checkCompatibleEPK16GstTensorsConfig + _ZN7YoloV1015checkCompatibleEPK16GstTensorsConfig 27 - _ZN7YoloV1017setOptionInternalEPKc + _ZN7YoloV1017setOptionInternalEPKc 2 - _ZN7YoloV106decodeEPK16GstTensorsConfigPK15GstTensorMemory + _ZN7YoloV106decodeEPK16GstTensorsConfigPK15GstTensorMemory 1 - _ZN7YoloV10C2Ev + _ZN7YoloV10C2Ev 33 - _ZN7YoloV10D0Ev + _ZN7YoloV10D0Ev 66 - _ZN7YoloV10D0Ev + _ZN7YoloV10D0Ev 33 - _ZN7YoloV10D2Ev + _ZN7YoloV10D2Ev 33 - fini_properties_yolo10 + fini_properties_yolo10 + + 33 + + + + + fini_properties_yolo5 + + 33 + + + + + fini_properties_yolo8 33 - fini_properties_yolo5 + fini_properties_yolo8_obb 33 - fini_properties_yolo8 + init_properties_yolo10 33 - init_properties_yolo10 + init_properties_yolo5 33 - init_properties_yolo5 + init_properties_yolo8 33 - init_properties_yolo8 + init_properties_yolo8_obb 33 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.gcov.html index 9187e8e51..0cca0cd7b 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/box_properties/yolo.cc @@ -28,21 +28,21 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 92.2 % - 244 - 225 + 72.1 % + 333 + 240 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 100.0 % - 24 - 24 + 90.6 % + 32 + 29 @@ -83,546 +83,738 @@ 21 : #define YOLO_DETECTION_IOU_THRESHOLD (0.45) 22 : #define DEFAULT_DETECTION_NUM_INFO_YOLO5 (5) 23 : #define DEFAULT_DETECTION_NUM_INFO_YOLO8 (4) - 24 : - 25 : /** - 26 : * @brief Class for YoloV5 box properties - 27 : */ - 28 : class YoloV5 : public BoxProperties - 29 : { - 30 : public: - 31 : YoloV5 (); - 32 : ~YoloV5 (); - 33 : int setOptionInternal (const char *param); - 34 : int checkCompatible (const GstTensorsConfig *config); - 35 : GArray *decode (const GstTensorsConfig *config, const GstTensorMemory *input); - 36 : - 37 : private: - 38 : /* From option3, whether the output values are scaled or not */ - 39 : int scaled_output; - 40 : gfloat conf_threshold; - 41 : gfloat iou_threshold; - 42 : }; - 43 : - 44 : /** - 45 : * @brief Class for YoloV8 box properties - 46 : */ - 47 : class YoloV8 : public BoxProperties - 48 : { - 49 : public: - 50 : YoloV8 (); - 51 : ~YoloV8 (); - 52 : int setOptionInternal (const char *param); - 53 : int checkCompatible (const GstTensorsConfig *config); - 54 : GArray *decode (const GstTensorsConfig *config, const GstTensorMemory *input); - 55 : - 56 : private: - 57 : /* From option3, whether the output values are scaled or not */ - 58 : int scaled_output; - 59 : gfloat conf_threshold; - 60 : gfloat iou_threshold; - 61 : }; - 62 : - 63 : /** - 64 : * @brief Class for YoloV10 box properties - 65 : */ - 66 : class YoloV10 : public BoxProperties - 67 : { - 68 : public: - 69 : YoloV10 (); - 70 : ~YoloV10 (); - 71 : int setOptionInternal (const char *param); - 72 : int checkCompatible (const GstTensorsConfig *config); - 73 : GArray *decode (const GstTensorsConfig *config, const GstTensorMemory *input); - 74 : - 75 : private: - 76 : gfloat conf_threshold; - 77 : }; - 78 : - 79 : static BoxProperties *yolo5 = nullptr; - 80 : static BoxProperties *yolo8 = nullptr; - 81 : static BoxProperties *yolo10 = nullptr; - 82 : - 83 : #ifdef __cplusplus - 84 : extern "C" { - 85 : #endif /* __cplusplus */ - 86 : void init_properties_yolo5 (void) __attribute__ ((constructor)); - 87 : void fini_properties_yolo5 (void) __attribute__ ((destructor)); - 88 : - 89 : void init_properties_yolo8 (void) __attribute__ ((constructor)); - 90 : void fini_properties_yolo8 (void) __attribute__ ((destructor)); + 24 : #define DEFAULT_DETECTION_NUM_INFO_YOLO8_OBB (5) + 25 : + 26 : /** + 27 : * @brief Class for YoloV5 box properties + 28 : */ + 29 : class YoloV5 : public BoxProperties + 30 : { + 31 : public: + 32 : YoloV5 (); + 33 : ~YoloV5 (); + 34 : int setOptionInternal (const char *param); + 35 : int checkCompatible (const GstTensorsConfig *config); + 36 : GArray *decode (const GstTensorsConfig *config, const GstTensorMemory *input); + 37 : + 38 : private: + 39 : /* From option3, whether the output values are scaled or not */ + 40 : int scaled_output; + 41 : gfloat conf_threshold; + 42 : gfloat iou_threshold; + 43 : }; + 44 : + 45 : /** + 46 : * @brief Class for YoloV8 box properties + 47 : */ + 48 : class YoloV8 : public BoxProperties + 49 : { + 50 : public: + 51 : YoloV8 (); + 52 : ~YoloV8 (); + 53 : int setOptionInternal (const char *param); + 54 : int checkCompatible (const GstTensorsConfig *config); + 55 : GArray *decode (const GstTensorsConfig *config, const GstTensorMemory *input); + 56 : + 57 : private: + 58 : /* From option3, whether the output values are scaled or not */ + 59 : int scaled_output; + 60 : gfloat conf_threshold; + 61 : gfloat iou_threshold; + 62 : }; + 63 : + 64 : /** + 65 : * @brief Class for YoloV10 box properties + 66 : */ + 67 : class YoloV10 : public BoxProperties + 68 : { + 69 : public: + 70 : YoloV10 (); + 71 : ~YoloV10 (); + 72 : int setOptionInternal (const char *param); + 73 : int checkCompatible (const GstTensorsConfig *config); + 74 : GArray *decode (const GstTensorsConfig *config, const GstTensorMemory *input); + 75 : + 76 : private: + 77 : gfloat conf_threshold; + 78 : }; + 79 : + 80 : /** + 81 : * @brief Class for YoloV8 box properties + 82 : */ + 83 : class YoloV8_OBB : public BoxProperties + 84 : { + 85 : public: + 86 : YoloV8_OBB (); + 87 : ~YoloV8_OBB (); + 88 : int setOptionInternal (const char *param); + 89 : int checkCompatible (const GstTensorsConfig *config); + 90 : GArray *decode (const GstTensorsConfig *config, const GstTensorMemory *input); 91 : - 92 : void init_properties_yolo10 (void) __attribute__ ((constructor)); - 93 : void fini_properties_yolo10 (void) __attribute__ ((destructor)); - 94 : #ifdef __cplusplus - 95 : } - 96 : #endif /* __cplusplus */ - 97 : - 98 : /** @brief Constructor of YoloV5 */ - 99 33 : YoloV5::YoloV5 () - 100 : { - 101 33 : scaled_output = 0; - 102 33 : conf_threshold = YOLO_DETECTION_CONF_THRESHOLD; - 103 33 : iou_threshold = YOLO_DETECTION_IOU_THRESHOLD; - 104 33 : name = g_strdup_printf ("yolov5"); - 105 33 : } - 106 : - 107 : /** @brief Destructor of YoloV5 */ - 108 66 : YoloV5::~YoloV5 () - 109 : { - 110 33 : g_free (name); - 111 66 : } + 92 : private: + 93 : /* From option3, whether the output values are scaled or not */ + 94 : int scaled_output; + 95 : gfloat conf_threshold; + 96 : gfloat iou_threshold; + 97 : }; + 98 : + 99 : static BoxProperties *yolo5 = nullptr; + 100 : static BoxProperties *yolo8 = nullptr; + 101 : static BoxProperties *yolo10 = nullptr; + 102 : static BoxProperties *yolo8_obb = nullptr; + 103 : + 104 : #ifdef __cplusplus + 105 : extern "C" { + 106 : #endif /* __cplusplus */ + 107 : void init_properties_yolo5 (void) __attribute__ ((constructor)); + 108 : void fini_properties_yolo5 (void) __attribute__ ((destructor)); + 109 : + 110 : void init_properties_yolo8 (void) __attribute__ ((constructor)); + 111 : void fini_properties_yolo8 (void) __attribute__ ((destructor)); 112 : - 113 : /** @brief Set internal option of YoloV5 - 114 : * @param[in] param The option string. - 115 : */ - 116 : int - 117 2 : YoloV5::setOptionInternal (const char *param) - 118 : { - 119 : gchar **options; - 120 : int noptions; + 113 : void init_properties_yolo10 (void) __attribute__ ((constructor)); + 114 : void fini_properties_yolo10 (void) __attribute__ ((destructor)); + 115 : + 116 : void init_properties_yolo8_obb (void) __attribute__ ((constructor)); + 117 : void fini_properties_yolo8_obb (void) __attribute__ ((destructor)); + 118 : #ifdef __cplusplus + 119 : } + 120 : #endif /* __cplusplus */ 121 : - 122 2 : options = g_strsplit (param, ":", -1); - 123 2 : noptions = g_strv_length (options); - 124 2 : if (noptions > 0) - 125 2 : scaled_output = (int) g_ascii_strtoll (options[0], NULL, 10); - 126 2 : if (noptions > 1) - 127 2 : conf_threshold = (gfloat) g_ascii_strtod (options[1], NULL); - 128 2 : if (noptions > 2) - 129 2 : iou_threshold = (gfloat) g_ascii_strtod (options[2], NULL); + 122 : /** @brief Constructor of YoloV5 */ + 123 33 : YoloV5::YoloV5 () + 124 : { + 125 33 : scaled_output = 0; + 126 33 : conf_threshold = YOLO_DETECTION_CONF_THRESHOLD; + 127 33 : iou_threshold = YOLO_DETECTION_IOU_THRESHOLD; + 128 33 : name = g_strdup_printf ("yolov5"); + 129 33 : } 130 : - 131 2 : nns_logi ("Setting YOLOV5/YOLOV8 decoder as scaled_output: %d, conf_threshold: %.2f, iou_threshold: %.2f", - 132 : scaled_output, conf_threshold, iou_threshold); - 133 : - 134 2 : g_strfreev (options); - 135 2 : return TRUE; - 136 : } - 137 : - 138 : /** @brief Check compatibility of given tensors config - 139 : * @param[in] param The option string. - 140 : */ - 141 : int - 142 18 : YoloV5::checkCompatible (const GstTensorsConfig *config) - 143 : { - 144 18 : GstTensorInfo *info = nullptr; - 145 : const guint *dim; - 146 : int i; - 147 : - 148 18 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); - 149 18 : dim = info->dimension; - 150 18 : if (!check_tensors (config, 1U)) - 151 0 : return FALSE; - 152 : - 153 18 : max_detection = ((i_width / 32) * (i_height / 32) + (i_width / 16) * (i_height / 16) - 154 18 : + (i_width / 8) * (i_height / 8)) - 155 18 : * 3; - 156 : - 157 18 : g_return_val_if_fail (dim[0] == (total_labels + DEFAULT_DETECTION_NUM_INFO_YOLO5), FALSE); - 158 8 : g_return_val_if_fail (dim[1] == max_detection, FALSE); - 159 120 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; ++i) - 160 112 : g_return_val_if_fail (dim[i] == 0 || dim[i] == 1, FALSE); - 161 8 : return TRUE; - 162 : } - 163 : - 164 : /** - 165 : * @brief Decode input memory to out buffer - 166 : * @param[in] config The structure of input tensor info. - 167 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. - 168 : */ - 169 : GArray * - 170 4 : YoloV5::decode (const GstTensorsConfig *config, const GstTensorMemory *input) - 171 : { - 172 4 : GArray *results = NULL; - 173 : - 174 : int bIdx, numTotalBox; - 175 : int cIdx, numTotalClass, cStartIdx, cIdxMax; - 176 : float *boxinput; - 177 4 : int is_output_scaled = scaled_output; - 178 4 : GstTensorInfo *info = nullptr; - 179 : - 180 4 : numTotalBox = max_detection; - 181 4 : numTotalClass = total_labels; - 182 4 : cStartIdx = DEFAULT_DETECTION_NUM_INFO_YOLO5; - 183 4 : cIdxMax = numTotalClass + cStartIdx; - 184 : - 185 : /* boxinput[numTotalBox][cIdxMax] */ - 186 4 : boxinput = (float *) input[0].data; + 131 : /** @brief Destructor of YoloV5 */ + 132 66 : YoloV5::~YoloV5 () + 133 : { + 134 33 : g_free (name); + 135 66 : } + 136 : + 137 : /** @brief Set internal option of YoloV5 + 138 : * @param[in] param The option string. + 139 : */ + 140 : int + 141 2 : YoloV5::setOptionInternal (const char *param) + 142 : { + 143 : gchar **options; + 144 : int noptions; + 145 : + 146 2 : options = g_strsplit (param, ":", -1); + 147 2 : noptions = g_strv_length (options); + 148 2 : if (noptions > 0) + 149 2 : scaled_output = (int) g_ascii_strtoll (options[0], NULL, 10); + 150 2 : if (noptions > 1) + 151 2 : conf_threshold = (gfloat) g_ascii_strtod (options[1], NULL); + 152 2 : if (noptions > 2) + 153 2 : iou_threshold = (gfloat) g_ascii_strtod (options[2], NULL); + 154 : + 155 2 : nns_logi ("Setting YOLOV5/YOLOV8 decoder as scaled_output: %d, conf_threshold: %.2f, iou_threshold: %.2f", + 156 : scaled_output, conf_threshold, iou_threshold); + 157 : + 158 2 : g_strfreev (options); + 159 2 : return TRUE; + 160 : } + 161 : + 162 : /** @brief Check compatibility of given tensors config + 163 : * @param[in] param The option string. + 164 : */ + 165 : int + 166 18 : YoloV5::checkCompatible (const GstTensorsConfig *config) + 167 : { + 168 18 : GstTensorInfo *info = nullptr; + 169 : const guint *dim; + 170 : int i; + 171 : + 172 18 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); + 173 18 : dim = info->dimension; + 174 18 : if (!check_tensors (config, 1U)) + 175 0 : return FALSE; + 176 : + 177 18 : max_detection = ((i_width / 32) * (i_height / 32) + (i_width / 16) * (i_height / 16) + 178 18 : + (i_width / 8) * (i_height / 8)) + 179 18 : * 3; + 180 : + 181 18 : g_return_val_if_fail (dim[0] == (total_labels + DEFAULT_DETECTION_NUM_INFO_YOLO5), FALSE); + 182 8 : g_return_val_if_fail (dim[1] == max_detection, FALSE); + 183 120 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; ++i) + 184 112 : g_return_val_if_fail (dim[i] == 0 || dim[i] == 1, FALSE); + 185 8 : return TRUE; + 186 : } 187 : - 188 : /** Only support for float type model */ - 189 : - 190 4 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); - 191 4 : g_assert (info->type == _NNS_FLOAT32); - 192 : - 193 4 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), numTotalBox); - 194 25204 : for (bIdx = 0; bIdx < numTotalBox; ++bIdx) { - 195 25200 : float maxClassConfVal = -INFINITY; - 196 25200 : int maxClassIdx = -1; - 197 2041200 : for (cIdx = cStartIdx; cIdx < cIdxMax; ++cIdx) { - 198 2016000 : if (boxinput[bIdx * cIdxMax + cIdx] > maxClassConfVal) { - 199 37920 : maxClassConfVal = boxinput[bIdx * cIdxMax + cIdx]; - 200 37920 : maxClassIdx = cIdx; - 201 : } - 202 : } + 188 : /** + 189 : * @brief Decode input memory to out buffer + 190 : * @param[in] config The structure of input tensor info. + 191 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. + 192 : */ + 193 : GArray * + 194 4 : YoloV5::decode (const GstTensorsConfig *config, const GstTensorMemory *input) + 195 : { + 196 4 : GArray *results = NULL; + 197 : + 198 : int bIdx, numTotalBox; + 199 : int cIdx, numTotalClass, cStartIdx, cIdxMax; + 200 : float *boxinput; + 201 4 : int is_output_scaled = scaled_output; + 202 4 : GstTensorInfo *info = nullptr; 203 : - 204 25200 : if (maxClassConfVal * boxinput[bIdx * cIdxMax + 4] > conf_threshold) { - 205 : detectedObject object; - 206 : float cx, cy, w, h; - 207 224 : cx = boxinput[bIdx * cIdxMax + 0]; - 208 224 : cy = boxinput[bIdx * cIdxMax + 1]; - 209 224 : w = boxinput[bIdx * cIdxMax + 2]; - 210 224 : h = boxinput[bIdx * cIdxMax + 3]; + 204 4 : numTotalBox = max_detection; + 205 4 : numTotalClass = total_labels; + 206 4 : cStartIdx = DEFAULT_DETECTION_NUM_INFO_YOLO5; + 207 4 : cIdxMax = numTotalClass + cStartIdx; + 208 : + 209 : /* boxinput[numTotalBox][cIdxMax] */ + 210 4 : boxinput = (float *) input[0].data; 211 : - 212 224 : if (!is_output_scaled) { - 213 224 : cx *= (float) i_width; - 214 224 : cy *= (float) i_height; - 215 224 : w *= (float) i_width; - 216 224 : h *= (float) i_height; - 217 : } - 218 : - 219 224 : object.x = (int) (MAX (0.f, (cx - w / 2.f))); - 220 224 : object.y = (int) (MAX (0.f, (cy - h / 2.f))); - 221 224 : object.width = (int) (MIN ((float) i_width, w)); - 222 224 : object.height = (int) (MIN ((float) i_height, h)); - 223 : - 224 224 : object.prob = maxClassConfVal * boxinput[bIdx * cIdxMax + 4]; - 225 224 : object.class_id = maxClassIdx - DEFAULT_DETECTION_NUM_INFO_YOLO5; - 226 224 : object.tracking_id = 0; - 227 224 : object.valid = TRUE; - 228 224 : g_array_append_val (results, object); - 229 : } - 230 : } - 231 : - 232 4 : nms (results, iou_threshold); - 233 4 : return results; - 234 : } + 212 : /** Only support for float type model */ + 213 : + 214 4 : info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, 0); + 215 4 : g_assert (info->type == _NNS_FLOAT32); + 216 : + 217 4 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), numTotalBox); + 218 25204 : for (bIdx = 0; bIdx < numTotalBox; ++bIdx) { + 219 25200 : float maxClassConfVal = -INFINITY; + 220 25200 : int maxClassIdx = -1; + 221 2041200 : for (cIdx = cStartIdx; cIdx < cIdxMax; ++cIdx) { + 222 2016000 : if (boxinput[bIdx * cIdxMax + cIdx] > maxClassConfVal) { + 223 37920 : maxClassConfVal = boxinput[bIdx * cIdxMax + cIdx]; + 224 37920 : maxClassIdx = cIdx; + 225 : } + 226 : } + 227 : + 228 25200 : if (maxClassConfVal * boxinput[bIdx * cIdxMax + 4] > conf_threshold) { + 229 : detectedObject object; + 230 : float cx, cy, w, h; + 231 224 : cx = boxinput[bIdx * cIdxMax + 0]; + 232 224 : cy = boxinput[bIdx * cIdxMax + 1]; + 233 224 : w = boxinput[bIdx * cIdxMax + 2]; + 234 224 : h = boxinput[bIdx * cIdxMax + 3]; 235 : - 236 : /** @brief Constructor of YoloV8 */ - 237 33 : YoloV8::YoloV8 () - 238 : { - 239 33 : scaled_output = 0; - 240 33 : conf_threshold = YOLO_DETECTION_CONF_THRESHOLD; - 241 33 : iou_threshold = YOLO_DETECTION_IOU_THRESHOLD; - 242 33 : name = g_strdup_printf ("yolov8"); - 243 33 : } - 244 : - 245 : /** @brief Destructor of YoloV8 */ - 246 66 : YoloV8::~YoloV8 () - 247 : { - 248 33 : g_free (name); - 249 66 : } - 250 : - 251 : /** @brief Set internal option of YoloV8 */ - 252 : int - 253 1 : YoloV8::setOptionInternal (const char *param) - 254 : { - 255 : gchar **options; - 256 : int noptions; - 257 : - 258 1 : options = g_strsplit (param, ":", -1); - 259 1 : noptions = g_strv_length (options); - 260 1 : if (noptions > 0) - 261 1 : scaled_output = (int) g_ascii_strtoll (options[0], NULL, 10); - 262 1 : if (noptions > 1) - 263 1 : conf_threshold = (gfloat) g_ascii_strtod (options[1], NULL); - 264 1 : if (noptions > 2) - 265 1 : iou_threshold = (gfloat) g_ascii_strtod (options[2], NULL); - 266 : - 267 1 : nns_logi ("Setting YOLOV5/YOLOV8 decoder as scaled_output: %d, conf_threshold: %.2f, iou_threshold: %.2f", - 268 : scaled_output, conf_threshold, iou_threshold); - 269 : - 270 1 : g_strfreev (options); - 271 1 : return TRUE; - 272 : } - 273 : - 274 : /** @brief Check compatibility of given tensors config */ - 275 : int - 276 9 : YoloV8::checkCompatible (const GstTensorsConfig *config) - 277 : { - 278 9 : const guint *dim = config->info.info[0].dimension; - 279 9 : g_autofree gchar *info_str = NULL; - 280 : int i; - 281 9 : if (!check_tensors (config, 1U)) { - 282 0 : info_str = gst_tensors_info_to_string (&config->info); - 283 0 : nns_loge ("Yolov8 bounding-box decoder needs at least 1 valid tensor. The given input tensor is: %s.", - 284 : info_str); - 285 0 : return FALSE; - 286 : } - 287 : /** Only support for float type model */ - 288 9 : if (config->info.info[0].type != _NNS_FLOAT32) { - 289 5 : info_str = gst_tensors_info_to_string (&config->info); - 290 5 : nns_loge ("Yolov8 bounding-box decoder accepts float32 input tensors only. The given input tensor is: %s.", - 291 : info_str); - 292 5 : return FALSE; - 293 : } - 294 : - 295 4 : max_detection = (i_width / 32) * (i_height / 32) + (i_width / 16) * (i_height / 16) - 296 4 : + (i_width / 8) * (i_height / 8); + 236 224 : if (!is_output_scaled) { + 237 224 : cx *= (float) i_width; + 238 224 : cy *= (float) i_height; + 239 224 : w *= (float) i_width; + 240 224 : h *= (float) i_height; + 241 : } + 242 : + 243 224 : object.x = (int) (MAX (0.f, (cx - w / 2.f))); + 244 224 : object.y = (int) (MAX (0.f, (cy - h / 2.f))); + 245 224 : object.width = (int) (MIN ((float) i_width, w)); + 246 224 : object.height = (int) (MIN ((float) i_height, h)); + 247 : + 248 224 : object.prob = maxClassConfVal * boxinput[bIdx * cIdxMax + 4]; + 249 224 : object.class_id = maxClassIdx - DEFAULT_DETECTION_NUM_INFO_YOLO5; + 250 224 : object.tracking_id = 0; + 251 224 : object.valid = TRUE; + 252 224 : g_array_append_val (results, object); + 253 : } + 254 : } + 255 : + 256 4 : nms (results, iou_threshold, YOLOV5_BOUNDING_BOX); + 257 4 : return results; + 258 : } + 259 : + 260 : /** @brief Constructor of YoloV8 */ + 261 33 : YoloV8::YoloV8 () + 262 : { + 263 33 : scaled_output = 0; + 264 33 : conf_threshold = YOLO_DETECTION_CONF_THRESHOLD; + 265 33 : iou_threshold = YOLO_DETECTION_IOU_THRESHOLD; + 266 33 : name = g_strdup_printf ("yolov8"); + 267 33 : } + 268 : + 269 : /** @brief Destructor of YoloV8 */ + 270 66 : YoloV8::~YoloV8 () + 271 : { + 272 33 : g_free (name); + 273 66 : } + 274 : + 275 : /** @brief Set internal option of YoloV8 */ + 276 : int + 277 1 : YoloV8::setOptionInternal (const char *param) + 278 : { + 279 : gchar **options; + 280 : int noptions; + 281 : + 282 1 : options = g_strsplit (param, ":", -1); + 283 1 : noptions = g_strv_length (options); + 284 1 : if (noptions > 0) + 285 1 : scaled_output = (int) g_ascii_strtoll (options[0], NULL, 10); + 286 1 : if (noptions > 1) + 287 1 : conf_threshold = (gfloat) g_ascii_strtod (options[1], NULL); + 288 1 : if (noptions > 2) + 289 1 : iou_threshold = (gfloat) g_ascii_strtod (options[2], NULL); + 290 : + 291 1 : nns_logi ("Setting YOLOV5/YOLOV8 decoder as scaled_output: %d, conf_threshold: %.2f, iou_threshold: %.2f", + 292 : scaled_output, conf_threshold, iou_threshold); + 293 : + 294 1 : g_strfreev (options); + 295 1 : return TRUE; + 296 : } 297 : - 298 4 : if (dim[0] != (total_labels + DEFAULT_DETECTION_NUM_INFO_YOLO8) || dim[1] != max_detection) { - 299 0 : nns_loge ("yolov8 boundingbox decoder requires the input shape to be %d:%d:1. But given shape is %d:%d:1. `tensor_transform mode=transpose` would be helpful.", - 300 : total_labels + DEFAULT_DETECTION_NUM_INFO_YOLO8, max_detection, dim[0], dim[1]); - 301 0 : return FALSE; - 302 : } - 303 : - 304 60 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; ++i) - 305 56 : if (dim[i] != 0 && dim[i] != 1) { - 306 0 : info_str = gst_tensors_info_to_string (&config->info); - 307 0 : nns_loge ("Yolov8 bounding-box decoder accepts RANK=2 tensors (3rd and later dimensions should be 1 or 0). The given input tensor is: %s.", - 308 : info_str); - 309 0 : return FALSE; - 310 : } - 311 4 : return TRUE; - 312 9 : } - 313 : - 314 : /** - 315 : * @brief Decode input memory to out buffer - 316 : * @param[in] config The structure of input tensor info. - 317 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. - 318 : */ - 319 : GArray * - 320 1 : YoloV8::decode (const GstTensorsConfig *config, const GstTensorMemory *input) - 321 : { - 322 1 : GArray *results = NULL; - 323 : int bIdx, numTotalBox; - 324 : int cIdx, numTotalClass, cStartIdx, cIdxMax; - 325 : float *boxinput; - 326 1 : int is_output_scaled = scaled_output; - 327 : UNUSED (config); - 328 : - 329 1 : numTotalBox = max_detection; - 330 1 : numTotalClass = total_labels; - 331 1 : cStartIdx = DEFAULT_DETECTION_NUM_INFO_YOLO8; - 332 1 : cIdxMax = numTotalClass + cStartIdx; - 333 : - 334 : /* boxinput[numTotalBox][cIdxMax] */ - 335 1 : boxinput = (float *) input[0].data; - 336 : - 337 1 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), numTotalBox); - 338 2101 : for (bIdx = 0; bIdx < numTotalBox; ++bIdx) { - 339 2100 : float maxClassConfVal = -INFINITY; - 340 2100 : int maxClassIdx = -1; - 341 170100 : for (cIdx = cStartIdx; cIdx < cIdxMax; ++cIdx) { - 342 168000 : if (boxinput[bIdx * cIdxMax + cIdx] > maxClassConfVal) { - 343 4569 : maxClassConfVal = boxinput[bIdx * cIdxMax + cIdx]; - 344 4569 : maxClassIdx = cIdx; - 345 : } - 346 : } - 347 : - 348 2100 : if (maxClassConfVal > conf_threshold) { - 349 : detectedObject object; - 350 : float cx, cy, w, h; - 351 29 : cx = boxinput[bIdx * cIdxMax + 0]; - 352 29 : cy = boxinput[bIdx * cIdxMax + 1]; - 353 29 : w = boxinput[bIdx * cIdxMax + 2]; - 354 29 : h = boxinput[bIdx * cIdxMax + 3]; - 355 : - 356 29 : if (!is_output_scaled) { - 357 29 : cx *= (float) i_width; - 358 29 : cy *= (float) i_height; - 359 29 : w *= (float) i_width; - 360 29 : h *= (float) i_height; - 361 : } - 362 : - 363 29 : object.x = (int) (MAX (0.f, (cx - w / 2.f))); - 364 29 : object.y = (int) (MAX (0.f, (cy - h / 2.f))); - 365 29 : object.width = (int) (MIN ((float) i_width, w)); - 366 29 : object.height = (int) (MIN ((float) i_height, h)); - 367 : - 368 29 : object.prob = maxClassConfVal; - 369 29 : object.class_id = maxClassIdx - DEFAULT_DETECTION_NUM_INFO_YOLO8; - 370 29 : object.tracking_id = 0; - 371 29 : object.valid = TRUE; - 372 29 : g_array_append_val (results, object); - 373 : } - 374 : } - 375 : - 376 1 : nms (results, iou_threshold); - 377 1 : return results; - 378 : } + 298 : /** @brief Check compatibility of given tensors config */ + 299 : int + 300 9 : YoloV8::checkCompatible (const GstTensorsConfig *config) + 301 : { + 302 9 : const guint *dim = config->info.info[0].dimension; + 303 9 : g_autofree gchar *info_str = NULL; + 304 : int i; + 305 9 : if (!check_tensors (config, 1U)) { + 306 0 : info_str = gst_tensors_info_to_string (&config->info); + 307 0 : nns_loge ("Yolov8 bounding-box decoder needs at least 1 valid tensor. The given input tensor is: %s.", + 308 : info_str); + 309 0 : return FALSE; + 310 : } + 311 : /** Only support for float type model */ + 312 9 : if (config->info.info[0].type != _NNS_FLOAT32) { + 313 5 : info_str = gst_tensors_info_to_string (&config->info); + 314 5 : nns_loge ("Yolov8 bounding-box decoder accepts float32 input tensors only. The given input tensor is: %s.", + 315 : info_str); + 316 5 : return FALSE; + 317 : } + 318 : + 319 4 : max_detection = (i_width / 32) * (i_height / 32) + (i_width / 16) * (i_height / 16) + 320 4 : + (i_width / 8) * (i_height / 8); + 321 : + 322 4 : if (dim[0] != (total_labels + DEFAULT_DETECTION_NUM_INFO_YOLO8) || dim[1] != max_detection) { + 323 0 : nns_loge ("yolov8 boundingbox decoder requires the input shape to be %d:%d:1. But given shape is %d:%d:1. `tensor_transform mode=transpose` would be helpful.", + 324 : total_labels + DEFAULT_DETECTION_NUM_INFO_YOLO8, max_detection, dim[0], dim[1]); + 325 0 : return FALSE; + 326 : } + 327 : + 328 60 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; ++i) + 329 56 : if (dim[i] != 0 && dim[i] != 1) { + 330 0 : info_str = gst_tensors_info_to_string (&config->info); + 331 0 : nns_loge ("Yolov8 bounding-box decoder accepts RANK=2 tensors (3rd and later dimensions should be 1 or 0). The given input tensor is: %s.", + 332 : info_str); + 333 0 : return FALSE; + 334 : } + 335 4 : return TRUE; + 336 9 : } + 337 : + 338 : /** + 339 : * @brief Decode input memory to out buffer + 340 : * @param[in] config The structure of input tensor info. + 341 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. + 342 : */ + 343 : GArray * + 344 1 : YoloV8::decode (const GstTensorsConfig *config, const GstTensorMemory *input) + 345 : { + 346 1 : GArray *results = NULL; + 347 : int bIdx, numTotalBox; + 348 : int cIdx, numTotalClass, cStartIdx, cIdxMax; + 349 : float *boxinput; + 350 1 : int is_output_scaled = scaled_output; + 351 : UNUSED (config); + 352 : + 353 1 : numTotalBox = max_detection; + 354 1 : numTotalClass = total_labels; + 355 1 : cStartIdx = DEFAULT_DETECTION_NUM_INFO_YOLO8; + 356 1 : cIdxMax = numTotalClass + cStartIdx; + 357 : + 358 : /* boxinput[numTotalBox][cIdxMax] */ + 359 1 : boxinput = (float *) input[0].data; + 360 : + 361 1 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), numTotalBox); + 362 2101 : for (bIdx = 0; bIdx < numTotalBox; ++bIdx) { + 363 2100 : float maxClassConfVal = -INFINITY; + 364 2100 : int maxClassIdx = -1; + 365 170100 : for (cIdx = cStartIdx; cIdx < cIdxMax; ++cIdx) { + 366 168000 : if (boxinput[bIdx * cIdxMax + cIdx] > maxClassConfVal) { + 367 4569 : maxClassConfVal = boxinput[bIdx * cIdxMax + cIdx]; + 368 4569 : maxClassIdx = cIdx; + 369 : } + 370 : } + 371 : + 372 2100 : if (maxClassConfVal > conf_threshold) { + 373 : detectedObject object; + 374 : float cx, cy, w, h; + 375 29 : cx = boxinput[bIdx * cIdxMax + 0]; + 376 29 : cy = boxinput[bIdx * cIdxMax + 1]; + 377 29 : w = boxinput[bIdx * cIdxMax + 2]; + 378 29 : h = boxinput[bIdx * cIdxMax + 3]; 379 : - 380 : /** @brief Constructor of YoloV10 */ - 381 33 : YoloV10::YoloV10 () - 382 : { - 383 33 : conf_threshold = YOLO_DETECTION_CONF_THRESHOLD; - 384 33 : name = g_strdup_printf ("yolov10"); - 385 33 : } + 380 29 : if (!is_output_scaled) { + 381 29 : cx *= (float) i_width; + 382 29 : cy *= (float) i_height; + 383 29 : w *= (float) i_width; + 384 29 : h *= (float) i_height; + 385 : } 386 : - 387 : /** @brief Destructor of YoloV10 */ - 388 66 : YoloV10::~YoloV10 () - 389 : { - 390 33 : g_free (name); - 391 66 : } - 392 : - 393 : /** @brief Set internal option of YoloV10 */ - 394 : int - 395 2 : YoloV10::setOptionInternal (const char *param) - 396 : { - 397 : gchar **options; - 398 : int noptions; + 387 29 : object.x = (int) (MAX (0.f, (cx - w / 2.f))); + 388 29 : object.y = (int) (MAX (0.f, (cy - h / 2.f))); + 389 29 : object.width = (int) (MIN ((float) i_width, w)); + 390 29 : object.height = (int) (MIN ((float) i_height, h)); + 391 : + 392 29 : object.prob = maxClassConfVal; + 393 29 : object.class_id = maxClassIdx - DEFAULT_DETECTION_NUM_INFO_YOLO8; + 394 29 : object.tracking_id = 0; + 395 29 : object.valid = TRUE; + 396 29 : g_array_append_val (results, object); + 397 : } + 398 : } 399 : - 400 2 : options = g_strsplit (param, ":", -1); - 401 2 : noptions = g_strv_length (options); - 402 : - 403 2 : if (noptions > 1) - 404 2 : conf_threshold = (gfloat) g_ascii_strtod (options[1], NULL); - 405 : - 406 2 : nns_logi ("Setting YOLOV10 decoder as conf_threshold: %.2f", conf_threshold); - 407 : - 408 2 : g_strfreev (options); - 409 2 : return TRUE; - 410 : } - 411 : - 412 : /** @brief Check compatibility of given tensors config */ - 413 : int - 414 27 : YoloV10::checkCompatible (const GstTensorsConfig *config) - 415 : { - 416 27 : const guint *dim = config->info.info[0].dimension; - 417 27 : g_autofree gchar *info_str = NULL; - 418 : int i; - 419 : - 420 27 : if (!check_tensors (config, 1U)) { - 421 0 : info_str = gst_tensors_info_to_string (&config->info); - 422 0 : nns_loge ("YoloV10 bounding-box decoder needs at least 1 valid tensor. The given input tensor is: %s.", - 423 : info_str); - 424 0 : return FALSE; - 425 : } + 400 1 : nms (results, iou_threshold, YOLOV8_BOUNDING_BOX); + 401 1 : return results; + 402 : } + 403 : + 404 : /** @brief Constructor of YoloV10 */ + 405 33 : YoloV10::YoloV10 () + 406 : { + 407 33 : conf_threshold = YOLO_DETECTION_CONF_THRESHOLD; + 408 33 : name = g_strdup_printf ("yolov10"); + 409 33 : } + 410 : + 411 : /** @brief Destructor of YoloV10 */ + 412 66 : YoloV10::~YoloV10 () + 413 : { + 414 33 : g_free (name); + 415 66 : } + 416 : + 417 : /** @brief Set internal option of YoloV10 */ + 418 : int + 419 2 : YoloV10::setOptionInternal (const char *param) + 420 : { + 421 : gchar **options; + 422 : int noptions; + 423 : + 424 2 : options = g_strsplit (param, ":", -1); + 425 2 : noptions = g_strv_length (options); 426 : - 427 : /** Only support for float type model */ - 428 27 : if (config->info.info[0].type != _NNS_FLOAT32) { - 429 23 : info_str = gst_tensors_info_to_string (&config->info); - 430 23 : nns_loge ("YoloV10 bounding-box decoder accepts float32 input tensors only. The given input tensor is: %s.", - 431 : info_str); - 432 23 : return FALSE; - 433 : } - 434 : - 435 : /* Expected shape is 6:#MAX_DET:1 */ - 436 4 : if (dim[0] != 6U) { - 437 0 : nns_loge ("YoloV10 boundingbox decoder requires the input shape to be 6:#MAX_DET:1. But given shape is %u:%u:1. Check the output shape of yolov10 model.", - 438 : dim[0], dim[1]); - 439 0 : return FALSE; - 440 : } - 441 : - 442 4 : max_detection = dim[1]; + 427 2 : if (noptions > 1) + 428 2 : conf_threshold = (gfloat) g_ascii_strtod (options[1], NULL); + 429 : + 430 2 : nns_logi ("Setting YOLOV10 decoder as conf_threshold: %.2f", conf_threshold); + 431 : + 432 2 : g_strfreev (options); + 433 2 : return TRUE; + 434 : } + 435 : + 436 : /** @brief Check compatibility of given tensors config */ + 437 : int + 438 27 : YoloV10::checkCompatible (const GstTensorsConfig *config) + 439 : { + 440 27 : const guint *dim = config->info.info[0].dimension; + 441 27 : g_autofree gchar *info_str = NULL; + 442 : int i; 443 : - 444 60 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; ++i) { - 445 56 : if (dim[i] != 0 && dim[i] != 1) { - 446 0 : info_str = gst_tensors_info_to_string (&config->info); - 447 0 : nns_loge ("YoloV10 bounding-box decoder accepts RANK=2 tensors (3rd and later dimensions should be 1 or 0). The given input tensor is: %s.", - 448 : info_str); - 449 : - 450 0 : return FALSE; - 451 : } - 452 : } - 453 : - 454 4 : return TRUE; - 455 27 : } - 456 : - 457 : /** - 458 : * @brief Decode input memory to out buffer - 459 : * @param[in] config The structure of input tensor info. - 460 : * @param[in] input The array of input tensor data. - 461 : */ - 462 : GArray * - 463 1 : YoloV10::decode (const GstTensorsConfig *config, const GstTensorMemory *input) - 464 : { - 465 1 : GArray *results = NULL; - 466 : guint bIdx; - 467 : float *boxinput; - 468 : UNUSED (config); - 469 : - 470 : /* boxinput[MAX_DET][6] */ - 471 1 : boxinput = (float *) input[0].data; - 472 : - 473 1 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), max_detection); - 474 6 : for (bIdx = 0; bIdx < max_detection; ++bIdx) { - 475 : detectedObject object; - 476 : float x1, x2, y1, y2, confidence, class_index; + 444 27 : if (!check_tensors (config, 1U)) { + 445 0 : info_str = gst_tensors_info_to_string (&config->info); + 446 0 : nns_loge ("YoloV10 bounding-box decoder needs at least 1 valid tensor. The given input tensor is: %s.", + 447 : info_str); + 448 0 : return FALSE; + 449 : } + 450 : + 451 : /** Only support for float type model */ + 452 27 : if (config->info.info[0].type != _NNS_FLOAT32) { + 453 23 : info_str = gst_tensors_info_to_string (&config->info); + 454 23 : nns_loge ("YoloV10 bounding-box decoder accepts float32 input tensors only. The given input tensor is: %s.", + 455 : info_str); + 456 23 : return FALSE; + 457 : } + 458 : + 459 : /* Expected shape is 6:#MAX_DET:1 */ + 460 4 : if (dim[0] != 6U) { + 461 0 : nns_loge ("YoloV10 boundingbox decoder requires the input shape to be 6:#MAX_DET:1. But given shape is %u:%u:1. Check the output shape of yolov10 model.", + 462 : dim[0], dim[1]); + 463 0 : return FALSE; + 464 : } + 465 : + 466 4 : max_detection = dim[1]; + 467 : + 468 60 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; ++i) { + 469 56 : if (dim[i] != 0 && dim[i] != 1) { + 470 0 : info_str = gst_tensors_info_to_string (&config->info); + 471 0 : nns_loge ("YoloV10 bounding-box decoder accepts RANK=2 tensors (3rd and later dimensions should be 1 or 0). The given input tensor is: %s.", + 472 : info_str); + 473 : + 474 0 : return FALSE; + 475 : } + 476 : } 477 : - 478 : /* parse output of yolov10 */ - 479 6 : x1 = boxinput[bIdx * 6 + 0]; - 480 6 : y1 = boxinput[bIdx * 6 + 1]; - 481 6 : x2 = boxinput[bIdx * 6 + 2]; - 482 6 : y2 = boxinput[bIdx * 6 + 3]; - 483 6 : confidence = boxinput[bIdx * 6 + 4]; - 484 6 : class_index = boxinput[bIdx * 6 + 5]; - 485 : - 486 : /* output of yolov10 is sorted */ - 487 6 : if (confidence < conf_threshold) { - 488 : /* break once confidence value falls */ - 489 1 : break; - 490 : } - 491 : - 492 : /* scale to given width and height */ - 493 5 : y1 *= (float) i_height; - 494 5 : x1 *= (float) i_width; - 495 5 : x2 *= (float) i_width; - 496 5 : y2 *= (float) i_height; - 497 : - 498 5 : object.x = (int) (MAX (0.f, x1)); - 499 5 : object.y = (int) (MAX (0.f, y1)); - 500 5 : object.width = (int) (MIN ((float) i_width, x2 - x1)); - 501 5 : object.height = (int) (MIN ((float) i_height, y2 - y1)); - 502 5 : object.class_id = (int) class_index; - 503 5 : object.prob = confidence; - 504 : - 505 5 : object.tracking_id = 0; - 506 5 : object.valid = TRUE; - 507 : - 508 5 : if (object.class_id >= (int) total_labels) { - 509 0 : nns_logw ("Class id %d is out of range (%u). Skip this object.", - 510 : object.class_id, total_labels); - 511 0 : continue; - 512 : } - 513 : - 514 5 : g_array_append_val (results, object); - 515 : } - 516 : - 517 1 : return results; - 518 : } - 519 : - 520 : /** @brief Initialize this object for tensor decoder bounding box */ - 521 : void - 522 33 : init_properties_yolo5 () - 523 : { - 524 33 : yolo5 = new YoloV5 (); - 525 33 : BoundingBox::addProperties (yolo5); - 526 33 : } - 527 : - 528 : /** @brief Destruct this object for tensor decoder bounding box */ - 529 : void - 530 33 : fini_properties_yolo5 () - 531 : { - 532 33 : delete yolo5; - 533 33 : } - 534 : - 535 : /** @brief Initialize this object for tensor decoder bounding box */ - 536 : void - 537 33 : init_properties_yolo8 () - 538 : { - 539 33 : yolo8 = new YoloV8 (); - 540 33 : BoundingBox::addProperties (yolo8); - 541 33 : } - 542 : - 543 : /** @brief Destruct this object for tensor decoder bounding box */ - 544 : void - 545 33 : fini_properties_yolo8 () + 478 4 : return TRUE; + 479 27 : } + 480 : + 481 : /** + 482 : * @brief Decode input memory to out buffer + 483 : * @param[in] config The structure of input tensor info. + 484 : * @param[in] input The array of input tensor data. + 485 : */ + 486 : GArray * + 487 1 : YoloV10::decode (const GstTensorsConfig *config, const GstTensorMemory *input) + 488 : { + 489 1 : GArray *results = NULL; + 490 : guint bIdx; + 491 : float *boxinput; + 492 : UNUSED (config); + 493 : + 494 : /* boxinput[MAX_DET][6] */ + 495 1 : boxinput = (float *) input[0].data; + 496 : + 497 1 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), max_detection); + 498 6 : for (bIdx = 0; bIdx < max_detection; ++bIdx) { + 499 : detectedObject object; + 500 : float x1, x2, y1, y2, confidence, class_index; + 501 : + 502 : /* parse output of yolov10 */ + 503 6 : x1 = boxinput[bIdx * 6 + 0]; + 504 6 : y1 = boxinput[bIdx * 6 + 1]; + 505 6 : x2 = boxinput[bIdx * 6 + 2]; + 506 6 : y2 = boxinput[bIdx * 6 + 3]; + 507 6 : confidence = boxinput[bIdx * 6 + 4]; + 508 6 : class_index = boxinput[bIdx * 6 + 5]; + 509 : + 510 : /* output of yolov10 is sorted */ + 511 6 : if (confidence < conf_threshold) { + 512 : /* break once confidence value falls */ + 513 1 : break; + 514 : } + 515 : + 516 : /* scale to given width and height */ + 517 5 : y1 *= (float) i_height; + 518 5 : x1 *= (float) i_width; + 519 5 : x2 *= (float) i_width; + 520 5 : y2 *= (float) i_height; + 521 : + 522 5 : object.x = (int) (MAX (0.f, x1)); + 523 5 : object.y = (int) (MAX (0.f, y1)); + 524 5 : object.width = (int) (MIN ((float) i_width, x2 - x1)); + 525 5 : object.height = (int) (MIN ((float) i_height, y2 - y1)); + 526 5 : object.class_id = (int) class_index; + 527 5 : object.prob = confidence; + 528 : + 529 5 : object.tracking_id = 0; + 530 5 : object.valid = TRUE; + 531 : + 532 5 : if (object.class_id >= (int) total_labels) { + 533 0 : nns_logw ("Class id %d is out of range (%u). Skip this object.", + 534 : object.class_id, total_labels); + 535 0 : continue; + 536 : } + 537 : + 538 5 : g_array_append_val (results, object); + 539 : } + 540 : + 541 1 : return results; + 542 : } + 543 : + 544 : /** @brief Constructor of YoloV8-OBB */ + 545 33 : YoloV8_OBB::YoloV8_OBB () 546 : { - 547 33 : delete yolo8; - 548 33 : } - 549 : - 550 : /** @brief Initialize this object for tensor decoder bounding box */ - 551 : void - 552 33 : init_properties_yolo10 () - 553 : { - 554 33 : yolo10 = new YoloV10 (); - 555 33 : BoundingBox::addProperties (yolo10); - 556 33 : } + 547 33 : conf_threshold = YOLO_DETECTION_CONF_THRESHOLD; + 548 33 : iou_threshold = YOLO_DETECTION_IOU_THRESHOLD; + 549 33 : name = g_strdup_printf ("yolov8-obb"); + 550 33 : } + 551 : + 552 : /** @brief Destructor of YoloV8-OBB */ + 553 66 : YoloV8_OBB::~YoloV8_OBB () + 554 : { + 555 33 : g_free (name); + 556 66 : } 557 : - 558 : /** @brief Destruct this object for tensor decoder bounding box */ - 559 : void - 560 33 : fini_properties_yolo10 () + 558 : /** @brief Set internal option of YoloV8-OBB */ + 559 : int + 560 0 : YoloV8_OBB::setOptionInternal (const char *param) 561 : { - 562 33 : delete yolo10; - 563 33 : } + 562 : gchar **options; + 563 : int noptions; + 564 : + 565 0 : options = g_strsplit (param, ":", -1); + 566 0 : noptions = g_strv_length (options); + 567 0 : if (noptions > 0) + 568 0 : scaled_output = (int) g_ascii_strtoll (options[0], NULL, 10); + 569 0 : if (noptions > 1) + 570 0 : conf_threshold = (gfloat) g_ascii_strtod (options[1], NULL); + 571 0 : if (noptions > 2) + 572 0 : iou_threshold = (gfloat) g_ascii_strtod (options[2], NULL); + 573 : + 574 0 : nns_logi ("Setting YOLOV8-OBB decoder as scaled_output: %d, conf_threshold: %.2f, iou_threshold: %.2f", + 575 : scaled_output, conf_threshold, iou_threshold); + 576 : + 577 0 : g_strfreev (options); + 578 0 : return TRUE; + 579 : } + 580 : + 581 : /** @brief Check compatibility of given tensors config */ + 582 : int + 583 0 : YoloV8_OBB::checkCompatible (const GstTensorsConfig *config) + 584 : { + 585 0 : const guint *dim = config->info.info[0].dimension; + 586 0 : g_autofree gchar *info_str = NULL; + 587 : int i; + 588 : + 589 0 : if (!check_tensors (config, 1U)) { + 590 0 : info_str = gst_tensors_info_to_string (&config->info); + 591 0 : nns_loge ("YoloV8-OBB bounding-box decoder needs at least 1 valid tensor. The given input tensor is: %s.", + 592 : info_str); + 593 0 : return FALSE; + 594 : } + 595 : + 596 : /** Only support for float type model */ + 597 0 : if (config->info.info[0].type != _NNS_FLOAT32) { + 598 0 : info_str = gst_tensors_info_to_string (&config->info); + 599 0 : nns_loge ("YoloV8-OBB bounding-box decoder accepts float32 input tensors only. The given input tensor is: %s.", + 600 : info_str); + 601 0 : return FALSE; + 602 : } + 603 : + 604 0 : max_detection = (i_width / 32) * (i_height / 32) + (i_width / 16) * (i_height / 16) + 605 0 : + (i_width / 8) * (i_height / 8); + 606 : + 607 0 : if (dim[0] != (total_labels + DEFAULT_DETECTION_NUM_INFO_YOLO8_OBB) || dim[1] != max_detection) { + 608 0 : nns_loge ("yolov8-obb boundingbox decoder requires the input shape to be %d:%d:1. But given shape is %d:%d:1. `tensor_transform mode=transpose` would be helpful.", + 609 : total_labels + DEFAULT_DETECTION_NUM_INFO_YOLO8_OBB, max_detection, + 610 : dim[0], dim[1]); + 611 0 : return FALSE; + 612 : } + 613 : + 614 0 : for (i = 2; i < NNS_TENSOR_RANK_LIMIT; ++i) { + 615 0 : if (dim[i] != 0 && dim[i] != 1) { + 616 0 : info_str = gst_tensors_info_to_string (&config->info); + 617 0 : nns_loge ("YoloV8-OBB bounding-box decoder accepts RANK=2 tensors (3rd and later dimensions should be 1 or 0). The given input tensor is: %s.", + 618 : info_str); + 619 : + 620 0 : return FALSE; + 621 : } + 622 : } + 623 : + 624 0 : return TRUE; + 625 0 : } + 626 : + 627 : /** + 628 : * @brief Decode input memory to out buffer + 629 : * @param[in] config The structure of input tensor info. + 630 : * @param[in] input The array of input tensor data. + 631 : */ + 632 : GArray * + 633 0 : YoloV8_OBB::decode (const GstTensorsConfig *config, const GstTensorMemory *input) + 634 : { + 635 0 : GArray *results = NULL; + 636 : int bIdx, numTotalBox; + 637 : int cIdx, numTotalClass, cStartIdx, cIdxMax; + 638 : float *boxinput; // boxinput = [x,y,w,h,...class...,theta] + 639 0 : int is_output_scaled = scaled_output; + 640 : UNUSED (config); + 641 : + 642 0 : numTotalBox = max_detection; + 643 0 : numTotalClass = total_labels; + 644 0 : cStartIdx = DEFAULT_DETECTION_NUM_INFO_YOLO8_OBB - 1; + 645 0 : cIdxMax = numTotalClass + DEFAULT_DETECTION_NUM_INFO_YOLO8_OBB; + 646 : + 647 0 : boxinput = (float *) input[0].data; + 648 : + 649 0 : results = g_array_sized_new (FALSE, TRUE, sizeof (detectedObject), numTotalBox); + 650 0 : for (bIdx = 0; bIdx < numTotalBox; ++bIdx) { + 651 0 : float maxClassConfVal = -INFINITY; + 652 0 : int maxClassIdx = -1; + 653 : + 654 0 : for (cIdx = cStartIdx; cIdx < cIdxMax - 1; ++cIdx) { + 655 0 : if (boxinput[bIdx * cIdxMax + cIdx] > maxClassConfVal) { + 656 0 : maxClassConfVal = boxinput[bIdx * cIdxMax + cIdx]; + 657 0 : maxClassIdx = cIdx; + 658 : } + 659 : } + 660 : + 661 0 : if (maxClassConfVal > conf_threshold) { + 662 : detectedObject object; + 663 : float cx, cy, w, h, theta; + 664 : + 665 0 : cx = boxinput[bIdx * cIdxMax + 0]; + 666 0 : cy = boxinput[bIdx * cIdxMax + 1]; + 667 0 : w = boxinput[bIdx * cIdxMax + 2]; + 668 0 : h = boxinput[bIdx * cIdxMax + 3]; + 669 0 : theta = boxinput[bIdx * cIdxMax + numTotalClass + DEFAULT_DETECTION_NUM_INFO_YOLO8_OBB - 1]; + 670 : + 671 0 : if (!is_output_scaled) { + 672 0 : cx *= (float) i_width; + 673 0 : cy *= (float) i_height; + 674 0 : w *= (float) i_width; + 675 0 : h *= (float) i_height; + 676 : } + 677 : + 678 0 : object.x = (int) (MAX (0.f, cx)); + 679 0 : object.y = (int) (MAX (0.f, cy)); + 680 0 : object.width = (int) w; + 681 0 : object.height = (int) h; + 682 0 : object.angle = theta; + 683 : + 684 0 : object.prob = maxClassConfVal; + 685 0 : object.class_id = maxClassIdx - cStartIdx; + 686 0 : object.tracking_id = 0; + 687 0 : object.valid = TRUE; + 688 : + 689 0 : g_array_append_val (results, object); + 690 : } + 691 : } + 692 : + 693 0 : nms (results, iou_threshold, YOLOV8_ORIENTED_BOUNDING_BOX); + 694 0 : return results; + 695 : } + 696 : + 697 : /** @brief Initialize this object for tensor decoder bounding box */ + 698 : void + 699 33 : init_properties_yolo5 () + 700 : { + 701 33 : yolo5 = new YoloV5 (); + 702 33 : BoundingBox::addProperties (yolo5); + 703 33 : } + 704 : + 705 : /** @brief Destruct this object for tensor decoder bounding box */ + 706 : void + 707 33 : fini_properties_yolo5 () + 708 : { + 709 33 : delete yolo5; + 710 33 : } + 711 : + 712 : /** @brief Initialize this object for tensor decoder bounding box */ + 713 : void + 714 33 : init_properties_yolo8 () + 715 : { + 716 33 : yolo8 = new YoloV8 (); + 717 33 : BoundingBox::addProperties (yolo8); + 718 33 : } + 719 : + 720 : /** @brief Destruct this object for tensor decoder bounding box */ + 721 : void + 722 33 : fini_properties_yolo8 () + 723 : { + 724 33 : delete yolo8; + 725 33 : } + 726 : + 727 : /** @brief Initialize this object for tensor decoder bounding box */ + 728 : void + 729 33 : init_properties_yolo10 () + 730 : { + 731 33 : yolo10 = new YoloV10 (); + 732 33 : BoundingBox::addProperties (yolo10); + 733 33 : } + 734 : + 735 : /** @brief Destruct this object for tensor decoder bounding box */ + 736 : void + 737 33 : fini_properties_yolo10 () + 738 : { + 739 33 : delete yolo10; + 740 33 : } + 741 : + 742 : /** @brief Initialize this object for tensor decoder bounding box */ + 743 : void + 744 33 : init_properties_yolo8_obb () + 745 : { + 746 33 : yolo8_obb = new YoloV8_OBB (); + 747 33 : BoundingBox::addProperties (yolo8_obb); + 748 33 : } + 749 : + 750 : /** @brief Destruct this object for tensor decoder bounding box */ + 751 : void + 752 33 : fini_properties_yolo8_obb () + 753 : { + 754 33 : delete yolo8_obb; + 755 33 : } diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index-sort-f.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index-sort-f.html index 1bfb14c96..ba83dfc9d 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder @@ -28,20 +28,20 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 83.1 % - 1847 - 1534 + 79.6 % + 1935 + 1541 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 94.8 % - 153 + 92.4 % + 157 145 @@ -127,6 +127,18 @@ 7 6 + + tensordec-boundingbox.cc + +
71.0%71.0%
+ + 71.0 % + 483 + 343 + 87.9 % + 33 + 29 + tensordec-imagesegment.c @@ -223,18 +235,6 @@ 18 18 - - tensordec-boundingbox.cc - -
85.1%85.1%
- - 85.1 % - 395 - 336 - 100.0 % - 29 - 29 -
diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index-sort-l.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index-sort-l.html index d3b1d0433..0017911c1 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder @@ -28,20 +28,20 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 83.1 % - 1847 - 1534 + 79.6 % + 1935 + 1541 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 94.8 % - 153 + 92.4 % + 157 145 @@ -79,6 +79,18 @@ Total Hit + + tensordec-boundingbox.cc + +
71.0%71.0%
+ + 71.0 % + 483 + 343 + 87.9 % + 33 + 29 + tensordec-tensor_region.c @@ -139,18 +151,6 @@ 16 16 - - tensordec-boundingbox.cc - -
85.1%85.1%
- - 85.1 % - 395 - 336 - 100.0 % - 29 - 29 - tensordec-flatbuf.cc diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index.html index a4ed28ee1..91325af19 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder @@ -28,20 +28,20 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 83.1 % - 1847 - 1534 + 79.6 % + 1935 + 1541 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 94.8 % - 153 + 92.4 % + 157 145 @@ -82,13 +82,13 @@ tensordec-boundingbox.cc -
85.1%85.1%
+
71.0%71.0%
- 85.1 % - 395 - 336 - 100.0 % - 29 + 71.0 % + 483 + 343 + 87.9 % + 33 29 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.func-c.html index 43e74f081..f7dc86a30 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc - functions @@ -28,20 +28,20 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 85.1 % - 395 - 336 + 71.0 % + 483 + 343 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 100.0 % - 29 + 87.9 % + 33 29 @@ -63,203 +63,231 @@ - _ZN11BoundingBox15updateCentroidsEP7_GArray + _Z15is_point_inside5PointPKS_i + + 0 + + + + + _Z24get_rotated_rect_cornersP14detectedObjectP5Point + + 0 + + + + + _Z7iou_obbP14detectedObjectS0_ + + 0 + + + + + _Z9draw_linePjiiiiiij + + 0 + + + + + _ZN11BoundingBox15updateCentroidsEP7_GArray 3 - _ZN11BoundingBox8logBoxesEP7_GArray + _ZN11BoundingBox8logBoxesEP7_GArray 6 - _ZL19bb_getTransformSizePPvPK16GstTensorsConfigP8_GstCapsmS5_15GstPadDirection + _ZL19bb_getTransformSizePPvPK16GstTensorsConfigP8_GstCapsmS5_15GstPadDirection 10 - _ZN11BoundingBox12setLabelPathEPKc + _ZN11BoundingBox12setLabelPathEPKc 13 - _ZL18updateDecodingModePKc + _ZL18updateDecodingModePKc 15 - _ZL7bb_exitPPv + _ZL7bb_exitPPv 15 - _ZL7bb_initPPv + _ZL7bb_initPPv 15 - _ZN11BoundingBox12setVideoSizeEPKc + _ZN11BoundingBox12setVideoSizeEPKc 15 - _ZN11BoundingBox17setInputModelSizeEPKc + _ZN11BoundingBox17setInputModelSizeEPKc 15 - _ZN11BoundingBox18setBoxDecodingModeEPKc + _ZN11BoundingBox18setBoxDecodingModeEPKc 15 - _ZN11BoundingBoxC2Ev + _ZN11BoundingBoxC2Ev 15 - _ZN11BoundingBoxD2Ev + _ZN11BoundingBoxD2Ev 15 - _Z3nmsP7_GArrayf + _Z3nmsP7_GArrayf18bounding_box_modes 17 - _ZL9bb_decodePPvPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer + _ZL9bb_decodePPvPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer 26 - _ZN11BoundingBox15checkLabelPropsEv + _ZN11BoundingBox15checkLabelPropsEv 26 - _ZN11BoundingBox4drawEP10GstMapInfoP7_GArray + _ZN11BoundingBox4drawEP10GstMapInfoP7_GArray 26 - _ZN11BoundingBox6decodeEPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer + _ZN11BoundingBox6decodeEPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer 26 - fini_bb + fini_bb 33 - init_bb + init_bb 33 - _ZL12bb_setOptionPPviPKc + _ZL12bb_setOptionPPviPKc 77 - _ZN11BoundingBox9setOptionE17BoundingBoxOptionPKc + _ZN11BoundingBox9setOptionE17BoundingBoxOptionPKc 77 - _ZL16distance_comparePKvS0_ + _ZL16distance_comparePKvS0_ 96 - _Z13check_tensorsPK16GstTensorsConfigj + _Z13check_tensorsPK16GstTensorsConfigj 144 - _ZL13bb_getOutCapsPPvPK16GstTensorsConfig + _ZL13bb_getOutCapsPPvPK16GstTensorsConfig 144 - _ZN11BoundingBox10getOutCapsEPK16GstTensorsConfig + _ZN11BoundingBox10getOutCapsEPK16GstTensorsConfig 144 - _ZN11BoundingBox13addPropertiesEP13BoxProperties + _ZN11BoundingBox13addPropertiesEP13BoxProperties - 231 + 264 - _ZN11BoundingBox13getPropertiesEPKc + _ZN11BoundingBox13getPropertiesEPKc - 246 + 279 - _ZL3iouP14detectedObjectS0_ + _ZL3iouP14detectedObjectS0_ 850 - _ZL17compare_detectionPKvS0_ + _ZL17compare_detectionPKvS0_ 1748 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.func.html index 4a88298cd..55dbc5cd0 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc - functions @@ -28,20 +28,20 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 85.1 % - 395 - 336 + 71.0 % + 483 + 343 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 100.0 % - 29 + 87.9 % + 33 29 @@ -63,203 +63,231 @@ - _Z13check_tensorsPK16GstTensorsConfigj + _Z13check_tensorsPK16GstTensorsConfigj 144 - _Z3nmsP7_GArrayf + _Z15is_point_inside5PointPKS_i + + 0 + + + + + _Z24get_rotated_rect_cornersP14detectedObjectP5Point + + 0 + + + + + _Z3nmsP7_GArrayf18bounding_box_modes 17 - _ZL12bb_setOptionPPviPKc + _Z7iou_obbP14detectedObjectS0_ + + 0 + + + + + _Z9draw_linePjiiiiiij + + 0 + + + + + _ZL12bb_setOptionPPviPKc 77 - _ZL13bb_getOutCapsPPvPK16GstTensorsConfig + _ZL13bb_getOutCapsPPvPK16GstTensorsConfig 144 - _ZL16distance_comparePKvS0_ + _ZL16distance_comparePKvS0_ 96 - _ZL17compare_detectionPKvS0_ + _ZL17compare_detectionPKvS0_ 1748 - _ZL18updateDecodingModePKc + _ZL18updateDecodingModePKc 15 - _ZL19bb_getTransformSizePPvPK16GstTensorsConfigP8_GstCapsmS5_15GstPadDirection + _ZL19bb_getTransformSizePPvPK16GstTensorsConfigP8_GstCapsmS5_15GstPadDirection 10 - _ZL3iouP14detectedObjectS0_ + _ZL3iouP14detectedObjectS0_ 850 - _ZL7bb_exitPPv + _ZL7bb_exitPPv 15 - _ZL7bb_initPPv + _ZL7bb_initPPv 15 - _ZL9bb_decodePPvPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer + _ZL9bb_decodePPvPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer 26 - _ZN11BoundingBox10getOutCapsEPK16GstTensorsConfig + _ZN11BoundingBox10getOutCapsEPK16GstTensorsConfig 144 - _ZN11BoundingBox12setLabelPathEPKc + _ZN11BoundingBox12setLabelPathEPKc 13 - _ZN11BoundingBox12setVideoSizeEPKc + _ZN11BoundingBox12setVideoSizeEPKc 15 - _ZN11BoundingBox13addPropertiesEP13BoxProperties + _ZN11BoundingBox13addPropertiesEP13BoxProperties - 231 + 264 - _ZN11BoundingBox13getPropertiesEPKc + _ZN11BoundingBox13getPropertiesEPKc - 246 + 279 - _ZN11BoundingBox15checkLabelPropsEv + _ZN11BoundingBox15checkLabelPropsEv 26 - _ZN11BoundingBox15updateCentroidsEP7_GArray + _ZN11BoundingBox15updateCentroidsEP7_GArray 3 - _ZN11BoundingBox17setInputModelSizeEPKc + _ZN11BoundingBox17setInputModelSizeEPKc 15 - _ZN11BoundingBox18setBoxDecodingModeEPKc + _ZN11BoundingBox18setBoxDecodingModeEPKc 15 - _ZN11BoundingBox4drawEP10GstMapInfoP7_GArray + _ZN11BoundingBox4drawEP10GstMapInfoP7_GArray 26 - _ZN11BoundingBox6decodeEPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer + _ZN11BoundingBox6decodeEPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer 26 - _ZN11BoundingBox8logBoxesEP7_GArray + _ZN11BoundingBox8logBoxesEP7_GArray 6 - _ZN11BoundingBox9setOptionE17BoundingBoxOptionPKc + _ZN11BoundingBox9setOptionE17BoundingBoxOptionPKc 77 - _ZN11BoundingBoxC2Ev + _ZN11BoundingBoxC2Ev 15 - _ZN11BoundingBoxD2Ev + _ZN11BoundingBoxD2Ev 15 - fini_bb + fini_bb 33 - init_bb + init_bb 33 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.gcov.html index da570f5b3..b5c9e053b 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.cc @@ -28,20 +28,20 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 85.1 % - 395 - 336 + 71.0 % + 483 + 343 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: - 100.0 % - 29 + 87.9 % + 33 29 @@ -141,911 +141,1089 @@ 79 : [YOLOV5_BOUNDING_BOX] = "yolov5", 80 : [MP_PALM_DETECTION_BOUNDING_BOX] = "mp-palm-detection", 81 : [YOLOV8_BOUNDING_BOX] = "yolov8", - 82 : NULL, - 83 : }; - 84 : - 85 : /** - 86 : * @brief Change deprecated mode name - 87 : */ - 88 : static const char * - 89 15 : updateDecodingMode (const char *param) - 90 : { - 91 15 : if (g_strcmp0 (param, bb_modes[OLDNAME_MOBILENET_SSD_BOUNDING_BOX]) == 0) { - 92 2 : return bb_modes[MOBILENET_SSD_BOUNDING_BOX]; - 93 : } - 94 : - 95 13 : if (g_strcmp0 (param, bb_modes[OLDNAME_MOBILENET_SSD_PP_BOUNDING_BOX]) == 0) { - 96 2 : return bb_modes[MOBILENET_SSD_PP_BOUNDING_BOX]; - 97 : } - 98 : - 99 11 : return param; - 100 : } - 101 : - 102 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ - 103 : static int - 104 15 : bb_init (void **pdata) - 105 : { - 106 : /** @todo check if we need to ensure plugin_data is not yet allocated */ - 107 15 : BoundingBox *bdata = new BoundingBox (); - 108 15 : *pdata = bdata; - 109 : - 110 15 : if (bdata == NULL) { - 111 0 : GST_ERROR ("Failed to allocate memory for decoder subplugin."); - 112 0 : return FALSE; - 113 : } - 114 : - 115 15 : initSingleLineSprite (singleLineSprite, rasters, PIXEL_VALUE); - 116 : - 117 15 : return TRUE; - 118 : } - 119 : - 120 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ - 121 : static void - 122 15 : bb_exit (void **pdata) - 123 : { - 124 15 : BoundingBox *bdata = static_cast<BoundingBox *> (*pdata); - 125 15 : delete bdata; - 126 15 : *pdata = NULL; - 127 15 : } - 128 : - 129 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ - 130 : static int - 131 77 : bb_setOption (void **pdata, int opNum, const char *param) - 132 : { - 133 77 : BoundingBox *bdata = static_cast<BoundingBox *> (*pdata); - 134 77 : BoundingBoxOption option = static_cast<BoundingBoxOption> (opNum); - 135 77 : return bdata->setOption (option, param); - 136 : } - 137 : - 138 : /** - 139 : * @brief tensordec-plugin's GstTensorDecoderDef callback - 140 : * - 141 : * [Mobilenet SSD Model] - 142 : * The first tensor is boxes. BOX_SIZE : 1 : #MaxDetection, ANY-TYPE - 143 : * The second tensor is labels. #MaxLabel : #MaxDetection, ANY-TYPE - 144 : * Both tensors are MANDATORY! - 145 : * - 146 : * [Mobilenet SSD Postprocess Model] - 147 : * Tensors mapping is defined through option-3, with following syntax: - 148 : * LOCATIONS_IDX:CLASSES_IDX:SCORES_IDX:NUM_DETECTION_IDX - 149 : * - 150 : * Default configuration is: 3:1:2:0 - 151 : * - 152 : * num_detection (default 1st tensor). 1, ANY-TYPE - 153 : * detection_classes (default 2nd tensor). #MaxDetection, ANY-TYPE - 154 : * detection_scores (default 3rd tensor). #MaxDetection, ANY-TYPE - 155 : * detection_boxes (default 4th tensor). BOX_SIZE : #MaxDetection, ANY-TYPE - 156 : * - 157 : * all of tensors are MANDATORY! - 158 : * - 159 : * If there are third or more tensors, such tensors will be ignored. - 160 : */ - 161 : static GstCaps * - 162 144 : bb_getOutCaps (void **pdata, const GstTensorsConfig *config) - 163 : { - 164 : /** @todo this is compatible with "SSD" only. expand the capability! */ - 165 144 : BoundingBox *bdata = static_cast<BoundingBox *> (*pdata); - 166 144 : return bdata->getOutCaps (config); - 167 : } - 168 : - 169 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ - 170 : static GstFlowReturn - 171 26 : bb_decode (void **pdata, const GstTensorsConfig *config, - 172 : const GstTensorMemory *input, GstBuffer *outbuf) - 173 : { - 174 26 : BoundingBox *bdata = static_cast<BoundingBox *> (*pdata); - 175 26 : return bdata->decode (config, input, outbuf); - 176 : } - 177 : - 178 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ - 179 : static size_t - 180 10 : bb_getTransformSize (void **pdata, const GstTensorsConfig *config, - 181 : GstCaps *caps, size_t size, GstCaps *othercaps, GstPadDirection direction) - 182 : { - 183 : UNUSED (pdata); - 184 : UNUSED (config); - 185 : UNUSED (caps); - 186 : UNUSED (size); - 187 : UNUSED (othercaps); - 188 : UNUSED (direction); - 189 : - 190 10 : return 0; - 191 : /** @todo Use appropriate values */ - 192 : } - 193 : - 194 : static gchar decoder_subplugin_bounding_box[] = "bounding_boxes"; - 195 : - 196 : /** @brief Bounding box tensordec-plugin GstTensorDecoderDef instance */ - 197 : static GstTensorDecoderDef boundingBox = { .modename = decoder_subplugin_bounding_box, - 198 : .init = bb_init, - 199 : .exit = bb_exit, - 200 : .setOption = bb_setOption, - 201 : .getOutCaps = bb_getOutCaps, - 202 : .decode = bb_decode, - 203 : .getTransformSize = bb_getTransformSize }; - 204 : - 205 : static gchar *custom_prop_desc = NULL; - 206 : - 207 : /** @brief Initialize this object for tensordec-plugin */ - 208 : void - 209 33 : init_bb (void) - 210 : { - 211 33 : nnstreamer_decoder_probe (&boundingBox); - 212 : - 213 : { - 214 33 : g_autofree gchar *sub_desc = g_strjoinv ("|", (GStrv) bb_modes); - 215 : - 216 33 : g_free (custom_prop_desc); - 217 33 : custom_prop_desc = g_strdup_printf ("Decoder mode of bounding box: [%s]", sub_desc); - 218 : - 219 33 : nnstreamer_decoder_set_custom_property_desc (decoder_subplugin_bounding_box, - 220 : "option1", custom_prop_desc, "option2", - 221 : "Location of the label file. This is independent from option1.", "option3", - 222 : "Sub-option values that depend on option1;\n" - 223 : "\tfor yolov5 and yolov8 mode:\n" - 224 : "\t\tThe option3 requires up to 3 numbers, which tell\n" - 225 : "\t\t- whether the output values are scaled or not\n" - 226 : "\t\t 0: not scaled (default), 1: scaled (e.g., 0.0 ~ 1.0)\n" - 227 : "\t\t- the threshold of confidence (optional, default set to 0.25)\n" - 228 : "\t\t- the threshold of IOU (optional, default set to 0.45)\n" - 229 : "\t\tAn example of option3 is option3 = 0: 0.65:0.6 \n" - 230 : "\tfor mobilenet-ssd mode:\n" - 231 : "\t\tThe option3 definition scheme is, in order, as follows\n" - 232 : "\t\t- box priors location file (mandatory)\n" - 233 : "\t\t- detection threshold (optional, default set to 0.5)box priors location file (mandatory)\n" - 234 : "\t\t- Y box scale (optional, default set to 10.0)\n" - 235 : "\t\t- X box scale (optional, default set to 10.0)\n" - 236 : "\t\t- H box scale (optional, default set to 5.0)\n" - 237 : "\t\t- W box scale (optional, default set to 5.0)\n" - 238 : "\t\tThe default parameters value could be set in the following ways:\n" - 239 : "\t\t option3=box-priors.txt:0.5:10.0:10.0:5.0:5.0:0.5\n" - 240 : "\t\t option3=box-priors.txt\n" - 241 : "\t\t option3=box-priors.txt::::::\n" - 242 : "\t\tIt's possible to set only few values, using the default values for those not specified through the command line.\n" - 243 : "\t\tYou could specify respectively the detection and IOU thresholds to 0.65 and 0.6 with the option3 parameter as follow:\n" - 244 : "\t\t option3=box-priors.txt:0.65:::::0.6\n" - 245 : "\tfor mobilenet-ssd-postprocess mode:\n" - 246 : "\t\tThe option3 is required to have 5 integer numbers, which tell the tensor-dec how to interpret the given tensor inputs.\n" - 247 : "\t\tThe first 4 numbers separated by colon, \':\', designate which are location:class:score:number of the tensors.\n" - 248 : "\t\tThe last number separated by comma, ',\' from the first 4 numbers designate the threshold in percent.\n" - 249 : "\t\tIn other words, \"option3=%i:%i:%i:%i,%i\"\n" - 250 : "\tfor mp-palm-detection mode:\n" - 251 : "\t\tThe option3 is required to have five float numbers, as follows;\n" - 252 : "\t\t- box score threshold (mandatory)\n" - 253 : "\t\t- number of layers for anchor generation (optional, default set to 4)\n" - 254 : "\t\t- minimum scale factor for anchor generation (optional, default set to 1.0)\n" - 255 : "\t\t- maximum scale factor for anchor generation (optional, default set to 1.0)\n" - 256 : "\t\t- X offset (optional, default set to 0.5)\n" - 257 : "\t\t- Y offset (optional, default set to 0.5)\n" - 258 : "\t\t- strides for each layer for anchor generation (optional, default set to 8:16:16:16)\n" - 259 : "\t\tThe default parameter value could be set in the following ways:\n" - 260 : "\t\t option3=0.5\n" - 261 : "\t\t option3=0.5:4:0.2:0.8\n" - 262 : "\t\t option3=0.5:4:1.0:1.0:0.5:0.5:8:16:16:16", - 263 : "option4", "Video Output Dimension (WIDTH:HEIGHT). This is independent from option1.", - 264 : "option5", "Input Dimension (WIDTH:HEIGHT). This is independent from option1.", "option6", - 265 : "Whether to track result bounding boxes or not\n" - 266 : "\t\t 0 (default, do not track)\n" - 267 : "\t\t 1 (track result bounding boxes, with naive centroid based algorithm)", - 268 : "option7", - 269 : "Whether to log the result bounding boxes or not\n" - 270 : "\t\t 0 (default, do not log)\n" - 271 : "\t\t 1 (log result bounding boxes)" - 272 : "\tThis is independent from option1", - 273 : "option8", "Box Style (NYI)", NULL); - 274 33 : } - 275 33 : } - 276 : - 277 : /** @brief Destruct this object for tensordec-plugin */ - 278 : void - 279 33 : fini_bb (void) - 280 : { - 281 33 : g_free (custom_prop_desc); - 282 33 : custom_prop_desc = NULL; - 283 33 : nnstreamer_decoder_exit (boundingBox.modename); - 284 33 : } - 285 : - 286 : /** @brief Compare function for sorting distances. */ - 287 : static int - 288 96 : distance_compare (const void *a, const void *b) - 289 : { - 290 96 : const distanceArrayData *da = (const distanceArrayData *) a; - 291 96 : const distanceArrayData *db = (const distanceArrayData *) b; - 292 : - 293 96 : if (da->distance < db->distance) - 294 34 : return -1; - 295 62 : if (da->distance > db->distance) - 296 42 : return 1; - 297 20 : return 0; - 298 : } - 299 : - 300 : /** - 301 : * @brief Compare Function for g_array_sort with detectedObject. - 302 : */ - 303 : static gint - 304 1748 : compare_detection (gconstpointer _a, gconstpointer _b) - 305 : { - 306 1748 : const detectedObject *a = static_cast<const detectedObject *> (_a); - 307 1748 : const detectedObject *b = static_cast<const detectedObject *> (_b); - 308 : - 309 : /* Larger comes first */ - 310 1748 : return (a->prob > b->prob) ? -1 : ((a->prob == b->prob) ? 0 : 1); - 311 : } - 312 : - 313 : /** - 314 : * @brief Calculate the intersected surface - 315 : */ - 316 : static gfloat - 317 850 : iou (detectedObject *a, detectedObject *b) - 318 : { - 319 850 : int x1 = MAX (a->x, b->x); - 320 850 : int y1 = MAX (a->y, b->y); - 321 850 : int x2 = MIN (a->x + a->width, b->x + b->width); - 322 850 : int y2 = MIN (a->y + a->height, b->y + b->height); - 323 850 : int w = MAX (0, (x2 - x1 + 1)); - 324 850 : int h = MAX (0, (y2 - y1 + 1)); - 325 850 : float inter = w * h; - 326 850 : float areaA = a->width * a->height; - 327 850 : float areaB = b->width * b->height; - 328 850 : float o = inter / (areaA + areaB - inter); - 329 850 : return (o >= 0) ? o : 0; - 330 : } - 331 : - 332 : /** - 333 : * @brief Apply NMS to the given results (objects[DETECTION_MAX]) - 334 : */ - 335 : void - 336 17 : nms (GArray *results, gfloat threshold) - 337 : { - 338 : guint boxes_size; - 339 : guint i, j; - 340 : - 341 17 : boxes_size = results->len; - 342 17 : if (boxes_size == 0U) - 343 0 : return; - 344 : - 345 17 : g_array_sort (results, compare_detection); - 346 : - 347 474 : for (i = 0; i < boxes_size; i++) { - 348 457 : detectedObject *a = &g_array_index (results, detectedObject, i); - 349 457 : if (a->valid == TRUE) { - 350 1225 : for (j = i + 1; j < boxes_size; j++) { - 351 1174 : detectedObject *b = &g_array_index (results, detectedObject, j); - 352 1174 : if (b->valid == TRUE) { - 353 850 : if (iou (a, b) > threshold) { - 354 406 : b->valid = FALSE; - 355 : } - 356 : } - 357 : } - 358 : } - 359 : } - 360 : - 361 17 : i = 0; - 362 : do { - 363 457 : detectedObject *a = &g_array_index (results, detectedObject, i); - 364 457 : if (a->valid == FALSE) - 365 406 : g_array_remove_index (results, i); - 366 : else - 367 51 : i++; - 368 457 : } while (i < results->len); - 369 : } - 370 : - 371 : /** - 372 : * @brief check the num_tensors is valid - 373 : */ - 374 : int - 375 144 : check_tensors (const GstTensorsConfig *config, const unsigned int limit) - 376 : { - 377 : unsigned int i; - 378 144 : g_return_val_if_fail (config != NULL, FALSE); - 379 144 : g_return_val_if_fail (config->info.num_tensors >= limit, FALSE); - 380 94 : if (config->info.num_tensors > limit) { - 381 0 : GST_WARNING ("tensor-decoder:boundingbox accepts %d or less tensors. " - 382 : "You are wasting the bandwidth by supplying %d tensors.", - 383 : limit, config->info.num_tensors); - 384 : } - 385 : - 386 : /* tensor-type of the tensors should be the same */ - 387 166 : for (i = 1; i < config->info.num_tensors; ++i) { - 388 72 : g_return_val_if_fail ( - 389 : gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, i - 1)->type - 390 : == gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, i) - 391 : ->type, - 392 : FALSE); - 393 : } - 394 94 : return TRUE; - 395 : } - 396 : - 397 : /** @brief Constructor of BoundingBox */ - 398 15 : BoundingBox::BoundingBox () - 399 : { - 400 15 : mode = BOUNDING_BOX_UNKNOWN; - 401 15 : width = 0; - 402 15 : height = 0; - 403 15 : flag_use_label = FALSE; - 404 15 : do_log = 0; - 405 : - 406 : /* for track */ - 407 15 : is_track = 0; - 408 15 : centroids_last_id = 0U; - 409 15 : max_centroids_num = 100U; - 410 15 : consecutive_disappear_threshold = 100U; - 411 15 : centroids = g_array_sized_new (TRUE, TRUE, sizeof (centroid), max_centroids_num); - 412 30 : distanceArray = g_array_sized_new (TRUE, TRUE, sizeof (distanceArrayData), - 413 15 : max_centroids_num * max_centroids_num); - 414 : - 415 15 : label_path = nullptr; - 416 15 : labeldata.labels = nullptr; - 417 15 : labeldata.max_word_length = 0; - 418 15 : labeldata.total_labels = 0; - 419 15 : bdata = nullptr; - 420 15 : } - 421 : - 422 : /** @brief destructor of BoundingBox */ - 423 15 : BoundingBox::~BoundingBox () - 424 : { - 425 15 : _free_labels (&labeldata); - 426 : - 427 15 : if (label_path) - 428 13 : g_free (label_path); - 429 : - 430 15 : g_array_free (centroids, TRUE); - 431 15 : g_array_free (distanceArray, TRUE); + 82 : [YOLOV8_ORIENTED_BOUNDING_BOX] = "yolov8-obb", + 83 : NULL, + 84 : }; + 85 : + 86 : /** + 87 : * @brief Change deprecated mode name + 88 : */ + 89 : static const char * + 90 15 : updateDecodingMode (const char *param) + 91 : { + 92 15 : if (g_strcmp0 (param, bb_modes[OLDNAME_MOBILENET_SSD_BOUNDING_BOX]) == 0) { + 93 2 : return bb_modes[MOBILENET_SSD_BOUNDING_BOX]; + 94 : } + 95 : + 96 13 : if (g_strcmp0 (param, bb_modes[OLDNAME_MOBILENET_SSD_PP_BOUNDING_BOX]) == 0) { + 97 2 : return bb_modes[MOBILENET_SSD_PP_BOUNDING_BOX]; + 98 : } + 99 : + 100 11 : return param; + 101 : } + 102 : + 103 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ + 104 : static int + 105 15 : bb_init (void **pdata) + 106 : { + 107 : /** @todo check if we need to ensure plugin_data is not yet allocated */ + 108 15 : BoundingBox *bdata = new BoundingBox (); + 109 15 : *pdata = bdata; + 110 : + 111 15 : if (bdata == NULL) { + 112 0 : GST_ERROR ("Failed to allocate memory for decoder subplugin."); + 113 0 : return FALSE; + 114 : } + 115 : + 116 15 : initSingleLineSprite (singleLineSprite, rasters, PIXEL_VALUE); + 117 : + 118 15 : return TRUE; + 119 : } + 120 : + 121 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ + 122 : static void + 123 15 : bb_exit (void **pdata) + 124 : { + 125 15 : BoundingBox *bdata = static_cast<BoundingBox *> (*pdata); + 126 15 : delete bdata; + 127 15 : *pdata = NULL; + 128 15 : } + 129 : + 130 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ + 131 : static int + 132 77 : bb_setOption (void **pdata, int opNum, const char *param) + 133 : { + 134 77 : BoundingBox *bdata = static_cast<BoundingBox *> (*pdata); + 135 77 : BoundingBoxOption option = static_cast<BoundingBoxOption> (opNum); + 136 77 : return bdata->setOption (option, param); + 137 : } + 138 : + 139 : /** + 140 : * @brief tensordec-plugin's GstTensorDecoderDef callback + 141 : * + 142 : * [Mobilenet SSD Model] + 143 : * The first tensor is boxes. BOX_SIZE : 1 : #MaxDetection, ANY-TYPE + 144 : * The second tensor is labels. #MaxLabel : #MaxDetection, ANY-TYPE + 145 : * Both tensors are MANDATORY! + 146 : * + 147 : * [Mobilenet SSD Postprocess Model] + 148 : * Tensors mapping is defined through option-3, with following syntax: + 149 : * LOCATIONS_IDX:CLASSES_IDX:SCORES_IDX:NUM_DETECTION_IDX + 150 : * + 151 : * Default configuration is: 3:1:2:0 + 152 : * + 153 : * num_detection (default 1st tensor). 1, ANY-TYPE + 154 : * detection_classes (default 2nd tensor). #MaxDetection, ANY-TYPE + 155 : * detection_scores (default 3rd tensor). #MaxDetection, ANY-TYPE + 156 : * detection_boxes (default 4th tensor). BOX_SIZE : #MaxDetection, ANY-TYPE + 157 : * + 158 : * all of tensors are MANDATORY! + 159 : * + 160 : * If there are third or more tensors, such tensors will be ignored. + 161 : */ + 162 : static GstCaps * + 163 144 : bb_getOutCaps (void **pdata, const GstTensorsConfig *config) + 164 : { + 165 : /** @todo this is compatible with "SSD" only. expand the capability! */ + 166 144 : BoundingBox *bdata = static_cast<BoundingBox *> (*pdata); + 167 144 : return bdata->getOutCaps (config); + 168 : } + 169 : + 170 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ + 171 : static GstFlowReturn + 172 26 : bb_decode (void **pdata, const GstTensorsConfig *config, + 173 : const GstTensorMemory *input, GstBuffer *outbuf) + 174 : { + 175 26 : BoundingBox *bdata = static_cast<BoundingBox *> (*pdata); + 176 26 : return bdata->decode (config, input, outbuf); + 177 : } + 178 : + 179 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ + 180 : static size_t + 181 10 : bb_getTransformSize (void **pdata, const GstTensorsConfig *config, + 182 : GstCaps *caps, size_t size, GstCaps *othercaps, GstPadDirection direction) + 183 : { + 184 : UNUSED (pdata); + 185 : UNUSED (config); + 186 : UNUSED (caps); + 187 : UNUSED (size); + 188 : UNUSED (othercaps); + 189 : UNUSED (direction); + 190 : + 191 10 : return 0; + 192 : /** @todo Use appropriate values */ + 193 : } + 194 : + 195 : static gchar decoder_subplugin_bounding_box[] = "bounding_boxes"; + 196 : + 197 : /** @brief Bounding box tensordec-plugin GstTensorDecoderDef instance */ + 198 : static GstTensorDecoderDef boundingBox = { .modename = decoder_subplugin_bounding_box, + 199 : .init = bb_init, + 200 : .exit = bb_exit, + 201 : .setOption = bb_setOption, + 202 : .getOutCaps = bb_getOutCaps, + 203 : .decode = bb_decode, + 204 : .getTransformSize = bb_getTransformSize }; + 205 : + 206 : static gchar *custom_prop_desc = NULL; + 207 : + 208 : /** @brief Initialize this object for tensordec-plugin */ + 209 : void + 210 33 : init_bb (void) + 211 : { + 212 33 : nnstreamer_decoder_probe (&boundingBox); + 213 : + 214 : { + 215 33 : g_autofree gchar *sub_desc = g_strjoinv ("|", (GStrv) bb_modes); + 216 : + 217 33 : g_free (custom_prop_desc); + 218 33 : custom_prop_desc = g_strdup_printf ("Decoder mode of bounding box: [%s]", sub_desc); + 219 : + 220 33 : nnstreamer_decoder_set_custom_property_desc (decoder_subplugin_bounding_box, + 221 : "option1", custom_prop_desc, "option2", + 222 : "Location of the label file. This is independent from option1.", "option3", + 223 : "Sub-option values that depend on option1;\n" + 224 : "\tfor yolov5 and yolov8 mode:\n" + 225 : "\t\tThe option3 requires up to 3 numbers, which tell\n" + 226 : "\t\t- whether the output values are scaled or not\n" + 227 : "\t\t 0: not scaled (default), 1: scaled (e.g., 0.0 ~ 1.0)\n" + 228 : "\t\t- the threshold of confidence (optional, default set to 0.25)\n" + 229 : "\t\t- the threshold of IOU (optional, default set to 0.45)\n" + 230 : "\t\tAn example of option3 is option3 = 0: 0.65:0.6 \n" + 231 : "\tfor yolov8 obb mode:\n" + 232 : "\t\tThe option3 requires up to 4 numbers, which tell\n" + 233 : "\t\t- whether the output values are scaled or not\n" + 234 : "\t\t 0: not scaled (default), 1: scaled (e.g., 0.0 ~ 1.0)\n" + 235 : "\t\t- the threshold of confidence (optional, default set to 0.25)\n" + 236 : "\t\t- the threshold of IOU (optional, default set to 0.45)\n" + 237 : "\t\t- whether to output oriented bounding boxes\n" + 238 : "\t\t 0: axis-aligned boxes, 1: oriented boxes (default)\n" + 239 : "\t\tAn example of option3 is option3=1:0.5:0.5:1\n" + 240 : "\tfor mobilenet-ssd mode:\n" + 241 : "\t\tThe option3 definition scheme is, in order, as follows\n" + 242 : "\t\t- box priors location file (mandatory)\n" + 243 : "\t\t- detection threshold (optional, default set to 0.5)box priors location file (mandatory)\n" + 244 : "\t\t- Y box scale (optional, default set to 10.0)\n" + 245 : "\t\t- X box scale (optional, default set to 10.0)\n" + 246 : "\t\t- H box scale (optional, default set to 5.0)\n" + 247 : "\t\t- W box scale (optional, default set to 5.0)\n" + 248 : "\t\tThe default parameters value could be set in the following ways:\n" + 249 : "\t\t option3=box-priors.txt:0.5:10.0:10.0:5.0:5.0:0.5\n" + 250 : "\t\t option3=box-priors.txt\n" + 251 : "\t\t option3=box-priors.txt::::::\n" + 252 : "\t\tIt's possible to set only few values, using the default values for those not specified through the command line.\n" + 253 : "\t\tYou could specify respectively the detection and IOU thresholds to 0.65 and 0.6 with the option3 parameter as follow:\n" + 254 : "\t\t option3=box-priors.txt:0.65:::::0.6\n" + 255 : "\tfor mobilenet-ssd-postprocess mode:\n" + 256 : "\t\tThe option3 is required to have 5 integer numbers, which tell the tensor-dec how to interpret the given tensor inputs.\n" + 257 : "\t\tThe first 4 numbers separated by colon, \':\', designate which are location:class:score:number of the tensors.\n" + 258 : "\t\tThe last number separated by comma, ',\' from the first 4 numbers designate the threshold in percent.\n" + 259 : "\t\tIn other words, \"option3=%i:%i:%i:%i,%i\"\n" + 260 : "\tfor mp-palm-detection mode:\n" + 261 : "\t\tThe option3 is required to have five float numbers, as follows;\n" + 262 : "\t\t- box score threshold (mandatory)\n" + 263 : "\t\t- number of layers for anchor generation (optional, default set to 4)\n" + 264 : "\t\t- minimum scale factor for anchor generation (optional, default set to 1.0)\n" + 265 : "\t\t- maximum scale factor for anchor generation (optional, default set to 1.0)\n" + 266 : "\t\t- X offset (optional, default set to 0.5)\n" + 267 : "\t\t- Y offset (optional, default set to 0.5)\n" + 268 : "\t\t- strides for each layer for anchor generation (optional, default set to 8:16:16:16)\n" + 269 : "\t\tThe default parameter value could be set in the following ways:\n" + 270 : "\t\t option3=0.5\n" + 271 : "\t\t option3=0.5:4:0.2:0.8\n" + 272 : "\t\t option3=0.5:4:1.0:1.0:0.5:0.5:8:16:16:16", + 273 : "option4", "Video Output Dimension (WIDTH:HEIGHT). This is independent from option1.", + 274 : "option5", "Input Dimension (WIDTH:HEIGHT). This is independent from option1.", "option6", + 275 : "Whether to track result bounding boxes or not\n" + 276 : "\t\t 0 (default, do not track)\n" + 277 : "\t\t 1 (track result bounding boxes, with naive centroid based algorithm)", + 278 : "option7", + 279 : "Whether to log the result bounding boxes or not\n" + 280 : "\t\t 0 (default, do not log)\n" + 281 : "\t\t 1 (log result bounding boxes)" + 282 : "\tThis is independent from option1", + 283 : "option8", "Box Style (NYI)", NULL); + 284 33 : } + 285 33 : } + 286 : + 287 : /** @brief Destruct this object for tensordec-plugin */ + 288 : void + 289 33 : fini_bb (void) + 290 : { + 291 33 : g_free (custom_prop_desc); + 292 33 : custom_prop_desc = NULL; + 293 33 : nnstreamer_decoder_exit (boundingBox.modename); + 294 33 : } + 295 : + 296 : /** @brief Compare function for sorting distances. */ + 297 : static int + 298 96 : distance_compare (const void *a, const void *b) + 299 : { + 300 96 : const distanceArrayData *da = (const distanceArrayData *) a; + 301 96 : const distanceArrayData *db = (const distanceArrayData *) b; + 302 : + 303 96 : if (da->distance < db->distance) + 304 34 : return -1; + 305 62 : if (da->distance > db->distance) + 306 42 : return 1; + 307 20 : return 0; + 308 : } + 309 : + 310 : /** + 311 : * @brief Compare Function for g_array_sort with detectedObject. + 312 : */ + 313 : static gint + 314 1748 : compare_detection (gconstpointer _a, gconstpointer _b) + 315 : { + 316 1748 : const detectedObject *a = static_cast<const detectedObject *> (_a); + 317 1748 : const detectedObject *b = static_cast<const detectedObject *> (_b); + 318 : + 319 : /* Larger comes first */ + 320 1748 : return (a->prob > b->prob) ? -1 : ((a->prob == b->prob) ? 0 : 1); + 321 : } + 322 : + 323 : /** + 324 : * @brief Calculate the intersected surface + 325 : */ + 326 : static gfloat + 327 850 : iou (detectedObject *a, detectedObject *b) + 328 : { + 329 850 : int x1 = MAX (a->x, b->x); + 330 850 : int y1 = MAX (a->y, b->y); + 331 850 : int x2 = MIN (a->x + a->width, b->x + b->width); + 332 850 : int y2 = MIN (a->y + a->height, b->y + b->height); + 333 850 : int w = MAX (0, (x2 - x1 + 1)); + 334 850 : int h = MAX (0, (y2 - y1 + 1)); + 335 850 : float inter = w * h; + 336 850 : float areaA = a->width * a->height; + 337 850 : float areaB = b->width * b->height; + 338 850 : float o = inter / (areaA + areaB - inter); + 339 850 : return (o >= 0) ? o : 0; + 340 : } + 341 : + 342 : /** + 343 : * @brief Calculate the corners using center position and angle. + 344 : * @note The angle (obj->angle) must be radian. + 345 : */ + 346 : void + 347 0 : get_rotated_rect_corners (detectedObject *obj, Point corners[4]) + 348 : { + 349 0 : float cx = obj->x; + 350 0 : float cy = obj->y; + 351 0 : float angle = obj->angle; + 352 : + 353 0 : float cos_a = cos (angle); + 354 0 : float sin_a = sin (angle); + 355 : + 356 0 : float half_w = obj->width / 2; + 357 0 : float half_h = obj->height / 2; + 358 : + 359 0 : float dx[4] = { -half_w, half_w, half_w, -half_w }; + 360 0 : float dy[4] = { -half_h, -half_h, half_h, half_h }; + 361 : + 362 0 : for (int i = 0; i < 4; i++) { + 363 0 : corners[i].x = cx + dx[i] * cos_a - dy[i] * sin_a; + 364 0 : corners[i].y = cy + dx[i] * sin_a + dy[i] * cos_a; + 365 : } + 366 0 : } + 367 : + 368 : /** + 369 : * @brief Check whether point is in the polygon + 370 : */ + 371 : bool + 372 0 : is_point_inside (Point point, const Point *polygon, int n) + 373 : { + 374 0 : int intersections = 0; + 375 : + 376 0 : for (int i = 0; i < n; i++) { + 377 0 : Point p1 = polygon[i]; + 378 0 : Point p2 = polygon[(i + 1) % n]; + 379 : + 380 0 : if ((p1.y > point.y) != (p2.y > point.y)) { + 381 0 : float intersect_x = p1.x + (point.y - p1.y) * (p2.x - p1.x) / (p2.y - p1.y); + 382 : + 383 0 : if (intersect_x > point.x) { + 384 0 : intersections++; + 385 : } + 386 : } + 387 : } + 388 : + 389 0 : return (intersections % 2 == 1); + 390 : } + 391 : + 392 : /** + 393 : * @brief iou for obb + 394 : */ + 395 : float + 396 0 : iou_obb (detectedObject *a, detectedObject *b) + 397 : { + 398 : Point corners_a[4], corners_b[4]; + 399 0 : get_rotated_rect_corners (a, corners_a); + 400 0 : get_rotated_rect_corners (b, corners_b); + 401 : + 402 0 : float area_a = a->width * a->height; + 403 0 : float area_b = b->width * b->height; + 404 : + 405 0 : Point *small_corners = (area_a < area_b) ? corners_a : corners_b; + 406 0 : float small_width = (area_a < area_b) ? a->width : b->width; + 407 0 : float small_height = (area_a < area_b) ? a->height : b->height; + 408 0 : float small_angle = (area_a < area_b) ? a->angle : b->angle; + 409 : + 410 0 : int grid_x = 5, grid_y = 5; + 411 0 : int overlap_count = 0, total_count = 0; + 412 : + 413 0 : float step_x = small_width / (grid_x + 1); + 414 0 : float step_y = small_height / (grid_y + 1); + 415 : + 416 0 : for (int i = 0; i <= grid_x; i++) { + 417 0 : for (int j = 0; j <= grid_y; j++) { + 418 : Point test_point; + 419 0 : test_point.x = small_corners[0].x + (i + 0.5) * step_x * cos (small_angle) + 420 0 : - (j + 0.5) * step_y * sin (small_angle); + 421 0 : test_point.y = small_corners[0].y + (i + 0.5) * step_x * sin (small_angle) + 422 0 : + (j + 0.5) * step_y * cos (small_angle); + 423 : + 424 0 : total_count++; + 425 : + 426 0 : if (is_point_inside (test_point, corners_a, 4) + 427 0 : && is_point_inside (test_point, corners_b, 4)) { + 428 0 : overlap_count++; + 429 : } + 430 : } + 431 : } 432 : - 433 15 : G_LOCK (box_properties_table); - 434 15 : g_hash_table_destroy (properties_table); - 435 15 : properties_table = nullptr; - 436 15 : G_UNLOCK (box_properties_table); - 437 15 : } + 433 0 : float overlap_area = (float) overlap_count / total_count * small_width * small_height; + 434 0 : float union_area = area_a + area_b - overlap_area; + 435 : + 436 0 : return overlap_area / union_area; + 437 : } 438 : 439 : /** - 440 : * @brief Update centroids with given bounding boxes. + 440 : * @brief Apply NMS to the given results (objects[DETECTION_MAX]) 441 : */ 442 : void - 443 3 : BoundingBox::updateCentroids (GArray *boxes) + 443 17 : nms (GArray *results, gfloat threshold, bounding_box_modes mode) 444 : { - 445 : guint i, j; - 446 3 : if (boxes->len > max_centroids_num) { - 447 0 : nns_logw ("updateCentroids: too many detected objects"); - 448 0 : return; - 449 : } - 450 : /* remove disappeared centroids */ - 451 3 : i = 0; - 452 11 : while (i < centroids->len) { - 453 8 : centroid *c = &g_array_index (centroids, centroid, i); - 454 8 : if (c->consecutive_disappeared_frames >= consecutive_disappear_threshold) { - 455 0 : g_array_remove_index (centroids, i); - 456 : } else { - 457 8 : i++; - 458 : } - 459 : } - 460 : - 461 3 : if (centroids->len > max_centroids_num) { - 462 0 : nns_logw ("update_centroids: too many detected centroids"); - 463 0 : return; - 464 : } - 465 : /* if boxes is empty */ - 466 3 : if (boxes->len == 0U) { - 467 : guint i; - 468 0 : for (i = 0; i < centroids->len; i++) { - 469 0 : centroid *c = &g_array_index (centroids, centroid, i); - 470 : - 471 0 : if (c->id > 0) - 472 0 : c->consecutive_disappeared_frames++; - 473 : } - 474 : - 475 0 : return; - 476 : } - 477 : /* initialize centroids with given boxes */ - 478 3 : if (centroids->len == 0U) { - 479 : guint i; - 480 5 : for (i = 0; i < boxes->len; i++) { - 481 4 : detectedObject *box = &g_array_index (boxes, detectedObject, i); - 482 : centroid c; + 445 : guint boxes_size; + 446 : guint i, j; + 447 : + 448 17 : boxes_size = results->len; + 449 17 : if (boxes_size == 0U) + 450 0 : return; + 451 : + 452 17 : g_array_sort (results, compare_detection); + 453 : + 454 474 : for (i = 0; i < boxes_size; i++) { + 455 457 : detectedObject *a = &g_array_index (results, detectedObject, i); + 456 457 : if (a->valid == TRUE) { + 457 1225 : for (j = i + 1; j < boxes_size; j++) { + 458 1174 : detectedObject *b = &g_array_index (results, detectedObject, j); + 459 1174 : if (b->valid == TRUE) { + 460 850 : float iou_value = 0.0f; + 461 850 : if (mode == YOLOV8_ORIENTED_BOUNDING_BOX) { + 462 0 : iou_value = iou_obb (a, b); + 463 : } else { + 464 850 : iou_value = iou (a, b); + 465 : } + 466 850 : if (iou_value > threshold) { + 467 406 : b->valid = FALSE; + 468 : } + 469 : } + 470 : } + 471 : } + 472 : } + 473 : + 474 17 : i = 0; + 475 : do { + 476 457 : detectedObject *a = &g_array_index (results, detectedObject, i); + 477 457 : if (a->valid == FALSE) + 478 406 : g_array_remove_index (results, i); + 479 : else + 480 51 : i++; + 481 457 : } while (i < results->len); + 482 : } 483 : - 484 4 : centroids_last_id++; - 485 4 : c.id = centroids_last_id; - 486 4 : c.consecutive_disappeared_frames = 0; - 487 4 : c.cx = box->x + box->width / 2; - 488 4 : c.cy = box->y + box->height / 2; - 489 4 : c.matched_box_idx = i; - 490 : - 491 4 : g_array_append_val (centroids, c); - 492 : - 493 4 : box->tracking_id = c.id; - 494 : } - 495 : - 496 1 : return; + 484 : /** + 485 : * @brief check the num_tensors is valid + 486 : */ + 487 : int + 488 144 : check_tensors (const GstTensorsConfig *config, const unsigned int limit) + 489 : { + 490 : unsigned int i; + 491 144 : g_return_val_if_fail (config != NULL, FALSE); + 492 144 : g_return_val_if_fail (config->info.num_tensors >= limit, FALSE); + 493 94 : if (config->info.num_tensors > limit) { + 494 0 : GST_WARNING ("tensor-decoder:boundingbox accepts %d or less tensors. " + 495 : "You are wasting the bandwidth by supplying %d tensors.", + 496 : limit, config->info.num_tensors); 497 : } - 498 : /* calculate the distance among centroids and boxes */ - 499 2 : g_array_set_size (distanceArray, centroids->len * boxes->len); - 500 : - 501 10 : for (i = 0; i < centroids->len; i++) { - 502 8 : centroid *c = &g_array_index (centroids, centroid, i); - 503 8 : c->matched_box_idx = G_MAXUINT32; - 504 : - 505 40 : for (j = 0; j < boxes->len; j++) { - 506 32 : detectedObject *box = &g_array_index (boxes, detectedObject, j); - 507 32 : distanceArrayData *d - 508 32 : = &g_array_index (distanceArray, distanceArrayData, i * centroids->len + j); + 498 : + 499 : /* tensor-type of the tensors should be the same */ + 500 166 : for (i = 1; i < config->info.num_tensors; ++i) { + 501 72 : g_return_val_if_fail ( + 502 : gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, i - 1)->type + 503 : == gst_tensors_info_get_nth_info ((GstTensorsInfo *) &config->info, i) + 504 : ->type, + 505 : FALSE); + 506 : } + 507 94 : return TRUE; + 508 : } 509 : - 510 32 : d->centroid_idx = i; - 511 32 : d->box_idx = j; - 512 : - 513 : /* invalid centroid */ - 514 32 : if (c->id == 0) { - 515 0 : d->distance = G_MAXUINT64; - 516 : } else { - 517 : /* calculate euclidean distance */ - 518 32 : int bcx = box->x + box->width / 2; - 519 32 : int bcy = box->y + box->height / 2; - 520 : - 521 32 : d->distance = (guint64) (c->cx - bcx) * (c->cx - bcx) - 522 32 : + (guint64) (c->cy - bcy) * (c->cy - bcy); - 523 : } - 524 : } - 525 : } - 526 : - 527 2 : g_array_sort (distanceArray, distance_compare); - 528 : - 529 : { - 530 : /* Starting from the least distance pair (centroid, box), matching each other */ - 531 : guint dIdx, cIdx, bIdx; - 532 : - 533 34 : for (dIdx = 0; dIdx < distanceArray->len; dIdx++) { - 534 32 : distanceArrayData *d = &g_array_index (distanceArray, distanceArrayData, dIdx); - 535 32 : centroid *c = &g_array_index (centroids, centroid, d->centroid_idx); - 536 32 : detectedObject *box = &g_array_index (boxes, detectedObject, d->box_idx); - 537 : - 538 32 : bIdx = d->box_idx; + 510 : /** @brief Constructor of BoundingBox */ + 511 15 : BoundingBox::BoundingBox () + 512 : { + 513 15 : mode = BOUNDING_BOX_UNKNOWN; + 514 15 : width = 0; + 515 15 : height = 0; + 516 15 : flag_use_label = FALSE; + 517 15 : do_log = 0; + 518 : + 519 : /* for track */ + 520 15 : is_track = 0; + 521 15 : centroids_last_id = 0U; + 522 15 : max_centroids_num = 100U; + 523 15 : consecutive_disappear_threshold = 100U; + 524 15 : centroids = g_array_sized_new (TRUE, TRUE, sizeof (centroid), max_centroids_num); + 525 30 : distanceArray = g_array_sized_new (TRUE, TRUE, sizeof (distanceArrayData), + 526 15 : max_centroids_num * max_centroids_num); + 527 : + 528 15 : label_path = nullptr; + 529 15 : labeldata.labels = nullptr; + 530 15 : labeldata.max_word_length = 0; + 531 15 : labeldata.total_labels = 0; + 532 15 : bdata = nullptr; + 533 15 : } + 534 : + 535 : /** @brief destructor of BoundingBox */ + 536 15 : BoundingBox::~BoundingBox () + 537 : { + 538 15 : _free_labels (&labeldata); 539 : - 540 : /* the centroid is invalid */ - 541 32 : if (c->id == 0) { - 542 0 : continue; - 543 : } - 544 : /* the box is already assigned to a centroid */ - 545 32 : if (box->tracking_id != 0) { - 546 24 : continue; - 547 : } - 548 : /* the centroid is already assigned to a box */ - 549 8 : if (c->matched_box_idx != G_MAXUINT32) { - 550 0 : continue; - 551 : } - 552 : /* now match the box with the centroid */ - 553 8 : c->matched_box_idx = bIdx; - 554 8 : box->tracking_id = c->id; - 555 8 : c->consecutive_disappeared_frames = 0; - 556 : } - 557 : - 558 : /* increase consecutive_disappeared_frames of unmatched centroids */ - 559 10 : for (cIdx = 0; cIdx < centroids->len; cIdx++) { - 560 8 : centroid *c = &g_array_index (centroids, centroid, cIdx); - 561 : - 562 8 : if (c->id == 0) { - 563 0 : continue; - 564 : } - 565 : - 566 8 : if (c->matched_box_idx == G_MAXUINT32) { - 567 0 : c->consecutive_disappeared_frames++; - 568 : } - 569 : } - 570 : - 571 : /* for those unmatched boxes - register as new centroids */ - 572 10 : for (bIdx = 0; bIdx < boxes->len; bIdx++) { - 573 8 : detectedObject *box = &g_array_index (boxes, detectedObject, bIdx); - 574 : centroid c; - 575 : - 576 8 : if (box->tracking_id != 0) { - 577 8 : continue; - 578 : } - 579 : - 580 0 : centroids_last_id++; - 581 0 : c.id = centroids_last_id; - 582 0 : c.consecutive_disappeared_frames = 0; - 583 0 : c.cx = box->x + box->width / 2; - 584 0 : c.cy = box->y + box->height / 2; - 585 0 : c.matched_box_idx = bIdx; - 586 : - 587 0 : g_array_append_val (centroids, c); - 588 : - 589 0 : box->tracking_id = c.id; - 590 : } - 591 : } - 592 : } - 593 : - 594 : /** - 595 : * @brief Draw with the given results (objects[DETECTION_MAX]) to the output buffer - 596 : * @param[out] out_info The output buffer (RGBA plain) - 597 : * @param[in] bdata The bounding-box internal data. - 598 : * @param[in] results The final results to be drawn. - 599 : */ - 600 : void - 601 26 : BoundingBox::draw (GstMapInfo *out_info, GArray *results) - 602 : { - 603 26 : uint32_t *frame = (uint32_t *) out_info->data; /* Let's draw per pixel (4bytes) */ - 604 : unsigned int i; - 605 : guint i_width, i_height; - 606 : - 607 26 : i_width = bdata->getInputWidth (); - 608 26 : i_height = bdata->getInputHeight (); - 609 : - 610 110 : for (i = 0; i < results->len; i++) { - 611 : int x1, x2, y1, y2; /* Box positions on the output surface */ - 612 : int j; - 613 : uint32_t *pos1, *pos2; - 614 84 : detectedObject *a = &g_array_index (results, detectedObject, i); - 615 : - 616 84 : if ((flag_use_label) - 617 80 : && ((a->class_id < 0 || a->class_id >= (int) labeldata.total_labels))) { - 618 : /** @todo make it "logw_once" after we get logw_once API. */ - 619 0 : ml_logw ("Invalid class found with tensordec-boundingbox.\n"); - 620 0 : continue; - 621 : } + 540 15 : if (label_path) + 541 13 : g_free (label_path); + 542 : + 543 15 : g_array_free (centroids, TRUE); + 544 15 : g_array_free (distanceArray, TRUE); + 545 : + 546 15 : G_LOCK (box_properties_table); + 547 15 : g_hash_table_destroy (properties_table); + 548 15 : properties_table = nullptr; + 549 15 : G_UNLOCK (box_properties_table); + 550 15 : } + 551 : + 552 : /** + 553 : * @brief Update centroids with given bounding boxes. + 554 : */ + 555 : void + 556 3 : BoundingBox::updateCentroids (GArray *boxes) + 557 : { + 558 : guint i, j; + 559 3 : if (boxes->len > max_centroids_num) { + 560 0 : nns_logw ("updateCentroids: too many detected objects"); + 561 0 : return; + 562 : } + 563 : /* remove disappeared centroids */ + 564 3 : i = 0; + 565 11 : while (i < centroids->len) { + 566 8 : centroid *c = &g_array_index (centroids, centroid, i); + 567 8 : if (c->consecutive_disappeared_frames >= consecutive_disappear_threshold) { + 568 0 : g_array_remove_index (centroids, i); + 569 : } else { + 570 8 : i++; + 571 : } + 572 : } + 573 : + 574 3 : if (centroids->len > max_centroids_num) { + 575 0 : nns_logw ("update_centroids: too many detected centroids"); + 576 0 : return; + 577 : } + 578 : /* if boxes is empty */ + 579 3 : if (boxes->len == 0U) { + 580 : guint i; + 581 0 : for (i = 0; i < centroids->len; i++) { + 582 0 : centroid *c = &g_array_index (centroids, centroid, i); + 583 : + 584 0 : if (c->id > 0) + 585 0 : c->consecutive_disappeared_frames++; + 586 : } + 587 : + 588 0 : return; + 589 : } + 590 : /* initialize centroids with given boxes */ + 591 3 : if (centroids->len == 0U) { + 592 : guint i; + 593 5 : for (i = 0; i < boxes->len; i++) { + 594 4 : detectedObject *box = &g_array_index (boxes, detectedObject, i); + 595 : centroid c; + 596 : + 597 4 : centroids_last_id++; + 598 4 : c.id = centroids_last_id; + 599 4 : c.consecutive_disappeared_frames = 0; + 600 4 : c.cx = box->x + box->width / 2; + 601 4 : c.cy = box->y + box->height / 2; + 602 4 : c.matched_box_idx = i; + 603 : + 604 4 : g_array_append_val (centroids, c); + 605 : + 606 4 : box->tracking_id = c.id; + 607 : } + 608 : + 609 1 : return; + 610 : } + 611 : /* calculate the distance among centroids and boxes */ + 612 2 : g_array_set_size (distanceArray, centroids->len * boxes->len); + 613 : + 614 10 : for (i = 0; i < centroids->len; i++) { + 615 8 : centroid *c = &g_array_index (centroids, centroid, i); + 616 8 : c->matched_box_idx = G_MAXUINT32; + 617 : + 618 40 : for (j = 0; j < boxes->len; j++) { + 619 32 : detectedObject *box = &g_array_index (boxes, detectedObject, j); + 620 32 : distanceArrayData *d + 621 32 : = &g_array_index (distanceArray, distanceArrayData, i * centroids->len + j); 622 : - 623 : /* 1. Draw Boxes */ - 624 84 : x1 = (width * a->x) / i_width; - 625 84 : x2 = MIN (width - 1, (width * (a->x + a->width)) / i_width); - 626 84 : y1 = (height * a->y) / i_height; - 627 84 : y2 = MIN (height - 1, (height * (a->y + a->height)) / i_height); - 628 : - 629 : /* 1-1. Horizontal */ - 630 84 : pos1 = &frame[y1 * width + x1]; - 631 84 : pos2 = &frame[y2 * width + x1]; - 632 5174 : for (j = x1; j <= x2; j++) { - 633 5090 : *pos1 = PIXEL_VALUE; - 634 5090 : *pos2 = PIXEL_VALUE; - 635 5090 : pos1++; - 636 5090 : pos2++; + 623 32 : d->centroid_idx = i; + 624 32 : d->box_idx = j; + 625 : + 626 : /* invalid centroid */ + 627 32 : if (c->id == 0) { + 628 0 : d->distance = G_MAXUINT64; + 629 : } else { + 630 : /* calculate euclidean distance */ + 631 32 : int bcx = box->x + box->width / 2; + 632 32 : int bcy = box->y + box->height / 2; + 633 : + 634 32 : d->distance = (guint64) (c->cx - bcx) * (c->cx - bcx) + 635 32 : + (guint64) (c->cy - bcy) * (c->cy - bcy); + 636 : } 637 : } - 638 : - 639 : /* 1-2. Vertical */ - 640 84 : pos1 = &frame[(y1 + 1) * width + x1]; - 641 84 : pos2 = &frame[(y1 + 1) * width + x2]; - 642 5950 : for (j = y1 + 1; j < y2; j++) { - 643 5866 : *pos1 = PIXEL_VALUE; - 644 5866 : *pos2 = PIXEL_VALUE; - 645 5866 : pos1 += width; - 646 5866 : pos2 += width; - 647 : } - 648 : - 649 : /* 2. Write Labels + tracking ID */ - 650 84 : if (flag_use_label) { - 651 80 : g_autofree gchar *label = NULL; - 652 : gsize k, label_len; - 653 : - 654 80 : if (is_track != 0) { - 655 12 : label = g_strdup_printf ("%s-%d", labeldata.labels[a->class_id], a->tracking_id); - 656 : } else { - 657 68 : label = g_strdup_printf ("%s", labeldata.labels[a->class_id]); - 658 : } - 659 : - 660 80 : label_len = label ? strlen (label) : 0; - 661 : - 662 : /* x1 is the same: x1 = MAX (0, (width * a->x) / i_width); */ - 663 80 : y1 = MAX (0, (y1 - 14)); - 664 80 : pos1 = &frame[y1 * width + x1]; - 665 475 : for (k = 0; k < label_len; k++) { - 666 395 : unsigned int char_index = label[k]; - 667 395 : if ((x1 + 8) > (int) width) - 668 0 : break; /* Stop drawing if it may overfill */ - 669 395 : pos2 = pos1; - 670 5530 : for (y2 = 0; y2 < 13; y2++) { - 671 : /* 13 : character height */ - 672 46215 : for (x2 = 0; x2 < 8; x2++) { - 673 : /* 8: character width */ - 674 41080 : *(pos2 + x2) = singleLineSprite[char_index][y2][x2]; - 675 : } - 676 5135 : pos2 += width; - 677 : } - 678 395 : x1 += 9; - 679 395 : pos1 += 9; /* character width + 1px */ - 680 : } - 681 80 : } - 682 : } - 683 26 : } - 684 : - 685 : /** - 686 : * @brief Log the given results - 687 : */ - 688 : void - 689 6 : BoundingBox::logBoxes (GArray *results) - 690 : { - 691 : guint i; + 638 : } + 639 : + 640 2 : g_array_sort (distanceArray, distance_compare); + 641 : + 642 : { + 643 : /* Starting from the least distance pair (centroid, box), matching each other */ + 644 : guint dIdx, cIdx, bIdx; + 645 : + 646 34 : for (dIdx = 0; dIdx < distanceArray->len; dIdx++) { + 647 32 : distanceArrayData *d = &g_array_index (distanceArray, distanceArrayData, dIdx); + 648 32 : centroid *c = &g_array_index (centroids, centroid, d->centroid_idx); + 649 32 : detectedObject *box = &g_array_index (boxes, detectedObject, d->box_idx); + 650 : + 651 32 : bIdx = d->box_idx; + 652 : + 653 : /* the centroid is invalid */ + 654 32 : if (c->id == 0) { + 655 0 : continue; + 656 : } + 657 : /* the box is already assigned to a centroid */ + 658 32 : if (box->tracking_id != 0) { + 659 24 : continue; + 660 : } + 661 : /* the centroid is already assigned to a box */ + 662 8 : if (c->matched_box_idx != G_MAXUINT32) { + 663 0 : continue; + 664 : } + 665 : /* now match the box with the centroid */ + 666 8 : c->matched_box_idx = bIdx; + 667 8 : box->tracking_id = c->id; + 668 8 : c->consecutive_disappeared_frames = 0; + 669 : } + 670 : + 671 : /* increase consecutive_disappeared_frames of unmatched centroids */ + 672 10 : for (cIdx = 0; cIdx < centroids->len; cIdx++) { + 673 8 : centroid *c = &g_array_index (centroids, centroid, cIdx); + 674 : + 675 8 : if (c->id == 0) { + 676 0 : continue; + 677 : } + 678 : + 679 8 : if (c->matched_box_idx == G_MAXUINT32) { + 680 0 : c->consecutive_disappeared_frames++; + 681 : } + 682 : } + 683 : + 684 : /* for those unmatched boxes - register as new centroids */ + 685 10 : for (bIdx = 0; bIdx < boxes->len; bIdx++) { + 686 8 : detectedObject *box = &g_array_index (boxes, detectedObject, bIdx); + 687 : centroid c; + 688 : + 689 8 : if (box->tracking_id != 0) { + 690 8 : continue; + 691 : } 692 : - 693 6 : nns_logi ("Detect %u boxes in %u x %u input image", results->len, - 694 : bdata->getInputWidth (), bdata->getInputHeight ()); - 695 30 : for (i = 0; i < results->len; i++) { - 696 24 : detectedObject *b = &g_array_index (results, detectedObject, i); - 697 24 : if (labeldata.total_labels > 0) - 698 24 : nns_logi ("[%s] x:%d y:%d w:%d h:%d prob:%.4f", - 699 : labeldata.labels[b->class_id], b->x, b->y, b->width, b->height, b->prob); - 700 : else - 701 0 : nns_logi ("x:%d y:%d w:%d h:%d prob:%.4f", b->x, b->y, b->width, b->height, b->prob); - 702 : } - 703 6 : } - 704 : - 705 : /** - 706 : * @brief Check the label relevant properties are valid - 707 : */ - 708 : gboolean - 709 26 : BoundingBox::checkLabelProps () - 710 : { - 711 26 : if ((!label_path) || (!labeldata.labels) || (labeldata.total_labels <= 0)) - 712 4 : return FALSE; - 713 22 : return TRUE; - 714 : } - 715 : - 716 : /** - 717 : * @brief Set mode of bounding box - 718 : */ - 719 : int - 720 15 : BoundingBox::setBoxDecodingMode (const char *param) - 721 : { - 722 15 : if (NULL == param || *param == '\0') { - 723 0 : GST_ERROR ("Please set the valid mode at option1 to set box decoding mode"); - 724 0 : return FALSE; - 725 : } - 726 : - 727 15 : bdata = getProperties (updateDecodingMode (param)); - 728 15 : if (bdata == nullptr) { - 729 0 : nns_loge ("Could not find box properties name %s", param); - 730 0 : return FALSE; - 731 : } - 732 : - 733 15 : return TRUE; - 734 : } - 735 : - 736 : /** - 737 : * @brief Set label path of bounding box - 738 : */ - 739 : int - 740 13 : BoundingBox::setLabelPath (const char *param) - 741 : { - 742 13 : if (mode == MP_PALM_DETECTION_BOUNDING_BOX) { - 743 : /* palm detection does not need label information */ - 744 0 : return TRUE; - 745 : } - 746 : - 747 13 : if (NULL != label_path) - 748 0 : g_free (label_path); - 749 13 : label_path = g_strdup (param); + 693 0 : centroids_last_id++; + 694 0 : c.id = centroids_last_id; + 695 0 : c.consecutive_disappeared_frames = 0; + 696 0 : c.cx = box->x + box->width / 2; + 697 0 : c.cy = box->y + box->height / 2; + 698 0 : c.matched_box_idx = bIdx; + 699 : + 700 0 : g_array_append_val (centroids, c); + 701 : + 702 0 : box->tracking_id = c.id; + 703 : } + 704 : } + 705 : } + 706 : + 707 : void + 708 0 : draw_line (uint32_t *frame, int width, int height, int x0, int y0, int x1, int y1, uint32_t color) + 709 : { + 710 0 : int dx = abs (x1 - x0), sx = x0 < x1 ? 1 : -1; + 711 0 : int dy = -abs (y1 - y0), sy = y0 < y1 ? 1 : -1; + 712 0 : int err = dx + dy, e2; + 713 : + 714 : while (1) { + 715 0 : if (x0 >= 0 && x0 < width && y0 >= 0 && y0 < height) { + 716 0 : frame[y0 * width + x0] = color; + 717 : } + 718 0 : if (x0 == x1 && y0 == y1) + 719 0 : break; + 720 0 : e2 = 2 * err; + 721 0 : if (e2 >= dy) { + 722 0 : err += dy; + 723 0 : x0 += sx; + 724 : } + 725 0 : if (e2 <= dx) { + 726 0 : err += dx; + 727 0 : y0 += sy; + 728 : } + 729 : } + 730 0 : } + 731 : + 732 : /** + 733 : * @brief Draw with the given results (objects[DETECTION_MAX]) to the output buffer + 734 : * @param[out] out_info The output buffer (RGBA plain) + 735 : * @param[in] bdata The bounding-box internal data. + 736 : * @param[in] results The final results to be drawn. + 737 : */ + 738 : void + 739 26 : BoundingBox::draw (GstMapInfo *out_info, GArray *results) + 740 : { + 741 26 : uint32_t *frame = (uint32_t *) out_info->data; /* Let's draw per pixel (4bytes) */ + 742 : unsigned int i; + 743 : guint i_width, i_height; + 744 : + 745 26 : i_width = bdata->getInputWidth (); + 746 26 : i_height = bdata->getInputHeight (); + 747 : + 748 110 : for (i = 0; i < results->len; i++) { + 749 84 : detectedObject *a = &g_array_index (results, detectedObject, i); 750 : - 751 13 : if (NULL != label_path) - 752 13 : loadImageLabels (label_path, &labeldata); - 753 : - 754 13 : if (labeldata.total_labels > 0) { - 755 13 : bdata->setTotalLabels (labeldata.total_labels); - 756 13 : return TRUE; - 757 : } else - 758 0 : return FALSE; - 759 : /** @todo Do not die for this */ - 760 : } - 761 : - 762 : /** - 763 : * @brief Set video size of bounding box - 764 : */ - 765 : int - 766 15 : BoundingBox::setVideoSize (const char *param) - 767 : { - 768 : tensor_dim dim; - 769 : int rank; - 770 : - 771 15 : if (param == NULL || *param == '\0') - 772 0 : return TRUE; - 773 15 : rank = gst_tensor_parse_dimension (param, dim); - 774 15 : width = 0; - 775 15 : height = 0; - 776 : - 777 15 : if (rank < 2) { - 778 0 : GST_ERROR ("mode-option-2 of boundingbox is video output dimension (WIDTH:HEIGHT). The given parameter, \"%s\", is not acceptable.", - 779 : param); - 780 0 : return TRUE; /* Ignore this param */ - 781 : } - 782 15 : if (rank > 2) { - 783 0 : GST_WARNING ("mode-option-2 of boundingbox is video output dimension (WIDTH:HEIGHT). The third and later elements of the given parameter, \"%s\", are ignored.", - 784 : param); - 785 : } - 786 15 : width = dim[0]; - 787 15 : height = dim[1]; - 788 15 : return TRUE; - 789 : } - 790 : - 791 : /** - 792 : * @brief Set input model size of bounding box - 793 : */ - 794 : int - 795 15 : BoundingBox::setInputModelSize (const char *param) - 796 : { - 797 : tensor_dim dim; - 798 : int rank; - 799 15 : if (param == NULL || *param == '\0') - 800 0 : return TRUE; - 801 : - 802 15 : rank = gst_tensor_parse_dimension (param, dim); - 803 15 : bdata->setInputWidth (0); - 804 15 : bdata->setInputHeight (0); - 805 : - 806 15 : if (rank < 2) { - 807 0 : GST_ERROR ("mode-option-3 of boundingbox is input video dimension (WIDTH:HEIGHT). The given parameter, \"%s\", is not acceptable.", - 808 : param); - 809 0 : return TRUE; /* Ignore this param */ - 810 : } - 811 15 : if (rank > 2) { - 812 0 : GST_WARNING ("mode-option-3 of boundingbox is input video dimension (WIDTH:HEIGHT). The third and later elements of the given parameter, \"%s\", are ignored.", - 813 : param); - 814 : } - 815 15 : bdata->setInputWidth (dim[0]); - 816 15 : bdata->setInputHeight (dim[1]); - 817 15 : return TRUE; - 818 : } - 819 : - 820 : /** - 821 : * @brief Set option of bounding box - 822 : */ - 823 : int - 824 77 : BoundingBox::setOption (BoundingBoxOption option, const char *param) - 825 : { - 826 77 : if (option == BoundingBoxOption::MODE) { - 827 15 : return setBoxDecodingMode (param); - 828 62 : } else if (option == BoundingBoxOption::LABEL_PATH) { - 829 13 : return setLabelPath (param); - 830 49 : } else if (option == BoundingBoxOption::INTERNAL) { - 831 : /* option3 = per-decoding-mode option */ - 832 11 : return bdata->setOptionInternal (param); - 833 38 : } else if (option == BoundingBoxOption::VIDEO_SIZE) { - 834 15 : return setVideoSize (param); - 835 23 : } else if (option == BoundingBoxOption::INPUT_MODEL_SIZE) { - 836 15 : return setInputModelSize (param); - 837 8 : } else if (option == BoundingBoxOption::TRACK) { - 838 4 : is_track = (int) g_ascii_strtoll (param, NULL, 10); - 839 4 : return TRUE; - 840 4 : } else if (option == BoundingBoxOption::LOG) { - 841 4 : do_log = (int) g_ascii_strtoll (param, NULL, 10); - 842 4 : return TRUE; - 843 : } + 751 84 : if ((flag_use_label) + 752 80 : && ((a->class_id < 0 || a->class_id >= (int) labeldata.total_labels))) { + 753 : /** @todo make it "logw_once" after we get logw_once API. */ + 754 0 : ml_logw ("Invalid class found with tensordec-boundingbox.\n"); + 755 0 : continue; + 756 : } + 757 : + 758 84 : if (mode == YOLOV8_ORIENTED_BOUNDING_BOX) { + 759 : // For rotated boxes + 760 : Point corners[4]; + 761 0 : get_rotated_rect_corners (a, corners); + 762 : + 763 : // Scale the corners to output image size + 764 0 : for (int j = 0; j < 4; j++) { + 765 0 : corners[j].x = (width * corners[j].x) / i_width; + 766 0 : corners[j].y = (height * corners[j].y) / i_height; + 767 : } + 768 : + 769 : // Draw lines between the corners + 770 0 : for (int j = 0; j < 4; j++) { + 771 0 : int x_start = (int) corners[j].x; + 772 0 : int y_start = (int) corners[j].y; + 773 0 : int x_end = (int) corners[(j + 1) % 4].x; + 774 0 : int y_end = (int) corners[(j + 1) % 4].y; + 775 : + 776 0 : draw_line (frame, width, height, x_start, y_start, x_end, y_end, PIXEL_VALUE); + 777 : } + 778 : } else { + 779 : int x1, x2, y1, y2; /* Box positions on the output surface */ + 780 : int j; + 781 : uint32_t *pos1, *pos2; + 782 : /* 1. Draw Boxes */ + 783 84 : x1 = (width * a->x) / i_width; + 784 84 : x2 = MIN (width - 1, (width * (a->x + a->width)) / i_width); + 785 84 : y1 = (height * a->y) / i_height; + 786 84 : y2 = MIN (height - 1, (height * (a->y + a->height)) / i_height); + 787 : + 788 : /* 1-1. Horizontal */ + 789 84 : pos1 = &frame[y1 * width + x1]; + 790 84 : pos2 = &frame[y2 * width + x1]; + 791 5174 : for (j = x1; j <= x2; j++) { + 792 5090 : *pos1 = PIXEL_VALUE; + 793 5090 : *pos2 = PIXEL_VALUE; + 794 5090 : pos1++; + 795 5090 : pos2++; + 796 : } + 797 : + 798 : /* 1-2. Vertical */ + 799 84 : pos1 = &frame[(y1 + 1) * width + x1]; + 800 84 : pos2 = &frame[(y1 + 1) * width + x2]; + 801 5950 : for (j = y1 + 1; j < y2; j++) { + 802 5866 : *pos1 = PIXEL_VALUE; + 803 5866 : *pos2 = PIXEL_VALUE; + 804 5866 : pos1 += width; + 805 5866 : pos2 += width; + 806 : } + 807 : + 808 : /* 2. Write Labels + tracking ID */ + 809 84 : if (flag_use_label) { + 810 80 : g_autofree gchar *label = NULL; + 811 : gsize k, label_len; + 812 : + 813 80 : if (is_track != 0) { + 814 12 : label = g_strdup_printf ("%s-%d", labeldata.labels[a->class_id], a->tracking_id); + 815 : } else { + 816 68 : label = g_strdup_printf ("%s", labeldata.labels[a->class_id]); + 817 : } + 818 : + 819 80 : label_len = label ? strlen (label) : 0; + 820 : + 821 : /* x1 is the same: x1 = MAX (0, (width * a->x) / i_width); */ + 822 80 : y1 = MAX (0, (y1 - 14)); + 823 80 : pos1 = &frame[y1 * width + x1]; + 824 475 : for (k = 0; k < label_len; k++) { + 825 395 : unsigned int char_index = label[k]; + 826 395 : if ((x1 + 8) > (int) width) + 827 0 : break; /* Stop drawing if it may overfill */ + 828 395 : pos2 = pos1; + 829 5530 : for (y2 = 0; y2 < 13; y2++) { + 830 : /* 13 : character height */ + 831 46215 : for (x2 = 0; x2 < 8; x2++) { + 832 : /* 8: character width */ + 833 41080 : *(pos2 + x2) = singleLineSprite[char_index][y2][x2]; + 834 : } + 835 5135 : pos2 += width; + 836 : } + 837 395 : x1 += 9; + 838 395 : pos1 += 9; /* character width + 1px */ + 839 : } + 840 80 : } + 841 : } + 842 : } + 843 26 : } 844 : - 845 : /** - 846 : * @todo Accept color / border-width / ... with option-2 - 847 : */ - 848 0 : GST_INFO ("Property mode-option-%d is ignored", static_cast<int> (option) + 1); - 849 0 : return TRUE; - 850 : } - 851 : - 852 : /** - 853 : * @brief Get out caps of bounding box - 854 : */ - 855 : GstCaps * - 856 144 : BoundingBox::getOutCaps (const GstTensorsConfig *config) - 857 : { - 858 : GstCaps *caps; - 859 : char *str; - 860 : - 861 144 : int ret = bdata->checkCompatible (config); - 862 144 : if (!ret) - 863 88 : return NULL; - 864 : - 865 56 : str = g_strdup_printf ("video/x-raw, format = RGBA, " /* Use alpha channel to make the background transparent */ - 866 : "width = %u, height = %u", - 867 : width, height); - 868 56 : caps = gst_caps_from_string (str); - 869 56 : setFramerateFromConfig (caps, config); - 870 56 : g_free (str); - 871 : - 872 56 : return caps; - 873 : } - 874 : - 875 : /** - 876 : * @brief Decode input memory to out buffer - 877 : * @param[in] config The structure of input tensor info. - 878 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. - 879 : * @param[out] outbuf A sub-plugin should update or append proper memory for the negotiated media type. - 880 : */ - 881 : GstFlowReturn - 882 26 : BoundingBox::decode (const GstTensorsConfig *config, - 883 : const GstTensorMemory *input, GstBuffer *outbuf) - 884 : { - 885 26 : const size_t size = (size_t) width * height * 4; /* RGBA */ - 886 : GstMapInfo out_info; - 887 : GstMemory *out_mem; - 888 26 : GArray *results = NULL; - 889 : gboolean need_output_alloc; - 890 : - 891 26 : g_assert (outbuf); - 892 26 : need_output_alloc = gst_buffer_get_size (outbuf) == 0; - 893 : - 894 26 : if (checkLabelProps ()) - 895 22 : flag_use_label = TRUE; - 896 : else - 897 4 : flag_use_label = FALSE; + 845 : /** + 846 : * @brief Log the given results + 847 : */ + 848 : void + 849 6 : BoundingBox::logBoxes (GArray *results) + 850 : { + 851 : guint i; + 852 : + 853 6 : nns_logi ("Detect %u boxes in %u x %u input image", results->len, + 854 : bdata->getInputWidth (), bdata->getInputHeight ()); + 855 30 : for (i = 0; i < results->len; i++) { + 856 24 : detectedObject *b = &g_array_index (results, detectedObject, i); + 857 24 : if (labeldata.total_labels > 0) { + 858 24 : if (mode == YOLOV8_ORIENTED_BOUNDING_BOX) { + 859 0 : nns_logi ("[%s] x:%d y:%d w:%d h:%d angle:%.2f prob:%.4f", + 860 : labeldata.labels[b->class_id], b->x, b->y, b->width, b->height, + 861 : b->angle, b->prob); + 862 : } else { + 863 24 : nns_logi ("[%s] x:%d y:%d w:%d h:%d prob:%.4f", + 864 : labeldata.labels[b->class_id], b->x, b->y, b->width, b->height, b->prob); + 865 : } + 866 : } else { + 867 0 : if (mode == YOLOV8_ORIENTED_BOUNDING_BOX) { + 868 0 : nns_logi ("x:%d y:%d w:%d h:%d angle:%.2f prob:%.4f", b->x, b->y, + 869 : b->width, b->height, b->angle, b->prob); + 870 : } else { + 871 0 : nns_logi ("x:%d y:%d w:%d h:%d prob:%.4f", b->x, b->y, b->width, b->height, b->prob); + 872 : } + 873 : } + 874 : } + 875 6 : } + 876 : + 877 : /** + 878 : * @brief Check the label relevant properties are valid + 879 : */ + 880 : gboolean + 881 26 : BoundingBox::checkLabelProps () + 882 : { + 883 26 : if ((!label_path) || (!labeldata.labels) || (labeldata.total_labels <= 0)) + 884 4 : return FALSE; + 885 22 : return TRUE; + 886 : } + 887 : + 888 : /** + 889 : * @brief Set mode of bounding box + 890 : */ + 891 : int + 892 15 : BoundingBox::setBoxDecodingMode (const char *param) + 893 : { + 894 15 : if (NULL == param || *param == '\0') { + 895 0 : GST_ERROR ("Please set the valid mode at option1 to set box decoding mode"); + 896 0 : return FALSE; + 897 : } 898 : - 899 : /* Ensure we have outbuf properly allocated */ - 900 26 : if (need_output_alloc) { - 901 10 : out_mem = gst_allocator_alloc (NULL, size, NULL); - 902 : } else { - 903 16 : if (gst_buffer_get_size (outbuf) < size) { - 904 0 : gst_buffer_set_size (outbuf, size); - 905 : } - 906 16 : out_mem = gst_buffer_get_all_memory (outbuf); - 907 : } - 908 26 : if (!gst_memory_map (out_mem, &out_info, GST_MAP_WRITE)) { - 909 0 : ml_loge ("Cannot map output memory / tensordec-bounding_boxes.\n"); - 910 0 : goto error_free; - 911 : } - 912 : - 913 : /* reset the buffer with alpha 0 / black */ - 914 26 : memset (out_info.data, 0, size); - 915 : - 916 26 : results = bdata->decode (config, input); - 917 26 : if (results == NULL) { - 918 0 : GST_ERROR ("Failed to get output buffer, unknown mode %d.", mode); - 919 0 : goto error_unmap; - 920 : } - 921 : - 922 26 : if (do_log != 0) { - 923 6 : logBoxes (results); - 924 : } - 925 : - 926 26 : if (is_track != 0) { - 927 3 : updateCentroids (results); - 928 : } - 929 : - 930 26 : draw (&out_info, results); - 931 26 : g_array_free (results, TRUE); - 932 : - 933 26 : gst_memory_unmap (out_mem, &out_info); - 934 : - 935 26 : if (need_output_alloc) - 936 10 : gst_buffer_append_memory (outbuf, out_mem); - 937 : else - 938 16 : gst_buffer_replace_all_memory (outbuf, out_mem); + 899 15 : const char *mode_name = updateDecodingMode (param); + 900 : + 901 15 : if (g_strcmp0 (mode_name, "yolov8-obb") == 0) { + 902 0 : mode = YOLOV8_ORIENTED_BOUNDING_BOX; + 903 : } + 904 15 : bdata = getProperties (mode_name); + 905 : + 906 15 : if (bdata == nullptr) { + 907 0 : nns_loge ("Could not find box properties name %s", param); + 908 0 : return FALSE; + 909 : } + 910 : + 911 15 : return TRUE; + 912 : } + 913 : + 914 : /** + 915 : * @brief Set label path of bounding box + 916 : */ + 917 : int + 918 13 : BoundingBox::setLabelPath (const char *param) + 919 : { + 920 13 : if (mode == MP_PALM_DETECTION_BOUNDING_BOX) { + 921 : /* palm detection does not need label information */ + 922 0 : return TRUE; + 923 : } + 924 : + 925 13 : if (NULL != label_path) + 926 0 : g_free (label_path); + 927 13 : label_path = g_strdup (param); + 928 : + 929 13 : if (NULL != label_path) + 930 13 : loadImageLabels (label_path, &labeldata); + 931 : + 932 13 : if (labeldata.total_labels > 0) { + 933 13 : bdata->setTotalLabels (labeldata.total_labels); + 934 13 : return TRUE; + 935 : } else + 936 0 : return FALSE; + 937 : /** @todo Do not die for this */ + 938 : } 939 : - 940 26 : return GST_FLOW_OK; - 941 : - 942 0 : error_unmap: - 943 0 : gst_memory_unmap (out_mem, &out_info); - 944 0 : error_free: - 945 0 : gst_memory_unref (out_mem); - 946 : - 947 0 : return GST_FLOW_ERROR; - 948 : } - 949 : - 950 : /** - 951 : * @brief Get bounding box properties from hash table - 952 : */ - 953 : BoxProperties * - 954 246 : BoundingBox::getProperties (const gchar *properties_name) - 955 : { - 956 : gpointer data; - 957 246 : G_LOCK (box_properties_table); - 958 246 : if (properties_table == nullptr) { - 959 33 : properties_table = g_hash_table_new (g_str_hash, g_str_equal); - 960 : } - 961 246 : data = g_hash_table_lookup (properties_table, properties_name); - 962 246 : G_UNLOCK (box_properties_table); - 963 : - 964 246 : return static_cast<BoxProperties *> (data); - 965 : } - 966 : - 967 : /** - 968 : * @brief Add bounding box properties into hash table - 969 : */ - 970 : gboolean - 971 231 : BoundingBox::addProperties (BoxProperties *boxProperties) - 972 : { - 973 : BoxProperties *data; - 974 : gboolean ret; - 975 : - 976 231 : data = getProperties (boxProperties->name); - 977 231 : if (NULL != data) { + 940 : /** + 941 : * @brief Set video size of bounding box + 942 : */ + 943 : int + 944 15 : BoundingBox::setVideoSize (const char *param) + 945 : { + 946 : tensor_dim dim; + 947 : int rank; + 948 : + 949 15 : if (param == NULL || *param == '\0') + 950 0 : return TRUE; + 951 15 : rank = gst_tensor_parse_dimension (param, dim); + 952 15 : width = 0; + 953 15 : height = 0; + 954 : + 955 15 : if (rank < 2) { + 956 0 : GST_ERROR ("mode-option-2 of boundingbox is video output dimension (WIDTH:HEIGHT). The given parameter, \"%s\", is not acceptable.", + 957 : param); + 958 0 : return TRUE; /* Ignore this param */ + 959 : } + 960 15 : if (rank > 2) { + 961 0 : GST_WARNING ("mode-option-2 of boundingbox is video output dimension (WIDTH:HEIGHT). The third and later elements of the given parameter, \"%s\", are ignored.", + 962 : param); + 963 : } + 964 15 : width = dim[0]; + 965 15 : height = dim[1]; + 966 15 : return TRUE; + 967 : } + 968 : + 969 : /** + 970 : * @brief Set input model size of bounding box + 971 : */ + 972 : int + 973 15 : BoundingBox::setInputModelSize (const char *param) + 974 : { + 975 : tensor_dim dim; + 976 : int rank; + 977 15 : if (param == NULL || *param == '\0') 978 0 : return TRUE; - 979 : } - 980 : - 981 231 : G_LOCK (box_properties_table); - 982 231 : ret = g_hash_table_insert (properties_table, boxProperties->name, boxProperties); - 983 231 : G_UNLOCK (box_properties_table); - 984 : - 985 231 : return ret; - 986 : } + 979 : + 980 15 : rank = gst_tensor_parse_dimension (param, dim); + 981 15 : bdata->setInputWidth (0); + 982 15 : bdata->setInputHeight (0); + 983 : + 984 15 : if (rank < 2) { + 985 0 : GST_ERROR ("mode-option-3 of boundingbox is input video dimension (WIDTH:HEIGHT). The given parameter, \"%s\", is not acceptable.", + 986 : param); + 987 0 : return TRUE; /* Ignore this param */ + 988 : } + 989 15 : if (rank > 2) { + 990 0 : GST_WARNING ("mode-option-3 of boundingbox is input video dimension (WIDTH:HEIGHT). The third and later elements of the given parameter, \"%s\", are ignored.", + 991 : param); + 992 : } + 993 15 : bdata->setInputWidth (dim[0]); + 994 15 : bdata->setInputHeight (dim[1]); + 995 15 : return TRUE; + 996 : } + 997 : + 998 : /** + 999 : * @brief Set option of bounding box + 1000 : */ + 1001 : int + 1002 77 : BoundingBox::setOption (BoundingBoxOption option, const char *param) + 1003 : { + 1004 77 : if (option == BoundingBoxOption::MODE) { + 1005 15 : return setBoxDecodingMode (param); + 1006 62 : } else if (option == BoundingBoxOption::LABEL_PATH) { + 1007 13 : return setLabelPath (param); + 1008 49 : } else if (option == BoundingBoxOption::INTERNAL) { + 1009 : /* option3 = per-decoding-mode option */ + 1010 11 : return bdata->setOptionInternal (param); + 1011 38 : } else if (option == BoundingBoxOption::VIDEO_SIZE) { + 1012 15 : return setVideoSize (param); + 1013 23 : } else if (option == BoundingBoxOption::INPUT_MODEL_SIZE) { + 1014 15 : return setInputModelSize (param); + 1015 8 : } else if (option == BoundingBoxOption::TRACK) { + 1016 4 : is_track = (int) g_ascii_strtoll (param, NULL, 10); + 1017 4 : return TRUE; + 1018 4 : } else if (option == BoundingBoxOption::LOG) { + 1019 4 : do_log = (int) g_ascii_strtoll (param, NULL, 10); + 1020 4 : return TRUE; + 1021 : } + 1022 : + 1023 : /** + 1024 : * @todo Accept color / border-width / ... with option-2 + 1025 : */ + 1026 0 : GST_INFO ("Property mode-option-%d is ignored", static_cast<int> (option) + 1); + 1027 0 : return TRUE; + 1028 : } + 1029 : + 1030 : /** + 1031 : * @brief Get out caps of bounding box + 1032 : */ + 1033 : GstCaps * + 1034 144 : BoundingBox::getOutCaps (const GstTensorsConfig *config) + 1035 : { + 1036 : GstCaps *caps; + 1037 : char *str; + 1038 : + 1039 144 : int ret = bdata->checkCompatible (config); + 1040 144 : if (!ret) + 1041 88 : return NULL; + 1042 : + 1043 56 : str = g_strdup_printf ("video/x-raw, format = RGBA, " /* Use alpha channel to make the background transparent */ + 1044 : "width = %u, height = %u", + 1045 : width, height); + 1046 56 : caps = gst_caps_from_string (str); + 1047 56 : setFramerateFromConfig (caps, config); + 1048 56 : g_free (str); + 1049 : + 1050 56 : return caps; + 1051 : } + 1052 : + 1053 : /** + 1054 : * @brief Decode input memory to out buffer + 1055 : * @param[in] config The structure of input tensor info. + 1056 : * @param[in] input The array of input tensor data. The maximum array size of input data is NNS_TENSOR_SIZE_LIMIT. + 1057 : * @param[out] outbuf A sub-plugin should update or append proper memory for the negotiated media type. + 1058 : */ + 1059 : GstFlowReturn + 1060 26 : BoundingBox::decode (const GstTensorsConfig *config, + 1061 : const GstTensorMemory *input, GstBuffer *outbuf) + 1062 : { + 1063 26 : const size_t size = (size_t) width * height * 4; /* RGBA */ + 1064 : GstMapInfo out_info; + 1065 : GstMemory *out_mem; + 1066 26 : GArray *results = NULL; + 1067 : gboolean need_output_alloc; + 1068 : + 1069 26 : g_assert (outbuf); + 1070 26 : need_output_alloc = gst_buffer_get_size (outbuf) == 0; + 1071 : + 1072 26 : if (checkLabelProps ()) + 1073 22 : flag_use_label = TRUE; + 1074 : else + 1075 4 : flag_use_label = FALSE; + 1076 : + 1077 : /* Ensure we have outbuf properly allocated */ + 1078 26 : if (need_output_alloc) { + 1079 10 : out_mem = gst_allocator_alloc (NULL, size, NULL); + 1080 : } else { + 1081 16 : if (gst_buffer_get_size (outbuf) < size) { + 1082 0 : gst_buffer_set_size (outbuf, size); + 1083 : } + 1084 16 : out_mem = gst_buffer_get_all_memory (outbuf); + 1085 : } + 1086 26 : if (!gst_memory_map (out_mem, &out_info, GST_MAP_WRITE)) { + 1087 0 : ml_loge ("Cannot map output memory / tensordec-bounding_boxes.\n"); + 1088 0 : goto error_free; + 1089 : } + 1090 : + 1091 : /* reset the buffer with alpha 0 / black */ + 1092 26 : memset (out_info.data, 0, size); + 1093 : + 1094 26 : results = bdata->decode (config, input); + 1095 26 : if (results == NULL) { + 1096 0 : GST_ERROR ("Failed to get output buffer, unknown mode %d.", mode); + 1097 0 : goto error_unmap; + 1098 : } + 1099 : + 1100 26 : if (do_log != 0) { + 1101 6 : logBoxes (results); + 1102 : } + 1103 : + 1104 26 : if (is_track != 0) { + 1105 3 : updateCentroids (results); + 1106 : } + 1107 : + 1108 26 : draw (&out_info, results); + 1109 26 : g_array_free (results, TRUE); + 1110 : + 1111 26 : gst_memory_unmap (out_mem, &out_info); + 1112 : + 1113 26 : if (need_output_alloc) + 1114 10 : gst_buffer_append_memory (outbuf, out_mem); + 1115 : else + 1116 16 : gst_buffer_replace_all_memory (outbuf, out_mem); + 1117 : + 1118 26 : return GST_FLOW_OK; + 1119 : + 1120 0 : error_unmap: + 1121 0 : gst_memory_unmap (out_mem, &out_info); + 1122 0 : error_free: + 1123 0 : gst_memory_unref (out_mem); + 1124 : + 1125 0 : return GST_FLOW_ERROR; + 1126 : } + 1127 : + 1128 : /** + 1129 : * @brief Get bounding box properties from hash table + 1130 : */ + 1131 : BoxProperties * + 1132 279 : BoundingBox::getProperties (const gchar *properties_name) + 1133 : { + 1134 : gpointer data; + 1135 279 : G_LOCK (box_properties_table); + 1136 279 : if (properties_table == nullptr) { + 1137 33 : properties_table = g_hash_table_new (g_str_hash, g_str_equal); + 1138 : } + 1139 279 : data = g_hash_table_lookup (properties_table, properties_name); + 1140 279 : G_UNLOCK (box_properties_table); + 1141 : + 1142 279 : return static_cast<BoxProperties *> (data); + 1143 : } + 1144 : + 1145 : /** + 1146 : * @brief Add bounding box properties into hash table + 1147 : */ + 1148 : gboolean + 1149 264 : BoundingBox::addProperties (BoxProperties *boxProperties) + 1150 : { + 1151 : BoxProperties *data; + 1152 : gboolean ret; + 1153 : + 1154 264 : data = getProperties (boxProperties->name); + 1155 264 : if (NULL != data) { + 1156 0 : return TRUE; + 1157 : } + 1158 : + 1159 264 : G_LOCK (box_properties_table); + 1160 264 : ret = g_hash_table_insert (properties_table, boxProperties->name, boxProperties); + 1161 264 : G_UNLOCK (box_properties_table); + 1162 : + 1163 264 : return ret; + 1164 : } diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.func-c.html index ba89386a5..9902468c9 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % @@ -63,58 +63,58 @@ - _ZN13BoxProperties14setTotalLabelsEj + _ZN13BoxProperties14setTotalLabelsEj 13 - _ZN13BoxProperties13setInputWidthEj + _ZN13BoxProperties13setInputWidthEj 30 - _ZN13BoxProperties14setInputHeightEj + _ZN13BoxProperties14setInputHeightEj 30 - _ZN13BoxProperties13getInputWidthEv + _ZN13BoxProperties13getInputWidthEv 32 - _ZN13BoxProperties14getInputHeightEv + _ZN13BoxProperties14getInputHeightEv 32 - _ZN13BoxPropertiesD0Ev + _ZN13BoxPropertiesD0Ev - 231 + 264 - _ZN13BoxPropertiesD0Ev + _ZN13BoxPropertiesD0Ev 0 - _ZN13BoxPropertiesD2Ev + _ZN13BoxPropertiesD2Ev - 231 + 264 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.func.html index 620548fe4..e372d278b 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % @@ -63,58 +63,58 @@ - _ZN13BoxProperties13getInputWidthEv + _ZN13BoxProperties13getInputWidthEv 32 - _ZN13BoxProperties13setInputWidthEj + _ZN13BoxProperties13setInputWidthEj 30 - _ZN13BoxProperties14getInputHeightEv + _ZN13BoxProperties14getInputHeightEv 32 - _ZN13BoxProperties14setInputHeightEj + _ZN13BoxProperties14setInputHeightEj 30 - _ZN13BoxProperties14setTotalLabelsEj + _ZN13BoxProperties14setTotalLabelsEj 13 - _ZN13BoxPropertiesD0Ev + _ZN13BoxPropertiesD0Ev - 231 + 264 - _ZN13BoxPropertiesD0Ev + _ZN13BoxPropertiesD0Ev 0 - _ZN13BoxPropertiesD2Ev + _ZN13BoxPropertiesD2Ev - 231 + 264 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.gcov.html index e7b29e3fb..3f4d55a37 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-boundingbox.h @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % @@ -170,207 +170,277 @@ 108 : #include <gst/gst.h> 109 : #include <math.h> /* expf */ 110 : #include <nnstreamer_log.h> - 111 : #include <nnstreamer_util.h> - 112 : #include <nnstreamer_plugin_api_util.h> + 111 : #include <nnstreamer_plugin_api_util.h> + 112 : #include <nnstreamer_util.h> 113 : #include "tensordecutil.h" 114 : - 115 : #define PIXEL_VALUE (0xFF0000FF) /* RED 100% in RGBA */ - 116 : - 117 : /** - 118 : * @brief Option of bounding box - 119 : */ - 120 : enum class BoundingBoxOption { - 121 : MODE = 0, - 122 : LABEL_PATH = 1, - 123 : INTERNAL = 2, - 124 : VIDEO_SIZE = 3, - 125 : INPUT_MODEL_SIZE = 4, - 126 : TRACK = 5, - 127 : LOG = 6, - 128 : UNKNOWN, - 129 : }; - 130 : - 131 : /** - 132 : * @brief There can be different schemes for bounding boxes. - 133 : */ - 134 : typedef enum { - 135 : MOBILENET_SSD_BOUNDING_BOX = 0, - 136 : MOBILENET_SSD_PP_BOUNDING_BOX = 1, - 137 : OV_PERSON_DETECTION_BOUNDING_BOX = 2, - 138 : OV_FACE_DETECTION_BOUNDING_BOX = 3, - 139 : - 140 : /* the modes started with 'OLDNAME_' is for backward compatibility. */ - 141 : OLDNAME_MOBILENET_SSD_BOUNDING_BOX = 4, - 142 : OLDNAME_MOBILENET_SSD_PP_BOUNDING_BOX = 5, - 143 : - 144 : YOLOV5_BOUNDING_BOX = 6, - 145 : - 146 : MP_PALM_DETECTION_BOUNDING_BOX = 7, - 147 : - 148 : YOLOV8_BOUNDING_BOX = 8, - 149 : - 150 : BOUNDING_BOX_UNKNOWN, - 151 : } bounding_box_modes; + 115 : #define MAX_POLY_CORNERS 8 + 116 : #define PIXEL_VALUE (0xFF0000FF) /* RED 100% in RGBA */ + 117 : + 118 : /** + 119 : * @brief Option of bounding box + 120 : */ + 121 : enum class BoundingBoxOption { + 122 : MODE = 0, + 123 : LABEL_PATH = 1, + 124 : INTERNAL = 2, + 125 : VIDEO_SIZE = 3, + 126 : INPUT_MODEL_SIZE = 4, + 127 : TRACK = 5, + 128 : LOG = 6, + 129 : UNKNOWN, + 130 : }; + 131 : + 132 : /** + 133 : * @brief There can be different schemes for bounding boxes. + 134 : */ + 135 : typedef enum { + 136 : MOBILENET_SSD_BOUNDING_BOX = 0, + 137 : MOBILENET_SSD_PP_BOUNDING_BOX = 1, + 138 : OV_PERSON_DETECTION_BOUNDING_BOX = 2, + 139 : OV_FACE_DETECTION_BOUNDING_BOX = 3, + 140 : + 141 : /* the modes started with 'OLDNAME_' is for backward compatibility. */ + 142 : OLDNAME_MOBILENET_SSD_BOUNDING_BOX = 4, + 143 : OLDNAME_MOBILENET_SSD_PP_BOUNDING_BOX = 5, + 144 : + 145 : YOLOV5_BOUNDING_BOX = 6, + 146 : + 147 : MP_PALM_DETECTION_BOUNDING_BOX = 7, + 148 : + 149 : YOLOV8_BOUNDING_BOX = 8, + 150 : + 151 : YOLOV8_ORIENTED_BOUNDING_BOX = 9, 152 : - 153 : /** - 154 : * @brief Structure for object centroid tracking. - 155 : */ - 156 : typedef struct { - 157 : guint id; - 158 : guint matched_box_idx; - 159 : gint cx; - 160 : gint cy; - 161 : guint consecutive_disappeared_frames; - 162 : } centroid; - 163 : - 164 : /** - 165 : * @brief Structure for distances. {distance} : {centroids} x {boxes} - 166 : */ - 167 : typedef struct { - 168 : guint centroid_idx; - 169 : guint box_idx; - 170 : guint64 distance; - 171 : } distanceArrayData; - 172 : - 173 : /** - 174 : * @brief anchor data - 175 : */ - 176 : typedef struct { - 177 : float x_center; - 178 : float y_center; - 179 : float w; - 180 : float h; - 181 : } anchor; - 182 : - 183 : /** @brief Represents a detect object */ - 184 : typedef struct { - 185 : int valid; - 186 : int class_id; - 187 : int x; - 188 : int y; - 189 : int width; - 190 : int height; - 191 : gfloat prob; - 192 : - 193 : int tracking_id; - 194 : } detectedObject; - 195 : + 153 : BOUNDING_BOX_UNKNOWN, + 154 : } bounding_box_modes; + 155 : + 156 : /** + 157 : * @brief Structure for object centroid tracking. + 158 : */ + 159 : typedef struct { + 160 : guint id; + 161 : guint matched_box_idx; + 162 : gint cx; + 163 : gint cy; + 164 : guint consecutive_disappeared_frames; + 165 : } centroid; + 166 : + 167 : /** + 168 : * @brief Structure for distances. {distance} : {centroids} x {boxes} + 169 : */ + 170 : typedef struct { + 171 : guint centroid_idx; + 172 : guint box_idx; + 173 : guint64 distance; + 174 : } distanceArrayData; + 175 : + 176 : /** + 177 : * @brief anchor data + 178 : */ + 179 : typedef struct { + 180 : float x_center; + 181 : float y_center; + 182 : float w; + 183 : float h; + 184 : } anchor; + 185 : + 186 : /** + 187 : * @brief obb anchor data + 188 : */ + 189 : typedef struct { + 190 : float x_center; + 191 : float y_center; + 192 : float w; + 193 : float h; + 194 : float angle; + 195 : } obb_anchor; 196 : 197 : /** - 198 : * @brief Apply NMS to the given results (objects[DETECTION_MAX]) - 199 : * @param[in/out] results The results to be filtered with nms - 200 : */ - 201 : void nms (GArray *results, gfloat threshold); - 202 : - 203 : /** - 204 : * @brief check the num_tensors is valid - 205 : * @param[in] config The structure of tensors info to check. - 206 : * @param[in] limit The limit of tensors number. - 207 : * @return TRUE if tensors info is valid. - 208 : */ - 209 : int check_tensors (const GstTensorsConfig *config, const unsigned int limit); - 210 : - 211 : /** - 212 : * @brief Interface for Bounding box's properties - 213 : */ - 214 : class BoxProperties - 215 : { - 216 : public: - 217 231 : virtual ~BoxProperties () = default; - 218 : - 219 : /* mandatory methods */ - 220 : virtual int setOptionInternal (const char *param) = 0; - 221 : virtual int checkCompatible (const GstTensorsConfig *config) = 0; - 222 : virtual GArray *decode (const GstTensorsConfig *config, const GstTensorMemory *input) = 0; - 223 : - 224 30 : void setInputWidth (guint width) - 225 : { - 226 30 : i_width = width; - 227 30 : } - 228 30 : void setInputHeight (guint height) - 229 : { - 230 30 : i_height = height; - 231 30 : } - 232 13 : void setTotalLabels (guint labels) - 233 : { - 234 13 : total_labels = labels; - 235 13 : } - 236 : - 237 32 : guint getInputWidth () - 238 : { - 239 32 : return i_width; - 240 : } - 241 32 : guint getInputHeight () - 242 : { - 243 32 : return i_height; - 244 : } - 245 : gchar *name; - 246 : - 247 : protected: - 248 : guint i_width; /**< Input Video Width */ - 249 : guint i_height; /**< Input Video Height */ - 250 : - 251 : guint max_detection; - 252 : guint total_labels; - 253 : }; - 254 : - 255 : /** - 256 : * @brief Class for Bounding box tensor decoder - 257 : */ - 258 : class BoundingBox - 259 : { - 260 : public: - 261 : BoundingBox (); - 262 : ~BoundingBox (); - 263 : - 264 : gboolean checkLabelProps (); - 265 : int setBoxDecodingMode (const char *param); - 266 : int setLabelPath (const char *param); - 267 : int setVideoSize (const char *param); - 268 : int setInputModelSize (const char *param); - 269 : void draw (GstMapInfo *out_info, GArray *results); - 270 : void logBoxes (GArray *results); - 271 : void updateCentroids (GArray *boxes); - 272 : - 273 : int setOption (BoundingBoxOption opNum, const char *param); - 274 : GstCaps *getOutCaps (const GstTensorsConfig *config); - 275 : GstFlowReturn decode (const GstTensorsConfig *config, - 276 : const GstTensorMemory *input, GstBuffer *outbuf); - 277 : - 278 : static BoxProperties *getProperties (const gchar *properties_name); - 279 : static gboolean addProperties (BoxProperties *boxProperties); - 280 : - 281 : private: - 282 : bounding_box_modes mode; - 283 : BoxProperties *bdata; - 284 : - 285 : /* From option2 */ - 286 : imglabel_t labeldata; - 287 : char *label_path; - 288 : - 289 : /* From option4 */ - 290 : guint width; /**< Output Video Width */ - 291 : guint height; /**< Output Video Height */ - 292 : - 293 : /* From option6 (track or not) */ - 294 : gint is_track; - 295 : guint centroids_last_id; /**< The last_id of centroid valid id is 1, 2, ... (not 0). */ - 296 : guint max_centroids_num; /**< The maximum number of centroids */ - 297 : guint consecutive_disappear_threshold; /**< The threshold of consecutive disappeared frames */ - 298 : - 299 : GArray *centroids; /**< Array for centroids */ - 300 : GArray *distanceArray; /**< Array for distances */ - 301 : - 302 : /* From option7 (log or not) */ - 303 : gint do_log; - 304 : - 305 : gboolean flag_use_label; - 306 : - 307 : /* Table for box properties data */ - 308 : inline static GHashTable *properties_table; - 309 : }; + 198 : * @brief Point data structure + 199 : */ + 200 : typedef struct { + 201 : float x, y; + 202 : } Point; + 203 : + 204 : /** @brief Represents a detect object */ + 205 : typedef struct { + 206 : int valid; + 207 : int class_id; + 208 : int x; + 209 : int y; + 210 : int width; + 211 : int height; + 212 : float angle; + 213 : gfloat prob; + 214 : + 215 : int tracking_id; + 216 : } detectedObject; + 217 : + 218 : /** + 219 : * @brief check the num_tensors is valid + 220 : * @param[in] config The structure of tensors info to check. + 221 : * @param[in] limit The limit of tensors number. + 222 : * @return TRUE if tensors info is valid. + 223 : */ + 224 : int check_tensors (const GstTensorsConfig *config, const unsigned int limit); + 225 : + 226 : /** + 227 : * @brief Get the corners of a rotated rectangle. + 228 : */ + 229 : void get_rotated_rect_corners (detectedObject *obj, Point corners[4]); + 230 : + 231 : /** + 232 : * @brief Clips a polygon with another polygon using Sutherland-Hodgman algorithm. + 233 : * @param subjectPolygon The polygon to be clipped. + 234 : * @param subjectSize Number of vertices in subjectPolygon. + 235 : * @param clipPolygon The clipping polygon. + 236 : * @param clipSize Number of vertices in clipPolygon. + 237 : * @param outPolygon The resulting clipped polygon. + 238 : * @return Number of vertices in the output polygon. + 239 : */ + 240 : int polygon_clip (const Point *subjectPolygon, int subjectSize, + 241 : const Point *clipPolygon, int clipSize, Point *outPolygon); + 242 : + 243 : /** + 244 : * @brief Computes the intersection point of two lines. + 245 : * @param line1Start Start point of the first line. + 246 : * @param line1End End point of the first line. + 247 : * @param line2Start Start point of the second line. + 248 : * @param line2End End point of the second line. + 249 : * @return The intersection point. + 250 : */ + 251 : Point compute_intersection (Point line1Start, Point line1End, Point line2Start, Point line2End); + 252 : + 253 : /** + 254 : * @brief Computes the area of a polygon. + 255 : * @param polygon The array of points defining the polygon. + 256 : * @param numPoints Number of points in the polygon. + 257 : * @return The area of the polygon. + 258 : */ + 259 : float polygon_area (const Point *polygon, int numPoints); + 260 : + 261 : /** + 262 : * @brief Draw a line on the frame buffer. + 263 : * @param frame The frame buffer. + 264 : * @param width The width of the frame. + 265 : * @param height The height of the frame. + 266 : * @param x0 Starting x coordinate. + 267 : * @param y0 Starting y coordinate. + 268 : * @param x1 Ending x coordinate. + 269 : * @param y1 Ending y coordinate. + 270 : * @param color The color to draw. + 271 : */ + 272 : void draw_line (uint32_t *frame, int width, int height, int x0, int y0, int x1, + 273 : int y1, uint32_t color); + 274 : + 275 : /** + 276 : * @brief Interface for Bounding box's properties + 277 : */ + 278 : class BoxProperties + 279 : { + 280 : public: + 281 264 : virtual ~BoxProperties () = default; + 282 : + 283 : /* mandatory methods */ + 284 : virtual int setOptionInternal (const char *param) = 0; + 285 : virtual int checkCompatible (const GstTensorsConfig *config) = 0; + 286 : virtual GArray *decode (const GstTensorsConfig *config, const GstTensorMemory *input) = 0; + 287 : + 288 30 : void setInputWidth (guint width) + 289 : { + 290 30 : i_width = width; + 291 30 : } + 292 30 : void setInputHeight (guint height) + 293 : { + 294 30 : i_height = height; + 295 30 : } + 296 13 : void setTotalLabels (guint labels) + 297 : { + 298 13 : total_labels = labels; + 299 13 : } + 300 : + 301 32 : guint getInputWidth () + 302 : { + 303 32 : return i_width; + 304 : } + 305 32 : guint getInputHeight () + 306 : { + 307 32 : return i_height; + 308 : } + 309 : gchar *name; 310 : - 311 : #endif /* _TENSORDECBB_H__ */ + 311 : protected: + 312 : guint i_width; /**< Input Video Width */ + 313 : guint i_height; /**< Input Video Height */ + 314 : + 315 : guint max_detection; + 316 : guint total_labels; + 317 : }; + 318 : + 319 : /** + 320 : * @brief Class for Bounding box tensor decoder + 321 : */ + 322 : class BoundingBox + 323 : { + 324 : public: + 325 : BoundingBox (); + 326 : ~BoundingBox (); + 327 : + 328 : gboolean checkLabelProps (); + 329 : int setBoxDecodingMode (const char *param); + 330 : int setLabelPath (const char *param); + 331 : int setVideoSize (const char *param); + 332 : int setInputModelSize (const char *param); + 333 : void draw (GstMapInfo *out_info, GArray *results); + 334 : void logBoxes (GArray *results); + 335 : void updateCentroids (GArray *boxes); + 336 : + 337 : int setOption (BoundingBoxOption opNum, const char *param); + 338 : GstCaps *getOutCaps (const GstTensorsConfig *config); + 339 : GstFlowReturn decode (const GstTensorsConfig *config, + 340 : const GstTensorMemory *input, GstBuffer *outbuf); + 341 : + 342 : static BoxProperties *getProperties (const gchar *properties_name); + 343 : static gboolean addProperties (BoxProperties *boxProperties); + 344 : + 345 : private: + 346 : bounding_box_modes mode; + 347 : BoxProperties *bdata; + 348 : + 349 : /* From option2 */ + 350 : imglabel_t labeldata; + 351 : char *label_path; + 352 : + 353 : /* From option4 */ + 354 : guint width; /**< Output Video Width */ + 355 : guint height; /**< Output Video Height */ + 356 : + 357 : /* From option6 (track or not) */ + 358 : gint is_track; + 359 : guint centroids_last_id; /**< The last_id of centroid valid id is 1, 2, ... (not 0). */ + 360 : guint max_centroids_num; /**< The maximum number of centroids */ + 361 : guint consecutive_disappear_threshold; /**< The threshold of consecutive disappeared frames */ + 362 : + 363 : GArray *centroids; /**< Array for centroids */ + 364 : GArray *distanceArray; /**< Array for distances */ + 365 : + 366 : /* From option7 (log or not) */ + 367 : gint do_log; + 368 : + 369 : gboolean flag_use_label; + 370 : + 371 : /* Table for box properties data */ + 372 : inline static GHashTable *properties_table; + 373 : }; + 374 : + 375 : /** + 376 : * @brief Apply NMS to the given results (objects[DETECTION_MAX]) + 377 : * @param[in/out] results The results to be filtered with nms + 378 : */ + 379 : void nms (GArray *results, gfloat threshold, bounding_box_modes mode = BOUNDING_BOX_UNKNOWN); + 380 : + 381 : #endif /* _TENSORDECBB_H__ */ diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.func-c.html index 6fee9edd9..886e3e39f 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.func.html index d3c38dfd4..d2d9070cf 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.gcov.html index 2b8804cff..568f36789 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-directvideo.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.func-c.html index bade9d07f..e261a401a 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.func.html index a0573845c..4b4276ccc 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.gcov.html index 979fe3554..0a22eb8d6 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flatbuf.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.func-c.html index 3169035d7..5bf0c9a9c 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 88.9 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.func.html index 9b25b9902..aa4c71351 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 88.9 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.gcov.html index 7f872975e..055af1b7b 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-flexbuf.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 88.9 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.func-c.html index abfdc0c32..c6fe4a149 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 81.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.func.html index b4938d99b..75823d249 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 81.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.gcov.html index c55c5927e..98b9bc66e 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagelabel.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 81.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.func-c.html index a40a6392b..607d4e088 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 88.2 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.func.html index 5d31a3ced..40fa413e5 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 88.2 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.gcov.html index e6a573200..72e46b6c2 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-imagesegment.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 88.2 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.func-c.html index d352805ff..dd6e0d33e 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.func.html index 6e3c6ad3e..9490c04bd 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.gcov.html index 94a47adc2..d541c4f2a 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-octetstream.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.func-c.html index 733adfd01..2f2b1d578 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -156,21 +156,21 @@ pose_get_metadata_by_id - 1300 + 1292 setpixel - 5954 + 5134 is_value_within - 11908 + 10268 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.func.html index bdb2bb2c9..457543fea 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -107,7 +107,7 @@ is_value_within - 11908 + 10268 @@ -142,7 +142,7 @@ pose_get_metadata_by_id - 1300 + 1292 @@ -170,7 +170,7 @@ setpixel - 5954 + 5134 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.gcov.html index 2864f9764..4b89cece9 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-pose.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -367,14 +367,14 @@ 305 : 306 : /** @brief Return pose metadata by id */ 307 : static inline pose_metadata_t * - 308 1300 : pose_get_metadata_by_id (pose_data * data, guint id) + 308 1292 : pose_get_metadata_by_id (pose_data * data, guint id) 309 : { - 310 1300 : pose_metadata_t *md = data->metadata; + 310 1292 : pose_metadata_t *md = data->metadata; 311 : - 312 1300 : if (id > data->total_labels) + 312 1292 : if (id > data->total_labels) 313 0 : return NULL; 314 : - 315 1300 : return &md[id]; + 315 1292 : return &md[id]; 316 : } 317 : 318 : /** @brief tensordec-plugin's TensorDecDef callback */ @@ -589,14 +589,14 @@ 527 : * @return TRUE if the value is within the bounds, otherwise FALSE 528 : */ 529 : static gboolean - 530 11908 : is_value_within(int value, int lower_b, int upper_b) + 530 10268 : is_value_within(int value, int lower_b, int upper_b) 531 : { - 532 11908 : if (value < lower_b) { + 532 10268 : if (value < lower_b) { 533 0 : return FALSE; - 534 11908 : } else if (value >= upper_b) { + 534 10268 : } else if (value >= upper_b) { 535 0 : return FALSE; 536 : } else { - 537 11908 : return TRUE; + 537 10268 : return TRUE; 538 : } 539 : } 540 : @@ -607,22 +607,22 @@ 545 : * @param[in] coordinate of pixel 546 : */ 547 : static void - 548 5954 : setpixel (uint32_t * frame, pose_data * data, int x, int y) + 548 5134 : setpixel (uint32_t * frame, pose_data * data, int x, int y) 549 : { - 550 5954 : if (is_value_within(x, 0, data->width) && is_value_within(y, 0, data->height)) { - 551 5954 : uint32_t *pos = &frame[y * data->width + x]; - 552 5954 : *pos = PIXEL_VALUE; + 550 5134 : if (is_value_within(x, 0, data->width) && is_value_within(y, 0, data->height)) { + 551 5134 : uint32_t *pos = &frame[y * data->width + x]; + 552 5134 : *pos = PIXEL_VALUE; 553 : - 554 5954 : if (x + 1 < (int) data->width) { - 555 5954 : pos = &frame[y * data->width + x + 1]; - 556 5954 : *pos = PIXEL_VALUE; + 554 5134 : if (x + 1 < (int) data->width) { + 555 5134 : pos = &frame[y * data->width + x + 1]; + 556 5134 : *pos = PIXEL_VALUE; 557 : } - 558 5954 : if (y + 1 < (int) data->height) { - 559 5954 : pos = &frame[(y + 1) * data->width + x]; - 560 5954 : *pos = PIXEL_VALUE; + 558 5134 : if (y + 1 < (int) data->height) { + 559 5134 : pos = &frame[(y + 1) * data->width + x]; + 560 5134 : *pos = PIXEL_VALUE; 561 : } 562 : } - 563 5954 : } + 563 5134 : } 564 : 565 : /** 566 : * @brief Draw line with dot at the end of line @@ -680,13 +680,13 @@ 618 662 : sy = ys < ye ? 1 : -1; 619 662 : err = (dx > dy ? dx : -dy) / 2; 620 : - 621 5954 : while (setpixel (frame, data, xs, ys), xs != xe || ys != ye) { - 622 5292 : int e2 = err; - 623 5292 : if (e2 > -dx) { - 624 5292 : err -= dy; - 625 5292 : xs += sx; + 621 5134 : while (setpixel (frame, data, xs, ys), xs != xe || ys != ye) { + 622 4472 : int e2 = err; + 623 4472 : if (e2 > -dx) { + 624 4472 : err -= dy; + 625 4472 : xs += sx; 626 : } - 627 5292 : if (e2 < dy) { + 627 4472 : if (e2 < dy) { 628 0 : err += dx; 629 0 : ys += sy; 630 : } @@ -710,30 +710,30 @@ 648 : char *label; 649 720 : for (i = 0; i < pose_size; i++) { 650 676 : if (xydata[i].valid) { - 651 650 : pose_metadata_t *md = pose_get_metadata_by_id (data, i); + 651 646 : pose_metadata_t *md = pose_get_metadata_by_id (data, i); 652 : gsize j, label_len; 653 : - 654 650 : x1 = xydata[i].x; - 655 650 : y1 = xydata[i].y; - 656 650 : if (md == NULL) + 654 646 : x1 = xydata[i].x; + 655 646 : y1 = xydata[i].y; + 656 646 : if (md == NULL) 657 0 : continue; - 658 650 : label = md->label; - 659 650 : label_len = label ? strlen (label) : 0; - 660 650 : y1 = MAX (0, (y1 - 14)); - 661 650 : pos1 = &frame[y1 * data->width + x1]; - 662 5620 : for (j = 0; j < label_len; j++) { - 663 4970 : unsigned int char_index = label[j]; - 664 4970 : if ((x1 + 8) > (int) data->width) + 658 646 : label = md->label; + 659 646 : label_len = label ? strlen (label) : 0; + 660 646 : y1 = MAX (0, (y1 - 14)); + 661 646 : pos1 = &frame[y1 * data->width + x1]; + 662 5594 : for (j = 0; j < label_len; j++) { + 663 4948 : unsigned int char_index = label[j]; + 664 4948 : if ((x1 + 8) > (int) data->width) 665 0 : break; - 666 4970 : pos2 = pos1; - 667 69580 : for (y2 = 0; y2 < 13; y2++) { - 668 581490 : for (x2 = 0; x2 < 8; x2++) { - 669 516880 : *(pos2 + x2) = singleLineSprite[char_index][y2][x2]; + 666 4948 : pos2 = pos1; + 667 69272 : for (y2 = 0; y2 < 13; y2++) { + 668 578916 : for (x2 = 0; x2 < 8; x2++) { + 669 514592 : *(pos2 + x2) = singleLineSprite[char_index][y2][x2]; 670 : } - 671 64610 : pos2 += data->width; + 671 64324 : pos2 += data->width; 672 : } - 673 4970 : x1 += 9; - 674 4970 : pos1 += 9; + 673 4948 : x1 += 9; + 674 4948 : pos1 += 9; 675 : } 676 : } 677 : } @@ -762,25 +762,25 @@ 700 720 : for (i = 0; i < pose_size; i++) { 701 676 : XYdata[i] = &g_array_index (results, pose, i); 702 676 : if (XYdata[i]->prob < 0.5) { - 703 26 : XYdata[i]->valid = FALSE; + 703 30 : XYdata[i]->valid = FALSE; 704 : } 705 : } 706 : 707 720 : for (i = 0; i < pose_size; i++) { 708 : pose_metadata_t *smd; 709 676 : if (XYdata[i]->valid == FALSE) - 710 26 : continue; - 711 650 : smd = pose_get_metadata_by_id (data, i); - 712 650 : if (smd == NULL) + 710 30 : continue; + 711 646 : smd = pose_get_metadata_by_id (data, i); + 712 646 : if (smd == NULL) 713 0 : continue; - 714 1985 : for (j = 0; j < smd->num_connections; j++) { - 715 1335 : guint k = smd->connections[j]; + 714 1974 : for (j = 0; j < smd->num_connections; j++) { + 715 1328 : guint k = smd->connections[j]; 716 : /* Have we already drawn the connection ? */ - 717 1335 : if ((k > data->total_labels) || (k < i)) - 718 667 : continue; + 717 1328 : if ((k > data->total_labels) || (k < i)) + 718 664 : continue; 719 : /* Is the body point valid ? */ - 720 668 : if (XYdata[k]->valid == FALSE) - 721 6 : continue; + 720 664 : if (XYdata[k]->valid == FALSE) + 721 2 : continue; 722 662 : draw_line_with_dot (frame, data, 723 662 : XYdata[i]->x, XYdata[i]->y, XYdata[k]->x, XYdata[k]->y); 724 : } @@ -845,9 +845,9 @@ 783 0 : cen = _sigmoid (cen); 784 : } 785 10484 : if (cen > max) { - 786 819 : max = cen; - 787 819 : maxX = i; - 788 819 : maxY = j; + 786 801 : max = cen; + 787 801 : maxX = i; + 788 801 : maxY = j; 789 : } 790 : } 791 : } diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.func-c.html index fcc188221..3af26c375 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 89.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % @@ -100,7 +100,7 @@ _ZL9pb_decodePPvPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer - 83 + 84 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.func.html index f0f2145e1..693ac8ed1 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 89.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % @@ -93,7 +93,7 @@ _ZL9pb_decodePPvPK16GstTensorsConfigPK15GstTensorMemoryP10_GstBuffer - 83 + 84 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.gcov.html index 2c6427601..c57f87956 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-protobuf.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 89.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 85.7 % @@ -142,11 +142,11 @@ 80 : 81 : /** @brief tensordec-plugin's GstTensorDecoderDef callback */ 82 : static GstFlowReturn - 83 83 : pb_decode (void **pdata, const GstTensorsConfig *config, + 83 84 : pb_decode (void **pdata, const GstTensorsConfig *config, 84 : const GstTensorMemory *input, GstBuffer *outbuf) 85 : { 86 : UNUSED (pdata); - 87 83 : return gst_tensor_decoder_protobuf (config, input, outbuf); + 87 84 : return gst_tensor_decoder_protobuf (config, input, outbuf); 88 : } 89 : 90 : static gchar decoder_subplugin_protobuf[] = "protobuf"; diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.func-c.html index 0e69c1258..b473766b5 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.3 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.func.html index 9bd10cb4b..eaaaa68da 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.3 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.gcov.html index e128b5964..98141fdb6 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-python3.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.3 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.func-c.html index 1b6995fb3..3d154967a 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 76.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.func.html index 5664b1c15..d51b0b505 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 76.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.gcov.html index a4eed5c4a..68fb1318e 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordec-tensor_region.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 76.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.func-c.html index d32b2821b..9e024903d 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.func.html index 7b2307c3c..767614c8a 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.gcov.html index c6bad4404..f9c97d36c 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_decoder/tensordecutil.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index-sort-f.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index-sort-f.html index 8c38f07f4..6eb23b78f 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 90.3 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index-sort-l.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index-sort-l.html index b9f9f0693..b549b1bcf 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 90.3 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index.html index 807bdc87f..b5ae45dce 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 90.3 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.func-c.html index e7a757981..564983208 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 87.5 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.func.html index 094142971..4bb7f8821 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 87.5 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.gcov.html index ea3149e9d..f61487d79 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 87.5 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.func-c.html index 658e9d7a2..f7c45e5b0 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.func.html index 0dfbfbf5c..54fd2d6ee 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.gcov.html index 3fee6c781..207bc8d6f 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_cpp.hh @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.func-c.html index 60a6420a4..c9c415c3d 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.func.html index c1d3fbf98..40e513f80 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.gcov.html index b3ee09af7..cd04c16e4 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_lua.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.func-c.html index e15b5093c..6001d737c 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 68.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.func.html index 6a45dc3c3..a82cdbc70 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 68.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.gcov.html index c7ccf0cae..6f189067d 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_nnfw.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 68.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.func-c.html index 9608caac9..5ed31aba0 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 73.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.4 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.func.html index 5db3ed16e..ed0d4b49b 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 73.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.4 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.gcov.html index 61cffdf77..ff9039d76 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_onnxruntime.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 73.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.4 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.func-c.html index 67fa21153..51c46058c 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 77.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.4 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.func.html index db5b9ca22..7f53bd151 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 77.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.4 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.gcov.html index 31ce16c54..3aa605901 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_python3.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 77.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.4 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.func-c.html index 4f86ee9c1..b76574e22 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 76.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.8 % @@ -436,35 +436,35 @@ _ZN10TFLiteCore6invokeEPK15GstTensorMemoryPS0_ - 1242 + 1264 _ZN17TFLiteInterpreter6invokeEPK15GstTensorMemoryPS0_ - 1242 + 1264 _ZL13tflite_invokePK26_GstTensorFilterPropertiesPPvPK15GstTensorMemoryPS4_ - 1252 + 1274 _ZN17TFLiteInterpreter4lockEv - 2758 + 2780 _ZN17TFLiteInterpreter6unlockEv - 2758 + 2780 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.func.html index 6b98073af..ac1be67ca 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 76.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.8 % @@ -93,7 +93,7 @@ _ZL13tflite_invokePK26_GstTensorFilterPropertiesPPvPK15GstTensorMemoryPS4_ - 1252 + 1274 @@ -247,7 +247,7 @@ _ZN10TFLiteCore6invokeEPK15GstTensorMemoryPS0_ - 1242 + 1264 @@ -380,21 +380,21 @@ _ZN17TFLiteInterpreter4lockEv - 2758 + 2780 _ZN17TFLiteInterpreter6invokeEPK15GstTensorMemoryPS0_ - 1242 + 1264 _ZN17TFLiteInterpreter6unlockEv - 2758 + 2780 diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.gcov.html index 07b5b07dd..54dc5ade8 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_lite.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 76.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.8 % @@ -277,15 +277,15 @@ 215 : } 216 : 217 : /** @brief lock this interpreter */ - 218 2758 : void lock () + 218 2780 : void lock () 219 : { - 220 2758 : g_mutex_lock (&mutex); - 221 2758 : } + 220 2780 : g_mutex_lock (&mutex); + 221 2780 : } 222 : /** @brief unlock this interpreter */ - 223 2758 : void unlock () + 223 2780 : void unlock () 224 : { - 225 2758 : g_mutex_unlock (&mutex); - 226 2758 : } + 225 2780 : g_mutex_unlock (&mutex); + 226 2780 : } 227 : /** @brief cache input and output tensor ptr before invoke */ 228 : int cacheInOutTensorPtr (); 229 : @@ -415,24 +415,24 @@ 353 : * @brief Internal implementation of TFLiteCore's invoke() 354 : */ 355 : int - 356 1242 : TFLiteInterpreter::invoke (const GstTensorMemory *input, GstTensorMemory *output) + 356 1264 : TFLiteInterpreter::invoke (const GstTensorMemory *input, GstTensorMemory *output) 357 : { 358 : int64_t start_time, stop_time; 359 : TfLiteTensor *tensor_ptr; 360 : TfLiteStatus status; 361 : - 362 1242 : start_time = g_get_monotonic_time (); + 362 1264 : start_time = g_get_monotonic_time (); 363 : 364 : /** 365 : * XNNPACK Delegate uses fixed buffer address for input/output tensors. 366 : * Therefore tensor data is to be manually copied from/to input/output 367 : * GStreamer buffers memory whose address changes at every round. 368 : */ - 369 1242 : if (is_xnnpack_delegated) { - 370 1840 : for (unsigned int i = 0; i < inputTensorMeta.num_tensors; ++i) { - 371 920 : tensor_ptr = inputTensorPtr[i]; - 372 920 : g_assert (tensor_ptr->bytes == input[i].size); - 373 920 : memcpy (tensor_ptr->data.raw, input[i].data, input[i].size); + 369 1264 : if (is_xnnpack_delegated) { + 370 1884 : for (unsigned int i = 0; i < inputTensorMeta.num_tensors; ++i) { + 371 942 : tensor_ptr = inputTensorPtr[i]; + 372 942 : g_assert (tensor_ptr->bytes == input[i].size); + 373 942 : memcpy (tensor_ptr->data.raw, input[i].data, input[i].size); 374 : } 375 : } else { 376 1021 : for (unsigned int i = 0; i < inputTensorMeta.num_tensors; ++i) { @@ -446,29 +446,29 @@ 384 : } 385 : } 386 : - 387 1242 : stop_time = g_get_monotonic_time (); + 387 1264 : stop_time = g_get_monotonic_time (); 388 : - 389 1242 : tflite_internal_stats.total_overhead_latency += stop_time - start_time; + 389 1264 : tflite_internal_stats.total_overhead_latency += stop_time - start_time; 390 : - 391 1242 : start_time = g_get_monotonic_time (); - 392 1242 : status = interpreter->Invoke (); + 391 1264 : start_time = g_get_monotonic_time (); + 392 1264 : status = interpreter->Invoke (); 393 : 394 : /** 395 : * After the very first invoke, the output buffer address may change. 396 : * To handle the case, memcpy the output buffer directly. 397 : */ - 398 1242 : if (is_xnnpack_delegated || !is_cached_after_first_invoke) { - 399 2080 : for (unsigned int i = 0; i < outputTensorMeta.num_tensors; ++i) { - 400 1074 : tensor_ptr = outputTensorPtr[i]; - 401 1074 : g_assert (tensor_ptr->bytes == output[i].size); - 402 1074 : memcpy (output[i].data, tensor_ptr->data.raw, output[i].size); + 398 1264 : if (is_xnnpack_delegated || !is_cached_after_first_invoke) { + 399 2124 : for (unsigned int i = 0; i < outputTensorMeta.num_tensors; ++i) { + 400 1096 : tensor_ptr = outputTensorPtr[i]; + 401 1096 : g_assert (tensor_ptr->bytes == output[i].size); + 402 1096 : memcpy (output[i].data, tensor_ptr->data.raw, output[i].size); 403 : } 404 : } 405 : - 406 1242 : stop_time = g_get_monotonic_time (); + 406 1264 : stop_time = g_get_monotonic_time (); 407 : - 408 1242 : tflite_internal_stats.total_invoke_latency += stop_time - start_time; - 409 1242 : tflite_internal_stats.total_invoke_num += 1; + 408 1264 : tflite_internal_stats.total_invoke_latency += stop_time - start_time; + 409 1264 : tflite_internal_stats.total_invoke_num += 1; 410 : 411 : #if (DBG) 412 : ml_logi ("Invoke() is finished: %" G_GINT64_FORMAT "ms, model path: %s", @@ -480,12 +480,12 @@ 418 : tflite_internal_stats.total_overhead_latency); 419 : #endif 420 : - 421 1242 : if (status != kTfLiteOk) { + 421 1264 : if (status != kTfLiteOk) { 422 0 : ml_loge ("Failed to invoke"); 423 0 : return -1; 424 : } 425 : - 426 1242 : if (!is_cached_after_first_invoke) { + 426 1264 : if (!is_cached_after_first_invoke) { 427 87 : if (cacheInOutTensorPtr () == 0) { 428 87 : is_cached_after_first_invoke = true; 429 : } else { @@ -493,7 +493,7 @@ 431 : } 432 : } 433 : - 434 1242 : return 0; + 434 1264 : return 0; 435 : } 436 : 437 : /** @@ -1397,15 +1397,15 @@ 1335 : * @return 0 if OK. non-zero if error. 1336 : */ 1337 : int - 1338 1242 : TFLiteCore::invoke (const GstTensorMemory *input, GstTensorMemory *output) + 1338 1264 : TFLiteCore::invoke (const GstTensorMemory *input, GstTensorMemory *output) 1339 : { 1340 : int err; 1341 : - 1342 1242 : interpreter->lock (); - 1343 1242 : err = interpreter->invoke (input, output); - 1344 1242 : interpreter->unlock (); + 1342 1264 : interpreter->lock (); + 1343 1264 : err = interpreter->invoke (input, output); + 1344 1264 : interpreter->unlock (); 1345 : - 1346 1242 : return err; + 1346 1264 : return err; 1347 : } 1348 : 1349 : /** @@ -1631,14 +1631,14 @@ 1569 : * @return 0 if OK. non-zero if error. 1570 : */ 1571 : static int - 1572 1252 : tflite_invoke (const GstTensorFilterProperties *prop, void **private_data, + 1572 1274 : tflite_invoke (const GstTensorFilterProperties *prop, void **private_data, 1573 : const GstTensorMemory *input, GstTensorMemory *output) 1574 : { - 1575 1252 : TFLiteCore *core = static_cast<TFLiteCore *> (*private_data); - 1576 1252 : g_return_val_if_fail (core && input && output, -EINVAL); + 1575 1274 : TFLiteCore *core = static_cast<TFLiteCore *> (*private_data); + 1576 1274 : g_return_val_if_fail (core && input && output, -EINVAL); 1577 : UNUSED (prop); 1578 : - 1579 1242 : return core->invoke (input, output); + 1579 1264 : return core->invoke (input, output); 1580 : } 1581 : 1582 : /** diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.func-c.html index 6772d5ae0..3b00f21f6 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 20.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 44.4 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.func.html index d6f28bd96..b99f13954 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 20.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 44.4 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.gcov.html index 944638e60..47b98127b 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_trix_engine.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 20.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 44.4 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.func-c.html index 59b8b6483..e397ea011 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 68.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.8 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.func.html index b6ced0e5b..e7ef429ee 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 68.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.8 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.gcov.html index 32a24acae..3b8b755ee 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_filter/tensor_filter_tvm.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 68.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.8 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index-sort-f.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index-sort-f.html index 6c65ccadb..fc1fd2971 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 96.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index-sort-l.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index-sort-l.html index 9ec070a36..97bf23d18 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 96.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index.html index 0ccaac6e9..84b08335c 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 96.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.func-c.html index d2571a3bb..7cd778e3a 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 96.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.func.html index 8177ff560..359fa5507 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 96.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.gcov.html index e6fbea858..c18b8bb2a 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_sink/tensor_sink_grpc.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 96.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index-sort-f.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index-sort-f.html index 7d06f9e7f..f5c8e13d3 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_source + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_source @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 77.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.5 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index-sort-l.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index-sort-l.html index afbb7bd9a..5b9d2195e 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_source + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_source @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 77.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.5 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index.html index cd4172aac..ae93e3a99 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_source + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_source @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 77.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.5 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.func-c.html index d046db4b8..ba3e5ffc2 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.func.html index 24cb2d7ad..28600a0a5 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.gcov.html index 5d5112ffe..e9917639c 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_grpc.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 86.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.7 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.func-c.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.func-c.html index 80365851e..2f076779c 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 74.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.6 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.func.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.func.html index 8dbbb3a2e..8745fe9b5 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.func.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 74.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.6 % diff --git a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.gcov.html b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.gcov.html index 320c41181..d592eeb2d 100644 --- a/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/ext/nnstreamer/tensor_source/tensor_src_tizensensor.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 74.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.6 % diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.func-c.html index b7fe9fd33..aab2a21e4 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 67.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 75.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.func.html b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.func.html index 086f6928c..b26b0f2e2 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 67.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 75.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.gcov.html index 7e129b00a..1ff1bffbb 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo/gstdatarepo.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 67.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 75.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.func-c.html index 13fecfd09..6e815beff 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 85.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -170,35 +170,35 @@ gst_data_repo_sink_write_flexible_or_sparse_tensors - 161 + 160 gst_data_repo_sink_render - 215 + 214 gst_data_repo_sink_get_caps - 568 + 542 gst_data_repo_sink_query - 583 + 557 gst_data_repo_sink_get_type - 868 + 842 @@ -219,7 +219,7 @@ gst_data_repo_sink_get_type - 827 + 801 diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.func.html b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.func.html index 2bb349c3f..642db8c96 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 85.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -93,7 +93,7 @@ gst_data_repo_sink_get_caps - 568 + 542 @@ -114,7 +114,7 @@ gst_data_repo_sink_get_type - 868 + 842 @@ -128,7 +128,7 @@ gst_data_repo_sink_get_type - 827 + 801 @@ -156,14 +156,14 @@ gst_data_repo_sink_query - 583 + 557 gst_data_repo_sink_render - 215 + 214 @@ -198,7 +198,7 @@ gst_data_repo_sink_write_flexible_or_sparse_tensors - 161 + 160 diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.gcov.html index 6240dd7c3..749d6a5e6 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo/gstdatareposink.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 85.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -154,7 +154,7 @@ 92 : #define _do_init \ 93 : GST_DEBUG_CATEGORY_INIT (gst_data_repo_sink_debug, "datareposink", 0, "datareposink element"); 94 : #define gst_data_repo_sink_parent_class parent_class - 95 868 : G_DEFINE_TYPE_WITH_CODE (GstDataRepoSink, gst_data_repo_sink, + 95 842 : G_DEFINE_TYPE_WITH_CODE (GstDataRepoSink, gst_data_repo_sink, 96 : GST_TYPE_BASE_SINK, _do_init); 97 : 98 : static void gst_data_repo_sink_set_property (GObject * object, guint prop_id, @@ -376,75 +376,75 @@ 314 : * @brief Function to write flexible tensors or sparse tensors 315 : */ 316 : static GstFlowReturn - 317 161 : gst_data_repo_sink_write_flexible_or_sparse_tensors (GstDataRepoSink * sink, + 317 160 : gst_data_repo_sink_write_flexible_or_sparse_tensors (GstDataRepoSink * sink, 318 : GstBuffer * buffer) 319 : { 320 : guint num_tensors, i; - 321 161 : gsize total_write = 0, tensor_size; - 322 161 : ssize_t write_size = 0; + 321 160 : gsize total_write = 0, tensor_size; + 322 160 : ssize_t write_size = 0; 323 : GstMapInfo info; - 324 161 : GstMemory *mem = NULL; + 324 160 : GstMemory *mem = NULL; 325 : GstTensorMetaInfo meta; 326 : - 327 322 : g_return_val_if_fail (sink != NULL, GST_FLOW_ERROR); - 328 161 : g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR); - 329 161 : g_return_val_if_fail (sink->fd != 0, GST_FLOW_ERROR); - 330 161 : g_return_val_if_fail (sink->json_object != NULL, GST_FLOW_ERROR); - 331 161 : g_return_val_if_fail (sink->sample_offset_array != NULL, GST_FLOW_ERROR); - 332 161 : g_return_val_if_fail (sink->tensor_size_array != NULL, GST_FLOW_ERROR); - 333 161 : g_return_val_if_fail (sink->tensor_count_array != NULL, GST_FLOW_ERROR); + 327 320 : g_return_val_if_fail (sink != NULL, GST_FLOW_ERROR); + 328 160 : g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR); + 329 160 : g_return_val_if_fail (sink->fd != 0, GST_FLOW_ERROR); + 330 160 : g_return_val_if_fail (sink->json_object != NULL, GST_FLOW_ERROR); + 331 160 : g_return_val_if_fail (sink->sample_offset_array != NULL, GST_FLOW_ERROR); + 332 160 : g_return_val_if_fail (sink->tensor_size_array != NULL, GST_FLOW_ERROR); + 333 160 : g_return_val_if_fail (sink->tensor_count_array != NULL, GST_FLOW_ERROR); 334 : - 335 161 : GST_OBJECT_LOCK (sink); + 335 160 : GST_OBJECT_LOCK (sink); 336 : - 337 161 : num_tensors = gst_tensor_buffer_get_count (buffer); - 338 161 : GST_INFO_OBJECT (sink, "num_tensors: %u", num_tensors); + 337 160 : num_tensors = gst_tensor_buffer_get_count (buffer); + 338 160 : GST_INFO_OBJECT (sink, "num_tensors: %u", num_tensors); 339 : - 340 350 : for (i = 0; i < num_tensors; i++) { - 341 191 : mem = gst_tensor_buffer_get_nth_memory (buffer, i); - 342 191 : if (!gst_memory_map (mem, &info, GST_MAP_READ)) { + 340 348 : for (i = 0; i < num_tensors; i++) { + 341 190 : mem = gst_tensor_buffer_get_nth_memory (buffer, i); + 342 190 : if (!gst_memory_map (mem, &info, GST_MAP_READ)) { 343 0 : GST_ERROR_OBJECT (sink, "Failed to map memory"); 344 0 : goto mem_map_error; 345 : } 346 : - 347 191 : if (!gst_tensor_meta_info_parse_header (&meta, info.data)) { + 347 190 : if (!gst_tensor_meta_info_parse_header (&meta, info.data)) { 348 2 : GST_ERROR_OBJECT (sink, 349 : "Invalid format of tensors, the format is static."); 350 2 : goto error; 351 : } - 352 189 : tensor_size = info.size; + 352 188 : tensor_size = info.size; 353 : - 354 189 : GST_LOG_OBJECT (sink, "tensor[%u] size: %zd", i, tensor_size); - 355 189 : GST_LOG_OBJECT (sink, + 354 188 : GST_LOG_OBJECT (sink, "tensor[%u] size: %zd", i, tensor_size); + 355 188 : GST_LOG_OBJECT (sink, 356 : "Writing %lld bytes at offset 0x%" G_GINT64_MODIFIER "x (%lld size)", 357 : (long long) tensor_size, sink->fd_offset + total_write, 358 : (long long) sink->fd_offset + total_write); 359 : - 360 189 : write_size = write (sink->fd, info.data, tensor_size); - 361 189 : if ((write_size == -1) || (write_size != (ssize_t) tensor_size)) { + 360 188 : write_size = write (sink->fd, info.data, tensor_size); + 361 188 : if ((write_size == -1) || (write_size != (ssize_t) tensor_size)) { 362 0 : GST_ERROR_OBJECT (sink, "Error writing data to file"); 363 0 : goto error; 364 : } 365 : - 366 189 : json_array_add_int_element (sink->tensor_size_array, tensor_size); - 367 189 : total_write += (gsize) write_size; + 366 188 : json_array_add_int_element (sink->tensor_size_array, tensor_size); + 367 188 : total_write += (gsize) write_size; 368 : - 369 189 : gst_memory_unmap (mem, &info); - 370 189 : gst_memory_unref (mem); + 369 188 : gst_memory_unmap (mem, &info); + 370 188 : gst_memory_unref (mem); 371 : } 372 : - 373 159 : json_array_add_int_element (sink->sample_offset_array, sink->fd_offset); - 374 159 : sink->fd_offset += total_write; + 373 158 : json_array_add_int_element (sink->sample_offset_array, sink->fd_offset); + 374 158 : sink->fd_offset += total_write; 375 : - 376 159 : GST_LOG_OBJECT (sink, "cumulative_tensors: %u", sink->cumulative_tensors); - 377 159 : json_array_add_int_element (sink->tensor_count_array, - 378 159 : sink->cumulative_tensors); - 379 159 : sink->cumulative_tensors += num_tensors; + 376 158 : GST_LOG_OBJECT (sink, "cumulative_tensors: %u", sink->cumulative_tensors); + 377 158 : json_array_add_int_element (sink->tensor_count_array, + 378 158 : sink->cumulative_tensors); + 379 158 : sink->cumulative_tensors += num_tensors; 380 : - 381 159 : sink->total_samples++; + 381 158 : sink->total_samples++; 382 : - 383 159 : GST_OBJECT_UNLOCK (sink); + 383 158 : GST_OBJECT_UNLOCK (sink); 384 : - 385 159 : return GST_FLOW_OK; + 385 158 : return GST_FLOW_OK; 386 : 387 2 : error: 388 2 : gst_memory_unmap (mem, &info); @@ -526,21 +526,21 @@ 464 : * @brief Called when a buffer should be presented or output. 465 : */ 466 : static GstFlowReturn - 467 215 : gst_data_repo_sink_render (GstBaseSink * bsink, GstBuffer * buffer) + 467 214 : gst_data_repo_sink_render (GstBaseSink * bsink, GstBuffer * buffer) 468 : { - 469 215 : GstDataRepoSink *sink = GST_DATA_REPO_SINK_CAST (bsink); + 469 214 : GstDataRepoSink *sink = GST_DATA_REPO_SINK_CAST (bsink); 470 : - 471 215 : switch (sink->data_type) { + 471 214 : switch (sink->data_type) { 472 24 : case GST_DATA_REPO_DATA_VIDEO: 473 : case GST_DATA_REPO_DATA_AUDIO: 474 : case GST_DATA_REPO_DATA_TEXT: 475 : case GST_DATA_REPO_DATA_OCTET: 476 24 : return gst_data_repo_sink_write_others (sink, buffer); - 477 171 : case GST_DATA_REPO_DATA_TENSOR: + 477 170 : case GST_DATA_REPO_DATA_TENSOR: 478 : { - 479 171 : if (sink->is_static_tensors) + 479 170 : if (sink->is_static_tensors) 480 10 : return gst_data_repo_sink_write_others (sink, buffer); - 481 161 : return gst_data_repo_sink_write_flexible_or_sparse_tensors (sink, buffer); + 481 160 : return gst_data_repo_sink_write_flexible_or_sparse_tensors (sink, buffer); 482 : } 483 20 : case GST_DATA_REPO_DATA_IMAGE: 484 20 : return gst_data_repo_sink_write_multi_images (sink, buffer); @@ -553,26 +553,26 @@ 491 : * @brief Get caps of datareposink. 492 : */ 493 : static GstCaps * - 494 568 : gst_data_repo_sink_get_caps (GstBaseSink * bsink, GstCaps * filter) + 494 542 : gst_data_repo_sink_get_caps (GstBaseSink * bsink, GstCaps * filter) 495 : { - 496 568 : GstDataRepoSink *sink = GST_DATA_REPO_SINK (bsink); - 497 568 : GstCaps *caps = NULL; + 496 542 : GstDataRepoSink *sink = GST_DATA_REPO_SINK (bsink); + 497 542 : GstCaps *caps = NULL; 498 : - 499 568 : GST_OBJECT_LOCK (sink); - 500 568 : caps = sink->fixed_caps; + 499 542 : GST_OBJECT_LOCK (sink); + 500 542 : caps = sink->fixed_caps; 501 : - 502 568 : GST_INFO_OBJECT (sink, "Got caps %" GST_PTR_FORMAT, caps); - 503 568 : if (caps) { - 504 428 : if (filter) + 502 542 : GST_INFO_OBJECT (sink, "Got caps %" GST_PTR_FORMAT, caps); + 503 542 : if (caps) { + 504 399 : if (filter) 505 0 : caps = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST); 506 : else - 507 428 : caps = gst_caps_ref (caps); + 507 399 : caps = gst_caps_ref (caps); 508 : } 509 : - 510 568 : GST_DEBUG_OBJECT (sink, "result get caps: %" GST_PTR_FORMAT, caps); - 511 568 : GST_OBJECT_UNLOCK (sink); + 510 542 : GST_DEBUG_OBJECT (sink, "result get caps: %" GST_PTR_FORMAT, caps); + 511 542 : GST_OBJECT_UNLOCK (sink); 512 : - 513 568 : return caps; + 513 542 : return caps; 514 : } 515 : 516 : /** @@ -623,11 +623,11 @@ 561 : * @brief Perform a GstQuery on datareposink. 562 : */ 563 : static gboolean - 564 583 : gst_data_repo_sink_query (GstBaseSink * bsink, GstQuery * query) + 564 557 : gst_data_repo_sink_query (GstBaseSink * bsink, GstQuery * query) 565 : { 566 : gboolean ret; 567 : - 568 583 : switch (GST_QUERY_TYPE (query)) { + 568 557 : switch (GST_QUERY_TYPE (query)) { 569 0 : case GST_QUERY_SEEKING:{ 570 : GstFormat fmt; 571 : @@ -637,12 +637,12 @@ 575 0 : ret = TRUE; 576 0 : break; 577 : } - 578 583 : default: - 579 583 : ret = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query); - 580 583 : break; + 578 557 : default: + 579 557 : ret = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query); + 580 557 : break; 581 : } 582 : - 583 583 : return ret; + 583 557 : return ret; 584 : } 585 : 586 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.func-c.html index cfc2ec391..88075a6b8 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c - functions @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 79.1 % + 79.4 % 867 - 686 + 688 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -121,7 +121,7 @@ gst_data_repo_src_set_caps - 19 + 18 @@ -205,7 +205,7 @@ gst_data_repo_src_get_caps - 113 + 112 @@ -247,7 +247,7 @@ gst_data_repo_src_get_type - 922 + 920 @@ -268,7 +268,7 @@ gst_data_repo_src_get_type - 880 + 878 diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.func.html b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.func.html index 78259b2b7..4e58db46a 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c - functions @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 79.1 % + 79.4 % 867 - 686 + 688 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -107,7 +107,7 @@ gst_data_repo_src_get_caps - 113 + 112 @@ -142,7 +142,7 @@ gst_data_repo_src_get_type - 922 + 920 @@ -156,7 +156,7 @@ gst_data_repo_src_get_type - 880 + 878 @@ -219,7 +219,7 @@ gst_data_repo_src_set_caps - 19 + 18 diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.gcov.html index 9ad560f60..5a0698292 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo/gstdatareposrc.c @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 79.1 % + 79.4 % 867 - 686 + 688 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -171,7 +171,7 @@ 109 : GST_DEBUG_CATEGORY_INIT (gst_data_repo_src_debug, "datareposrc", 0, "datareposrc element"); 110 : 111 : #define gst_data_repo_src_parent_class parent_class - 112 922 : G_DEFINE_TYPE_WITH_CODE (GstDataRepoSrc, gst_data_repo_src, GST_TYPE_PUSH_SRC, + 112 920 : G_DEFINE_TYPE_WITH_CODE (GstDataRepoSrc, gst_data_repo_src, GST_TYPE_PUSH_SRC, 113 : _do_init); 114 : 115 : /** @@ -890,13 +890,13 @@ 828 112 : byte_read = 0; 829 112 : to_read = tensor_size; 830 224 : while (to_read > 0) { - 831 112 : GST_LOG_OBJECT (src, + 831 113 : GST_LOG_OBJECT (src, 832 : "Reading %zd bytes at offset 0x%" G_GINT64_MODIFIER "x (%lld size)", 833 : to_read, src->fd_offset + byte_read, (long long) src->fd_offset); - 834 112 : errno = 0; - 835 112 : read_size = read (src->fd, data + byte_read, to_read); - 836 112 : GST_LOG_OBJECT (src, "Read: %zd", read_size); - 837 112 : if (read_size < 0) { + 834 113 : errno = 0; + 835 113 : read_size = read (src->fd, data + byte_read, to_read); + 836 113 : GST_LOG_OBJECT (src, "Read: %zd", read_size); + 837 113 : if (read_size < 0) { 838 0 : if (errno == EAGAIN || errno == EINTR) 839 0 : continue; 840 0 : GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), GST_ERROR_SYSTEM); @@ -904,11 +904,11 @@ 842 0 : goto error; 843 : } 844 : /* files should eos if they read 0 and more was requested */ - 845 112 : if (read_size == 0) { + 845 113 : if (read_size == 0) { 846 : /* .. but first we should return any remaining data */ - 847 0 : if (byte_read > 0) - 848 0 : break; - 849 0 : GST_DEBUG_OBJECT (src, "EOS"); + 847 1 : if (byte_read > 0) + 848 1 : break; + 849 0 : GST_DEBUG_OBJECT (src, "EOS"); 850 0 : ret = GST_FLOW_EOS; 851 0 : goto error; 852 : } @@ -1430,24 +1430,24 @@ 1368 : * @brief Get caps for caps negotiation 1369 : */ 1370 : static GstCaps * - 1371 113 : gst_data_repo_src_get_caps (GstBaseSrc * basesrc, GstCaps * filter) + 1371 112 : gst_data_repo_src_get_caps (GstBaseSrc * basesrc, GstCaps * filter) 1372 : { - 1373 113 : GstDataRepoSrc *src = GST_DATA_REPO_SRC (basesrc); + 1373 112 : GstDataRepoSrc *src = GST_DATA_REPO_SRC (basesrc); 1374 : - 1375 113 : if (src->data_type == GST_DATA_REPO_DATA_TENSOR && src->need_changed_caps) { + 1375 112 : if (src->data_type == GST_DATA_REPO_DATA_TENSOR && src->need_changed_caps) { 1376 17 : gst_data_repo_get_caps_by_tensors_sequence (src); 1377 17 : src->need_changed_caps = FALSE; 1378 : } 1379 : - 1380 113 : GST_DEBUG_OBJECT (src, "Current datareposrc caps %" GST_PTR_FORMAT, + 1380 112 : GST_DEBUG_OBJECT (src, "Current datareposrc caps %" GST_PTR_FORMAT, 1381 : src->caps); 1382 : - 1383 113 : if (src->caps) { - 1384 99 : if (filter) + 1383 112 : if (src->caps) { + 1384 98 : if (filter) 1385 0 : return gst_caps_intersect_full (filter, src->caps, 1386 : GST_CAPS_INTERSECT_FIRST); 1387 : else - 1388 99 : return gst_caps_ref (src->caps); + 1388 98 : return gst_caps_ref (src->caps); 1389 : } else { 1390 14 : if (filter) 1391 0 : return gst_caps_ref (filter); @@ -1460,13 +1460,13 @@ 1398 : * @brief caps after caps negotiation 1399 : */ 1400 : static gboolean - 1401 19 : gst_data_repo_src_set_caps (GstBaseSrc * basesrc, GstCaps * caps) + 1401 18 : gst_data_repo_src_set_caps (GstBaseSrc * basesrc, GstCaps * caps) 1402 : { - 1403 19 : GstDataRepoSrc *src = GST_DATA_REPO_SRC (basesrc); + 1403 18 : GstDataRepoSrc *src = GST_DATA_REPO_SRC (basesrc); 1404 : - 1405 19 : GST_INFO_OBJECT (src, "set caps: %" GST_PTR_FORMAT, caps); + 1405 18 : GST_INFO_OBJECT (src, "set caps: %" GST_PTR_FORMAT, caps); 1406 : - 1407 19 : return TRUE; + 1407 18 : return TRUE; 1408 : } 1409 : 1410 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/datarepo/index-sort-f.html index ce37e8760..0a7bcb7f4 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 80.7 % + 80.8 % 1253 - 1011 + 1013 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 98.2 % @@ -106,11 +106,11 @@ gstdatareposrc.c -
79.1%79.1%
+
79.4%79.4%
- 79.1 % + 79.4 % 867 - 686 + 688 100.0 % 29 29 diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/datarepo/index-sort-l.html index eddd607ed..076e9dd7c 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 80.7 % + 80.8 % 1253 - 1011 + 1013 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 98.2 % @@ -94,11 +94,11 @@ gstdatareposrc.c -
79.1%79.1%
+
79.4%79.4%
- 79.1 % + 79.4 % 867 - 686 + 688 100.0 % 29 29 diff --git a/testresult/nnstreamer-2.4.2/gst/datarepo/index.html b/testresult/nnstreamer-2.4.2/gst/datarepo/index.html index 370e62d8c..a4332978a 100644 --- a/testresult/nnstreamer-2.4.2/gst/datarepo/index.html +++ b/testresult/nnstreamer-2.4.2/gst/datarepo/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/datarepo + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/datarepo @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 80.7 % + 80.8 % 1253 - 1011 + 1013 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 98.2 % @@ -106,11 +106,11 @@ gstdatareposrc.c -
79.1%79.1%
+
79.4%79.4%
- 79.1 % + 79.4 % 867 - 686 + 688 100.0 % 29 29 diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.func-c.html index e17ea09ca..cff7c1ba0 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_common.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_common.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.func.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.func.html index a5b2b07e4..fcf49e873 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_common.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_common.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.gcov.html index 80b989d72..3fbf3610b 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_common.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_common.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_common.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.func-c.html index 9c3e220dc..f7c5b0699 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_elements.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_elements.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 71.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.func.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.func.html index 0105df4f7..c02dfe9f3 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_elements.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_elements.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 71.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.gcov.html index c4b4efdf3..76df321f3 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_elements.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_elements.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_elements.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 71.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.func-c.html index 1249ae1e1..a08c0a61b 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_sink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_sink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.func.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.func.html index f243284e8..594156515 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_sink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_sink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.gcov.html index e384d26a7..cfd4494c6 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_sink.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_sink.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_sink.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.func-c.html index 0d8d50b69..b4e056f3d 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_src.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_src.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.func.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.func.html index f6770b257..90b9b8ec5 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_src.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_src.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.gcov.html index b5bcdd890..bc1460087 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/edge_src.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge/edge_src.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge/edge_src.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/edge/index-sort-f.html index e2d8f5ed0..9c623fbc5 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 97.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/edge/index-sort-l.html index 9e30785f0..472ba2054 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 97.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/edge/index.html b/testresult/nnstreamer-2.4.2/gst/edge/index.html index c15b6e379..d2b822e81 100644 --- a/testresult/nnstreamer-2.4.2/gst/edge/index.html +++ b/testresult/nnstreamer-2.4.2/gst/edge/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/edge + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/edge @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 97.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.func-c.html index 6f5de4f6d..c6cd57d1c 100644 --- a/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/join/gstjoin.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/join/gstjoin.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 94.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.3 % @@ -163,21 +163,21 @@ gst_join_pad_event - 114 + 113 gst_join_get_active_sinkpad - 118 + 117 gst_join_set_active_pad - 126 + 125 @@ -205,7 +205,7 @@ gst_join_pad_get_type - 300 + 298 @@ -226,28 +226,28 @@ gst_join_pad_get_type - 286 + 284 forward_sticky_events - 366 + 363 gst_join_pad_query - 586 + 567 gst_join_get_type - 898 + 894 @@ -268,7 +268,7 @@ gst_join_get_type - 848 + 844 diff --git a/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.func.html b/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.func.html index 82a2de89f..36b2a22e3 100644 --- a/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/join/gstjoin.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/join/gstjoin.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 94.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.3 % @@ -65,7 +65,7 @@ forward_sticky_events - 366 + 363 @@ -93,7 +93,7 @@ gst_join_get_active_sinkpad - 118 + 117 @@ -114,7 +114,7 @@ gst_join_get_type - 898 + 894 @@ -128,7 +128,7 @@ gst_join_get_type - 848 + 844 @@ -163,7 +163,7 @@ gst_join_pad_event - 114 + 113 @@ -177,7 +177,7 @@ gst_join_pad_get_type - 300 + 298 @@ -191,7 +191,7 @@ gst_join_pad_get_type - 286 + 284 @@ -219,7 +219,7 @@ gst_join_pad_query - 586 + 567 @@ -240,7 +240,7 @@ gst_join_set_active_pad - 126 + 125 diff --git a/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.gcov.html index 92d4bd32d..c75058a35 100644 --- a/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/join/gstjoin.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/join/gstjoin.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/join/gstjoin.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 94.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.3 % @@ -182,7 +182,7 @@ 120 : static GstFlowReturn gst_join_pad_chain (GstPad * pad, GstObject * parent, 121 : GstBuffer * buf); 122 : - 123 300 : G_DEFINE_TYPE (GstJoinPad, gst_join_pad, GST_TYPE_PAD); + 123 298 : G_DEFINE_TYPE (GstJoinPad, gst_join_pad, GST_TYPE_PAD); 124 : 125 : /** 126 : * @brief initialize the join's pad class @@ -243,11 +243,11 @@ 181 : 182 141 : otherpad = gst_join_get_linked_pad (sel, pad, TRUE); 183 141 : if (otherpad) { - 184 35 : g_value_init (&val, GST_TYPE_PAD); - 185 35 : g_value_set_object (&val, otherpad); - 186 35 : it = gst_iterator_new_single (GST_TYPE_PAD, &val); - 187 35 : g_value_unset (&val); - 188 35 : gst_object_unref (otherpad); + 184 34 : g_value_init (&val, GST_TYPE_PAD); + 185 34 : g_value_set_object (&val, otherpad); + 186 34 : it = gst_iterator_new_single (GST_TYPE_PAD, &val); + 187 34 : g_value_unset (&val); + 188 34 : gst_object_unref (otherpad); 189 : } 190 : 191 141 : return it; @@ -257,22 +257,22 @@ 195 : * @brief forward sticky event 196 : */ 197 : static gboolean - 198 366 : forward_sticky_events (GstPad * sinkpad, GstEvent ** event, gpointer user_data) + 198 363 : forward_sticky_events (GstPad * sinkpad, GstEvent ** event, gpointer user_data) 199 : { - 200 366 : GstJoin *sel = GST_JOIN (user_data); + 200 363 : GstJoin *sel = GST_JOIN (user_data); 201 : - 202 366 : GST_DEBUG_OBJECT (sinkpad, "forward sticky event %" GST_PTR_FORMAT, *event); + 202 363 : GST_DEBUG_OBJECT (sinkpad, "forward sticky event %" GST_PTR_FORMAT, *event); 203 : - 204 366 : if (GST_EVENT_TYPE (*event) == GST_EVENT_SEGMENT) { - 205 124 : GstSegment *seg = &GST_JOIN_PAD (sinkpad)->segment; + 204 363 : if (GST_EVENT_TYPE (*event) == GST_EVENT_SEGMENT) { + 205 123 : GstSegment *seg = &GST_JOIN_PAD (sinkpad)->segment; 206 : GstEvent *e; 207 : - 208 124 : e = gst_event_new_segment (seg); - 209 124 : gst_event_set_seqnum (e, GST_JOIN_PAD_CAST (sinkpad)->segment_seqnum); + 208 123 : e = gst_event_new_segment (seg); + 209 123 : gst_event_set_seqnum (e, GST_JOIN_PAD_CAST (sinkpad)->segment_seqnum); 210 : - 211 124 : gst_pad_push_event (sel->srcpad, e); - 212 242 : } else if (GST_EVENT_TYPE (*event) == GST_EVENT_STREAM_START - 213 118 : && !sel->have_group_id) { + 211 123 : gst_pad_push_event (sel->srcpad, e); + 212 240 : } else if (GST_EVENT_TYPE (*event) == GST_EVENT_STREAM_START + 213 117 : && !sel->have_group_id) { 214 : GstEvent *tmp = 215 0 : gst_pad_get_sticky_event (sel->srcpad, GST_EVENT_STREAM_START, 0); 216 : @@ -283,35 +283,35 @@ 221 0 : gst_event_unref (tmp); 222 : } 223 : } else { - 224 242 : gst_pad_push_event (sel->srcpad, gst_event_ref (*event)); + 224 240 : gst_pad_push_event (sel->srcpad, gst_event_ref (*event)); 225 : } - 226 364 : return TRUE; + 226 361 : return TRUE; 227 : } 228 : 229 : /** 230 : * @brief event function for sink pad 231 : */ 232 : static gboolean - 233 114 : gst_join_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) + 233 113 : gst_join_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) 234 : { - 235 114 : gboolean res = TRUE; + 235 113 : gboolean res = TRUE; 236 : gboolean forward; 237 : GstJoin *sel; 238 : GstJoinPad *selpad; 239 : GstPad *active_sinkpad; 240 : - 241 114 : sel = GST_JOIN (parent); - 242 114 : selpad = GST_JOIN_PAD_CAST (pad); - 243 114 : GST_DEBUG_OBJECT (selpad, "received event %" GST_PTR_FORMAT, event); + 241 113 : sel = GST_JOIN (parent); + 242 113 : selpad = GST_JOIN_PAD_CAST (pad); + 243 113 : GST_DEBUG_OBJECT (selpad, "received event %" GST_PTR_FORMAT, event); 244 : - 245 114 : GST_JOIN_LOCK (sel); + 245 113 : GST_JOIN_LOCK (sel); 246 : - 247 114 : active_sinkpad = gst_join_get_active_sinkpad (sel); + 247 113 : active_sinkpad = gst_join_get_active_sinkpad (sel); 248 : 249 : /* only forward if we are dealing with the active sinkpad */ - 250 114 : forward = (pad == active_sinkpad); + 250 113 : forward = (pad == active_sinkpad); 251 : - 252 114 : switch (GST_EVENT_TYPE (event)) { + 252 113 : switch (GST_EVENT_TYPE (event)) { 253 34 : case GST_EVENT_CAPS: 254 : { 255 : GstCaps *prev_caps, *new_caps; @@ -319,16 +319,16 @@ 257 34 : if (!(prev_caps = gst_pad_get_current_caps (active_sinkpad))) 258 34 : break; 259 : - 260 19 : gst_event_parse_caps (event, &new_caps); + 260 17 : gst_event_parse_caps (event, &new_caps); 261 : - 262 19 : if (!gst_caps_is_equal (prev_caps, new_caps)) { + 262 17 : if (!gst_caps_is_equal (prev_caps, new_caps)) { 263 3 : GST_ERROR_OBJECT (sel, "Capabilities of the sinks should be the same."); 264 3 : res = FALSE; 265 : } 266 : - 267 19 : gst_caps_unref (prev_caps); + 267 17 : gst_caps_unref (prev_caps); 268 : - 269 19 : break; + 269 17 : break; 270 : } 271 26 : case GST_EVENT_STREAM_START:{ 272 26 : if (!gst_event_parse_group_id (event, &selpad->group_id)) { @@ -346,19 +346,19 @@ 284 : &selpad->segment); 285 31 : break; 286 : } - 287 23 : default: - 288 23 : break; + 287 22 : default: + 288 22 : break; 289 : } - 290 114 : GST_JOIN_UNLOCK (sel); + 290 113 : GST_JOIN_UNLOCK (sel); 291 : - 292 114 : if (forward) { - 293 35 : GST_DEBUG_OBJECT (pad, "forwarding event"); - 294 35 : res = gst_pad_push_event (sel->srcpad, event); + 292 113 : if (forward) { + 293 33 : GST_DEBUG_OBJECT (pad, "forwarding event"); + 294 33 : res = gst_pad_push_event (sel->srcpad, event); 295 : } else { - 296 79 : gst_event_unref (event); + 296 80 : gst_event_unref (event); 297 : } 298 : - 299 113 : return res; + 299 112 : return res; 300 : } 301 : 302 : /** @@ -366,13 +366,13 @@ 304 : * @return TRUE if the query was performed successfully. 305 : */ 306 : static gboolean - 307 586 : gst_join_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) + 307 567 : gst_join_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) 308 : { - 309 586 : gboolean res = FALSE; - 310 586 : GstJoin *self = (GstJoin *) parent; + 309 567 : gboolean res = FALSE; + 310 567 : GstJoin *self = (GstJoin *) parent; 311 : - 312 586 : switch (GST_QUERY_TYPE (query)) { - 313 527 : case GST_QUERY_CAPS: + 312 567 : switch (GST_QUERY_TYPE (query)) { + 313 507 : case GST_QUERY_CAPS: 314 : case GST_QUERY_POSITION: 315 : case GST_QUERY_DURATION: 316 : case GST_QUERY_CONTEXT: @@ -380,8 +380,8 @@ 318 : * always proxy caps/position/duration/context queries, regardless of active pad or not 319 : * See https://bugzilla.gnome.org/show_bug.cgi?id=775445 320 : */ - 321 527 : res = gst_pad_peer_query (self->srcpad, query); - 322 527 : break; + 321 507 : res = gst_pad_peer_query (self->srcpad, query); + 322 507 : break; 323 4 : case GST_QUERY_ALLOCATION:{ 324 : GstPad *active_sinkpad; 325 4 : GstJoin *sel = GST_JOIN (parent); @@ -404,12 +404,12 @@ 342 : } 343 : /* fall through */ 344 : default: - 345 58 : res = gst_pad_query_default (pad, parent, query); - 346 58 : break; + 345 59 : res = gst_pad_query_default (pad, parent, query); + 346 59 : break; 347 : } 348 : - 349 586 : done: - 350 586 : return res; + 349 567 : done: + 350 567 : return res; 351 : } 352 : 353 : /** @@ -438,7 +438,7 @@ 376 139 : sel->active_sinkpad ? gst_object_ref (sel->active_sinkpad) : NULL; 377 : 378 139 : if (sel->active_sinkpad != pad) { - 379 126 : gst_join_set_active_pad (sel, pad); + 379 125 : gst_join_set_active_pad (sel, pad); 380 : } 381 139 : active_sinkpad = pad; 382 : @@ -449,7 +449,7 @@ 387 137 : GST_LOG_OBJECT (pad, "received start time %" GST_TIME_FORMAT, 388 : GST_TIME_ARGS (start_time)); 389 137 : if (GST_BUFFER_DURATION_IS_VALID (buf)) - 390 124 : GST_LOG_OBJECT (pad, "received end time %" GST_TIME_FORMAT, + 390 125 : GST_LOG_OBJECT (pad, "received end time %" GST_TIME_FORMAT, 391 : GST_TIME_ARGS (start_time + GST_BUFFER_DURATION (buf))); 392 : 393 137 : GST_OBJECT_LOCK (pad); @@ -461,7 +461,7 @@ 399 : 400 : /* if we have a pending events, push them now */ 401 139 : if (G_UNLIKELY (prev_active_sinkpad != active_sinkpad)) { - 402 126 : gst_pad_sticky_events_foreach (GST_PAD_CAST (selpad), forward_sticky_events, + 402 125 : gst_pad_sticky_events_foreach (GST_PAD_CAST (selpad), forward_sticky_events, 403 : sel); 404 : } 405 : @@ -488,7 +488,7 @@ 426 : GstPadTemplate * templ, const gchar * unused, const GstCaps * caps); 427 : 428 : #define gst_join_parent_class parent_class - 429 898 : G_DEFINE_TYPE_WITH_CODE (GstJoin, gst_join, GST_TYPE_ELEMENT, + 429 894 : G_DEFINE_TYPE_WITH_CODE (GstJoin, gst_join, GST_TYPE_ELEMENT, 430 : GST_DEBUG_CATEGORY_INIT (join_debug, 431 : "join", 0, "An input stream join element")); 432 : @@ -584,40 +584,40 @@ 522 : * @note this function must be called with the JOIN_LOCK. 523 : */ 524 : static gboolean - 525 126 : gst_join_set_active_pad (GstJoin * self, GstPad * pad) + 525 125 : gst_join_set_active_pad (GstJoin * self, GstPad * pad) 526 : { 527 : GstJoinPad *old, *new; 528 : GstPad **active_pad_p; 529 : - 530 126 : if (pad == self->active_sinkpad) + 530 125 : if (pad == self->active_sinkpad) 531 0 : return FALSE; 532 : 533 : /* guard against users setting a src pad or foreign pad as active pad */ - 534 126 : if (pad != NULL) { - 535 126 : g_return_val_if_fail (GST_PAD_IS_SINK (pad), FALSE); - 536 126 : g_return_val_if_fail (GST_IS_JOIN_PAD (pad), FALSE); - 537 126 : g_return_val_if_fail (GST_PAD_PARENT (pad) == GST_ELEMENT_CAST (self), + 534 125 : if (pad != NULL) { + 535 125 : g_return_val_if_fail (GST_PAD_IS_SINK (pad), FALSE); + 536 125 : g_return_val_if_fail (GST_IS_JOIN_PAD (pad), FALSE); + 537 125 : g_return_val_if_fail (GST_PAD_PARENT (pad) == GST_ELEMENT_CAST (self), 538 : FALSE); 539 : } 540 : - 541 126 : old = GST_JOIN_PAD_CAST (self->active_sinkpad); - 542 126 : new = GST_JOIN_PAD_CAST (pad); + 541 125 : old = GST_JOIN_PAD_CAST (self->active_sinkpad); + 542 125 : new = GST_JOIN_PAD_CAST (pad); 543 : - 544 126 : GST_DEBUG_OBJECT (self, "setting active pad to %s:%s", + 544 125 : GST_DEBUG_OBJECT (self, "setting active pad to %s:%s", 545 : GST_DEBUG_PAD_NAME (new)); 546 : - 547 126 : active_pad_p = &self->active_sinkpad; - 548 126 : gst_object_replace ((GstObject **) active_pad_p, GST_OBJECT_CAST (pad)); + 547 125 : active_pad_p = &self->active_sinkpad; + 548 125 : gst_object_replace ((GstObject **) active_pad_p, GST_OBJECT_CAST (pad)); 549 : - 550 126 : if (old && old != new) - 551 126 : gst_pad_push_event (GST_PAD_CAST (old), gst_event_new_reconfigure ()); - 552 126 : if (new) - 553 126 : gst_pad_push_event (GST_PAD_CAST (new), gst_event_new_reconfigure ()); + 550 125 : if (old && old != new) + 551 125 : gst_pad_push_event (GST_PAD_CAST (old), gst_event_new_reconfigure ()); + 552 125 : if (new) + 553 125 : gst_pad_push_event (GST_PAD_CAST (new), gst_event_new_reconfigure ()); 554 : - 555 126 : GST_DEBUG_OBJECT (self, "New active pad is %" GST_PTR_FORMAT, + 555 125 : GST_DEBUG_OBJECT (self, "New active pad is %" GST_PTR_FORMAT, 556 : self->active_sinkpad); 557 : - 558 126 : return TRUE; + 558 125 : return TRUE; 559 : } 560 : 561 : /** @@ -656,11 +656,11 @@ 594 : 595 141 : GST_JOIN_LOCK (sel); 596 141 : if (pad == sel->srcpad) - 597 83 : otherpad = sel->active_sinkpad; - 598 58 : else if (pad == sel->active_sinkpad || !strict) + 597 82 : otherpad = sel->active_sinkpad; + 598 59 : else if (pad == sel->active_sinkpad || !strict) 599 11 : otherpad = sel->srcpad; 600 141 : if (otherpad) - 601 35 : gst_object_ref (otherpad); + 601 34 : gst_object_ref (otherpad); 602 141 : GST_JOIN_UNLOCK (sel); 603 : 604 141 : return otherpad; @@ -671,12 +671,12 @@ 609 : * @note must be called with JOIN_LOCK. 610 : */ 611 : static GstPad * - 612 118 : gst_join_get_active_sinkpad (GstJoin * sel) + 612 117 : gst_join_get_active_sinkpad (GstJoin * sel) 613 : { 614 : GstPad *active_sinkpad; 615 : - 616 118 : active_sinkpad = sel->active_sinkpad; - 617 118 : if (active_sinkpad == NULL) { + 616 117 : active_sinkpad = sel->active_sinkpad; + 617 117 : if (active_sinkpad == NULL) { 618 12 : GValue item = G_VALUE_INIT; 619 12 : GstIterator *iter = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (sel)); 620 : GstIteratorResult ires; @@ -698,7 +698,7 @@ 636 12 : gst_iterator_free (iter); 637 : } 638 : - 639 118 : return active_sinkpad; + 639 117 : return active_sinkpad; 640 : } 641 : 642 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/join/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/join/index-sort-f.html index 2ba66f747..689355752 100644 --- a/testresult/nnstreamer-2.4.2/gst/join/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/join/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/join + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/join @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 94.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/join/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/join/index-sort-l.html index dbfa95252..29dc3d5d0 100644 --- a/testresult/nnstreamer-2.4.2/gst/join/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/join/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/join + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/join @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 94.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/join/index.html b/testresult/nnstreamer-2.4.2/gst/join/index.html index 4ffa56849..a11595e0d 100644 --- a/testresult/nnstreamer-2.4.2/gst/join/index.html +++ b/testresult/nnstreamer-2.4.2/gst/join/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/join + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/join @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 94.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/mqtt/index-sort-f.html index d9e88c546..de0ed4610 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 90.9 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/mqtt/index-sort-l.html index eb94d2172..b32fd3082 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 90.9 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/index.html b/testresult/nnstreamer-2.4.2/gst/mqtt/index.html index 2608a8bab..4e44dbe2a 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/index.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 90.9 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.func-c.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.func-c.html index 5b6fa9e89..abe10713a 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttcommon.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttcommon.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.func.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.func.html index 19c058ced..62dcc1a56 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.func.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttcommon.h - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttcommon.h - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.gcov.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.gcov.html index faa86cdc6..be05d7cb3 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttcommon.h.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttcommon.h + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttcommon.h @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.func-c.html index 67117c905..d72eae3d5 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttelements.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttelements.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 71.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.func.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.func.html index 39f4acca1..37a2b17a9 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttelements.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttelements.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 71.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.gcov.html index 244f77bc6..d4e2a4e33 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttelements.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttelements.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttelements.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 71.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.func-c.html index 27dde6744..de15d268a 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttsink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttsink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 90.6 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.func.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.func.html index 981a7ada4..0c05f91b7 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttsink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttsink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 90.6 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.gcov.html index 59e5e6457..cdcad04e3 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsink.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttsink.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttsink.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 90.6 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.func-c.html index b5f865d95..a7fa0c093 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttsrc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttsrc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.1 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.func.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.func.html index b6d767e7d..c7052d58e 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttsrc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttsrc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.1 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.gcov.html index 154ab10c7..bc3a0e1e3 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/mqttsrc.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/mqttsrc.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/mqttsrc.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.1 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.func-c.html index 9d718de0b..a62d3d36a 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/ntputil.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/ntputil.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 92.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 50.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.func.html b/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.func.html index 6b8376cbf..effe87e41 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/ntputil.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/ntputil.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 92.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 50.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.gcov.html index 51d7778f1..5d3390248 100644 --- a/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/mqtt/ntputil.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/mqtt/ntputil.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/mqtt/ntputil.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 92.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 50.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.func-c.html index b3967adee..c6763b4fa 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.func.html index 1d6a826c7..67dd751dd 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.gcov.html index 15d3530fb..9d439d166 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_aggregator.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.func-c.html index d645bf473..3ddd30042 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 85.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 97.6 % @@ -149,7 +149,7 @@ _gst_tensor_converter_chain_flex_tensor - 220 + 219 @@ -268,7 +268,7 @@ gst_tensor_converter_get_possible_media_caps - 4206 + 4184 @@ -282,56 +282,56 @@ gst_tensor_converter_src_query - 5930 + 5925 gst_tensor_converter_sink_query - 6863 + 6833 gst_tensor_converter_query_caps - 7622 + 7600 _gst_tensor_converter_chain_push - 33799 + 33833 _gst_tensor_converter_chain_segment - 33808 + 33842 _gst_tensor_converter_chain_timestamp - 33808 + 33842 gst_tensor_converter_chain - 33810 + 33844 gst_tensor_converter_get_type - 57463 + 57462 @@ -352,7 +352,7 @@ gst_tensor_converter_get_type - 56575 + 56574 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.func.html index bfff93e9e..c0b7f092c 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 85.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 97.6 % @@ -72,7 +72,7 @@ _gst_tensor_converter_chain_flex_tensor - 220 + 219 @@ -86,21 +86,21 @@ _gst_tensor_converter_chain_push - 33799 + 33833 _gst_tensor_converter_chain_segment - 33808 + 33842 _gst_tensor_converter_chain_timestamp - 33808 + 33842 @@ -114,7 +114,7 @@ gst_tensor_converter_chain - 33810 + 33844 @@ -156,7 +156,7 @@ gst_tensor_converter_get_possible_media_caps - 4206 + 4184 @@ -170,7 +170,7 @@ gst_tensor_converter_get_type - 57463 + 57462 @@ -184,7 +184,7 @@ gst_tensor_converter_get_type - 56575 + 56574 @@ -254,7 +254,7 @@ gst_tensor_converter_query_caps - 7622 + 7600 @@ -282,14 +282,14 @@ gst_tensor_converter_sink_query - 6863 + 6833 gst_tensor_converter_src_query - 5930 + 5925 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.gcov.html index bb2f57b9b..d0e08ed73 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_converter.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 85.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 97.6 % @@ -204,7 +204,7 @@ 142 : #define DEFAULT_FRAMES_PER_TENSOR 1 143 : 144 : #define gst_tensor_converter_parent_class parent_class - 145 57463 : G_DEFINE_TYPE (GstTensorConverter, gst_tensor_converter, GST_TYPE_ELEMENT); + 145 57462 : G_DEFINE_TYPE (GstTensorConverter, gst_tensor_converter, GST_TYPE_ELEMENT); 146 : 147 : static void gst_tensor_converter_finalize (GObject * object); 148 : static void gst_tensor_converter_set_property (GObject * object, @@ -713,52 +713,52 @@ 651 : * @brief This function handles sink pad query. 652 : */ 653 : static gboolean - 654 6863 : gst_tensor_converter_sink_query (GstPad * pad, GstObject * parent, + 654 6833 : gst_tensor_converter_sink_query (GstPad * pad, GstObject * parent, 655 : GstQuery * query) 656 : { 657 : GstTensorConverter *self; 658 : - 659 6863 : self = GST_TENSOR_CONVERTER (parent); - 660 6863 : GST_DEBUG_OBJECT (self, "Received %s query: %" GST_PTR_FORMAT, + 659 6833 : self = GST_TENSOR_CONVERTER (parent); + 660 6833 : GST_DEBUG_OBJECT (self, "Received %s query: %" GST_PTR_FORMAT, 661 : GST_QUERY_TYPE_NAME (query), query); 662 : - 663 6863 : switch (GST_QUERY_TYPE (query)) { - 664 4206 : case GST_QUERY_CAPS: + 663 6833 : switch (GST_QUERY_TYPE (query)) { + 664 4184 : case GST_QUERY_CAPS: 665 : { 666 : GstCaps *caps; 667 : GstCaps *filter; 668 : - 669 4206 : gst_query_parse_caps (query, &filter); - 670 4206 : caps = gst_tensor_converter_query_caps (self, pad, filter); + 669 4184 : gst_query_parse_caps (query, &filter); + 670 4184 : caps = gst_tensor_converter_query_caps (self, pad, filter); 671 : - 672 4206 : gst_query_set_caps_result (query, caps); - 673 4206 : gst_caps_unref (caps); - 674 4206 : return TRUE; + 672 4184 : gst_query_set_caps_result (query, caps); + 673 4184 : gst_caps_unref (caps); + 674 4184 : return TRUE; 675 : } - 676 1679 : case GST_QUERY_ACCEPT_CAPS: + 676 1673 : case GST_QUERY_ACCEPT_CAPS: 677 : { 678 : GstCaps *caps; 679 : GstCaps *template_caps; - 680 1679 : gboolean res = FALSE; + 680 1673 : gboolean res = FALSE; 681 : - 682 1679 : gst_query_parse_accept_caps (query, &caps); - 683 1679 : silent_debug_caps (self, caps, "accept-caps"); + 682 1673 : gst_query_parse_accept_caps (query, &caps); + 683 1673 : silent_debug_caps (self, caps, "accept-caps"); 684 : - 685 1679 : if (gst_caps_is_fixed (caps)) { - 686 1679 : template_caps = gst_pad_get_pad_template_caps (pad); + 685 1673 : if (gst_caps_is_fixed (caps)) { + 686 1673 : template_caps = gst_pad_get_pad_template_caps (pad); 687 : - 688 1679 : res = gst_caps_can_intersect (template_caps, caps); - 689 1679 : gst_caps_unref (template_caps); + 688 1673 : res = gst_caps_can_intersect (template_caps, caps); + 689 1673 : gst_caps_unref (template_caps); 690 : } 691 : - 692 1679 : gst_query_set_accept_caps_result (query, res); - 693 1679 : return TRUE; + 692 1673 : gst_query_set_accept_caps_result (query, res); + 693 1673 : return TRUE; 694 : } - 695 978 : default: - 696 978 : break; + 695 976 : default: + 696 976 : break; 697 : } 698 : - 699 978 : return gst_pad_query_default (pad, parent, query); + 699 976 : return gst_pad_query_default (pad, parent, query); 700 : } 701 : 702 : /** @@ -781,17 +781,17 @@ 719 : * @brief This function handles src pad query. 720 : */ 721 : static gboolean - 722 5930 : gst_tensor_converter_src_query (GstPad * pad, GstObject * parent, + 722 5925 : gst_tensor_converter_src_query (GstPad * pad, GstObject * parent, 723 : GstQuery * query) 724 : { 725 : GstTensorConverter *self; 726 : - 727 5930 : self = GST_TENSOR_CONVERTER (parent); + 727 5925 : self = GST_TENSOR_CONVERTER (parent); 728 : - 729 5930 : GST_DEBUG_OBJECT (self, "Received %s query: %" GST_PTR_FORMAT, + 729 5925 : GST_DEBUG_OBJECT (self, "Received %s query: %" GST_PTR_FORMAT, 730 : GST_QUERY_TYPE_NAME (query), query); 731 : - 732 5930 : switch (GST_QUERY_TYPE (query)) { + 732 5925 : switch (GST_QUERY_TYPE (query)) { 733 3416 : case GST_QUERY_CAPS: 734 : { 735 : GstCaps *caps; @@ -804,19 +804,19 @@ 742 3416 : gst_caps_unref (caps); 743 3416 : return TRUE; 744 : } - 745 2514 : default: - 746 2514 : break; + 745 2509 : default: + 746 2509 : break; 747 : } 748 : - 749 2514 : return gst_pad_query_default (pad, parent, query); + 749 2509 : return gst_pad_query_default (pad, parent, query); 750 : } 751 : 752 : /** @brief Chain function's private routine */ 753 : static void - 754 33808 : _gst_tensor_converter_chain_segment (GstTensorConverter * self, + 754 33842 : _gst_tensor_converter_chain_segment (GstTensorConverter * self, 755 : gsize frame_size) 756 : { - 757 33808 : if (self->need_segment) { + 757 33842 : if (self->need_segment) { 758 : GstTensorsConfig *config; 759 : GstSegment seg; 760 : guint64 start; @@ -842,25 +842,25 @@ 780 : 781 100 : gst_pad_push_event (self->srcpad, gst_event_new_segment (&seg)); 782 : } - 783 33808 : } + 783 33842 : } 784 : 785 : /** @brief Chain function's private routine */ 786 : static void - 787 33808 : _gst_tensor_converter_chain_timestamp (GstTensorConverter * self, + 787 33842 : _gst_tensor_converter_chain_timestamp (GstTensorConverter * self, 788 : GstBuffer * inbuf, guint frames_in) 789 : { - 790 33808 : if (self->set_timestamp) { + 790 33842 : if (self->set_timestamp) { 791 : GstTensorsConfig *config; 792 : GstClockTime pts, duration; 793 : gboolean have_framerate; 794 : - 795 33788 : config = &self->tensors_config; - 796 33788 : have_framerate = (config->rate_n > 0 && config->rate_d > 0); + 795 33822 : config = &self->tensors_config; + 796 33822 : have_framerate = (config->rate_n > 0 && config->rate_d > 0); 797 : 798 : /* set duration */ - 799 33788 : duration = GST_BUFFER_DURATION (inbuf); + 799 33822 : duration = GST_BUFFER_DURATION (inbuf); 800 : - 801 33788 : if (!GST_CLOCK_TIME_IS_VALID (duration)) { + 801 33822 : if (!GST_CLOCK_TIME_IS_VALID (duration)) { 802 371 : if (have_framerate) { 803 : duration = 804 78 : gst_util_uint64_scale_int ((guint64) frames_in * config->rate_d, @@ -871,9 +871,9 @@ 809 : } 810 : 811 : /* set timestamp if buffer has invalid timestamp */ - 812 33788 : pts = GST_BUFFER_TIMESTAMP (inbuf); + 812 33822 : pts = GST_BUFFER_TIMESTAMP (inbuf); 813 : - 814 33788 : if (!GST_CLOCK_TIME_IS_VALID (pts)) { + 814 33822 : if (!GST_CLOCK_TIME_IS_VALID (pts)) { 815 194 : pts = self->segment.start; 816 : 817 194 : if (have_framerate) { @@ -901,8 +901,8 @@ 839 : } 840 : 841 : /* update old timestamp */ - 842 33808 : self->old_timestamp = GST_BUFFER_TIMESTAMP (inbuf); - 843 33808 : } + 842 33842 : self->old_timestamp = GST_BUFFER_TIMESTAMP (inbuf); + 843 33842 : } 844 : 845 : /** @brief Chain function's private routine to process octet stream */ 846 : static GstBuffer * @@ -952,7 +952,7 @@ 890 : 891 : /** @brief Chain function's private routine to process flex tensor */ 892 : static GstBuffer * - 893 220 : _gst_tensor_converter_chain_flex_tensor (GstTensorConverter * self, + 893 219 : _gst_tensor_converter_chain_flex_tensor (GstTensorConverter * self, 894 : GstBuffer * buf) 895 : { 896 : GstBuffer *buffer; @@ -962,58 +962,58 @@ 900 : GstTensorMetaInfo meta; 901 : guint i; 902 : - 903 220 : info = &self->tensors_config.info; - 904 220 : buffer = gst_buffer_new (); + 903 219 : info = &self->tensors_config.info; + 904 219 : buffer = gst_buffer_new (); 905 : - 906 445 : for (i = 0; i < info->num_tensors; i++) { - 907 225 : _info = gst_tensors_info_get_nth_info (info, i); - 908 225 : gst_tensor_info_convert_to_meta (_info, &meta); + 906 443 : for (i = 0; i < info->num_tensors; i++) { + 907 224 : _info = gst_tensors_info_get_nth_info (info, i); + 908 224 : gst_tensor_info_convert_to_meta (_info, &meta); 909 : 910 : /* set media type */ - 911 225 : switch (self->in_media_type) { - 912 225 : case _NNS_VIDEO: + 911 224 : switch (self->in_media_type) { + 912 224 : case _NNS_VIDEO: 913 : case _NNS_AUDIO: 914 : case _NNS_TEXT: 915 : case _NNS_OCTET: - 916 225 : meta.media_type = self->in_media_type; - 917 225 : break; + 916 224 : meta.media_type = self->in_media_type; + 917 224 : break; 918 0 : default: 919 : /* default output type is tensor */ 920 0 : meta.media_type = _NNS_TENSOR; 921 0 : break; 922 : } 923 : - 924 225 : mem = gst_tensor_buffer_get_nth_memory (buf, i); - 925 225 : new_mem = gst_tensor_meta_info_append_header (&meta, mem); - 926 225 : gst_memory_unref (mem); + 924 224 : mem = gst_tensor_buffer_get_nth_memory (buf, i); + 925 224 : new_mem = gst_tensor_meta_info_append_header (&meta, mem); + 926 224 : gst_memory_unref (mem); 927 : - 928 225 : gst_tensor_buffer_append_memory (buffer, new_mem, _info); + 928 224 : gst_tensor_buffer_append_memory (buffer, new_mem, _info); 929 : } 930 : - 931 220 : gst_buffer_copy_into (buffer, buf, GST_BUFFER_COPY_METADATA, 0, -1); - 932 220 : gst_buffer_unref (buf); - 933 220 : return buffer; + 931 219 : gst_buffer_copy_into (buffer, buf, GST_BUFFER_COPY_METADATA, 0, -1); + 932 219 : gst_buffer_unref (buf); + 933 219 : return buffer; 934 : } 935 : 936 : /** @brief Chain function's private routine to push buffer into src pad */ 937 : static GstFlowReturn - 938 33799 : _gst_tensor_converter_chain_push (GstTensorConverter * self, GstBuffer * buf) + 938 33833 : _gst_tensor_converter_chain_push (GstTensorConverter * self, GstBuffer * buf) 939 : { - 940 33799 : GstBuffer *buffer = buf; + 940 33833 : GstBuffer *buffer = buf; 941 : - 942 33799 : if (self->in_media_type == _NNS_OCTET) { + 942 33833 : if (self->in_media_type == _NNS_OCTET) { 943 : /* configure multi tensors */ 944 234 : buffer = _gst_tensor_converter_chain_octet (self, buffer); 945 : } 946 : 947 : /* if output is flexible, add header. */ - 948 33799 : if (!self->do_not_append_header - 949 33781 : && gst_tensor_pad_caps_is_flexible (self->srcpad)) { - 950 220 : buffer = _gst_tensor_converter_chain_flex_tensor (self, buffer); + 948 33833 : if (!self->do_not_append_header + 949 33815 : && gst_tensor_pad_caps_is_flexible (self->srcpad)) { + 950 219 : buffer = _gst_tensor_converter_chain_flex_tensor (self, buffer); 951 : } 952 : - 953 33799 : silent_debug_timestamp (self, buffer); - 954 33799 : return gst_pad_push (self->srcpad, buffer); + 953 33833 : silent_debug_timestamp (self, buffer); + 954 33833 : return gst_pad_push (self->srcpad, buffer); 955 : } 956 : 957 : /** @brief Chain function's private routine to push multiple buffers */ @@ -1087,7 +1087,7 @@ 1025 : * @brief Chain function, this function does the actual processing. 1026 : */ 1027 : static GstFlowReturn - 1028 33810 : gst_tensor_converter_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) + 1028 33844 : gst_tensor_converter_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) 1029 : { 1030 : GstTensorConverter *self; 1031 : GstTensorsConfig *config; @@ -1098,44 +1098,44 @@ 1036 : guint frames_in, frames_out; 1037 : UNUSED (pad); 1038 : - 1039 33810 : buf_size = gst_buffer_get_size (buf); - 1040 67618 : g_return_val_if_fail (buf_size > 0, GST_FLOW_ERROR); + 1039 33844 : buf_size = gst_buffer_get_size (buf); + 1040 67686 : g_return_val_if_fail (buf_size > 0, GST_FLOW_ERROR); 1041 : - 1042 33810 : self = GST_TENSOR_CONVERTER (parent); + 1042 33844 : self = GST_TENSOR_CONVERTER (parent); 1043 : 1044 : /** This is an internal logic error. */ - 1045 33810 : g_assert (self->tensors_configured); - 1046 33810 : config = &self->tensors_config; - 1047 33810 : gst_tensors_config_init (&new_config); + 1045 33844 : g_assert (self->tensors_configured); + 1046 33844 : config = &self->tensors_config; + 1047 33844 : gst_tensors_config_init (&new_config); 1048 : - 1049 33810 : frames_out = self->frames_per_tensor; - 1050 33810 : inbuf = buf; + 1049 33844 : frames_out = self->frames_per_tensor; + 1050 33844 : inbuf = buf; 1051 : 1052 : /** 1053 : * Supposed 1 frame in buffer (default). 1054 : * Update frame size for each media type. 1055 : */ - 1056 33810 : frame_size = self->frame_size; - 1057 33810 : frames_in = 1; + 1056 33844 : frame_size = self->frame_size; + 1057 33844 : frames_in = 1; 1058 : - 1059 33810 : switch (self->in_media_type) { - 1060 33192 : case _NNS_VIDEO: + 1059 33844 : switch (self->in_media_type) { + 1060 33225 : case _NNS_VIDEO: 1061 : { 1062 : guint color, width, height; 1063 : gsize type; 1064 : - 1065 33192 : color = config->info.info[0].dimension[0]; - 1066 33192 : width = config->info.info[0].dimension[1]; - 1067 33192 : height = config->info.info[0].dimension[2]; - 1068 33192 : type = gst_tensor_get_element_size (config->info.info[0].type); + 1065 33225 : color = config->info.info[0].dimension[0]; + 1066 33225 : width = config->info.info[0].dimension[1]; + 1067 33225 : height = config->info.info[0].dimension[2]; + 1068 33225 : type = gst_tensor_get_element_size (config->info.info[0].type); 1069 : 1070 : /** type * colorspace * width * height */ - 1071 33192 : frame_size = type * color * width * height; + 1071 33225 : frame_size = type * color * width * height; 1072 : 1073 : /** supposed 1 frame in buffer */ - 1074 33192 : g_assert ((buf_size / self->frame_size) == 1); + 1074 33225 : g_assert ((buf_size / self->frame_size) == 1); 1075 : - 1076 33192 : if (self->remove_padding) { + 1076 33225 : if (self->remove_padding) { 1077 : GstMapInfo src_info, dest_info; 1078 : guint d0, d1; 1079 110 : unsigned int src_idx = 0, dest_idx = 0; @@ -1181,7 +1181,7 @@ 1119 : /** copy timestamps */ 1120 110 : gst_buffer_copy_into (inbuf, buf, GST_BUFFER_COPY_METADATA, 0, -1); 1121 : } - 1122 33192 : break; + 1122 33225 : break; 1123 : } 1124 134 : case _NNS_AUDIO: 1125 : /* number of bytes for one frame */ @@ -1297,9 +1297,9 @@ 1235 : } 1236 7 : break; 1237 : } - 1238 233 : case _NNS_MEDIA_ANY: + 1238 234 : case _NNS_MEDIA_ANY: 1239 : { - 1240 233 : if (self->mode == _CONVERTER_MODE_CUSTOM_CODE) { + 1240 234 : if (self->mode == _CONVERTER_MODE_CUSTOM_CODE) { 1241 1 : if (self->custom.func == NULL) { 1242 0 : nns_loge 1243 : ("Tensor converter is in custom/code mode (mode=custom-code:${funcname}), where a user code as a callback function is required. However, the required information to configure the tensor converter is not given or incorrectly given. For detail, please refer to https://github.com/nnstreamer/nnstreamer/blob/main/gst/nnstreamer/elements/gsttensor_converter.md#custom-converter. The given ${funcname} is \"%s\", which is an invalid/unregistered name.", @@ -1314,12 +1314,12 @@ 1252 : self->mode_option); 1253 0 : goto error; 1254 : } - 1255 232 : } else if (self->externalConverter && self->externalConverter->convert) { + 1255 233 : } else if (self->externalConverter && self->externalConverter->convert) { 1256 : inbuf = - 1257 232 : self->externalConverter->convert (buf, &new_config, + 1257 233 : self->externalConverter->convert (buf, &new_config, 1258 : self->priv_data); 1259 : - 1260 232 : if (inbuf == NULL) { + 1260 233 : if (inbuf == NULL) { 1261 0 : nns_loge 1262 : ("Failed to convert input streams to tensors: the converted result of the incoming buffer is NULL. The converter is using external tensor_converter subplugin (%s), which is available and loaded, but has returned NULL buffer after the conversion.", 1263 : self->externalConverter->name); @@ -1337,22 +1337,22 @@ 1275 : "Tensor converter has an undefined behavior with type _NNS_MEDIA_ANY. It should've been custom-code or custom-script mode or a corresponding external converter should've been registered (tensor_converter subplugin). However, nothing is available for the given input stream."); 1276 0 : goto error; 1277 : } - 1278 233 : self->do_not_append_header = - 1279 233 : (new_config.info.format == _NNS_TENSOR_FORMAT_FLEXIBLE); + 1278 234 : self->do_not_append_header = + 1279 234 : (new_config.info.format == _NNS_TENSOR_FORMAT_FLEXIBLE); 1280 : - 1281 233 : frames_in = 1; - 1282 233 : frame_size = gst_buffer_get_size (inbuf); + 1281 234 : frames_in = 1; + 1282 234 : frame_size = gst_buffer_get_size (inbuf); 1283 : - 1284 233 : if (!gst_tensors_config_is_equal (config, &new_config)) { + 1284 234 : if (!gst_tensors_config_is_equal (config, &new_config)) { 1285 72 : gst_tensors_config_free (config); 1286 72 : *config = new_config; 1287 : 1288 72 : gst_tensor_converter_update_caps (self); 1289 : } else { - 1290 161 : gst_tensors_config_free (&new_config); + 1290 162 : gst_tensors_config_free (&new_config); 1291 : } 1292 : - 1293 233 : break; + 1293 234 : break; 1294 : } 1295 0 : case _NNS_MEDIA_INVALID: 1296 0 : GST_ERROR_OBJECT (self, @@ -1366,19 +1366,19 @@ 1304 0 : goto error; 1305 : } 1306 : - 1307 33808 : if (inbuf != buf) - 1308 370 : gst_buffer_unref (buf); + 1307 33842 : if (inbuf != buf) + 1308 371 : gst_buffer_unref (buf); 1309 : 1310 : /** convert format (bytes > time) and push segment event. 1311 : * It will push event if needed (self->need_segment is true). */ - 1312 33808 : _gst_tensor_converter_chain_segment (self, frame_size); + 1312 33842 : _gst_tensor_converter_chain_segment (self, frame_size); 1313 : 1314 : /** configures timestamp if required (self->set_timestamp is true) */ - 1315 33808 : _gst_tensor_converter_chain_timestamp (self, inbuf, frames_in); + 1315 33842 : _gst_tensor_converter_chain_timestamp (self, inbuf, frames_in); 1316 : - 1317 33808 : if (frames_in == frames_out) { + 1317 33842 : if (frames_in == frames_out) { 1318 : /** do nothing, push the incoming buffer */ - 1319 33687 : return _gst_tensor_converter_chain_push (self, inbuf); + 1319 33721 : return _gst_tensor_converter_chain_push (self, inbuf); 1320 : } 1321 : 1322 : /* push multiple buffers */ @@ -2031,39 +2031,39 @@ 1969 : * @brief Get possible media-caps from downstream element. 1970 : */ 1971 : static GstCaps * - 1972 4206 : gst_tensor_converter_get_possible_media_caps (GstTensorConverter * self) + 1972 4184 : gst_tensor_converter_get_possible_media_caps (GstTensorConverter * self) 1973 : { - 1974 4206 : GstCaps *media_caps = NULL; + 1974 4184 : GstCaps *media_caps = NULL; 1975 : GstTensorsConfig config; 1976 : 1977 : /* get possible caps from downstream element */ - 1978 4206 : if (gst_tensors_config_from_peer (self->srcpad, &config, NULL)) { + 1978 4184 : if (gst_tensors_config_from_peer (self->srcpad, &config, NULL)) { 1979 : GstStructure *st; 1980 : guint i, caps_len; 1981 : media_type type; 1982 : 1983 : /* convert peer caps to possible media caps */ - 1984 2165 : media_caps = gst_pad_get_pad_template_caps (self->sinkpad); - 1985 2165 : media_caps = gst_caps_make_writable (media_caps); + 1984 2143 : media_caps = gst_pad_get_pad_template_caps (self->sinkpad); + 1985 2143 : media_caps = gst_caps_make_writable (media_caps); 1986 : - 1987 2165 : caps_len = gst_caps_get_size (media_caps); + 1987 2143 : caps_len = gst_caps_get_size (media_caps); 1988 : - 1989 21650 : for (i = 0; i < caps_len; ++i) { - 1990 19485 : st = gst_caps_get_structure (media_caps, i); - 1991 19485 : type = gst_structure_get_media_type (st); + 1989 21430 : for (i = 0; i < caps_len; ++i) { + 1990 19287 : st = gst_caps_get_structure (media_caps, i); + 1991 19287 : type = gst_structure_get_media_type (st); 1992 : - 1993 19485 : switch (type) { - 1994 2165 : case _NNS_VIDEO: + 1993 19287 : switch (type) { + 1994 2143 : case _NNS_VIDEO: 1995 : /* video caps from tensor info */ 1996 : if (is_video_supported (self)) { - 1997 2165 : GValue supported_formats = G_VALUE_INIT; + 1997 2143 : GValue supported_formats = G_VALUE_INIT; 1998 : gint colorspace, width, height; 1999 : - 2000 2165 : colorspace = config.info.info[0].dimension[0]; - 2001 2165 : width = config.info.info[0].dimension[1]; - 2002 2165 : height = config.info.info[0].dimension[2]; + 2000 2143 : colorspace = config.info.info[0].dimension[0]; + 2001 2143 : width = config.info.info[0].dimension[1]; + 2002 2143 : height = config.info.info[0].dimension[2]; 2003 : - 2004 2165 : switch (colorspace) { + 2004 2143 : switch (colorspace) { 2005 9 : case 1: 2006 9 : gst_tensor_converter_get_format_list (&supported_formats, 2007 : "GRAY8", "GRAY16_BE", "GRAY16_LE", NULL); @@ -2077,37 +2077,37 @@ 2015 : "RGBx", "BGRx", "xRGB", "xBGR", "RGBA", "BGRA", "ARGB", 2016 : "ABGR", NULL); 2017 0 : break; - 2018 1853 : default: + 2018 1831 : default: 2019 : /* unsupported format, set default video formats */ - 2020 1853 : break; + 2020 1831 : break; 2021 : } 2022 : - 2023 2165 : if (G_VALUE_TYPE (&supported_formats) == GST_TYPE_LIST && + 2023 2143 : if (G_VALUE_TYPE (&supported_formats) == GST_TYPE_LIST && 2024 312 : gst_value_list_get_size (&supported_formats) > 0) { 2025 312 : gst_structure_set_value (st, "format", &supported_formats); 2026 : } - 2027 2165 : g_value_unset (&supported_formats); + 2027 2143 : g_value_unset (&supported_formats); 2028 : - 2029 2165 : if (width > 0) { + 2029 2143 : if (width > 0) { 2030 317 : gst_structure_set (st, "width", G_TYPE_INT, width, NULL); 2031 : } 2032 : - 2033 2165 : if (height > 0) { + 2033 2143 : if (height > 0) { 2034 308 : gst_structure_set (st, "height", G_TYPE_INT, height, NULL); 2035 : } 2036 : - 2037 2165 : if (config.rate_n >= 0 && config.rate_d > 0) { - 2038 336 : gst_structure_set (st, "framerate", GST_TYPE_FRACTION, + 2037 2143 : if (config.rate_n >= 0 && config.rate_d > 0) { + 2038 310 : gst_structure_set (st, "framerate", GST_TYPE_FRACTION, 2039 : config.rate_n, config.rate_d, NULL); 2040 : } 2041 : 2042 : /* add new structure for NCHW formats */ 2043 : #if GST_CHECK_VERSION(1, 20, 0) - 2044 2165 : width = config.info.info[0].dimension[0]; - 2045 2165 : height = config.info.info[0].dimension[1]; - 2046 2165 : colorspace = config.info.info[0].dimension[2]; + 2044 2143 : width = config.info.info[0].dimension[0]; + 2045 2143 : height = config.info.info[0].dimension[1]; + 2046 2143 : colorspace = config.info.info[0].dimension[2]; 2047 : - 2048 2165 : if (colorspace == 3) { + 2048 2143 : if (colorspace == 3) { 2049 5 : GValue nchw_format = G_VALUE_INIT; 2050 5 : GstStructure *nchw_st = gst_structure_copy (st); 2051 : @@ -2131,11 +2131,11 @@ 2069 : } 2070 : #endif 2071 : } - 2072 2165 : break; - 2073 2165 : case _NNS_AUDIO: + 2072 2143 : break; + 2073 2143 : case _NNS_AUDIO: 2074 : /* audio caps from tensor info */ - 2075 2165 : if (is_audio_supported (self) - 2076 2165 : && config.info.info[0].type != _NNS_END) { + 2075 2143 : if (is_audio_supported (self) + 2076 2143 : && config.info.info[0].type != _NNS_END) { 2077 : gint ch, rate; 2078 : GstAudioFormat aformat; 2079 : @@ -2188,61 +2188,61 @@ 2126 : } 2127 : } 2128 : } - 2129 2165 : break; - 2130 15155 : default: + 2129 2143 : break; + 2130 15001 : default: 2131 : /* do nothing for text and octet stream */ - 2132 15155 : break; + 2132 15001 : break; 2133 : } 2134 : } 2135 : } 2136 : - 2137 4206 : return media_caps; + 2137 4184 : return media_caps; 2138 : } 2139 : 2140 : /** 2141 : * @brief Get pad caps for caps negotiation. 2142 : */ 2143 : static GstCaps * - 2144 7622 : gst_tensor_converter_query_caps (GstTensorConverter * self, GstPad * pad, + 2144 7600 : gst_tensor_converter_query_caps (GstTensorConverter * self, GstPad * pad, 2145 : GstCaps * filter) 2146 : { 2147 : GstCaps *caps; 2148 : - 2149 7622 : caps = gst_pad_get_current_caps (pad); - 2150 7622 : if (!caps) { + 2149 7600 : caps = gst_pad_get_current_caps (pad); + 2150 7600 : if (!caps) { 2151 7070 : caps = gst_pad_get_pad_template_caps (pad); 2152 : } 2153 : - 2154 7622 : if (pad == self->sinkpad) { + 2154 7600 : if (pad == self->sinkpad) { 2155 : GstCaps *media_caps; 2156 : - 2157 4206 : media_caps = gst_tensor_converter_get_possible_media_caps (self); - 2158 4206 : if (media_caps) { + 2157 4184 : media_caps = gst_tensor_converter_get_possible_media_caps (self); + 2158 4184 : if (media_caps) { 2159 : /* intersect with pad caps */ - 2160 2165 : GstCaps *tmp = gst_caps_intersect_full (media_caps, caps, + 2160 2143 : GstCaps *tmp = gst_caps_intersect_full (media_caps, caps, 2161 : GST_CAPS_INTERSECT_FIRST); - 2162 2165 : gst_caps_unref (caps); - 2163 2165 : caps = tmp; + 2162 2143 : gst_caps_unref (caps); + 2163 2143 : caps = tmp; 2164 : - 2165 2165 : gst_caps_unref (media_caps); + 2165 2143 : gst_caps_unref (media_caps); 2166 : } 2167 : } 2168 : - 2169 7622 : silent_debug_caps (self, caps, "caps"); - 2170 7622 : silent_debug_caps (self, filter, "filter"); + 2169 7600 : silent_debug_caps (self, caps, "caps"); + 2170 7600 : silent_debug_caps (self, filter, "filter"); 2171 : - 2172 7622 : if (filter) { + 2172 7600 : if (filter) { 2173 : GstCaps *intersection; 2174 : 2175 : intersection = - 2176 2201 : gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST); + 2176 2179 : gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST); 2177 : - 2178 2201 : gst_caps_unref (caps); - 2179 2201 : caps = intersection; + 2178 2179 : gst_caps_unref (caps); + 2179 2179 : caps = intersection; 2180 : } 2181 : - 2182 7622 : silent_debug_caps (self, caps, "result"); - 2183 7622 : return caps; + 2182 7600 : silent_debug_caps (self, caps, "result"); + 2183 7600 : return caps; 2184 : } 2185 : 2186 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.func-c.html index 3bbe2b70b..ffe75fde0 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.func.html index 2f8c76ae3..b8ade3242 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.gcov.html index af61cda3b..14e6acefb 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_crop.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.func-c.html index d101751c2..5f4e03985 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 35.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 46.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.func.html index 43444064f..9d1b63730 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 35.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 46.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.gcov.html index 81c3fe2f5..c61192ee8 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_debug.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 35.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 46.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.func-c.html index df138a2a4..1d1d43be4 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -156,14 +156,14 @@ gst_tensordec_transform_size - 372 + 373 gst_tensordec_transform - 389 + 390 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.func.html index de90c0db4..b3e75be39 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -177,7 +177,7 @@ gst_tensordec_transform - 389 + 390 @@ -191,7 +191,7 @@ gst_tensordec_transform_size - 372 + 373 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.gcov.html index 8721f93b4..87be1c975 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_decoder.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -755,36 +755,36 @@ 693 : * @brief non-ip transform. required vmethod for BaseTransform class. 694 : */ 695 : static GstFlowReturn - 696 389 : gst_tensordec_transform (GstBaseTransform * trans, + 696 390 : gst_tensordec_transform (GstBaseTransform * trans, 697 : GstBuffer * inbuf, GstBuffer * outbuf) 698 : { 699 : GstTensorDecoder *self; 700 : GstFlowReturn res; 701 : - 702 389 : self = GST_TENSOR_DECODER_CAST (trans); + 702 390 : self = GST_TENSOR_DECODER_CAST (trans); 703 : - 704 389 : if (G_UNLIKELY (!self->negotiated)) + 704 390 : if (G_UNLIKELY (!self->negotiated)) 705 0 : goto unknown_tensor; - 706 389 : if (G_UNLIKELY (!self->configured)) + 706 390 : if (G_UNLIKELY (!self->configured)) 707 0 : goto unknown_format; 708 : - 709 778 : if (self->decoder || self->is_custom) { + 709 780 : if (self->decoder || self->is_custom) { 710 : GstMemory *in_mem[NNS_TENSOR_SIZE_LIMIT]; 711 : GstMapInfo in_info[NNS_TENSOR_SIZE_LIMIT]; 712 : GstTensorMemory input[NNS_TENSOR_SIZE_LIMIT]; 713 : guint i, num_tensors, num_mems; 714 : - 715 389 : num_mems = gst_tensor_buffer_get_count (inbuf); - 716 389 : if (gst_tensors_config_is_flexible (&self->tensor_config)) { + 715 390 : num_mems = gst_tensor_buffer_get_count (inbuf); + 716 390 : if (gst_tensors_config_is_flexible (&self->tensor_config)) { 717 24 : self->tensor_config.info.num_tensors = num_mems; 718 : } - 719 389 : num_tensors = self->tensor_config.info.num_tensors; + 719 390 : num_tensors = self->tensor_config.info.num_tensors; 720 : /** Internal logic error. Negotiation process should prevent this! */ - 721 389 : g_assert (num_mems == num_tensors); + 721 390 : g_assert (num_mems == num_tensors); 722 : - 723 937 : for (i = 0; i < num_tensors; i++) { - 724 548 : in_mem[i] = gst_tensor_buffer_get_nth_memory (inbuf, i); - 725 548 : if (!gst_memory_map (in_mem[i], &in_info[i], GST_MAP_READ)) { + 723 939 : for (i = 0; i < num_tensors; i++) { + 724 549 : in_mem[i] = gst_tensor_buffer_get_nth_memory (inbuf, i); + 725 549 : if (!gst_memory_map (in_mem[i], &in_info[i], GST_MAP_READ)) { 726 : guint j; 727 0 : ml_logf ("Failed to map in_mem[%u].\n", i); 728 : @@ -796,11 +796,11 @@ 734 0 : return GST_FLOW_ERROR; 735 : } 736 : - 737 548 : input[i].data = in_info[i].data; - 738 548 : input[i].size = in_info[i].size; + 737 549 : input[i].data = in_info[i].data; + 738 549 : input[i].size = in_info[i].size; 739 : } - 740 389 : if (!self->is_custom) { - 741 388 : res = self->decoder->decode (&self->plugin_data, &self->tensor_config, + 740 390 : if (!self->is_custom) { + 741 389 : res = self->decoder->decode (&self->plugin_data, &self->tensor_config, 742 : input, outbuf); 743 1 : } else if (self->custom.func != NULL) { 744 1 : res = self->custom.func (input, &self->tensor_config, self->custom.data, @@ -810,16 +810,16 @@ 748 0 : res = GST_FLOW_ERROR; 749 : } 750 : - 751 937 : for (i = 0; i < num_tensors; i++) { - 752 548 : gst_memory_unmap (in_mem[i], &in_info[i]); - 753 548 : gst_memory_unref (in_mem[i]); + 751 939 : for (i = 0; i < num_tensors; i++) { + 752 549 : gst_memory_unmap (in_mem[i], &in_info[i]); + 753 549 : gst_memory_unref (in_mem[i]); 754 : } 755 : } else { 756 0 : GST_ERROR_OBJECT (self, "Decoder plugin not yet configured."); 757 0 : goto unknown_type; 758 : } 759 : - 760 389 : return res; + 760 390 : return res; 761 : 762 0 : unknown_format: 763 0 : GST_ERROR_OBJECT (self, "Hit unknown_format"); @@ -1004,26 +1004,26 @@ 942 : * This is called when non-ip mode is used. 943 : */ 944 : static gboolean - 945 372 : gst_tensordec_transform_size (GstBaseTransform * trans, + 945 373 : gst_tensordec_transform_size (GstBaseTransform * trans, 946 : GstPadDirection direction, GstCaps * caps, gsize size, 947 : GstCaps * othercaps, gsize * othersize) 948 : { 949 : GstTensorDecoder *self; 950 : - 951 372 : if (direction == GST_PAD_SRC) + 951 373 : if (direction == GST_PAD_SRC) 952 0 : return FALSE; 953 : /** @todo If direction = SRC, you may need different interpretation! */ - 954 372 : self = GST_TENSOR_DECODER_CAST (trans); + 954 373 : self = GST_TENSOR_DECODER_CAST (trans); 955 : - 956 372 : g_assert (self->configured); + 956 373 : g_assert (self->configured); 957 : - 958 372 : if (!self->is_custom && self->decoder->getTransformSize) + 958 373 : if (!self->is_custom && self->decoder->getTransformSize) 959 126 : *othersize = self->decoder->getTransformSize (&self->plugin_data, 960 126 : &self->tensor_config, caps, size, othercaps, direction); 961 : else - 962 246 : *othersize = 0; + 962 247 : *othersize = 0; 963 : - 964 372 : return TRUE; + 964 373 : return TRUE; 965 : } 966 : 967 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.func-c.html index 884488451..608a63250 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.func.html index 8fe761478..9c418cc00 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.gcov.html index 466f3e5b9..b5f29db09 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_demux.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.func-c.html index a0276dca9..cb7341e3f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.func.html index fcf063722..d8759129a 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.gcov.html index e6c539d92..1c8e04ed1 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_if.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.func-c.html index 2bfaee1b3..2be8e1c3d 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 85.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -170,21 +170,21 @@ gst_tensor_merge_sink_event - 286 + 285 gst_tensor_merge_collect_buffer - 386 + 384 gst_tensor_merge_collected - 386 + 384 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.func.html index 7e0b811d1..fea8bba4d 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 85.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -79,14 +79,14 @@ gst_tensor_merge_collect_buffer - 386 + 384 gst_tensor_merge_collected - 386 + 384 @@ -205,7 +205,7 @@ gst_tensor_merge_sink_event - 286 + 285 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.gcov.html index fbf3c3686..6d0503eb4 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_merge.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 85.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -412,22 +412,22 @@ 350 : * @brief sink event vmethod 351 : */ 352 : static gboolean - 353 286 : gst_tensor_merge_sink_event (GstCollectPads * pads, GstCollectData * data, + 353 285 : gst_tensor_merge_sink_event (GstCollectPads * pads, GstCollectData * data, 354 : GstEvent * event, GstTensorMerge * tensor_merge) 355 : { - 356 286 : g_return_val_if_fail (event != NULL, FALSE); + 356 285 : g_return_val_if_fail (event != NULL, FALSE); 357 : - 358 286 : switch (GST_EVENT_TYPE (event)) { + 358 285 : switch (GST_EVENT_TYPE (event)) { 359 0 : case GST_EVENT_FLUSH_STOP: 360 0 : tensor_merge->need_segment = TRUE; 361 0 : tensor_merge->need_set_time = TRUE; 362 0 : gst_tensor_time_sync_flush (tensor_merge->collect); 363 0 : break; - 364 286 : default: - 365 286 : break; + 364 285 : default: + 365 285 : break; 366 : } 367 : - 368 286 : return gst_collect_pads_event_default (pads, data, event, FALSE); + 368 285 : return gst_collect_pads_event_default (pads, data, event, FALSE); 369 : } 370 : 371 : /** @@ -507,15 +507,15 @@ 445 : * @return TRUE to push buffer to src pad 446 : */ 447 : static gboolean - 448 386 : gst_tensor_merge_collect_buffer (GstTensorMerge * tensor_merge, + 448 384 : gst_tensor_merge_collect_buffer (GstTensorMerge * tensor_merge, 449 : GstBuffer * tensors_buf, gboolean * is_eos) 450 : { - 451 386 : if (tensor_merge->need_set_time) { - 452 248 : if (gst_tensor_time_sync_get_current_time (tensor_merge->collect, + 451 384 : if (tensor_merge->need_set_time) { + 452 246 : if (gst_tensor_time_sync_get_current_time (tensor_merge->collect, 453 : &tensor_merge->sync, &tensor_merge->current_time, tensors_buf)) { 454 : /* end-of-stream */ - 455 37 : *is_eos = TRUE; - 456 37 : return FALSE; + 455 35 : *is_eos = TRUE; + 456 35 : return FALSE; 457 : } 458 : 459 211 : tensor_merge->need_set_time = FALSE; @@ -752,16 +752,16 @@ 690 : * @return GstFlowReturn 691 : */ 692 : static GstFlowReturn - 693 386 : gst_tensor_merge_collected (GstCollectPads * pads, + 693 384 : gst_tensor_merge_collected (GstCollectPads * pads, 694 : GstTensorMerge * tensor_merge) 695 : { - 696 386 : GstFlowReturn ret = GST_FLOW_OK; + 696 384 : GstFlowReturn ret = GST_FLOW_OK; 697 : GstBuffer *tensors_buf, *tensor_buf; - 698 386 : gboolean isEOS = FALSE; + 698 384 : gboolean isEOS = FALSE; 699 : - 700 386 : GST_DEBUG_OBJECT (tensor_merge, " all pads are collected "); + 700 384 : GST_DEBUG_OBJECT (tensor_merge, " all pads are collected "); 701 : - 702 386 : if (tensor_merge->need_stream_start) { + 702 384 : if (tensor_merge->need_stream_start) { 703 : /** 704 : * Cannot use gst-pad util to get stream ID (multiple sink pads). 705 : * Create stream ID using first sink pad. @@ -777,18 +777,18 @@ 715 25 : tensor_merge->need_stream_start = FALSE; 716 : } 717 : - 718 386 : if ((tensors_buf = gst_buffer_new ()) == NULL) { + 718 384 : if ((tensors_buf = gst_buffer_new ()) == NULL) { 719 0 : ml_logf ("gst_buffer_new() returns NULL. Out of memory?\n"); - 720 386 : return GST_FLOW_ERROR; + 720 384 : return GST_FLOW_ERROR; 721 : } 722 : - 723 386 : if (!gst_tensor_merge_collect_buffer (tensor_merge, tensors_buf, &isEOS)) { - 724 175 : if (isEOS) { - 725 37 : gst_pad_push_event (tensor_merge->srcpad, gst_event_new_eos ()); - 726 37 : ret = GST_FLOW_EOS; + 723 384 : if (!gst_tensor_merge_collect_buffer (tensor_merge, tensors_buf, &isEOS)) { + 724 173 : if (isEOS) { + 725 35 : gst_pad_push_event (tensor_merge->srcpad, gst_event_new_eos ()); + 726 35 : ret = GST_FLOW_EOS; 727 : } 728 : - 729 175 : goto beach; + 729 173 : goto beach; 730 : } 731 : 732 211 : if (!gst_tensor_merge_set_src_caps (tensor_merge)) { @@ -815,8 +815,8 @@ 753 : gst_flow_get_name (ret)); 754 : } 755 211 : beach: - 756 386 : gst_buffer_unref (tensors_buf); - 757 386 : return ret; + 756 384 : gst_buffer_unref (tensors_buf); + 757 384 : return ret; 758 : } 759 : 760 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.func-c.html index de50d1aa8..1ce2353dc 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -163,49 +163,49 @@ gst_tensor_mux_send_segment_event - 5408 + 5465 gst_tensor_mux_set_src_caps - 5408 + 5465 gst_tensor_mux_src_event - 5420 + 5475 gst_tensor_mux_collect_buffer - 6121 + 6177 gst_tensor_mux_collected - 6121 + 6177 gst_tensor_mux_do_clip - 7814 + 7872 gst_tensor_mux_set_waiting - 14325 + 14439 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.func.html index 8ba176ff8..3c41d464f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -86,21 +86,21 @@ gst_tensor_mux_collect_buffer - 6121 + 6177 gst_tensor_mux_collected - 6121 + 6177 gst_tensor_mux_do_clip - 7814 + 7872 @@ -170,7 +170,7 @@ gst_tensor_mux_send_segment_event - 5408 + 5465 @@ -184,14 +184,14 @@ gst_tensor_mux_set_src_caps - 5408 + 5465 gst_tensor_mux_set_waiting - 14325 + 14439 @@ -205,7 +205,7 @@ gst_tensor_mux_src_event - 5420 + 5475 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.gcov.html index 9e2079ebf..8fcbead10 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_mux.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -362,37 +362,37 @@ 300 : * @brief src event vmethod 301 : */ 302 : static gboolean - 303 5420 : gst_tensor_mux_src_event (GstPad * pad, GstObject * parent, GstEvent * event) + 303 5475 : gst_tensor_mux_src_event (GstPad * pad, GstObject * parent, GstEvent * event) 304 : { - 305 5420 : g_return_val_if_fail (event != NULL, FALSE); + 305 5475 : g_return_val_if_fail (event != NULL, FALSE); 306 : - 307 5420 : switch (GST_EVENT_TYPE (event)) { + 307 5475 : switch (GST_EVENT_TYPE (event)) { 308 0 : case GST_EVENT_SEEK: 309 0 : gst_event_unref (event); 310 0 : return FALSE; - 311 5420 : default: - 312 5420 : break; + 311 5475 : default: + 312 5475 : break; 313 : } 314 : - 315 5420 : return gst_pad_event_default (pad, parent, event); + 315 5475 : return gst_pad_event_default (pad, parent, event); 316 : } 317 : 318 : /** 319 : * @brief set pads waiting property 320 : */ 321 : static void - 322 14325 : gst_tensor_mux_set_waiting (GstTensorMux * tensor_mux, gboolean waiting) + 322 14439 : gst_tensor_mux_set_waiting (GstTensorMux * tensor_mux, gboolean waiting) 323 : { - 324 14325 : if (tensor_mux->sync.mode == SYNC_REFRESH) { - 325 9532 : GstCollectPads *pads = tensor_mux->collect; - 326 9532 : GSList *walk = pads->data; + 324 14439 : if (tensor_mux->sync.mode == SYNC_REFRESH) { + 325 9646 : GstCollectPads *pads = tensor_mux->collect; + 326 9646 : GSList *walk = pads->data; 327 : - 328 28596 : while (walk) { - 329 19064 : gst_collect_pads_set_waiting (pads, walk->data, waiting); - 330 19064 : walk = g_slist_next (walk); + 328 28938 : while (walk) { + 329 19292 : gst_collect_pads_set_waiting (pads, walk->data, waiting); + 330 19292 : walk = g_slist_next (walk); 331 : } 332 : } - 333 14325 : } + 333 14439 : } 334 : 335 : /** 336 : * @brief sink event vmethod @@ -427,23 +427,23 @@ 365 : * @return TRUE to push buffer to src pad 366 : */ 367 : static gboolean - 368 6121 : gst_tensor_mux_collect_buffer (GstTensorMux * tensor_mux, + 368 6177 : gst_tensor_mux_collect_buffer (GstTensorMux * tensor_mux, 369 : GstBuffer * tensors_buf, gboolean * is_eos) 370 : { - 371 6121 : if (tensor_mux->need_set_time) { - 372 5587 : if (gst_tensor_time_sync_get_current_time (tensor_mux->collect, + 371 6177 : if (tensor_mux->need_set_time) { + 372 5643 : if (gst_tensor_time_sync_get_current_time (tensor_mux->collect, 373 : &tensor_mux->sync, &tensor_mux->current_time, tensors_buf)) { 374 : /* end-of-stream */ - 375 179 : *is_eos = TRUE; - 376 179 : return FALSE; + 375 178 : *is_eos = TRUE; + 376 178 : return FALSE; 377 : } 378 : - 379 5408 : tensor_mux->need_set_time = FALSE; - 380 5408 : silent_debug (tensor_mux, "Current Time : %" GST_TIME_FORMAT, + 379 5465 : tensor_mux->need_set_time = FALSE; + 380 5465 : silent_debug (tensor_mux, "Current Time : %" GST_TIME_FORMAT, 381 : GST_TIME_ARGS (tensor_mux->current_time)); 382 : } 383 : - 384 5942 : return gst_tensor_time_sync_buffer_from_collectpad (tensor_mux->collect, + 384 5999 : return gst_tensor_time_sync_buffer_from_collectpad (tensor_mux->collect, 385 : &tensor_mux->sync, tensor_mux->current_time, tensors_buf, 386 : &tensor_mux->tensors_config, is_eos); 387 : } @@ -452,9 +452,9 @@ 390 : * @brief Set src pad caps if src pad is not negotiated. 391 : */ 392 : static gboolean - 393 5408 : gst_tensor_mux_set_src_caps (GstTensorMux * tensor_mux) + 393 5465 : gst_tensor_mux_set_src_caps (GstTensorMux * tensor_mux) 394 : { - 395 5408 : if (!tensor_mux->negotiated) { + 395 5465 : if (!tensor_mux->negotiated) { 396 : GstCaps *caps; 397 : 398 124 : if (gst_tensors_config_validate (&tensor_mux->tensors_config)) { @@ -469,22 +469,22 @@ 407 : } 408 : } 409 : - 410 5408 : if (!tensor_mux->negotiated) { + 410 5465 : if (!tensor_mux->negotiated) { 411 0 : GST_WARNING_OBJECT (tensor_mux, "failed to set caps"); 412 0 : GST_ELEMENT_ERROR (tensor_mux, CORE, NEGOTIATION, (NULL), (NULL)); 413 : } 414 : - 415 5408 : return tensor_mux->negotiated; + 415 5465 : return tensor_mux->negotiated; 416 : } 417 : 418 : /** 419 : * @brief Create a new segment event if necessary. 420 : */ 421 : static void - 422 5408 : gst_tensor_mux_send_segment_event (GstTensorMux * tensor_mux, + 422 5465 : gst_tensor_mux_send_segment_event (GstTensorMux * tensor_mux, 423 : GstClockTime pts, GstClockTime dts) 424 : { - 425 5408 : if (tensor_mux->need_segment) { + 425 5465 : if (tensor_mux->need_segment) { 426 : GstSegment segment; 427 124 : GstClockTime time = 0; 428 : @@ -499,7 +499,7 @@ 437 124 : gst_pad_push_event (tensor_mux->srcpad, gst_event_new_segment (&segment)); 438 124 : tensor_mux->need_segment = FALSE; 439 : } - 440 5408 : } + 440 5465 : } 441 : 442 : /** 443 : * @brief Process flex tensor. @@ -545,16 +545,16 @@ 483 : * @return GstFlowReturn 484 : */ 485 : static GstFlowReturn - 486 6121 : gst_tensor_mux_collected (GstCollectPads * pads, GstTensorMux * tensor_mux) + 486 6177 : gst_tensor_mux_collected (GstCollectPads * pads, GstTensorMux * tensor_mux) 487 : { - 488 6121 : GstFlowReturn ret = GST_FLOW_OK; + 488 6177 : GstFlowReturn ret = GST_FLOW_OK; 489 : GstBuffer *tensors_buf; - 490 6121 : gboolean isEOS = FALSE; - 491 6121 : gboolean buf_collected = FALSE; + 490 6177 : gboolean isEOS = FALSE; + 491 6177 : gboolean buf_collected = FALSE; 492 : - 493 6121 : GST_DEBUG_OBJECT (tensor_mux, " all pads are collected "); + 493 6177 : GST_DEBUG_OBJECT (tensor_mux, " all pads are collected "); 494 : - 495 6121 : if (tensor_mux->need_stream_start) { + 495 6177 : if (tensor_mux->need_stream_start) { 496 : /** 497 : * Cannot use gst-pad util to get stream ID (multiple sink pads). 498 : * Create stream ID using first sink pad. @@ -570,61 +570,61 @@ 508 124 : tensor_mux->need_stream_start = FALSE; 509 : } 510 : - 511 6121 : if ((tensors_buf = gst_buffer_new ()) == NULL) { + 511 6177 : if ((tensors_buf = gst_buffer_new ()) == NULL) { 512 0 : ml_logf ("gst_buffer_new() returns NULL. Out of memory?\n"); - 513 6121 : return GST_FLOW_ERROR; + 513 6177 : return GST_FLOW_ERROR; 514 : } 515 : 516 : buf_collected = - 517 6121 : gst_tensor_mux_collect_buffer (tensor_mux, tensors_buf, &isEOS); + 517 6177 : gst_tensor_mux_collect_buffer (tensor_mux, tensors_buf, &isEOS); 518 : - 519 6121 : gst_tensor_mux_set_waiting (tensor_mux, TRUE); + 519 6177 : gst_tensor_mux_set_waiting (tensor_mux, TRUE); 520 : - 521 6121 : if (!buf_collected) { - 522 713 : if (isEOS) { - 523 179 : gst_pad_push_event (tensor_mux->srcpad, gst_event_new_eos ()); - 524 179 : ret = GST_FLOW_EOS; + 521 6177 : if (!buf_collected) { + 522 712 : if (isEOS) { + 523 178 : gst_pad_push_event (tensor_mux->srcpad, gst_event_new_eos ()); + 524 178 : ret = GST_FLOW_EOS; 525 : } 526 : - 527 713 : gst_buffer_unref (tensors_buf); - 528 713 : return ret; + 527 712 : gst_buffer_unref (tensors_buf); + 528 712 : return ret; 529 : } 530 : - 531 5408 : if (!gst_tensor_mux_set_src_caps (tensor_mux)) { + 531 5465 : if (!gst_tensor_mux_set_src_caps (tensor_mux)) { 532 0 : gst_buffer_unref (tensors_buf); 533 0 : return GST_FLOW_NOT_NEGOTIATED; 534 : } 535 : - 536 5408 : gst_tensor_mux_send_segment_event (tensor_mux, GST_BUFFER_PTS (tensors_buf), + 536 5465 : gst_tensor_mux_send_segment_event (tensor_mux, GST_BUFFER_PTS (tensors_buf), 537 : GST_BUFFER_DTS (tensors_buf)); 538 : 539 : /* add header if output is flexible */ - 540 5408 : if (gst_tensor_pad_caps_is_flexible (tensor_mux->srcpad)) + 540 5465 : if (gst_tensor_pad_caps_is_flexible (tensor_mux->srcpad)) 541 25 : tensors_buf = gst_tensor_mux_chain_flex_tensor (tensor_mux, tensors_buf); 542 : - 543 5408 : ret = gst_pad_push (tensor_mux->srcpad, tensors_buf); - 544 5408 : tensor_mux->need_set_time = TRUE; + 543 5465 : ret = gst_pad_push (tensor_mux->srcpad, tensors_buf); + 544 5465 : tensor_mux->need_set_time = TRUE; 545 : - 546 5408 : if (ret != GST_FLOW_OK) { + 546 5465 : if (ret != GST_FLOW_OK) { 547 17 : GST_WARNING_OBJECT (tensor_mux, "pushed outbuf, result = %s", 548 : gst_flow_get_name (ret)); 549 : } 550 : - 551 5408 : return ret; + 551 5465 : return ret; 552 : } 553 : 554 : /** 555 : * @brief Gst Clip Pads Function which is called right after a buffer is received for each pad. 556 : */ 557 : static GstFlowReturn - 558 7814 : gst_tensor_mux_do_clip (GstCollectPads * pads, GstCollectData * data, + 558 7872 : gst_tensor_mux_do_clip (GstCollectPads * pads, GstCollectData * data, 559 : GstBuffer * buffer, GstBuffer ** out, GstTensorMux * tensor_mux) 560 : { 561 : UNUSED (pads); 562 : UNUSED (data); - 563 7814 : gst_tensor_mux_set_waiting (tensor_mux, FALSE); - 564 7814 : *out = buffer; - 565 7814 : return GST_FLOW_OK; + 563 7872 : gst_tensor_mux_set_waiting (tensor_mux, FALSE); + 564 7872 : *out = buffer; + 565 7872 : return GST_FLOW_OK; 566 : } 567 : 568 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.func-c.html index 9ad33e592..391d769e8 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 91.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.func.html index f0b7937dd..3226b3da8 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 91.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.gcov.html index 27ce84fa4..90d273967 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_rate.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 78.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 91.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.func-c.html index b9972a86b..dd23df77a 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 91.7 % @@ -98,23 +98,23 @@ - gst_tensor_repo_check_changed + gst_tensor_repo_add_repodata - 24 + 28 - gst_tensor_repo_check_eos + gst_tensor_repo_check_changed - 24 + 31 - gst_tensor_repo_add_repodata + gst_tensor_repo_check_eos - 28 + 31 @@ -142,7 +142,7 @@ gst_tensor_repo_get_repodata - 343 + 357 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.func.html index 9e9520b95..b7bc30135 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 91.7 % @@ -72,14 +72,14 @@ gst_tensor_repo_check_changed - 24 + 31 gst_tensor_repo_check_eos - 24 + 31 @@ -93,7 +93,7 @@ gst_tensor_repo_get_repodata - 343 + 357 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.gcov.html index fbf67d399..f324095b6 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_repo.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 91.7 % @@ -133,17 +133,17 @@ 71 : * @brief Getter to get nth GstTensorRepoData. 72 : */ 73 : GstTensorRepoData * - 74 343 : gst_tensor_repo_get_repodata (guint nth) + 74 357 : gst_tensor_repo_get_repodata (guint nth) 75 : { 76 : gpointer p; 77 : - 78 343 : g_return_val_if_fail (_repo.initialized, NULL); + 78 357 : g_return_val_if_fail (_repo.initialized, NULL); 79 : - 80 343 : GST_REPO_LOCK (); - 81 343 : p = g_hash_table_lookup (_repo.hash, GINT_TO_POINTER (nth)); - 82 343 : GST_REPO_UNLOCK (); + 80 357 : GST_REPO_LOCK (); + 81 357 : p = g_hash_table_lookup (_repo.hash, GINT_TO_POINTER (nth)); + 82 357 : GST_REPO_UNLOCK (); 83 : - 84 343 : return (GstTensorRepoData *) p; + 84 357 : return (GstTensorRepoData *) p; 85 : } 86 : 87 : /** @@ -262,9 +262,9 @@ 200 : 201 119 : g_mutex_lock (&data->lock); 202 : - 203 190 : while (data->buffer != NULL && !data->eos) { + 203 186 : while (data->buffer != NULL && !data->eos) { 204 : /* wait pull */ - 205 71 : g_cond_wait (&data->cond_pull, &data->lock); + 205 67 : g_cond_wait (&data->cond_pull, &data->lock); 206 : } 207 : 208 119 : if (data->eos) { @@ -295,16 +295,16 @@ 233 : * @brief Check EOS (End-of-Stream) of slot. 234 : */ 235 : gboolean - 236 24 : gst_tensor_repo_check_eos (guint nth) + 236 31 : gst_tensor_repo_check_eos (guint nth) 237 : { 238 : GstTensorRepoData *data; 239 : - 240 24 : data = gst_tensor_repo_get_repodata (nth); + 240 31 : data = gst_tensor_repo_get_repodata (nth); 241 : - 242 24 : if (data) { + 242 31 : if (data) { 243 : if (DBG) 244 : GST_DEBUG ("check eos done [%s]\n", data->eos ? "TRUE" : "FALSE"); - 245 24 : return data->eos; + 245 31 : return data->eos; 246 : } 247 : 248 0 : return FALSE; @@ -314,32 +314,32 @@ 252 : * @brief Check repo data is changed. 253 : */ 254 : gboolean - 255 24 : gst_tensor_repo_check_changed (guint nth, guint * newid, gboolean is_sink) + 255 31 : gst_tensor_repo_check_changed (guint nth, guint * newid, gboolean is_sink) 256 : { - 257 24 : gboolean ret = FALSE; + 257 31 : gboolean ret = FALSE; 258 : GstTensorRepoData *data; 259 : - 260 24 : data = gst_tensor_repo_get_repodata (nth); + 260 31 : data = gst_tensor_repo_get_repodata (nth); 261 : - 262 24 : g_return_val_if_fail (data != NULL, FALSE); + 262 31 : g_return_val_if_fail (data != NULL, FALSE); 263 : 264 : if (DBG) 265 : GST_DEBUG ("%dth RepoData : sink_changed %d, src_changed %d\n", nth, 266 : data->sink_changed, data->src_changed); 267 : - 268 24 : if (is_sink) { + 268 31 : if (is_sink) { 269 0 : if (data->sink_changed) { 270 0 : *newid = data->sink_id; 271 0 : ret = TRUE; 272 : } 273 : } else { - 274 24 : if (data->src_changed) { + 274 31 : if (data->src_changed) { 275 0 : *newid = data->src_id; 276 0 : ret = TRUE; 277 : } 278 : } 279 : - 280 24 : return ret; + 280 31 : return ret; 281 : } 282 : 283 : /** @@ -380,20 +380,20 @@ 318 : 319 121 : g_mutex_lock (&data->lock); 320 : - 321 137 : while (!data->buffer) { - 322 24 : if (gst_tensor_repo_check_changed (nth, newid, FALSE)) { + 321 144 : while (!data->buffer) { + 322 31 : if (gst_tensor_repo_check_changed (nth, newid, FALSE)) { 323 0 : buf = NULL; 324 0 : goto done; 325 : } 326 : - 327 24 : if (gst_tensor_repo_check_eos (nth)) { + 327 31 : if (gst_tensor_repo_check_eos (nth)) { 328 8 : *eos = TRUE; 329 8 : buf = NULL; 330 8 : goto done; 331 : } 332 : 333 : /* wait push */ - 334 16 : g_cond_wait (&data->cond_push, &data->lock); + 334 23 : g_cond_wait (&data->cond_push, &data->lock); 335 : } 336 : 337 : /* Current buffer will be wasted. */ diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.func-c.html index 2e3672bdb..1a7a68007 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.1 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.func.html index 13eede06e..87ed0c6a9 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.1 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.gcov.html index 0a57ba019..d6b37d60e 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposink.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 94.1 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.func-c.html index 556e0895c..658a553e8 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.func.html index e464950df..f29979901 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.gcov.html index 19433bbc4..8455e81dd 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_reposrc.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.func-c.html index 73c50802f..a78f5e707 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.2 % @@ -142,56 +142,56 @@ gst_tensor_sink_event - 630 + 634 gst_tensor_sink_query - 1477 + 1483 gst_tensor_sink_set_last_render_time - 6714 + 6793 gst_tensor_sink_render - 6719 + 6798 gst_tensor_sink_render_buffer - 6719 + 6798 gst_tensor_sink_get_signal_rate - 6721 + 6800 gst_tensor_sink_get_emit_signal - 7027 + 7109 gst_tensor_sink_get_type - 37148 + 37556 @@ -212,7 +212,7 @@ gst_tensor_sink_get_type - 36661 + 37069 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.func.html index e2a1cfb95..9b8b8708f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.2 % @@ -72,7 +72,7 @@ gst_tensor_sink_event - 630 + 634 @@ -86,7 +86,7 @@ gst_tensor_sink_get_emit_signal - 7027 + 7109 @@ -107,7 +107,7 @@ gst_tensor_sink_get_signal_rate - 6721 + 6800 @@ -121,7 +121,7 @@ gst_tensor_sink_get_type - 37148 + 37556 @@ -135,7 +135,7 @@ gst_tensor_sink_get_type - 36661 + 37069 @@ -156,21 +156,21 @@ gst_tensor_sink_query - 1477 + 1483 gst_tensor_sink_render - 6719 + 6798 gst_tensor_sink_render_buffer - 6719 + 6798 @@ -191,7 +191,7 @@ gst_tensor_sink_set_last_render_time - 6714 + 6793 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.gcov.html index 08f2b524a..3fffc352d 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sink.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.2 % @@ -200,7 +200,7 @@ 138 : static gboolean gst_tensor_sink_get_silent (GstTensorSink * self); 139 : 140 : #define gst_tensor_sink_parent_class parent_class - 141 37148 : G_DEFINE_TYPE (GstTensorSink, gst_tensor_sink, GST_TYPE_BASE_SINK); + 141 37556 : G_DEFINE_TYPE (GstTensorSink, gst_tensor_sink, GST_TYPE_BASE_SINK); 142 : 143 : /** 144 : * @brief Initialize tensor_sink class. @@ -424,25 +424,25 @@ 362 : * GstBaseSink method implementation. 363 : */ 364 : static gboolean - 365 630 : gst_tensor_sink_event (GstBaseSink * sink, GstEvent * event) + 365 634 : gst_tensor_sink_event (GstBaseSink * sink, GstEvent * event) 366 : { 367 : GstTensorSink *self; 368 : GstEventType type; 369 : - 370 630 : self = GST_TENSOR_SINK (sink); - 371 630 : type = GST_EVENT_TYPE (event); + 370 634 : self = GST_TENSOR_SINK (sink); + 371 634 : type = GST_EVENT_TYPE (event); 372 : - 373 630 : GST_DEBUG_OBJECT (self, "Received %s event: %" GST_PTR_FORMAT, + 373 634 : GST_DEBUG_OBJECT (self, "Received %s event: %" GST_PTR_FORMAT, 374 : GST_EVENT_TYPE_NAME (event), event); 375 : - 376 630 : switch (type) { - 377 174 : case GST_EVENT_STREAM_START: - 378 174 : if (gst_tensor_sink_get_emit_signal (self)) { - 379 173 : silent_debug (self, "Emit signal for stream start"); + 376 634 : switch (type) { + 377 177 : case GST_EVENT_STREAM_START: + 378 177 : if (gst_tensor_sink_get_emit_signal (self)) { + 379 176 : silent_debug (self, "Emit signal for stream start"); 380 : - 381 173 : g_signal_emit (self, _tensor_sink_signals[SIGNAL_STREAM_START], 0); + 381 176 : g_signal_emit (self, _tensor_sink_signals[SIGNAL_STREAM_START], 0); 382 : } - 383 174 : break; + 383 177 : break; 384 : 385 137 : case GST_EVENT_EOS: 386 137 : if (gst_tensor_sink_get_emit_signal (self)) { @@ -452,11 +452,11 @@ 390 : } 391 137 : break; 392 : - 393 319 : default: - 394 319 : break; + 393 320 : default: + 394 320 : break; 395 : } 396 : - 397 630 : return GST_BASE_SINK_CLASS (parent_class)->event (sink, event); + 397 634 : return GST_BASE_SINK_CLASS (parent_class)->event (sink, event); 398 : } 399 : 400 : /** @@ -465,30 +465,30 @@ 403 : * GstBaseSink method implementation. 404 : */ 405 : static gboolean - 406 1477 : gst_tensor_sink_query (GstBaseSink * sink, GstQuery * query) + 406 1483 : gst_tensor_sink_query (GstBaseSink * sink, GstQuery * query) 407 : { 408 : GstTensorSink *self; 409 : GstQueryType type; 410 : GstFormat format; 411 : - 412 1477 : self = GST_TENSOR_SINK (sink); - 413 1477 : type = GST_QUERY_TYPE (query); + 412 1483 : self = GST_TENSOR_SINK (sink); + 413 1483 : type = GST_QUERY_TYPE (query); 414 : - 415 1477 : GST_DEBUG_OBJECT (self, "Received %s query: %" GST_PTR_FORMAT, + 415 1483 : GST_DEBUG_OBJECT (self, "Received %s query: %" GST_PTR_FORMAT, 416 : GST_QUERY_TYPE_NAME (query), query); 417 : - 418 1477 : switch (type) { + 418 1483 : switch (type) { 419 0 : case GST_QUERY_SEEKING: 420 : /** tensor sink does not support seeking */ 421 0 : gst_query_parse_seeking (query, &format, NULL, NULL, NULL); 422 0 : gst_query_set_seeking (query, format, FALSE, 0, -1); - 423 1477 : return TRUE; + 423 1483 : return TRUE; 424 : - 425 1477 : default: - 426 1477 : break; + 425 1483 : default: + 426 1483 : break; 427 : } 428 : - 429 1477 : return GST_BASE_SINK_CLASS (parent_class)->query (sink, query); + 429 1483 : return GST_BASE_SINK_CLASS (parent_class)->query (sink, query); 430 : } 431 : 432 : /** @@ -497,14 +497,14 @@ 435 : * GstBaseSink method implementation. 436 : */ 437 : static GstFlowReturn - 438 6719 : gst_tensor_sink_render (GstBaseSink * sink, GstBuffer * buffer) + 438 6798 : gst_tensor_sink_render (GstBaseSink * sink, GstBuffer * buffer) 439 : { 440 : GstTensorSink *self; 441 : - 442 6719 : self = GST_TENSOR_SINK (sink); - 443 6719 : gst_tensor_sink_render_buffer (self, buffer); + 442 6798 : self = GST_TENSOR_SINK (sink); + 443 6798 : gst_tensor_sink_render_buffer (self, buffer); 444 : - 445 6719 : return GST_FLOW_OK; + 445 6798 : return GST_FLOW_OK; 446 : } 447 : 448 : /** @@ -538,17 +538,17 @@ 476 : * @param buffer pointer to GstBuffer to be handled 477 : */ 478 : static void - 479 6719 : gst_tensor_sink_render_buffer (GstTensorSink * self, GstBuffer * buffer) + 479 6798 : gst_tensor_sink_render_buffer (GstTensorSink * self, GstBuffer * buffer) 480 : { - 481 6719 : GstClockTime now = GST_CLOCK_TIME_NONE; + 481 6798 : GstClockTime now = GST_CLOCK_TIME_NONE; 482 : guint signal_rate; - 483 6719 : gboolean notify = FALSE; + 483 6798 : gboolean notify = FALSE; 484 : - 485 6719 : g_return_if_fail (GST_IS_TENSOR_SINK (self)); + 485 6798 : g_return_if_fail (GST_IS_TENSOR_SINK (self)); 486 : - 487 6719 : signal_rate = gst_tensor_sink_get_signal_rate (self); + 487 6798 : signal_rate = gst_tensor_sink_get_signal_rate (self); 488 : - 489 6719 : if (signal_rate) { + 489 6798 : if (signal_rate) { 490 : GstClock *clock; 491 : GstClockTime render_time; 492 : GstClockTime last_render_time; @@ -572,35 +572,35 @@ 510 : } 511 : } else { 512 : /** send data if signal rate is 0 */ - 513 6713 : notify = TRUE; + 513 6792 : notify = TRUE; 514 : } 515 : - 516 6719 : if (notify) { - 517 6714 : gst_tensor_sink_set_last_render_time (self, now); + 516 6798 : if (notify) { + 517 6793 : gst_tensor_sink_set_last_render_time (self, now); 518 : - 519 6714 : if (gst_tensor_sink_get_emit_signal (self)) { - 520 6709 : silent_debug (self, + 519 6793 : if (gst_tensor_sink_get_emit_signal (self)) { + 520 6788 : silent_debug (self, 521 : "Emit signal for new data [%" GST_TIME_FORMAT "] rate [%d]", 522 : GST_TIME_ARGS (now), signal_rate); 523 : - 524 6709 : g_signal_emit (self, _tensor_sink_signals[SIGNAL_NEW_DATA], 0, buffer); + 524 6788 : g_signal_emit (self, _tensor_sink_signals[SIGNAL_NEW_DATA], 0, buffer); 525 : } 526 : } 527 : - 528 6719 : silent_debug_timestamp (self, buffer); + 528 6798 : silent_debug_timestamp (self, buffer); 529 : } 530 : 531 : /** 532 : * @brief Setter for value last_render_time. 533 : */ 534 : static void - 535 6714 : gst_tensor_sink_set_last_render_time (GstTensorSink * self, GstClockTime now) + 535 6793 : gst_tensor_sink_set_last_render_time (GstTensorSink * self, GstClockTime now) 536 : { - 537 6714 : g_return_if_fail (GST_IS_TENSOR_SINK (self)); + 537 6793 : g_return_if_fail (GST_IS_TENSOR_SINK (self)); 538 : - 539 6714 : g_mutex_lock (&self->mutex); - 540 6714 : self->last_render_time = now; - 541 6714 : g_mutex_unlock (&self->mutex); + 539 6793 : g_mutex_lock (&self->mutex); + 540 6793 : self->last_render_time = now; + 541 6793 : g_mutex_unlock (&self->mutex); 542 : } 543 : 544 : /** @@ -638,17 +638,17 @@ 576 : * @brief Getter for value signal_rate. 577 : */ 578 : static guint - 579 6721 : gst_tensor_sink_get_signal_rate (GstTensorSink * self) + 579 6800 : gst_tensor_sink_get_signal_rate (GstTensorSink * self) 580 : { 581 : guint rate; 582 : - 583 6721 : g_return_val_if_fail (GST_IS_TENSOR_SINK (self), 0); + 583 6800 : g_return_val_if_fail (GST_IS_TENSOR_SINK (self), 0); 584 : - 585 6721 : g_mutex_lock (&self->mutex); - 586 6721 : rate = self->signal_rate; - 587 6721 : g_mutex_unlock (&self->mutex); + 585 6800 : g_mutex_lock (&self->mutex); + 586 6800 : rate = self->signal_rate; + 587 6800 : g_mutex_unlock (&self->mutex); 588 : - 589 6721 : return rate; + 589 6800 : return rate; 590 : } 591 : 592 : /** @@ -669,17 +669,17 @@ 607 : * @brief Getter for flag emit_signal. 608 : */ 609 : static gboolean - 610 7027 : gst_tensor_sink_get_emit_signal (GstTensorSink * self) + 610 7109 : gst_tensor_sink_get_emit_signal (GstTensorSink * self) 611 : { 612 : gboolean res; 613 : - 614 7027 : g_return_val_if_fail (GST_IS_TENSOR_SINK (self), FALSE); + 614 7109 : g_return_val_if_fail (GST_IS_TENSOR_SINK (self), FALSE); 615 : - 616 7027 : g_mutex_lock (&self->mutex); - 617 7027 : res = self->emit_signal; - 618 7027 : g_mutex_unlock (&self->mutex); + 616 7109 : g_mutex_lock (&self->mutex); + 617 7109 : res = self->emit_signal; + 618 7109 : g_mutex_unlock (&self->mutex); 619 : - 620 7027 : return res; + 620 7109 : return res; 621 : } 622 : 623 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.func-c.html index 85c97267c..c1f4f1494 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.func.html index 934ef1bc4..9137e3aee 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.gcov.html index ab19a7276..71c62ecc4 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparsedec.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.func-c.html index acb0bb170..93564dbc6 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.func.html index b4e77bc93..c19d78e0f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.gcov.html index 88daeb819..62208de8e 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseenc.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.func-c.html index 4e382bc07..9dc7aaf25 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.func.html index cda72e80a..542e82e03 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.gcov.html index 037eda4c9..721f49800 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_sparseutil.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -121,8 +121,8 @@ 59 35 : input = map.data + gst_tensor_meta_info_get_header_size (meta); 60 35 : indices = (guint *) (input + element_size * nnz); 61 : - 62 1494 : for (i = 0; i < nnz; ++i) { - 63 1459 : switch (meta->type) { + 62 1497 : for (i = 0; i < nnz; ++i) { + 63 1462 : switch (meta->type) { 64 6 : case _NNS_INT32: 65 6 : ((int32_t *) output)[indices[i]] = ((int32_t *) input)[i]; 66 6 : break; @@ -138,9 +138,9 @@ 76 6 : case _NNS_INT8: 77 6 : ((int8_t *) output)[indices[i]] = ((int8_t *) input)[i]; 78 6 : break; - 79 14 : case _NNS_UINT8: - 80 14 : ((uint8_t *) output)[indices[i]] = ((uint8_t *) input)[i]; - 81 14 : break; + 79 17 : case _NNS_UINT8: + 80 17 : ((uint8_t *) output)[indices[i]] = ((uint8_t *) input)[i]; + 81 17 : break; 82 6 : case _NNS_FLOAT64: 83 6 : ((double *) output)[indices[i]] = ((double *) input)[i]; 84 6 : break; @@ -247,9 +247,9 @@ 185 40 : break; 186 100 : case _NNS_UINT8: 187 100 : if (((uint8_t *) map.data)[i] != 0) { - 188 16 : ((uint8_t *) values)[nnz] = ((uint8_t *) map.data)[i]; - 189 16 : indices[nnz] = i; - 190 16 : nnz += 1; + 188 20 : ((uint8_t *) values)[nnz] = ((uint8_t *) map.data)[i]; + 189 20 : indices[nnz] = i; + 190 20 : nnz += 1; 191 : } 192 100 : break; 193 40 : case _NNS_FLOAT64: diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.func-c.html index d9f78fcf4..304ebb764 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.func.html index 4aaeee35f..b7e4e3ddb 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.gcov.html index dc6fc6aaf..f51f2f94c 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_split.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.func-c.html index 3ca7aafde..4df97351f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c - functions @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 78.9 % + 78.7 % 1139 - 899 + 896 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -240,7 +240,7 @@ gst_tensor_src_iio_get_times - 26 + 25 @@ -252,23 +252,23 @@ - gst_tensor_src_iio_device_properties_init + gst_tensor_src_iio_create 36 - gst_tensor_src_iio_create + gst_tensor_src_iio_device_properties_init - 38 + 36 gst_tensor_src_iio_fill - 38 + 36 @@ -373,7 +373,7 @@ gst_tensor_src_iio_get_type - 1194 + 1192 @@ -394,7 +394,7 @@ gst_tensor_src_iio_get_type - 725 + 723 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.func.html index 6d57ac375..76f494ea6 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c - functions @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 78.9 % + 78.7 % 1139 - 899 + 896 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -114,7 +114,7 @@ gst_tensor_src_iio_create - 38 + 36 @@ -142,7 +142,7 @@ gst_tensor_src_iio_fill - 38 + 36 @@ -219,14 +219,14 @@ gst_tensor_src_iio_get_times - 26 + 25 gst_tensor_src_iio_get_type - 1194 + 1192 @@ -240,7 +240,7 @@ gst_tensor_src_iio_get_type - 725 + 723 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.gcov.html index 6163bf26c..95b58e8a1 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_srciio.c @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: - 78.9 % + 78.7 % 1139 - 899 + 896 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -345,7 +345,7 @@ 283 : /** internal functions */ 284 : 285 : #define gst_tensor_src_iio_parent_class parent_class - 286 1194 : G_DEFINE_TYPE (GstTensorSrcIIO, gst_tensor_src_iio, GST_TYPE_BASE_SRC); + 286 1192 : G_DEFINE_TYPE (GstTensorSrcIIO, gst_tensor_src_iio, GST_TYPE_BASE_SRC); 287 : 288 : /** 289 : * @brief initialize the tensor_src_iio class. @@ -2362,72 +2362,72 @@ 2300 : * @brief returns the time for the buffers 2301 : */ 2302 : static void - 2303 26 : gst_tensor_src_iio_get_times (GstBaseSrc * basesrc, GstBuffer * buffer, + 2303 25 : gst_tensor_src_iio_get_times (GstBaseSrc * basesrc, GstBuffer * buffer, 2304 : GstClockTime * start, GstClockTime * end) 2305 : { 2306 : GstClockTime timestamp; 2307 : GstClockTime duration; 2308 : UNUSED (basesrc); 2309 : - 2310 26 : timestamp = GST_BUFFER_DTS (buffer); - 2311 26 : duration = GST_BUFFER_DURATION (buffer); + 2310 25 : timestamp = GST_BUFFER_DTS (buffer); + 2311 25 : duration = GST_BUFFER_DURATION (buffer); 2312 : 2313 : /** can't sync using DTS, use PTS */ - 2314 26 : if (!GST_CLOCK_TIME_IS_VALID (timestamp)) - 2315 26 : timestamp = GST_BUFFER_PTS (buffer); + 2314 25 : if (!GST_CLOCK_TIME_IS_VALID (timestamp)) + 2315 25 : timestamp = GST_BUFFER_PTS (buffer); 2316 : - 2317 26 : if (GST_CLOCK_TIME_IS_VALID (timestamp)) { + 2317 25 : if (GST_CLOCK_TIME_IS_VALID (timestamp)) { 2318 0 : *start = timestamp; 2319 0 : if (GST_CLOCK_TIME_IS_VALID (duration)) { 2320 0 : *end = timestamp + duration; 2321 : } 2322 : } - 2323 26 : } + 2323 25 : } 2324 : 2325 : /** 2326 : * @brief create a buffer with requested size and offset 2327 : * @note offset, size ignored as the tensor src iio does not support pull mode 2328 : */ 2329 : static GstFlowReturn - 2330 38 : gst_tensor_src_iio_create (GstBaseSrc * src, guint64 offset, + 2330 36 : gst_tensor_src_iio_create (GstBaseSrc * src, guint64 offset, 2331 : guint size, GstBuffer ** buffer) 2332 : { 2333 : GstTensorSrcIIO *self; - 2334 38 : GstFlowReturn ret = GST_FLOW_ERROR; + 2334 36 : GstFlowReturn ret = GST_FLOW_ERROR; 2335 : GstBuffer *buf; 2336 : GstMemory *mem; 2337 : GstTensorInfo *_info; 2338 : gsize buffer_size; - 2339 38 : guint idx = 0; + 2339 36 : guint idx = 0; 2340 : UNUSED (size); 2341 : - 2342 38 : self = GST_TENSOR_SRC_IIO_CAST (src); - 2343 38 : buf = gst_buffer_new (); - 2344 38 : buffer_size = gst_tensors_info_get_size (&self->tensors_config->info, 0); + 2342 36 : self = GST_TENSOR_SRC_IIO_CAST (src); + 2343 36 : buf = gst_buffer_new (); + 2344 36 : buffer_size = gst_tensors_info_get_size (&self->tensors_config->info, 0); 2345 : - 2346 127 : for (idx = 0; idx < self->tensors_config->info.num_tensors; idx++) { + 2346 116 : for (idx = 0; idx < self->tensors_config->info.num_tensors; idx++) { 2347 : /** all the data, if unermged should be of the same size*/ - 2348 89 : _info = gst_tensors_info_get_nth_info (&self->tensors_config->info, idx); - 2349 89 : g_assert (buffer_size == gst_tensor_info_get_size (_info)); + 2348 80 : _info = gst_tensors_info_get_nth_info (&self->tensors_config->info, idx); + 2349 80 : g_assert (buffer_size == gst_tensor_info_get_size (_info)); 2350 : - 2351 89 : mem = gst_allocator_alloc (NULL, buffer_size, NULL); - 2352 89 : if (mem == NULL) { + 2351 80 : mem = gst_allocator_alloc (NULL, buffer_size, NULL); + 2352 80 : if (mem == NULL) { 2353 0 : GST_ERROR_OBJECT (self, "Error allocating memory for buffer."); 2354 0 : goto error; 2355 : } 2356 : - 2357 89 : gst_tensor_buffer_append_memory (buf, mem, _info); + 2357 80 : gst_tensor_buffer_append_memory (buf, mem, _info); 2358 : } 2359 : - 2360 38 : ret = gst_tensor_src_iio_fill (src, offset, (guint) buffer_size, buf); + 2360 36 : ret = gst_tensor_src_iio_fill (src, offset, (guint) buffer_size, buf); 2361 : - 2362 38 : error: - 2363 38 : if (ret == GST_FLOW_OK) + 2362 36 : error: + 2363 36 : if (ret == GST_FLOW_OK) 2364 36 : *buffer = buf; 2365 : else - 2366 2 : gst_buffer_unref (buf); + 2366 0 : gst_buffer_unref (buf); 2367 : - 2368 38 : return ret; + 2368 36 : return ret; 2369 : } 2370 : 2371 : /** @@ -2526,11 +2526,11 @@ 2464 : * @note buffer timestamp is already handled by gstreamer with gst clock 2465 : */ 2466 : static GstFlowReturn - 2467 38 : gst_tensor_src_iio_fill (GstBaseSrc * src, guint64 offset, guint size, + 2467 36 : gst_tensor_src_iio_fill (GstBaseSrc * src, guint64 offset, guint size, 2468 : GstBuffer * buffer) 2469 : { 2470 : GstTensorSrcIIO *self; - 2471 38 : GstFlowReturn ret = GST_FLOW_ERROR; + 2471 36 : GstFlowReturn ret = GST_FLOW_ERROR; 2472 : gint status, bytes_to_read; 2473 : guint idx, ch_idx, num_mapped; 2474 : gchar *raw_data_base, *raw_data; @@ -2543,46 +2543,46 @@ 2481 : UNUSED (offset); 2482 : UNUSED (size); 2483 : - 2484 38 : self = GST_TENSOR_SRC_IIO (src); + 2484 36 : self = GST_TENSOR_SRC_IIO (src); 2485 : 2486 : /** Only supporting tensors made of 1 tensor for now */ - 2487 38 : g_assert (gst_tensor_buffer_get_count (buffer) == + 2487 36 : g_assert (gst_tensor_buffer_get_count (buffer) == 2488 : self->tensors_config->info.num_tensors); 2489 : 2490 : /** get writable buffer */ - 2491 38 : num_mapped = 0; - 2492 127 : for (idx = 0; idx < self->tensors_config->info.num_tensors; idx++) { - 2493 89 : mem[idx] = gst_tensor_buffer_get_nth_memory (buffer, idx); - 2494 89 : if (!gst_memory_map (mem[idx], &map[idx], GST_MAP_WRITE)) { + 2491 36 : num_mapped = 0; + 2492 116 : for (idx = 0; idx < self->tensors_config->info.num_tensors; idx++) { + 2493 80 : mem[idx] = gst_tensor_buffer_get_nth_memory (buffer, idx); + 2494 80 : if (!gst_memory_map (mem[idx], &map[idx], GST_MAP_WRITE)) { 2495 0 : for (ch_idx = 0; ch_idx < num_mapped; ch_idx++) { 2496 0 : gst_memory_unmap (mem[ch_idx], &map[ch_idx]); 2497 0 : gst_memory_unref (mem[ch_idx]); 2498 : } 2499 0 : gst_memory_unref (mem[idx]); - 2500 38 : return GST_FLOW_ERROR; + 2500 36 : return GST_FLOW_ERROR; 2501 : } - 2502 89 : num_mapped = idx + 1; + 2502 80 : num_mapped = idx + 1; 2503 : } 2504 : /** memory to data from file */ - 2505 38 : bytes_to_read = self->scan_size * self->buffer_capacity; - 2506 38 : raw_data_base = g_malloc (bytes_to_read); - 2507 38 : if (raw_data_base == NULL) { + 2505 36 : bytes_to_read = self->scan_size * self->buffer_capacity; + 2506 36 : raw_data_base = g_malloc (bytes_to_read); + 2507 36 : if (raw_data_base == NULL) { 2508 0 : GST_ERROR_OBJECT (self, "Failed to allocate memory to read raw data."); 2509 0 : goto error_data_free; 2510 : } 2511 : 2512 : /** wait for the data to arrive */ - 2513 38 : time_to_end = g_get_real_time () + self->poll_timeout * 1000; + 2513 36 : time_to_end = g_get_real_time () + self->poll_timeout * 1000; 2514 : while (TRUE) { - 2515 218 : if (self->trigger.name != NULL) { - 2516 17 : status = poll (self->buffer_data_fp, 1, self->poll_timeout); - 2517 17 : if (status < 0) { + 2515 259 : if (self->trigger.name != NULL) { + 2516 15 : status = poll (self->buffer_data_fp, 1, self->poll_timeout); + 2517 15 : if (status < 0) { 2518 0 : GST_ERROR_OBJECT (self, "Error %d while polling the buffer.", status); 2519 0 : goto error_data_free; - 2520 17 : } else if (status == 0) { - 2521 2 : GST_ERROR_OBJECT (self, "Timeout while polling the buffer."); - 2522 2 : goto error_data_free; - 2523 15 : } else if (!(self->buffer_data_fp->revents & POLLIN)) { + 2520 15 : } else if (status == 0) { + 2521 0 : GST_ERROR_OBJECT (self, "Timeout while polling the buffer."); + 2522 0 : goto error_data_free; + 2523 15 : } else if (!(self->buffer_data_fp->revents & POLLIN)) { 2524 0 : GST_ERROR_OBJECT (self, "Poll succeeded on an unexpected event %d.", 2525 : self->buffer_data_fp->revents); 2526 0 : goto error_data_free; @@ -2590,9 +2590,9 @@ 2528 15 : self->buffer_data_fp->revents = 0; 2529 : } else { 2530 : /** sleep for a device tick */ - 2531 201 : if (g_uint64_checked_mul (&safe_multiply, G_USEC_PER_SEC, + 2531 244 : if (g_uint64_checked_mul (&safe_multiply, G_USEC_PER_SEC, 2532 : self->buffer_capacity)) { - 2533 201 : g_usleep (MAX (1, safe_multiply / self->sampling_frequency)); + 2533 244 : g_usleep (MAX (1, safe_multiply / self->sampling_frequency)); 2534 : } else { 2535 0 : g_usleep (MAX (1, 2536 : (self->buffer_capacity / self->sampling_frequency) * @@ -2601,13 +2601,13 @@ 2539 : } 2540 : 2541 : /** using read for non-blocking access */ - 2542 216 : status = read (self->buffer_data_fp->fd, raw_data_base, bytes_to_read); - 2543 216 : if (status < bytes_to_read) { - 2544 180 : if (errno == EAGAIN) { - 2545 180 : GST_WARNING_OBJECT (self, "EAGAIN error, try again."); - 2546 180 : cur_time = g_get_real_time (); - 2547 180 : if (time_to_end >= cur_time) { - 2548 180 : continue; + 2542 259 : status = read (self->buffer_data_fp->fd, raw_data_base, bytes_to_read); + 2543 259 : if (status < bytes_to_read) { + 2544 223 : if (errno == EAGAIN) { + 2545 223 : GST_WARNING_OBJECT (self, "EAGAIN error, try again."); + 2546 223 : cur_time = g_get_real_time (); + 2547 223 : if (time_to_end >= cur_time) { + 2548 223 : continue; 2549 : } else { 2550 0 : GST_ERROR_OBJECT (self, "EAGAIN timeout expired."); 2551 0 : goto error_data_free; @@ -2652,14 +2652,14 @@ 2590 : 2591 36 : ret = GST_FLOW_OK; 2592 : - 2593 38 : error_data_free: - 2594 38 : g_free (raw_data_base); - 2595 127 : for (idx = 0; idx < self->tensors_config->info.num_tensors; idx++) { - 2596 89 : gst_memory_unmap (mem[idx], &map[idx]); - 2597 89 : gst_memory_unref (mem[idx]); + 2593 36 : error_data_free: + 2594 36 : g_free (raw_data_base); + 2595 116 : for (idx = 0; idx < self->tensors_config->info.num_tensors; idx++) { + 2596 80 : gst_memory_unmap (mem[idx], &map[idx]); + 2597 80 : gst_memory_unref (mem[idx]); 2598 : } 2599 : - 2600 38 : return ret; + 2600 36 : return ret; 2601 : } diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.func-c.html index 8d28088fb..3b8a0189a 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 49.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 52.5 % @@ -303,14 +303,14 @@ gst_tensor_trainer_sink_query - 32 + 31 gst_tensor_trainer_query_caps - 48 + 47 @@ -324,7 +324,7 @@ gst_tensor_trainer_get_type - 1102 + 1101 @@ -345,7 +345,7 @@ gst_tensor_trainer_get_type - 633 + 632 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.func.html index ed760e51f..4e30134ab 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 49.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 52.5 % @@ -191,7 +191,7 @@ gst_tensor_trainer_get_type - 1102 + 1101 @@ -205,7 +205,7 @@ gst_tensor_trainer_get_type - 633 + 632 @@ -233,7 +233,7 @@ gst_tensor_trainer_query_caps - 48 + 47 @@ -289,7 +289,7 @@ gst_tensor_trainer_sink_query - 32 + 31 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.gcov.html index 32754552b..36be83adb 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_trainer.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 49.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 52.5 % @@ -125,7 +125,7 @@ 63 : GST_DEBUG_CATEGORY_STATIC (gst_tensor_trainer_debug); 64 : #define GST_CAT_DEFAULT gst_tensor_trainer_debug 65 : #define gst_tensor_trainer_parent_class parent_class - 66 1102 : G_DEFINE_TYPE (GstTensorTrainer, gst_tensor_trainer, GST_TYPE_ELEMENT); + 66 1101 : G_DEFINE_TYPE (GstTensorTrainer, gst_tensor_trainer, GST_TYPE_ELEMENT); 67 : 68 : /** 69 : * @brief Statistical from the model being trained @@ -978,36 +978,36 @@ 916 : * @brief Get pad caps for caps negotiation. 917 : */ 918 : static GstCaps * - 919 48 : gst_tensor_trainer_query_caps (GstTensorTrainer * trainer, + 919 47 : gst_tensor_trainer_query_caps (GstTensorTrainer * trainer, 920 : GstPad * pad, GstCaps * filter) 921 : { 922 : GstCaps *caps; 923 : GstTensorsConfig *config; 924 : - 925 48 : g_return_val_if_fail (trainer != NULL, NULL); - 926 48 : g_return_val_if_fail (pad != NULL, NULL); + 925 47 : g_return_val_if_fail (trainer != NULL, NULL); + 926 47 : g_return_val_if_fail (pad != NULL, NULL); 927 : 928 : /* tensor config info for given pad */ - 929 48 : if (pad == trainer->sinkpad) { - 930 26 : config = &trainer->in_config; + 929 47 : if (pad == trainer->sinkpad) { + 930 25 : config = &trainer->in_config; 931 : } else { 932 22 : config = &trainer->out_config; 933 : } 934 : - 935 48 : caps = gst_tensor_pad_possible_caps_from_config (pad, config); - 936 48 : GST_DEBUG_OBJECT (trainer, "caps %" GST_PTR_FORMAT, caps); - 937 48 : GST_DEBUG_OBJECT (trainer, "filter %" GST_PTR_FORMAT, filter); + 935 47 : caps = gst_tensor_pad_possible_caps_from_config (pad, config); + 936 47 : GST_DEBUG_OBJECT (trainer, "caps %" GST_PTR_FORMAT, caps); + 937 47 : GST_DEBUG_OBJECT (trainer, "filter %" GST_PTR_FORMAT, filter); 938 : - 939 48 : if (caps && filter) { + 939 47 : if (caps && filter) { 940 : GstCaps *result; - 941 4 : result = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST); - 942 4 : gst_caps_unref (caps); - 943 4 : caps = result; + 941 3 : result = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST); + 942 3 : gst_caps_unref (caps); + 943 3 : caps = result; 944 : } 945 : - 946 48 : GST_DEBUG_OBJECT (trainer, "result caps %" GST_PTR_FORMAT, caps); + 946 47 : GST_DEBUG_OBJECT (trainer, "result caps %" GST_PTR_FORMAT, caps); 947 : - 948 48 : return caps; + 948 47 : return caps; 949 : } 950 : 951 : /** @@ -1105,32 +1105,32 @@ 1043 : * @brief This function handles sink pad query. 1044 : */ 1045 : static gboolean - 1046 32 : gst_tensor_trainer_sink_query (GstPad * sinkpad, GstObject * parent, + 1046 31 : gst_tensor_trainer_sink_query (GstPad * sinkpad, GstObject * parent, 1047 : GstQuery * query) 1048 : { 1049 : GstTensorTrainer *trainer; - 1050 32 : trainer = GST_TENSOR_TRAINER (parent); + 1050 31 : trainer = GST_TENSOR_TRAINER (parent); 1051 : - 1052 32 : GST_DEBUG_OBJECT (trainer, "Received '%s' query: %" GST_PTR_FORMAT, + 1052 31 : GST_DEBUG_OBJECT (trainer, "Received '%s' query: %" GST_PTR_FORMAT, 1053 : GST_QUERY_TYPE_NAME (query), query); 1054 : - 1055 32 : switch (GST_QUERY_TYPE (query)) { - 1056 26 : case GST_QUERY_CAPS: + 1055 31 : switch (GST_QUERY_TYPE (query)) { + 1056 25 : case GST_QUERY_CAPS: 1057 : { 1058 : GstCaps *caps; 1059 : GstCaps *filter; 1060 : - 1061 26 : GST_DEBUG_OBJECT (trainer, "[GST_QUERY_CAPS]"); - 1062 26 : gst_query_parse_caps (query, &filter); - 1063 26 : GST_DEBUG_OBJECT (trainer, "Caps from query : %" GST_PTR_FORMAT, filter); + 1061 25 : GST_DEBUG_OBJECT (trainer, "[GST_QUERY_CAPS]"); + 1062 25 : gst_query_parse_caps (query, &filter); + 1063 25 : GST_DEBUG_OBJECT (trainer, "Caps from query : %" GST_PTR_FORMAT, filter); 1064 : - 1065 26 : caps = gst_tensor_trainer_query_caps (trainer, sinkpad, filter); + 1065 25 : caps = gst_tensor_trainer_query_caps (trainer, sinkpad, filter); 1066 : - 1067 26 : GST_INFO_OBJECT (trainer, "[GST_QUERY_CAPS] : %" GST_PTR_FORMAT, caps); - 1068 26 : gst_query_set_caps_result (query, caps); - 1069 26 : gst_caps_unref (caps); + 1067 25 : GST_INFO_OBJECT (trainer, "[GST_QUERY_CAPS] : %" GST_PTR_FORMAT, caps); + 1068 25 : gst_query_set_caps_result (query, caps); + 1069 25 : gst_caps_unref (caps); 1070 : - 1071 26 : return TRUE; + 1071 25 : return TRUE; 1072 : } 1073 3 : case GST_QUERY_ACCEPT_CAPS: 1074 : { diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.func-c.html index fec118a73..19ec643d5 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 87.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.4 % @@ -240,21 +240,21 @@ gst_tensor_transform_arithmetic - 22192 + 22168 gst_tensor_transform_transform - 22852 + 22828 gst_tensor_transform_transform_size - 22852 + 22828 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.func.html index 7437229df..a34f113d2 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 87.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.4 % @@ -72,7 +72,7 @@ gst_tensor_transform_arithmetic - 22192 + 22168 @@ -233,7 +233,7 @@ gst_tensor_transform_transform - 22852 + 22828 @@ -247,7 +247,7 @@ gst_tensor_transform_transform_size - 22852 + 22828 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.gcov.html index be4bf49bd..b9e5c49e9 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements/gsttensor_transform.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 87.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.4 % @@ -1395,7 +1395,7 @@ 1333 : * @return Gst flow status 1334 : */ 1335 : static GstFlowReturn - 1336 22192 : gst_tensor_transform_arithmetic (GstTensorTransform * filter, + 1336 22168 : gst_tensor_transform_arithmetic (GstTensorTransform * filter, 1337 : GstTensorInfo * in_info, GstTensorInfo * out_info, 1338 : const uint8_t * inptr, uint8_t * outptr) 1339 : { @@ -1406,27 +1406,27 @@ 1344 : tensor_transform_operator_s *op_s; 1345 : tensor_data_s value; 1346 : - 1347 22192 : num = gst_tensor_get_element_count (in_info->dimension); + 1347 22168 : num = gst_tensor_get_element_count (in_info->dimension); 1348 : 1349 : #ifdef HAVE_ORC - 1350 22192 : if (filter->acceleration) { - 1351 22092 : walk = filter->operators; + 1350 22168 : if (filter->acceleration) { + 1351 22068 : walk = filter->operators; 1352 : /** 1353 : * Typecast should be called at the first. 1354 : * Do the typecast. If in/out type is same, this will copy the input array to output. 1355 : */ - 1356 22092 : orc_typecast (inptr, outptr, num, in_info->type, out_info->type); + 1356 22068 : orc_typecast (inptr, outptr, num, in_info->type, out_info->type); 1357 : - 1358 22092 : if (!filter->data_arithmetic.per_channel_arith) { - 1359 67204 : while (walk) { - 1360 45113 : op_s = (tensor_transform_operator_s *) walk->data; + 1358 22068 : if (!filter->data_arithmetic.per_channel_arith) { + 1359 67154 : while (walk) { + 1360 45087 : op_s = (tensor_transform_operator_s *) walk->data; 1361 : - 1362 45113 : if (op_s->op != GTT_OP_TYPECAST) { - 1363 23100 : gst_tensor_data_typecast (&op_s->value, out_info->type); - 1364 24128 : orc_operator (outptr, num, &op_s->value, op_s->op); + 1362 45087 : if (op_s->op != GTT_OP_TYPECAST) { + 1363 23098 : gst_tensor_data_typecast (&op_s->value, out_info->type); + 1364 24126 : orc_operator (outptr, num, &op_s->value, op_s->op); 1365 : } 1366 : - 1367 45113 : walk = g_slist_next (walk); + 1367 45087 : walk = g_slist_next (walk); 1368 : } 1369 : } else { 1370 1 : gsize typesize = 0; @@ -1462,7 +1462,7 @@ 1400 1 : walk = g_slist_next (walk); 1401 : } 1402 : } - 1403 22192 : return GST_FLOW_OK; + 1403 22168 : return GST_FLOW_OK; 1404 : } 1405 : #endif 1406 : @@ -1880,14 +1880,14 @@ 1818 : * @return Gst Flow Status 1819 : */ 1820 : static GstFlowReturn - 1821 22852 : gst_tensor_transform_transform (GstBaseTransform * trans, + 1821 22828 : gst_tensor_transform_transform (GstBaseTransform * trans, 1822 : GstBuffer * inbuf, GstBuffer * outbuf) 1823 : { 1824 : GstTensorTransform *filter; 1825 : GstTensorInfo *in_info, *out_info; - 1826 22852 : GstFlowReturn res = GST_FLOW_ERROR; - 1827 22852 : GstMemory *in_mem[NNS_TENSOR_SIZE_LIMIT] = { 0, }; - 1828 22852 : GstMemory *out_mem[NNS_TENSOR_SIZE_LIMIT] = { 0, }; + 1826 22828 : GstFlowReturn res = GST_FLOW_ERROR; + 1827 22828 : GstMemory *in_mem[NNS_TENSOR_SIZE_LIMIT] = { 0, }; + 1828 22828 : GstMemory *out_mem[NNS_TENSOR_SIZE_LIMIT] = { 0, }; 1829 : GstMapInfo in_map[NNS_TENSOR_SIZE_LIMIT]; 1830 : GstMapInfo out_map[NNS_TENSOR_SIZE_LIMIT]; 1831 : uint8_t *inptr, *outptr; @@ -1897,30 +1897,30 @@ 1835 : GstTensorInfo in_flex_info, out_flex_info; 1836 : gboolean in_flexible, out_flexible; 1837 : - 1838 22852 : filter = GST_TENSOR_TRANSFORM_CAST (trans); + 1838 22828 : filter = GST_TENSOR_TRANSFORM_CAST (trans); 1839 : - 1840 45700 : g_return_val_if_fail (filter->loaded, GST_FLOW_ERROR); - 1841 22848 : inbuf = gst_tensor_buffer_from_config (inbuf, &filter->in_config); + 1840 45652 : g_return_val_if_fail (filter->loaded, GST_FLOW_ERROR); + 1841 22824 : inbuf = gst_tensor_buffer_from_config (inbuf, &filter->in_config); 1842 : - 1843 22848 : in_flexible = - 1844 22848 : gst_tensor_pad_caps_is_flexible (GST_BASE_TRANSFORM_SINK_PAD (trans)); - 1845 22848 : out_flexible = - 1846 22848 : gst_tensor_pad_caps_is_flexible (GST_BASE_TRANSFORM_SRC_PAD (trans)); + 1843 22824 : in_flexible = + 1844 22824 : gst_tensor_pad_caps_is_flexible (GST_BASE_TRANSFORM_SINK_PAD (trans)); + 1845 22824 : out_flexible = + 1846 22824 : gst_tensor_pad_caps_is_flexible (GST_BASE_TRANSFORM_SRC_PAD (trans)); 1847 : - 1848 22848 : num_mems = gst_tensor_buffer_get_count (inbuf); - 1849 22848 : if (in_flexible) { + 1848 22824 : num_mems = gst_tensor_buffer_get_count (inbuf); + 1849 22824 : if (in_flexible) { 1850 8 : num_tensors = num_mems; 1851 8 : g_return_val_if_fail (out_flexible, GST_FLOW_ERROR); 1852 : } else { - 1853 22840 : num_tensors = filter->in_config.info.num_tensors; - 1854 22840 : g_return_val_if_fail (num_mems == num_tensors, GST_FLOW_ERROR); + 1853 22816 : num_tensors = filter->in_config.info.num_tensors; + 1854 22816 : g_return_val_if_fail (num_mems == num_tensors, GST_FLOW_ERROR); 1855 : } 1856 : - 1857 45782 : for (i = 0; i < num_tensors; i++) { - 1858 22934 : in_info = gst_tensors_info_get_nth_info (&filter->in_config.info, i); - 1859 22934 : out_info = gst_tensors_info_get_nth_info (&filter->out_config.info, i); + 1857 45734 : for (i = 0; i < num_tensors; i++) { + 1858 22910 : in_info = gst_tensors_info_get_nth_info (&filter->in_config.info, i); + 1859 22910 : out_info = gst_tensors_info_get_nth_info (&filter->out_config.info, i); 1860 : - 1861 22934 : if (filter->apply && !g_list_find (filter->apply, GINT_TO_POINTER (i))) { + 1861 22910 : if (filter->apply && !g_list_find (filter->apply, GINT_TO_POINTER (i))) { 1862 15 : GstMemory *mem = gst_tensor_buffer_get_nth_memory (inbuf, i); 1863 : 1864 15 : if (!in_flexible && out_flexible) { @@ -1937,15 +1937,15 @@ 1875 : } 1876 : 1877 : /* parse input buffer */ - 1878 22919 : in_mem[i] = gst_tensor_buffer_get_nth_memory (inbuf, i); - 1879 22919 : if (!gst_memory_map (in_mem[i], &in_map[i], GST_MAP_READ)) { + 1878 22895 : in_mem[i] = gst_tensor_buffer_get_nth_memory (inbuf, i); + 1879 22895 : if (!gst_memory_map (in_mem[i], &in_map[i], GST_MAP_READ)) { 1880 0 : ml_loge ("Cannot map input buffer to gst-buf at tensor-transform.\n"); 1881 0 : res = GST_FLOW_ERROR; 1882 0 : goto done; 1883 : } - 1884 22919 : inptr = in_map[i].data; + 1884 22895 : inptr = in_map[i].data; 1885 : - 1886 22919 : if (in_flexible) { + 1886 22895 : if (in_flexible) { 1887 8 : in_info = &in_flex_info; 1888 8 : out_info = &out_flex_info; 1889 : @@ -1964,29 +1964,29 @@ 1902 : } 1903 : 1904 : /* prepare output buffer */ - 1905 22919 : buf_size = gst_tensor_info_get_size (out_info); - 1906 22919 : if (out_flexible) { + 1905 22895 : buf_size = gst_tensor_info_get_size (out_info); + 1906 22895 : if (out_flexible) { 1907 8 : gst_tensor_info_convert_to_meta (out_info, &meta); 1908 8 : hsize = gst_tensor_meta_info_get_header_size (&meta); 1909 8 : buf_size += hsize; 1910 : } 1911 : - 1912 22919 : out_mem[i] = gst_allocator_alloc (NULL, buf_size, NULL); - 1913 22919 : gst_tensor_buffer_append_memory (outbuf, out_mem[i], out_info); + 1912 22895 : out_mem[i] = gst_allocator_alloc (NULL, buf_size, NULL); + 1913 22895 : gst_tensor_buffer_append_memory (outbuf, out_mem[i], out_info); 1914 : - 1915 22919 : if (!gst_memory_map (out_mem[i], &out_map[i], GST_MAP_WRITE)) { + 1915 22895 : if (!gst_memory_map (out_mem[i], &out_map[i], GST_MAP_WRITE)) { 1916 0 : ml_loge ("Cannot map output buffer to gst-buf at tensor-transform.\n"); 1917 0 : res = GST_FLOW_ERROR; 1918 0 : goto done; 1919 : } - 1920 22919 : outptr = out_map[i].data; + 1920 22895 : outptr = out_map[i].data; 1921 : - 1922 22919 : if (out_flexible) { + 1922 22895 : if (out_flexible) { 1923 8 : gst_tensor_meta_info_update_header (&meta, outptr); 1924 8 : outptr += hsize; 1925 : } 1926 : - 1927 22919 : switch (filter->mode) { + 1927 22895 : switch (filter->mode) { 1928 52 : case GTT_DIMCHG: 1929 52 : res = gst_tensor_transform_dimchg (filter, in_info, out_info, 1930 : inptr, outptr); @@ -1995,10 +1995,10 @@ 1933 579 : res = gst_tensor_transform_typecast (filter, in_info, out_info, 1934 : inptr, outptr); 1935 579 : break; - 1936 22192 : case GTT_ARITHMETIC: - 1937 22192 : res = gst_tensor_transform_arithmetic (filter, in_info, out_info, + 1936 22168 : case GTT_ARITHMETIC: + 1937 22168 : res = gst_tensor_transform_arithmetic (filter, in_info, out_info, 1938 : inptr, outptr); - 1939 22192 : break; + 1939 22168 : break; 1940 58 : case GTT_TRANSPOSE: 1941 58 : res = gst_tensor_transform_transpose (filter, in_info, out_info, 1942 : inptr, outptr); @@ -2022,17 +2022,17 @@ 1960 : } 1961 : } 1962 : - 1963 22848 : done: - 1964 45782 : for (i = 0; i < num_tensors; i++) { - 1965 22934 : if (in_mem[i]) { - 1966 22919 : gst_memory_unmap (in_mem[i], &in_map[i]); - 1967 22919 : gst_memory_unref (in_mem[i]); + 1963 22824 : done: + 1964 45734 : for (i = 0; i < num_tensors; i++) { + 1965 22910 : if (in_mem[i]) { + 1966 22895 : gst_memory_unmap (in_mem[i], &in_map[i]); + 1967 22895 : gst_memory_unref (in_mem[i]); 1968 : } - 1969 22934 : if (out_mem[i]) - 1970 22919 : gst_memory_unmap (out_mem[i], &out_map[i]); + 1969 22910 : if (out_mem[i]) + 1970 22895 : gst_memory_unmap (out_mem[i], &out_map[i]); 1971 : } 1972 : - 1973 22848 : return res; + 1973 22824 : return res; 1974 : } 1975 : 1976 : /** @@ -2394,7 +2394,7 @@ 2332 : * @brief Tell the framework the required size of buffer based on the info of the other side pad. Note that this is always the same with the input. optional vmethod of BaseTransform 2333 : */ 2334 : static gboolean - 2335 22852 : gst_tensor_transform_transform_size (GstBaseTransform * trans, + 2335 22828 : gst_tensor_transform_transform_size (GstBaseTransform * trans, 2336 : GstPadDirection direction, GstCaps * caps, gsize size, GstCaps * othercaps, 2337 : gsize * othersize) 2338 : { @@ -2407,9 +2407,9 @@ 2345 : * Consider multi-tensors. 2346 : * Set each memory block in transform() 2347 : */ - 2348 22852 : *othersize = 0; + 2348 22828 : *othersize = 0; 2349 : - 2350 22852 : return TRUE; + 2350 22828 : return TRUE; 2351 : } diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index-sort-f.html index a43f7327c..7169620da 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.8 % 8111 - 6718 + 6715 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.4 % @@ -322,11 +322,11 @@ gsttensor_srciio.c -
78.9%78.9%
+
78.7%78.7%
- 78.9 % + 78.7 % 1139 - 899 + 896 100.0 % 47 47 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index-sort-l.html index c5709448f..27ddbcae9 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.8 % 8111 - 6718 + 6715 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.4 % @@ -118,11 +118,11 @@ gsttensor_srciio.c -
78.9%78.9%
+
78.7%78.7%
- 78.9 % + 78.7 % 1139 - 899 + 896 100.0 % 47 47 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index.html index ab0460566..50c86a7ff 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/elements/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/elements + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/elements @@ -28,16 +28,16 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.8 % 8111 - 6718 + 6715 Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.4 % @@ -298,11 +298,11 @@ gsttensor_srciio.c -
78.9%78.9%
+
78.7%78.7%
- 78.9 % + 78.7 % 1139 - 899 + 896 100.0 % 47 47 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.func-c.html index d5f3172eb..beae4c1ad 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.func.html index 9987c7b91..98cdf907f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.gcov.html index e1b709fc1..5ac54e2b2 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/hw_accel.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index-sort-f.html index 22046dd02..ed6b2f321 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/include + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/include @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index-sort-l.html index aa3b20470..1af62a27a 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/include + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/include @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index.html index e75896bfa..1bd54620d 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/include + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/include @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.func-c.html index 6a036487b..481d97b0c 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.func.html index b9a04fe02..e91e31615 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.gcov.html index bfe4b0efe..697433e69 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/include/nnstreamer_cppplugin_api_filter.hh @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 72.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/index-sort-f.html index a5503a488..6c8c14e7b 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/index-sort-l.html index fdf3af21f..5263b12a2 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/index.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/index.html index 17608b01e..5ce2169dd 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/index.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.func-c.html index cae43bb67..186972e5f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 75.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.func.html index 8326bcb0b..fde05dc85 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 75.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.gcov.html index 164e1fb49..38e4d1e95 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/ml_agent.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 75.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.func-c.html index 5f4439ca4..e4a1d3141 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 75.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 83.3 % @@ -107,7 +107,7 @@ nnsconf_get_fullpath - 393 + 389 @@ -121,7 +121,7 @@ nnsconf_validate_file - 471 + 467 @@ -135,14 +135,14 @@ _get_subplugin_with_type - 1631 + 1627 nnsconf_get_subplugin_info - 1631 + 1627 @@ -156,7 +156,7 @@ nnsconf_loadconf - 2717 + 2705 @@ -177,7 +177,7 @@ _validate_file - 12203 + 12199 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.func.html index 9c6bed19a..f82d80405 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 75.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 83.3 % @@ -100,7 +100,7 @@ _get_subplugin_with_type - 1631 + 1627 @@ -121,7 +121,7 @@ _validate_file - 12203 + 12199 @@ -149,14 +149,14 @@ nnsconf_get_fullpath - 393 + 389 nnsconf_get_subplugin_info - 1631 + 1627 @@ -170,7 +170,7 @@ nnsconf_loadconf - 2717 + 2705 @@ -184,7 +184,7 @@ nnsconf_validate_file - 471 + 467 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.gcov.html index 9db7181fc..6f583ceb5 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_conf.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 75.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 83.3 % @@ -217,11 +217,11 @@ 155 : * @brief Private function to validate .so file can be added to the list. 156 : */ 157 : static gboolean - 158 12203 : _validate_file (nnsconf_type_path type, const gchar * fullpath) + 158 12199 : _validate_file (nnsconf_type_path type, const gchar * fullpath) 159 : { 160 : /* ignore directory */ - 161 12203 : if (!fullpath || !g_file_test (fullpath, G_FILE_TEST_IS_REGULAR)) - 162 153 : return FALSE; + 161 12199 : if (!fullpath || !g_file_test (fullpath, G_FILE_TEST_IS_REGULAR)) + 162 149 : return FALSE; 163 : /* ignore symbol link file */ 164 12050 : if (!conf.enable_symlink && g_file_test (fullpath, G_FILE_TEST_IS_SYMLINK)) 165 0 : return FALSE; @@ -288,27 +288,27 @@ 226 : * @brief Private function to get sub-plugins list with type. 227 : */ 228 : static gboolean - 229 1631 : _get_subplugin_with_type (nnsconf_type_path type, gchar *** name, + 229 1627 : _get_subplugin_with_type (nnsconf_type_path type, gchar *** name, 230 : gchar *** filepath) 231 : { - 232 1631 : if (type >= NNSCONF_PATH_END) { + 232 1627 : if (type >= NNSCONF_PATH_END) { 233 : /* unknown type */ 234 0 : ml_loge ("Failed to get sub-plugins, unknown sub-plugin type."); 235 0 : return FALSE; 236 : } 237 : - 238 1631 : if (!conf.loaded) { + 238 1627 : if (!conf.loaded) { 239 0 : ml_loge ("Configuration file is not loaded."); 240 0 : return FALSE; 241 : } 242 : 243 : /* Easy custom uses the configuration of custom */ - 244 1631 : if (type == NNSCONF_PATH_EASY_CUSTOM_FILTERS) - 245 25 : type = NNSCONF_PATH_CUSTOM_FILTERS; + 244 1627 : if (type == NNSCONF_PATH_EASY_CUSTOM_FILTERS) + 245 21 : type = NNSCONF_PATH_CUSTOM_FILTERS; 246 : - 247 1631 : *name = conf.conf[type].names; - 248 1631 : *filepath = conf.conf[type].files; - 249 1631 : return TRUE; + 247 1627 : *name = conf.conf[type].names; + 248 1627 : *filepath = conf.conf[type].files; + 249 1627 : return TRUE; 250 : } 251 : 252 : /** @@ -401,14 +401,14 @@ 339 : 340 : /** @brief Public function defined in the header */ 341 : gboolean - 342 2717 : nnsconf_loadconf (gboolean force_reload) + 342 2705 : nnsconf_loadconf (gboolean force_reload) 343 : { - 344 2717 : const gchar root_path_prefix[] = NNSTREAMER_SYS_ROOT_PATH_PREFIX; - 345 2717 : GKeyFile *key_file = NULL; + 344 2705 : const gchar root_path_prefix[] = NNSTREAMER_SYS_ROOT_PATH_PREFIX; + 345 2705 : GKeyFile *key_file = NULL; 346 : guint i, t; 347 : - 348 2717 : if (!force_reload && conf.loaded) - 349 2717 : return TRUE; + 348 2705 : if (!force_reload && conf.loaded) + 349 2705 : return TRUE; 350 : 351 452 : if (force_reload && conf.loaded) { 352 : /* Do Clean Up */ @@ -542,31 +542,31 @@ 480 : 481 : /** @brief Public function defined in the header */ 482 : const gchar * - 483 393 : nnsconf_get_fullpath (const gchar * subpluginname, nnsconf_type_path type) + 483 389 : nnsconf_get_fullpath (const gchar * subpluginname, nnsconf_type_path type) 484 : { 485 : subplugin_info_s info; 486 : guint i, total; 487 : - 488 393 : nnsconf_loadconf (FALSE); + 488 389 : nnsconf_loadconf (FALSE); 489 : - 490 393 : total = nnsconf_get_subplugin_info (type, &info); - 491 3203 : for (i = 0; i < total; i++) { + 490 389 : total = nnsconf_get_subplugin_info (type, &info); + 491 3199 : for (i = 0; i < total; i++) { 492 3047 : if (g_strcmp0 (info.names[i], subpluginname) == 0) - 493 393 : return info.paths[i]; + 493 389 : return info.paths[i]; 494 : } 495 : - 496 156 : return NULL; + 496 152 : return NULL; 497 : } 498 : 499 : /** 500 : * @brief Public function to validate sub-plugin library is available. 501 : */ 502 : gboolean - 503 471 : nnsconf_validate_file (nnsconf_type_path type, const gchar * fullpath) + 503 467 : nnsconf_validate_file (nnsconf_type_path type, const gchar * fullpath) 504 : { - 505 471 : nnsconf_loadconf (FALSE); + 505 467 : nnsconf_loadconf (FALSE); 506 : - 507 471 : return _validate_file (type, fullpath); + 507 467 : return _validate_file (type, fullpath); 508 : } 509 : 510 : /** @@ -587,22 +587,22 @@ 525 : * @note DO NOT free sub-plugins info 526 : */ 527 : guint - 528 1631 : nnsconf_get_subplugin_info (nnsconf_type_path type, subplugin_info_s * info) + 528 1627 : nnsconf_get_subplugin_info (nnsconf_type_path type, subplugin_info_s * info) 529 : { 530 : gchar **vstr, **vstrFull; 531 : - 532 3262 : g_return_val_if_fail (info != NULL, 0); - 533 1631 : info->names = info->paths = NULL; + 532 3254 : g_return_val_if_fail (info != NULL, 0); + 533 1627 : info->names = info->paths = NULL; 534 : - 535 1631 : nnsconf_loadconf (FALSE); + 535 1627 : nnsconf_loadconf (FALSE); 536 : - 537 1631 : if (!_get_subplugin_with_type (type, &vstr, &vstrFull)) + 537 1627 : if (!_get_subplugin_with_type (type, &vstr, &vstrFull)) 538 0 : return 0; 539 : - 540 1631 : info->names = vstr; - 541 1631 : info->paths = vstrFull; + 540 1627 : info->names = vstr; + 541 1627 : info->paths = vstrFull; 542 : - 543 1631 : return g_strv_length (vstr); + 543 1627 : return g_strv_length (vstr); 544 : } 545 : 546 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.func-c.html index 04a995551..0bfc7f054 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 65.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 50.0 % @@ -86,7 +86,7 @@ _nnstreamer_error_write - 14338 + 14395 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.func.html index 3e535ee4f..f00cf3e6f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 65.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 50.0 % @@ -86,7 +86,7 @@ _nnstreamer_error_write - 14338 + 14395 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.gcov.html index 0fb13f44e..664c86926 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_log.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 65.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 50.0 % @@ -157,23 +157,23 @@ 95 : * @brief overwrites the error message buffer with the new message. 96 : */ 97 : __attribute__((__format__ (__printf__, 1, 2))) - 98 14338 : void _nnstreamer_error_write (const char *fmt, ...) + 98 14395 : void _nnstreamer_error_write (const char *fmt, ...) 99 : { 100 : /** 101 : * The attribute is for clang workaround in macos: 102 : * https://stackoverflow.com/questions/20167124/vsprintf-and-vsnprintf-wformat-nonliteral-warning-on-clang-5-0 103 : */ 104 : va_list arg_ptr; - 105 14338 : G_LOCK (errlock); + 105 14395 : G_LOCK (errlock); 106 : - 107 14338 : va_start (arg_ptr, fmt); - 108 14338 : vsnprintf (errmsg, _NNSTREAMER_ERROR_LENGTH, fmt, arg_ptr); - 109 14338 : va_end (arg_ptr); + 107 14395 : va_start (arg_ptr, fmt); + 108 14395 : vsnprintf (errmsg, _NNSTREAMER_ERROR_LENGTH, fmt, arg_ptr); + 109 14395 : va_end (arg_ptr); 110 : - 111 14338 : errmsg_reported = 0; + 111 14395 : errmsg_reported = 0; 112 : - 113 14338 : G_UNLOCK (errlock); - 114 14338 : } + 113 14395 : G_UNLOCK (errlock); + 114 14395 : } 115 : 116 : /** 117 : * @brief cleans up the error message buffer. diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.func-c.html index d6e13c9dd..4530def1d 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -142,7 +142,7 @@ gst_tensor_meta_info_append_header - 282 + 281 @@ -191,21 +191,21 @@ gst_tensor_caps_update_dimension - 1599 + 1601 gst_tensor_pad_possible_caps_from_config - 1993 + 2000 _get_flexible_caps - 2784 + 2791 @@ -247,14 +247,14 @@ _gst_tensor_time_sync_buffer_update - 3783 + 3778 gst_tensors_config_from_peer - 4309 + 4287 @@ -275,14 +275,14 @@ gst_tensor_time_sync_get_current_time - 5835 + 5889 gst_tensor_time_sync_buffer_from_collectpad - 6291 + 6348 @@ -296,70 +296,70 @@ _gst_tensor_time_sync_is_eos - 11454 + 11565 gst_structure_is_tensor_stream - 16050 + 15970 gst_structure_get_media_type - 20331 + 20133 gst_tensor_buffer_from_config - 35974 + 36059 gst_tensor_buffer_append_memory - 60786 + 60842 gst_tensor_meta_info_parse_memory - 60811 + 60867 gst_tensor_buffer_get_nth_memory - 63023 + 63074 gst_tensor_buffer_get_count - 123330 + 123440 gst_tensor_pad_get_format - 131527 + 131524 gst_tensors_config_from_structure - 159291 + 159381 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.func.html index 55bd53fa0..13ce47516 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -72,7 +72,7 @@ _get_flexible_caps - 2784 + 2791 @@ -93,14 +93,14 @@ _gst_tensor_time_sync_buffer_update - 3783 + 3778 _gst_tensor_time_sync_is_eos - 11454 + 11565 @@ -121,14 +121,14 @@ gst_structure_get_media_type - 20331 + 20133 gst_structure_is_tensor_stream - 16050 + 15970 @@ -191,28 +191,28 @@ gst_tensor_buffer_append_memory - 60786 + 60842 gst_tensor_buffer_from_config - 35974 + 36059 gst_tensor_buffer_get_count - 123330 + 123440 gst_tensor_buffer_get_nth_memory - 63023 + 63074 @@ -233,7 +233,7 @@ gst_tensor_caps_update_dimension - 1599 + 1601 @@ -247,14 +247,14 @@ gst_tensor_meta_info_append_header - 282 + 281 gst_tensor_meta_info_parse_memory - 60811 + 60867 @@ -268,14 +268,14 @@ gst_tensor_pad_get_format - 131527 + 131524 gst_tensor_pad_possible_caps_from_config - 1993 + 2000 @@ -289,7 +289,7 @@ gst_tensor_time_sync_buffer_from_collectpad - 6291 + 6348 @@ -303,7 +303,7 @@ gst_tensor_time_sync_get_current_time - 5835 + 5889 @@ -345,14 +345,14 @@ gst_tensors_config_from_peer - 4309 + 4287 gst_tensors_config_from_structure - 159291 + 159381 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.gcov.html index 25697a8d4..6b3d4e492 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_impl.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -234,26 +234,26 @@ 172 : * @return True if EOS. 173 : */ 174 : static gboolean - 175 11454 : _gst_tensor_time_sync_is_eos (GstCollectPads * collect, + 175 11565 : _gst_tensor_time_sync_is_eos (GstCollectPads * collect, 176 : tensor_time_sync_data * sync, guint empty) 177 : { 178 : guint total; - 179 11454 : gboolean is_eos = FALSE; + 179 11565 : gboolean is_eos = FALSE; 180 : - 181 11454 : total = g_slist_length (collect->data); + 181 11565 : total = g_slist_length (collect->data); 182 : - 183 11454 : switch (sync->mode) { - 184 9526 : case SYNC_REFRESH: - 185 9526 : if (empty == total) + 183 11565 : switch (sync->mode) { + 184 9640 : case SYNC_REFRESH: + 185 9640 : if (empty == total) 186 2 : is_eos = TRUE; - 187 9526 : break; - 188 1928 : default: - 189 1928 : if (empty > 0) - 190 214 : is_eos = TRUE; - 191 1928 : break; + 187 9640 : break; + 188 1925 : default: + 189 1925 : if (empty > 0) + 190 211 : is_eos = TRUE; + 191 1925 : break; 192 : } 193 : - 194 11454 : return is_eos; + 194 11565 : return is_eos; 195 : } 196 : 197 : /** @@ -262,59 +262,59 @@ 200 : * GstMeta is also copied with same sync mode. 201 : */ 202 : gboolean - 203 5835 : gst_tensor_time_sync_get_current_time (GstCollectPads * collect, + 203 5889 : gst_tensor_time_sync_get_current_time (GstCollectPads * collect, 204 : tensor_time_sync_data * sync, GstClockTime * current_time, 205 : GstBuffer * tensors_buf) 206 : { - 207 5835 : GSList *walk = NULL; + 207 5889 : GSList *walk = NULL; 208 : guint count, empty_pad; 209 : - 210 5835 : g_return_val_if_fail (collect != NULL, FALSE); - 211 5835 : g_return_val_if_fail (sync != NULL, FALSE); - 212 5835 : g_return_val_if_fail (current_time != NULL, FALSE); + 210 5889 : g_return_val_if_fail (collect != NULL, FALSE); + 211 5889 : g_return_val_if_fail (sync != NULL, FALSE); + 212 5889 : g_return_val_if_fail (current_time != NULL, FALSE); 213 : - 214 5835 : walk = collect->data; - 215 5835 : count = empty_pad = 0; + 214 5889 : walk = collect->data; + 215 5889 : count = empty_pad = 0; 216 : - 217 18577 : while (walk) { + 217 18735 : while (walk) { 218 : GstCollectData *data; 219 : GstBuffer *buf; - 220 12742 : gboolean need_update = FALSE; + 220 12846 : gboolean need_update = FALSE; 221 : - 222 12742 : data = (GstCollectData *) walk->data; - 223 12742 : buf = gst_collect_pads_peek (collect, data); - 224 12742 : walk = g_slist_next (walk); + 222 12846 : data = (GstCollectData *) walk->data; + 223 12846 : buf = gst_collect_pads_peek (collect, data); + 224 12846 : walk = g_slist_next (walk); 225 : - 226 12742 : if (buf) { - 227 7435 : switch (sync->mode) { - 228 6776 : case SYNC_NOSYNC: + 226 12846 : if (buf) { + 227 7490 : switch (sync->mode) { + 228 6832 : case SYNC_NOSYNC: 229 : /* fall-through */ 230 : case SYNC_SLOWEST: 231 : case SYNC_REFRESH: - 232 6776 : if (*current_time < GST_BUFFER_PTS (buf)) - 233 5316 : need_update = TRUE; - 234 6776 : break; - 235 659 : case SYNC_BASEPAD: - 236 659 : if (count == sync->data_basepad.sink_id) + 232 6832 : if (*current_time < GST_BUFFER_PTS (buf)) + 233 5378 : need_update = TRUE; + 234 6832 : break; + 235 658 : case SYNC_BASEPAD: + 236 658 : if (count == sync->data_basepad.sink_id) 237 296 : need_update = TRUE; - 238 659 : break; + 238 658 : break; 239 0 : default: 240 0 : break; 241 : } - 242 7435 : if (need_update) { - 243 5612 : *current_time = GST_BUFFER_PTS (buf); - 244 5612 : gst_buffer_copy_into (tensors_buf, buf, GST_BUFFER_COPY_METADATA, + 242 7490 : if (need_update) { + 243 5674 : *current_time = GST_BUFFER_PTS (buf); + 244 5674 : gst_buffer_copy_into (tensors_buf, buf, GST_BUFFER_COPY_METADATA, 245 : 0, -1); 246 : } - 247 7435 : gst_buffer_unref (buf); + 247 7490 : gst_buffer_unref (buf); 248 : } else { - 249 5307 : empty_pad++; + 249 5356 : empty_pad++; 250 : } 251 : - 252 12742 : count++; + 252 12846 : count++; 253 : } 254 : - 255 5835 : return _gst_tensor_time_sync_is_eos (collect, sync, empty_pad); + 255 5889 : return _gst_tensor_time_sync_is_eos (collect, sync, empty_pad); 256 : } 257 : 258 : /** @@ -346,43 +346,43 @@ 284 : * @brief Internal function to update buffer in pad data based on the sync mode. 285 : */ 286 : static gboolean - 287 3783 : _gst_tensor_time_sync_buffer_update (GstCollectPads * collect, + 287 3778 : _gst_tensor_time_sync_buffer_update (GstCollectPads * collect, 288 : GstCollectData * data, GstClockTime current, GstClockTime base, 289 : tensor_time_sync_data * sync) 290 : { 291 : GstTensorCollectPadData *pad; 292 : GstBuffer *buf; 293 : - 294 3783 : pad = (GstTensorCollectPadData *) data; + 294 3778 : pad = (GstTensorCollectPadData *) data; 295 : - 296 3783 : buf = gst_collect_pads_peek (collect, data); - 297 3783 : if (buf != NULL) { - 298 3646 : if (GST_BUFFER_PTS (buf) < current) { + 296 3778 : buf = gst_collect_pads_peek (collect, data); + 297 3778 : if (buf != NULL) { + 298 3645 : if (GST_BUFFER_PTS (buf) < current) { 299 671 : gst_buffer_unref (buf); 300 671 : if (pad->buffer != NULL) - 301 668 : gst_buffer_unref (pad->buffer); + 301 669 : gst_buffer_unref (pad->buffer); 302 671 : pad->buffer = gst_collect_pads_pop (collect, data); 303 671 : return FALSE; 304 : } 305 : - 306 4400 : if ((sync->mode == SYNC_SLOWEST && pad->buffer != NULL && + 306 4399 : if ((sync->mode == SYNC_SLOWEST && pad->buffer != NULL && 307 1425 : (ABS (GST_CLOCK_DIFF (current, GST_BUFFER_PTS (pad->buffer))) < 308 1425 : ABS (GST_CLOCK_DIFF (current, GST_BUFFER_PTS (buf))))) || - 309 3946 : (sync->mode == SYNC_BASEPAD && pad->buffer != NULL && - 310 1135 : (((GstClockTime) ABS (GST_CLOCK_DIFF (current, + 309 3943 : (sync->mode == SYNC_BASEPAD && pad->buffer != NULL && + 310 1133 : (((GstClockTime) ABS (GST_CLOCK_DIFF (current, 311 : GST_BUFFER_PTS (buf)))) > base))) { 312 : /* keep last buffer */ 313 : } else { 314 : /* update last buffer */ - 315 2241 : if (pad->buffer != NULL) - 316 1826 : gst_buffer_unref (pad->buffer); - 317 2241 : pad->buffer = gst_collect_pads_pop (collect, data); + 315 2240 : if (pad->buffer != NULL) + 316 1824 : gst_buffer_unref (pad->buffer); + 317 2240 : pad->buffer = gst_collect_pads_pop (collect, data); 318 : } 319 : - 320 2975 : gst_buffer_unref (buf); + 320 2974 : gst_buffer_unref (buf); 321 : } 322 : - 323 3112 : return TRUE; + 323 3107 : return TRUE; 324 : } 325 : 326 : /** @@ -391,35 +391,35 @@ 329 : * @return True to push buffer. 330 : */ 331 : gboolean - 332 6291 : gst_tensor_time_sync_buffer_from_collectpad (GstCollectPads * collect, + 332 6348 : gst_tensor_time_sync_buffer_from_collectpad (GstCollectPads * collect, 333 : tensor_time_sync_data * sync, GstClockTime current_time, 334 : GstBuffer * tensors_buf, GstTensorsConfig * configs, gboolean * is_eos) 335 : { - 336 6291 : GSList *walk = NULL; + 336 6348 : GSList *walk = NULL; 337 : GstCollectData *data; 338 : GstTensorCollectPadData *pad; - 339 6291 : GstBuffer *buf = NULL; + 339 6348 : GstBuffer *buf = NULL; 340 : GstMemory *mem; - 341 6291 : gint old_numerator = G_MAXINT; - 342 6291 : gint old_denominator = G_MAXINT; + 341 6348 : gint old_numerator = G_MAXINT; + 342 6348 : gint old_denominator = G_MAXINT; 343 : guint counting, empty_pad; 344 : GstTensorsConfig in_configs; - 345 6291 : GstClockTime base_time = 0; + 345 6348 : GstClockTime base_time = 0; 346 : GstTensorInfo *_info; 347 : guint i, j; 348 : GstMemory *in_mem[NNS_TENSOR_SIZE_LIMIT]; 349 : tensor_format in_formats[NNS_TENSOR_SIZE_LIMIT]; 350 : - 351 12582 : g_return_val_if_fail (collect != NULL, FALSE); - 352 6291 : g_return_val_if_fail (sync != NULL, FALSE); - 353 6291 : g_return_val_if_fail (tensors_buf != NULL, FALSE); - 354 6291 : g_return_val_if_fail (configs != NULL, FALSE); - 355 6291 : g_return_val_if_fail (is_eos != NULL, FALSE); + 351 12696 : g_return_val_if_fail (collect != NULL, FALSE); + 352 6348 : g_return_val_if_fail (sync != NULL, FALSE); + 353 6348 : g_return_val_if_fail (tensors_buf != NULL, FALSE); + 354 6348 : g_return_val_if_fail (configs != NULL, FALSE); + 355 6348 : g_return_val_if_fail (is_eos != NULL, FALSE); 356 : - 357 6291 : walk = collect->data; - 358 6291 : counting = empty_pad = 0; + 357 6348 : walk = collect->data; + 358 6348 : counting = empty_pad = 0; 359 : - 360 6291 : if (sync->mode == SYNC_BASEPAD) { + 360 6348 : if (sync->mode == SYNC_BASEPAD) { 361 711 : walk = g_slist_nth (walk, sync->data_basepad.sink_id); 362 711 : if (walk == NULL) { 363 0 : GST_ERROR_OBJECT (collect, "Cannot get GstCollectData from GSList"); @@ -440,28 +440,28 @@ 378 : } 379 : } 380 : - 381 6291 : walk = collect->data; + 381 6348 : walk = collect->data; 382 : - 383 6291 : gst_tensors_config_init (&in_configs); + 383 6348 : gst_tensors_config_init (&in_configs); 384 : - 385 19184 : while (walk) { - 386 13565 : gboolean configured = FALSE; - 387 13565 : gboolean is_empty = FALSE; + 385 19350 : while (walk) { + 386 13674 : gboolean configured = FALSE; + 387 13674 : gboolean is_empty = FALSE; 388 : - 389 13565 : data = (GstCollectData *) walk->data; - 390 13565 : pad = (GstTensorCollectPadData *) data; + 389 13674 : data = (GstCollectData *) walk->data; + 390 13674 : pad = (GstTensorCollectPadData *) data; 391 : - 392 13565 : if (gst_pad_has_current_caps (data->pad)) { - 393 13564 : GstCaps *caps = gst_pad_get_current_caps (data->pad); - 394 13564 : GstStructure *s = gst_caps_get_structure (caps, 0); + 392 13674 : if (gst_pad_has_current_caps (data->pad)) { + 393 13673 : GstCaps *caps = gst_pad_get_current_caps (data->pad); + 394 13673 : GstStructure *s = gst_caps_get_structure (caps, 0); 395 : - 396 13564 : if (gst_tensors_config_validate (&in_configs)) - 397 7274 : gst_tensors_config_free (&in_configs); + 396 13673 : if (gst_tensors_config_validate (&in_configs)) + 397 7326 : gst_tensors_config_free (&in_configs); 398 : - 399 13564 : gst_tensors_config_from_structure (&in_configs, s); - 400 13564 : gst_caps_unref (caps); + 399 13673 : gst_tensors_config_from_structure (&in_configs, s); + 400 13673 : gst_caps_unref (caps); 401 : - 402 13564 : configured = gst_tensors_config_validate (&in_configs); + 402 13673 : configured = gst_tensors_config_validate (&in_configs); 403 : } 404 : 405 : /** @@ -471,87 +471,87 @@ 409 : * If new sync mode is enabled (e.g., handle output when a pad gets new buffer), 410 : * this may cause unexpected exception. 411 : */ - 412 13565 : if (!configured) { + 412 13674 : if (!configured) { 413 1 : return FALSE; 414 : } 415 : - 416 13564 : if (in_configs.rate_d < old_denominator) - 417 6290 : old_denominator = in_configs.rate_d; - 418 13564 : if (in_configs.rate_n < old_numerator) - 419 6498 : old_numerator = in_configs.rate_n; + 416 13673 : if (in_configs.rate_d < old_denominator) + 417 6347 : old_denominator = in_configs.rate_d; + 418 13673 : if (in_configs.rate_n < old_numerator) + 419 6555 : old_numerator = in_configs.rate_n; 420 : - 421 13564 : walk = g_slist_next (walk); + 421 13673 : walk = g_slist_next (walk); 422 : - 423 13564 : switch (sync->mode) { - 424 3783 : case SYNC_SLOWEST: + 423 13673 : switch (sync->mode) { + 424 3778 : case SYNC_SLOWEST: 425 : /* fall-through */ 426 : case SYNC_BASEPAD: - 427 3783 : if (!_gst_tensor_time_sync_buffer_update (collect, data, + 427 3778 : if (!_gst_tensor_time_sync_buffer_update (collect, data, 428 : current_time, base_time, sync)) 429 671 : return FALSE; - 430 3112 : buf = gst_buffer_ref (pad->buffer); - 431 3112 : is_empty = (buf == NULL); - 432 3112 : break; + 430 3107 : buf = gst_buffer_ref (pad->buffer); + 431 3107 : is_empty = (buf == NULL); + 432 3107 : break; 433 257 : case SYNC_NOSYNC: 434 257 : buf = gst_collect_pads_pop (collect, data); 435 257 : is_empty = (buf == NULL); 436 257 : break; - 437 9524 : case SYNC_REFRESH: - 438 9524 : buf = gst_collect_pads_pop (collect, data); - 439 9524 : if (buf != NULL) { - 440 4763 : if (pad->buffer != NULL) { - 441 4761 : gst_buffer_unref (pad->buffer); + 437 9638 : case SYNC_REFRESH: + 438 9638 : buf = gst_collect_pads_pop (collect, data); + 439 9638 : if (buf != NULL) { + 440 4820 : if (pad->buffer != NULL) { + 441 4818 : gst_buffer_unref (pad->buffer); 442 : } - 443 4763 : pad->buffer = gst_buffer_ref (buf); + 443 4820 : pad->buffer = gst_buffer_ref (buf); 444 : } else { - 445 4761 : if (pad->buffer == NULL) { + 445 4818 : if (pad->buffer == NULL) { 446 0 : *is_eos = FALSE; 447 0 : ml_logd ("Not the all buffers are arrived yet."); 448 0 : return FALSE; 449 : } - 450 4761 : is_empty = TRUE; - 451 4761 : buf = gst_buffer_ref (pad->buffer); + 450 4818 : is_empty = TRUE; + 451 4818 : buf = gst_buffer_ref (pad->buffer); 452 : } - 453 9524 : break; + 453 9638 : break; 454 0 : default: 455 0 : break; 456 : } 457 : - 458 12893 : if (GST_IS_BUFFER (buf)) { - 459 12893 : guint32 n_tensor = gst_tensor_buffer_get_count (buf); - 460 12893 : buf = gst_tensor_buffer_from_config (buf, &in_configs); + 458 13002 : if (GST_IS_BUFFER (buf)) { + 459 13002 : guint32 n_tensor = gst_tensor_buffer_get_count (buf); + 460 13002 : buf = gst_tensor_buffer_from_config (buf, &in_configs); 461 : 462 : /** These are internal logic error. If given inputs are incorrect, 463 : the negotiation should have been failed before this stage. */ - 464 12893 : if (gst_tensors_config_is_static (&in_configs)) - 465 12867 : g_assert (n_tensor == in_configs.info.num_tensors); - 466 12893 : g_assert ((counting + n_tensor) <= NNS_TENSOR_SIZE_LIMIT); + 464 13002 : if (gst_tensors_config_is_static (&in_configs)) + 465 12976 : g_assert (n_tensor == in_configs.info.num_tensors); + 466 13002 : g_assert ((counting + n_tensor) <= NNS_TENSOR_SIZE_LIMIT); 467 : - 468 12893 : if (gst_tensors_config_is_flexible (&in_configs)) + 468 13002 : if (gst_tensors_config_is_flexible (&in_configs)) 469 26 : configs->info.format = _NNS_TENSOR_FORMAT_FLEXIBLE; 470 : - 471 26166 : for (i = 0; i < n_tensor; ++i) { - 472 13273 : in_mem[counting] = gst_tensor_buffer_get_nth_memory (buf, i); + 471 26384 : for (i = 0; i < n_tensor; ++i) { + 472 13382 : in_mem[counting] = gst_tensor_buffer_get_nth_memory (buf, i); 473 : 474 : /* set info */ - 475 13273 : gst_tensor_info_copy (gst_tensors_info_get_nth_info (&configs->info, - 476 13273 : counting), gst_tensors_info_get_nth_info (&in_configs.info, i)); - 477 13273 : in_formats[counting] = in_configs.info.format; - 478 13273 : counting++; + 475 13382 : gst_tensor_info_copy (gst_tensors_info_get_nth_info (&configs->info, + 476 13382 : counting), gst_tensors_info_get_nth_info (&in_configs.info, i)); + 477 13382 : in_formats[counting] = in_configs.info.format; + 478 13382 : counting++; 479 : } 480 : - 481 12893 : gst_buffer_unref (buf); + 481 13002 : gst_buffer_unref (buf); 482 : } - 483 12893 : if (is_empty) - 484 4761 : empty_pad++; + 483 13002 : if (is_empty) + 484 4818 : empty_pad++; 485 : } 486 : 487 : /* append memories to output buffer */ - 488 18092 : for (i = 0; i < counting; i++) { - 489 12473 : _info = gst_tensors_info_get_nth_info (&configs->info, i); - 490 12473 : mem = in_mem[i]; + 488 18263 : for (i = 0; i < counting; i++) { + 489 12587 : _info = gst_tensors_info_get_nth_info (&configs->info, i); + 490 12587 : mem = in_mem[i]; 491 : - 492 12473 : if (gst_tensors_config_is_flexible (configs)) { + 492 12587 : if (gst_tensors_config_is_flexible (configs)) { 493 : /* append header if input tensor is not flexible */ 494 46 : if (in_formats[i] != _NNS_TENSOR_FORMAT_FLEXIBLE) { 495 : GstTensorMetaInfo meta; @@ -562,7 +562,7 @@ 500 : } 501 : } 502 : - 503 12473 : if (!gst_tensor_buffer_append_memory (tensors_buf, mem, _info)) { + 503 12587 : if (!gst_tensor_buffer_append_memory (tensors_buf, mem, _info)) { 504 0 : for (j = i + 1; j < counting; j++) 505 0 : gst_memory_unref (in_mem[j]); 506 : @@ -571,17 +571,17 @@ 509 : } 510 : } 511 : - 512 5619 : configs->info.num_tensors = counting; - 513 5619 : configs->rate_d = old_denominator; - 514 5619 : configs->rate_n = old_numerator; + 512 5676 : configs->info.num_tensors = counting; + 513 5676 : configs->rate_d = old_denominator; + 514 5676 : configs->rate_n = old_numerator; 515 : - 516 5619 : GST_BUFFER_PTS (tensors_buf) = current_time; + 516 5676 : GST_BUFFER_PTS (tensors_buf) = current_time; 517 : - 518 5619 : gst_tensors_config_free (&in_configs); + 518 5676 : gst_tensors_config_free (&in_configs); 519 : 520 : /* check eos */ - 521 5619 : *is_eos = _gst_tensor_time_sync_is_eos (collect, sync, empty_pad); - 522 5619 : return !(*is_eos); + 521 5676 : *is_eos = _gst_tensor_time_sync_is_eos (collect, sync, empty_pad); + 522 5676 : return !(*is_eos); 523 : } 524 : 525 : /** @@ -594,36 +594,36 @@ 532 : * @return Newly allocated buffer. Null if failed. Caller should unref the buffer using gst_buffer_unref(). 533 : */ 534 : GstBuffer * - 535 35974 : gst_tensor_buffer_from_config (GstBuffer * in, GstTensorsConfig * config) + 535 36059 : gst_tensor_buffer_from_config (GstBuffer * in, GstTensorsConfig * config) 536 : { - 537 35974 : GstBuffer *out = NULL; - 538 35974 : GstMemory *all = NULL; + 537 36059 : GstBuffer *out = NULL; + 538 36059 : GstMemory *all = NULL; 539 : GstMapInfo map; 540 : guint i, num; 541 : gsize total, offset; 542 : gsize mem_size[NNS_TENSOR_MEMORY_MAX]; - 543 35974 : gboolean configured = FALSE; - 544 35974 : gboolean is_extra = FALSE; + 543 36059 : gboolean configured = FALSE; + 544 36059 : gboolean is_extra = FALSE; 545 : - 546 35974 : if (!GST_IS_BUFFER (in)) { + 546 36059 : if (!GST_IS_BUFFER (in)) { 547 1 : nns_loge ("Failed to get tensor buffer, invalid input buffer."); - 548 35974 : return NULL; + 548 36059 : return NULL; 549 : } 550 : - 551 35973 : if (!gst_tensors_config_validate (config)) { + 551 36058 : if (!gst_tensors_config_validate (config)) { 552 2 : nns_loge ("Failed to get tensor buffer, invalid tensor configuration."); 553 2 : goto error; 554 : } 555 : - 556 35971 : num = gst_buffer_n_memory (in); - 557 35971 : total = gst_buffer_get_size (in); + 556 36056 : num = gst_buffer_n_memory (in); + 557 36056 : total = gst_buffer_get_size (in); 558 : 559 : /* get memory size */ - 560 35971 : if (gst_tensors_config_is_static (config)) { - 561 35895 : if (num == config->info.num_tensors) { + 560 36056 : if (gst_tensors_config_is_static (config)) { + 561 35980 : if (num == config->info.num_tensors) { 562 : /* Do nothing, pass input buffer. */ - 563 35888 : out = gst_buffer_ref (in); - 564 35888 : goto done; + 563 35973 : out = gst_buffer_ref (in); + 564 35973 : goto done; 565 : } 566 : 567 7 : num = config->info.num_tensors; @@ -695,22 +695,22 @@ 633 : 634 7 : gst_buffer_copy_into (out, in, GST_BUFFER_COPY_METADATA, 0, -1); 635 : - 636 35970 : done: - 637 35970 : configured = TRUE; - 638 35973 : error: - 639 35973 : gst_buffer_unref (in); + 636 36055 : done: + 637 36055 : configured = TRUE; + 638 36058 : error: + 639 36058 : gst_buffer_unref (in); 640 : - 641 35973 : if (all) + 641 36058 : if (all) 642 8 : gst_memory_unref (all); 643 : - 644 35973 : if (!configured) { + 644 36058 : if (!configured) { 645 3 : if (out) { 646 1 : gst_buffer_unref (out); 647 1 : out = NULL; 648 : } 649 : } 650 : - 651 35973 : return out; + 651 36058 : return out; 652 : } 653 : 654 : /** @@ -945,10 +945,10 @@ 883 : } 884 : 885 5413 : if (config->rate_n >= 0 && config->rate_d > 0) { - 886 1992 : gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION, - 887 1992 : config->rate_n, config->rate_d, NULL); + 886 1993 : gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION, + 887 1993 : config->rate_n, config->rate_d, NULL); 888 : - 889 1992 : if (structure) + 889 1993 : if (structure) 890 63 : gst_structure_set (structure, "framerate", GST_TYPE_FRACTION, 891 63 : config->rate_n, config->rate_d, NULL); 892 : } @@ -1005,10 +1005,10 @@ 943 : } 944 : 945 4929 : if (config->rate_n >= 0 && config->rate_d > 0) { - 946 1422 : gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION, - 947 1422 : config->rate_n, config->rate_d, NULL); + 946 1423 : gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION, + 947 1423 : config->rate_n, config->rate_d, NULL); 948 : - 949 1422 : if (structure) + 949 1423 : if (structure) 950 68 : gst_structure_set (structure, "framerate", GST_TYPE_FRACTION, 951 68 : config->rate_n, config->rate_d, NULL); 952 : } @@ -1023,18 +1023,18 @@ 961 : * @brief Internal function to get caps for flexible tensor from config. 962 : */ 963 : static GstCaps * - 964 2784 : _get_flexible_caps (const GstTensorsConfig * config) + 964 2791 : _get_flexible_caps (const GstTensorsConfig * config) 965 : { 966 : GstCaps *caps; 967 : - 968 2784 : caps = gst_caps_from_string (GST_TENSORS_FLEX_CAP_DEFAULT); + 968 2791 : caps = gst_caps_from_string (GST_TENSORS_FLEX_CAP_DEFAULT); 969 : - 970 2784 : if (config->rate_n >= 0 && config->rate_d > 0) { - 971 810 : gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION, - 972 810 : config->rate_n, config->rate_d, NULL); + 970 2791 : if (config->rate_n >= 0 && config->rate_d > 0) { + 971 812 : gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION, + 972 812 : config->rate_n, config->rate_d, NULL); 973 : } 974 : - 975 2784 : return caps; + 975 2791 : return caps; 976 : } 977 : 978 : /** @@ -1043,15 +1043,15 @@ 981 : * @return TRUE if mimetype is tensor stream 982 : */ 983 : gboolean - 984 16050 : gst_structure_is_tensor_stream (const GstStructure * structure) + 984 15970 : gst_structure_is_tensor_stream (const GstStructure * structure) 985 : { 986 : const gchar *name; 987 : - 988 16050 : name = gst_structure_get_name (structure); - 989 16050 : g_return_val_if_fail (name != NULL, FALSE); + 988 15970 : name = gst_structure_get_name (structure); + 989 15970 : g_return_val_if_fail (name != NULL, FALSE); 990 : - 991 28966 : return (g_str_equal (name, NNS_MIMETYPE_TENSOR) || - 992 12916 : g_str_equal (name, NNS_MIMETYPE_TENSORS)); + 991 28805 : return (g_str_equal (name, NNS_MIMETYPE_TENSOR) || + 992 12835 : g_str_equal (name, NNS_MIMETYPE_TENSORS)); 993 : } 994 : 995 : /** @@ -1060,36 +1060,36 @@ 998 : * @return corresponding media type (returns _NNS_MEDIA_INVALID for unsupported type) 999 : */ 1000 : media_type - 1001 20331 : gst_structure_get_media_type (const GstStructure * structure) + 1001 20133 : gst_structure_get_media_type (const GstStructure * structure) 1002 : { 1003 : const gchar *name; 1004 : - 1005 20331 : name = gst_structure_get_name (structure); + 1005 20133 : name = gst_structure_get_name (structure); 1006 : - 1007 20331 : g_return_val_if_fail (name != NULL, _NNS_MEDIA_INVALID); + 1007 20133 : g_return_val_if_fail (name != NULL, _NNS_MEDIA_INVALID); 1008 : - 1009 20331 : if (g_str_has_prefix (name, "video/")) { - 1010 2786 : return _NNS_VIDEO; + 1009 20133 : if (g_str_has_prefix (name, "video/")) { + 1010 2764 : return _NNS_VIDEO; 1011 : } 1012 : - 1013 17545 : if (g_str_has_prefix (name, "audio/")) { - 1014 2202 : return _NNS_AUDIO; + 1013 17369 : if (g_str_has_prefix (name, "audio/")) { + 1014 2180 : return _NNS_AUDIO; 1015 : } 1016 : - 1017 15343 : if (g_str_has_prefix (name, "text/")) { - 1018 2175 : return _NNS_TEXT; + 1017 15189 : if (g_str_has_prefix (name, "text/")) { + 1018 2153 : return _NNS_TEXT; 1019 : } 1020 : - 1021 13168 : if (g_str_equal (name, "application/octet-stream")) { - 1022 4446 : return _NNS_OCTET; + 1021 13036 : if (g_str_equal (name, "application/octet-stream")) { + 1022 4402 : return _NNS_OCTET; 1023 : } 1024 : - 1025 8722 : if (gst_structure_is_tensor_stream (structure)) { - 1026 2170 : return _NNS_TENSOR; + 1025 8634 : if (gst_structure_is_tensor_stream (structure)) { + 1026 2148 : return _NNS_TENSOR; 1027 : } 1028 : 1029 : /* unknown or unsupported type */ - 1030 6552 : return _NNS_MEDIA_INVALID; + 1030 6486 : return _NNS_MEDIA_INVALID; 1031 : } 1032 : 1033 : /** @@ -1100,31 +1100,31 @@ 1038 : * @return TRUE if successfully configured from peer 1039 : */ 1040 : gboolean - 1041 4309 : gst_tensors_config_from_peer (GstPad * pad, GstTensorsConfig * config, + 1041 4287 : gst_tensors_config_from_peer (GstPad * pad, GstTensorsConfig * config, 1042 : gboolean * is_fixed) 1043 : { 1044 : GstCaps *peer_caps; 1045 : GstStructure *structure; - 1046 4309 : gboolean ret = FALSE; + 1046 4287 : gboolean ret = FALSE; 1047 : - 1048 4309 : g_return_val_if_fail (GST_IS_PAD (pad), FALSE); - 1049 4309 : g_return_val_if_fail (config != NULL, FALSE); + 1048 4287 : g_return_val_if_fail (GST_IS_PAD (pad), FALSE); + 1049 4287 : g_return_val_if_fail (config != NULL, FALSE); 1050 : - 1051 4309 : gst_tensors_config_init (config); + 1051 4287 : gst_tensors_config_init (config); 1052 : - 1053 4309 : if ((peer_caps = gst_pad_peer_query_caps (pad, NULL))) { - 1054 4309 : if (gst_caps_get_size (peer_caps) > 0) { - 1055 2204 : structure = gst_caps_get_structure (peer_caps, 0); - 1056 2204 : ret = gst_tensors_config_from_structure (config, structure); + 1053 4287 : if ((peer_caps = gst_pad_peer_query_caps (pad, NULL))) { + 1054 4287 : if (gst_caps_get_size (peer_caps) > 0) { + 1055 2182 : structure = gst_caps_get_structure (peer_caps, 0); + 1056 2182 : ret = gst_tensors_config_from_structure (config, structure); 1057 : } 1058 : - 1059 4309 : if (ret && is_fixed) + 1059 4287 : if (ret && is_fixed) 1060 30 : *is_fixed = gst_caps_is_fixed (peer_caps); 1061 : - 1062 4309 : gst_caps_unref (peer_caps); + 1062 4287 : gst_caps_unref (peer_caps); 1063 : } 1064 : - 1065 4309 : return ret; + 1065 4287 : return ret; 1066 : } 1067 : 1068 : /** @@ -1152,28 +1152,28 @@ 1090 : * @param filter caps to compare 1091 : */ 1092 : void - 1093 1599 : gst_tensor_caps_update_dimension (GstCaps * caps, GstCaps * filter) + 1093 1601 : gst_tensor_caps_update_dimension (GstCaps * caps, GstCaps * filter) 1094 : { 1095 : GstStructure *st_caps, *st_filter; 1096 : guint i, j; 1097 : - 1098 1599 : g_return_if_fail (GST_IS_CAPS (caps)); - 1099 1599 : g_return_if_fail (GST_IS_CAPS (filter)); + 1098 1601 : g_return_if_fail (GST_IS_CAPS (caps)); + 1099 1601 : g_return_if_fail (GST_IS_CAPS (filter)); 1100 : - 1101 4139 : for (i = 0; i < gst_caps_get_size (caps); i++) { - 1102 2540 : st_caps = gst_caps_get_structure (caps, i); + 1101 4145 : for (i = 0; i < gst_caps_get_size (caps); i++) { + 1102 2544 : st_caps = gst_caps_get_structure (caps, i); 1103 : - 1104 2540 : if (!gst_structure_is_tensor_stream (st_caps)) + 1104 2544 : if (!gst_structure_is_tensor_stream (st_caps)) 1105 0 : continue; 1106 : - 1107 7287 : for (j = 0; j < gst_caps_get_size (filter); j++) { - 1108 4747 : st_filter = gst_caps_get_structure (filter, j); + 1107 7295 : for (j = 0; j < gst_caps_get_size (filter); j++) { + 1108 4751 : st_filter = gst_caps_get_structure (filter, j); 1109 : - 1110 4747 : if (!gst_structure_is_tensor_stream (st_filter)) + 1110 4751 : if (!gst_structure_is_tensor_stream (st_filter)) 1111 0 : continue; 1112 : 1113 : /* other/tensor */ - 1114 4747 : if (gst_structure_has_field (st_caps, "dimension") + 1114 4751 : if (gst_structure_has_field (st_caps, "dimension") 1115 2600 : && gst_structure_has_field (st_filter, "dimension")) { 1116 : /* update dimensions for negotiation */ 1117 230 : if (_is_structure_dimension_same (st_caps, st_filter, "dimension")) { @@ -1182,7 +1182,7 @@ 1120 : } 1121 : } 1122 : /* other/tensors */ - 1123 4632 : else if (gst_structure_has_field (st_caps, "dimensions") + 1123 4636 : else if (gst_structure_has_field (st_caps, "dimensions") 1124 1213 : && gst_structure_has_field (st_filter, "dimensions")) { 1125 : /* update dimensions for negotiation */ 1126 89 : if (_is_structure_dimension_same (st_caps, st_filter, "dimensions")) { @@ -1345,26 +1345,26 @@ 1283 : * @return caps for given config. Caller is responsible for unreffing the returned caps. 1284 : */ 1285 : GstCaps * - 1286 1993 : gst_tensor_pad_possible_caps_from_config (GstPad * pad, + 1286 2000 : gst_tensor_pad_possible_caps_from_config (GstPad * pad, 1287 : const GstTensorsConfig * config) 1288 : { 1289 : GstCaps *caps, *tmp; 1290 : GstCaps *templ; 1291 : - 1292 1993 : g_return_val_if_fail (GST_IS_PAD (pad), NULL); - 1293 1993 : g_return_val_if_fail (config != NULL, NULL); + 1292 2000 : g_return_val_if_fail (GST_IS_PAD (pad), NULL); + 1293 2000 : g_return_val_if_fail (config != NULL, NULL); 1294 : - 1295 1993 : caps = gst_caps_new_empty (); - 1296 1993 : templ = gst_pad_get_pad_template_caps (pad); + 1295 2000 : caps = gst_caps_new_empty (); + 1296 2000 : templ = gst_pad_get_pad_template_caps (pad); 1297 : 1298 : /* append caps for static tensor */ - 1299 1993 : if (gst_tensors_config_is_static (config)) { + 1299 2000 : if (gst_tensors_config_is_static (config)) { 1300 : /* other/tensor */ 1301 1877 : if ((tmp = _get_tensor_caps (config)) != NULL) { 1302 1774 : if (gst_caps_can_intersect (tmp, templ)) - 1303 1726 : gst_caps_append (caps, tmp); + 1303 1727 : gst_caps_append (caps, tmp); 1304 : else - 1305 48 : gst_caps_unref (tmp); + 1305 47 : gst_caps_unref (tmp); 1306 : } 1307 : 1308 : /* other/tensors */ @@ -1377,21 +1377,21 @@ 1315 : } 1316 : 1317 : /* caps for flexible tensor */ - 1318 1993 : if ((tmp = _get_flexible_caps (config)) != NULL) { - 1319 1993 : if (gst_caps_can_intersect (tmp, templ)) - 1320 1900 : gst_caps_append (caps, tmp); + 1318 2000 : if ((tmp = _get_flexible_caps (config)) != NULL) { + 1319 2000 : if (gst_caps_can_intersect (tmp, templ)) + 1320 1907 : gst_caps_append (caps, tmp); 1321 : else 1322 93 : gst_caps_unref (tmp); 1323 : } 1324 : 1325 : /* if no possible caps for given config, return null. */ - 1326 1993 : if (gst_caps_is_empty (caps)) { + 1326 2000 : if (gst_caps_is_empty (caps)) { 1327 0 : gst_caps_unref (caps); 1328 0 : caps = NULL; 1329 : } 1330 : - 1331 1993 : gst_caps_unref (templ); - 1332 1993 : return caps; + 1331 2000 : gst_caps_unref (templ); + 1332 2000 : return caps; 1333 : } 1334 : 1335 : /** @@ -1402,27 +1402,27 @@ 1340 : * If pad does not have tensor caps return _NNS_TENSOR_FORMAT_END 1341 : */ 1342 : tensor_format - 1343 131527 : gst_tensor_pad_get_format (GstPad * pad) + 1343 131524 : gst_tensor_pad_get_format (GstPad * pad) 1344 : { 1345 : GstCaps *caps; - 1346 131527 : tensor_format ret = _NNS_TENSOR_FORMAT_END; + 1346 131524 : tensor_format ret = _NNS_TENSOR_FORMAT_END; 1347 : - 1348 131527 : g_return_val_if_fail (GST_IS_PAD (pad), _NNS_TENSOR_FORMAT_END); + 1348 131524 : g_return_val_if_fail (GST_IS_PAD (pad), _NNS_TENSOR_FORMAT_END); 1349 : - 1350 131527 : caps = gst_pad_get_current_caps (pad); - 1351 131527 : if (caps) { + 1350 131524 : caps = gst_pad_get_current_caps (pad); + 1351 131524 : if (caps) { 1352 : GstStructure *structure; 1353 : GstTensorsConfig config; 1354 : - 1355 131513 : structure = gst_caps_get_structure (caps, 0); - 1356 131513 : if (gst_tensors_config_from_structure (&config, structure)) { - 1357 131402 : ret = config.info.format; + 1355 131511 : structure = gst_caps_get_structure (caps, 0); + 1356 131511 : if (gst_tensors_config_from_structure (&config, structure)) { + 1357 131400 : ret = config.info.format; 1358 : } - 1359 131513 : gst_caps_unref (caps); - 1360 131513 : gst_tensors_config_free (&config); + 1359 131511 : gst_caps_unref (caps); + 1360 131511 : gst_tensors_config_free (&config); 1361 : } 1362 : - 1363 131527 : return ret; + 1363 131524 : return ret; 1364 : } 1365 : 1366 : /** @@ -1472,77 +1472,77 @@ 1410 : * @return TRUE if no error 1411 : */ 1412 : gboolean - 1413 159291 : gst_tensors_config_from_structure (GstTensorsConfig * config, + 1413 159381 : gst_tensors_config_from_structure (GstTensorsConfig * config, 1414 : const GstStructure * structure) 1415 : { 1416 : const gchar *name; - 1417 159291 : tensor_format format = _NNS_TENSOR_FORMAT_STATIC; + 1417 159381 : tensor_format format = _NNS_TENSOR_FORMAT_STATIC; 1418 : - 1419 159291 : g_return_val_if_fail (config != NULL, FALSE); - 1420 159289 : gst_tensors_config_init (config); + 1419 159381 : g_return_val_if_fail (config != NULL, FALSE); + 1420 159379 : gst_tensors_config_init (config); 1421 : - 1422 159289 : g_return_val_if_fail (structure != NULL, FALSE); + 1422 159379 : g_return_val_if_fail (structure != NULL, FALSE); 1423 : - 1424 159288 : name = gst_structure_get_name (structure); + 1424 159378 : name = gst_structure_get_name (structure); 1425 : - 1426 159288 : if (g_str_equal (name, NNS_MIMETYPE_TENSOR)) { + 1426 159378 : if (g_str_equal (name, NNS_MIMETYPE_TENSOR)) { 1427 : /* other/tensor is always static */ - 1428 146845 : config->info.num_tensors = 1; + 1428 146894 : config->info.num_tensors = 1; 1429 : - 1430 146845 : if (gst_structure_has_field (structure, "dimension")) { - 1431 140721 : const gchar *dim_str = gst_structure_get_string (structure, "dimension"); - 1432 140721 : gst_tensor_parse_dimension (dim_str, config->info.info[0].dimension); + 1430 146894 : if (gst_structure_has_field (structure, "dimension")) { + 1431 140772 : const gchar *dim_str = gst_structure_get_string (structure, "dimension"); + 1432 140772 : gst_tensor_parse_dimension (dim_str, config->info.info[0].dimension); 1433 : } 1434 : - 1435 146845 : if (gst_structure_has_field (structure, "type")) { - 1436 140874 : const gchar *type_str = gst_structure_get_string (structure, "type"); - 1437 140874 : config->info.info[0].type = gst_tensor_get_type (type_str); + 1435 146894 : if (gst_structure_has_field (structure, "type")) { + 1436 140925 : const gchar *type_str = gst_structure_get_string (structure, "type"); + 1437 140925 : config->info.info[0].type = gst_tensor_get_type (type_str); 1438 : } - 1439 12443 : } else if (g_str_equal (name, NNS_MIMETYPE_TENSORS)) { - 1440 12332 : if (gst_structure_has_field (structure, "format")) { + 1439 12484 : } else if (g_str_equal (name, NNS_MIMETYPE_TENSORS)) { + 1440 12373 : if (gst_structure_has_field (structure, "format")) { 1441 : const gchar *format_str; 1442 : - 1443 12330 : format_str = gst_structure_get_string (structure, "format"); - 1444 12330 : format = gst_tensor_get_format (format_str); + 1443 12371 : format_str = gst_structure_get_string (structure, "format"); + 1444 12371 : format = gst_tensor_get_format (format_str); 1445 : - 1446 12330 : if (format == _NNS_TENSOR_FORMAT_END) { + 1446 12371 : if (format == _NNS_TENSOR_FORMAT_END) { 1447 1482 : GST_INFO 1448 : ("Invalid format %s, it should be one of %s. Suppose tensor format is static.", 1449 : _STR_NULL (format_str), GST_TENSOR_FORMAT_ALL); 1450 : } else { - 1451 10848 : config->info.format = format; + 1451 10889 : config->info.format = format; 1452 : } 1453 : } 1454 : - 1455 12332 : if (config->info.format == _NNS_TENSOR_FORMAT_STATIC) { - 1456 10332 : gst_structure_get_int (structure, "num_tensors", - 1457 10332 : (gint *) (&config->info.num_tensors)); + 1455 12373 : if (config->info.format == _NNS_TENSOR_FORMAT_STATIC) { + 1456 10389 : gst_structure_get_int (structure, "num_tensors", + 1457 10389 : (gint *) (&config->info.num_tensors)); 1458 : 1459 : /* parse dimensions */ - 1460 10332 : if (gst_structure_has_field (structure, "dimensions")) { + 1460 10389 : if (gst_structure_has_field (structure, "dimensions")) { 1461 : const gchar *dims_str; 1462 : guint num_dims; 1463 : - 1464 8008 : dims_str = gst_structure_get_string (structure, "dimensions"); + 1464 8065 : dims_str = gst_structure_get_string (structure, "dimensions"); 1465 : num_dims = - 1466 8008 : gst_tensors_info_parse_dimensions_string (&config->info, dims_str); + 1466 8065 : gst_tensors_info_parse_dimensions_string (&config->info, dims_str); 1467 : - 1468 8008 : if (config->info.num_tensors != num_dims) { + 1468 8065 : if (config->info.num_tensors != num_dims) { 1469 8 : nns_logw ("Invalid param, dimensions (%d) tensors (%d)\n", 1470 : num_dims, config->info.num_tensors); 1471 : } 1472 : } 1473 : 1474 : /* parse types */ - 1475 10332 : if (gst_structure_has_field (structure, "types")) { + 1475 10389 : if (gst_structure_has_field (structure, "types")) { 1476 : const gchar *types_str; 1477 : guint num_types; 1478 : - 1479 7960 : types_str = gst_structure_get_string (structure, "types"); + 1479 8017 : types_str = gst_structure_get_string (structure, "types"); 1480 : num_types = - 1481 7960 : gst_tensors_info_parse_types_string (&config->info, types_str); + 1481 8017 : gst_tensors_info_parse_types_string (&config->info, types_str); 1482 : - 1483 7960 : if (config->info.num_tensors != num_types) { + 1483 8017 : if (config->info.num_tensors != num_types) { 1484 0 : nns_logw ("Invalid param, types (%d) tensors (%d)\n", 1485 : num_types, config->info.num_tensors); 1486 : } @@ -1553,12 +1553,12 @@ 1491 111 : return FALSE; 1492 : } 1493 : - 1494 159177 : if (gst_structure_has_field (structure, "framerate")) { - 1495 159158 : gst_structure_get_fraction (structure, "framerate", &config->rate_n, - 1496 159158 : &config->rate_d); + 1494 159267 : if (gst_structure_has_field (structure, "framerate")) { + 1495 159248 : gst_structure_get_fraction (structure, "framerate", &config->rate_n, + 1496 159248 : &config->rate_d); 1497 : } 1498 : - 1499 159177 : return TRUE; + 1499 159267 : return TRUE; 1500 : } 1501 : 1502 : /** @@ -1590,32 +1590,32 @@ 1528 : * @return TRUE if successfully set the meta 1529 : */ 1530 : gboolean - 1531 60811 : gst_tensor_meta_info_parse_memory (GstTensorMetaInfo * meta, GstMemory * mem) + 1531 60867 : gst_tensor_meta_info_parse_memory (GstTensorMetaInfo * meta, GstMemory * mem) 1532 : { 1533 : GstMapInfo map; 1534 : gsize hsize, msize; 1535 : gboolean ret; 1536 : - 1537 121621 : g_return_val_if_fail (mem != NULL, FALSE); - 1538 60810 : g_return_val_if_fail (meta != NULL, FALSE); + 1537 121733 : g_return_val_if_fail (mem != NULL, FALSE); + 1538 60866 : g_return_val_if_fail (meta != NULL, FALSE); 1539 : - 1540 60809 : gst_tensor_meta_info_init (meta); + 1540 60865 : gst_tensor_meta_info_init (meta); 1541 : 1542 : /* Check header size of tensor-meta. */ - 1543 60809 : hsize = gst_tensor_meta_info_get_header_size (meta); - 1544 60809 : msize = gst_memory_get_sizes (mem, NULL, NULL); - 1545 60809 : if (msize < hsize) - 1546 7529 : return FALSE; + 1543 60865 : hsize = gst_tensor_meta_info_get_header_size (meta); + 1544 60865 : msize = gst_memory_get_sizes (mem, NULL, NULL); + 1545 60865 : if (msize < hsize) + 1546 7577 : return FALSE; 1547 : - 1548 53280 : if (!gst_memory_map (mem, &map, GST_MAP_READ)) { + 1548 53288 : if (!gst_memory_map (mem, &map, GST_MAP_READ)) { 1549 0 : nns_loge ("Failed to get the meta, cannot map the memory."); 1550 0 : return FALSE; 1551 : } 1552 : - 1553 53280 : ret = gst_tensor_meta_info_parse_header (meta, map.data); + 1553 53288 : ret = gst_tensor_meta_info_parse_header (meta, map.data); 1554 : - 1555 53280 : gst_memory_unmap (mem, &map); - 1556 53280 : return ret; + 1555 53288 : gst_memory_unmap (mem, &map); + 1556 53288 : return ret; 1557 : } 1558 : 1559 : /** @@ -1625,26 +1625,26 @@ 1563 : * @return Newly allocated GstMemory (Caller should free returned memory using gst_memory_unref()) 1564 : */ 1565 : GstMemory * - 1566 282 : gst_tensor_meta_info_append_header (GstTensorMetaInfo * meta, GstMemory * mem) + 1566 281 : gst_tensor_meta_info_append_header (GstTensorMetaInfo * meta, GstMemory * mem) 1567 : { - 1568 282 : GstMemory *new_mem = NULL; + 1568 281 : GstMemory *new_mem = NULL; 1569 : gsize msize, hsize; 1570 : GstMapInfo old_map, new_map; 1571 : - 1572 563 : g_return_val_if_fail (mem != NULL, NULL); - 1573 281 : g_return_val_if_fail (gst_tensor_meta_info_validate (meta), NULL); + 1572 561 : g_return_val_if_fail (mem != NULL, NULL); + 1573 280 : g_return_val_if_fail (gst_tensor_meta_info_validate (meta), NULL); 1574 : - 1575 280 : if (!gst_memory_map (mem, &old_map, GST_MAP_READ)) { + 1575 279 : if (!gst_memory_map (mem, &old_map, GST_MAP_READ)) { 1576 0 : nns_loge ("Failed to append header, cannot map the old memory."); 1577 0 : return NULL; 1578 : } 1579 : 1580 : /* memory size (header + old memory) */ - 1581 280 : hsize = gst_tensor_meta_info_get_header_size (meta); - 1582 280 : msize = hsize + old_map.size; + 1581 279 : hsize = gst_tensor_meta_info_get_header_size (meta); + 1582 279 : msize = hsize + old_map.size; 1583 : - 1584 280 : new_mem = gst_allocator_alloc (NULL, msize, NULL); - 1585 280 : if (!gst_memory_map (new_mem, &new_map, GST_MAP_WRITE)) { + 1584 279 : new_mem = gst_allocator_alloc (NULL, msize, NULL); + 1585 279 : if (!gst_memory_map (new_mem, &new_map, GST_MAP_WRITE)) { 1586 0 : nns_loge ("Failed to append header, cannot map the new memory."); 1587 0 : gst_memory_unmap (mem, &old_map); 1588 0 : gst_memory_unref (new_mem); @@ -1652,12 +1652,12 @@ 1590 : } 1591 : 1592 : /* set header and copy old data */ - 1593 280 : gst_tensor_meta_info_update_header (meta, new_map.data); - 1594 280 : memcpy (new_map.data + hsize, old_map.data, old_map.size); + 1593 279 : gst_tensor_meta_info_update_header (meta, new_map.data); + 1594 279 : memcpy (new_map.data + hsize, old_map.data, old_map.size); 1595 : - 1596 280 : gst_memory_unmap (mem, &old_map); - 1597 280 : gst_memory_unmap (new_mem, &new_map); - 1598 280 : return new_mem; + 1596 279 : gst_memory_unmap (mem, &old_map); + 1597 279 : gst_memory_unmap (new_mem, &new_map); + 1598 279 : return new_mem; 1599 : } 1600 : 1601 : /** @@ -1667,29 +1667,29 @@ 1605 : * @return GstMemory if found, otherwise NULL (Caller should free returned memory using gst_memory_unref()). 1606 : */ 1607 : GstMemory * - 1608 63023 : gst_tensor_buffer_get_nth_memory (GstBuffer * buffer, const guint index) + 1608 63074 : gst_tensor_buffer_get_nth_memory (GstBuffer * buffer, const guint index) 1609 : { 1610 : guint i, num_tensors; 1611 : gsize offset; - 1612 63023 : GstMemory *extra_tensors_memory, *res_mem = NULL; + 1612 63074 : GstMemory *extra_tensors_memory, *res_mem = NULL; 1613 : GstMapInfo extra_tensors_map; 1614 : GstTensorExtraInfo *extra_info; 1615 : - 1616 63023 : if (!GST_IS_BUFFER (buffer)) { + 1616 63074 : if (!GST_IS_BUFFER (buffer)) { 1617 0 : nns_loge ("Failed to parse GstBuffer (invalid input buffer)."); - 1618 63023 : return NULL; + 1618 63074 : return NULL; 1619 : } 1620 : - 1621 63023 : num_tensors = gst_tensor_buffer_get_count (buffer); - 1622 63023 : if (index >= num_tensors) { + 1621 63074 : num_tensors = gst_tensor_buffer_get_count (buffer); + 1622 63074 : if (index >= num_tensors) { 1623 0 : nns_loge ("Invalid index %u, the number of tensors in the buffer is %u.", 1624 : index, num_tensors); 1625 0 : return NULL; 1626 : } 1627 : 1628 : /* If num_tensors is less than or equal to NNS_TENSOR_MEMORY_MAX, it's trivial. */ - 1629 63023 : if (num_tensors <= NNS_TENSOR_MEMORY_MAX || index < NNS_TENSOR_MEMORY_MAX - 1) { - 1630 62402 : return gst_buffer_get_memory (buffer, index); + 1629 63074 : if (num_tensors <= NNS_TENSOR_MEMORY_MAX || index < NNS_TENSOR_MEMORY_MAX - 1) { + 1630 62453 : return gst_buffer_get_memory (buffer, index); 1631 : } 1632 : 1633 : /* If num_tensors is greater than NNS_TENSOR_MEMORY_MAX, we need to parse extra info. */ @@ -1747,47 +1747,47 @@ 1685 : * @return TRUE if successfully appended, otherwise FALSE. 1686 : */ 1687 : gboolean - 1688 60786 : gst_tensor_buffer_append_memory (GstBuffer * buffer, GstMemory * memory, + 1688 60842 : gst_tensor_buffer_append_memory (GstBuffer * buffer, GstMemory * memory, 1689 : const GstTensorInfo * info) 1690 : { 1691 : guint num_mems, new_mem_index; - 1692 60786 : GstMemory *new_memory = NULL, *last_memory = NULL; + 1692 60842 : GstMemory *new_memory = NULL, *last_memory = NULL; 1693 : gsize offset, new_mem_size, last_mem_size; 1694 : GstMapInfo new_memory_map, last_memory_map, incoming_memory_map; 1695 : GstTensorExtraInfo *extra_info; 1696 : GstTensorMetaInfo meta; 1697 : gboolean is_extra, is_static; - 1698 60786 : gboolean appended = FALSE; + 1698 60842 : gboolean appended = FALSE; 1699 : - 1700 60786 : if (!GST_IS_BUFFER (buffer)) { + 1700 60842 : if (!GST_IS_BUFFER (buffer)) { 1701 0 : nns_loge ("Failed to append memory, given buffer is invalid."); 1702 0 : goto failed; 1703 : } 1704 : - 1705 60786 : if (!memory) { + 1705 60842 : if (!memory) { 1706 0 : nns_loge ("Failed to append memory, given memory is NULL."); 1707 0 : goto failed; 1708 : } 1709 : - 1710 60786 : if (gst_tensor_meta_info_parse_memory (&meta, memory)) { - 1711 558 : is_static = (meta.format == _NNS_TENSOR_FORMAT_STATIC); + 1710 60842 : if (gst_tensor_meta_info_parse_memory (&meta, memory)) { + 1711 555 : is_static = (meta.format == _NNS_TENSOR_FORMAT_STATIC); 1712 : } else { 1713 : /* Suppose given memory is static tensor. */ - 1714 60228 : is_static = TRUE; + 1714 60287 : is_static = TRUE; 1715 : 1716 : /* Error case if given tensor-info is invalid. */ - 1717 60228 : if (!gst_tensor_info_validate (info)) { + 1717 60287 : if (!gst_tensor_info_validate (info)) { 1718 0 : nns_loge ("Failed to get tensor info (invalid input info)."); 1719 0 : goto failed; 1720 : } 1721 : } 1722 : - 1723 60786 : num_mems = gst_buffer_n_memory (buffer); + 1723 60842 : num_mems = gst_buffer_n_memory (buffer); 1724 : 1725 : /* trivial call to gst_buffer_append_memory */ - 1726 60786 : if (num_mems < NNS_TENSOR_MEMORY_MAX) { - 1727 60198 : gst_buffer_append_memory (buffer, memory); - 1728 60786 : return TRUE; + 1726 60842 : if (num_mems < NNS_TENSOR_MEMORY_MAX) { + 1727 60254 : gst_buffer_append_memory (buffer, memory); + 1728 60842 : return TRUE; 1729 : } 1730 : 1731 : /* given buffer has NNS_TENSOR_MEMORY_MAX memory blocks */ @@ -1894,18 +1894,18 @@ 1832 : * @brief Get the number of tensors in the buffer. 1833 : */ 1834 : guint - 1835 123330 : gst_tensor_buffer_get_count (GstBuffer * buffer) + 1835 123440 : gst_tensor_buffer_get_count (GstBuffer * buffer) 1836 : { 1837 : guint num_mems; 1838 : GstMemory *mem; 1839 : GstMapInfo map; 1840 : GstTensorExtraInfo *extra_info; 1841 : - 1842 246660 : g_return_val_if_fail (buffer != NULL, 0); + 1842 246880 : g_return_val_if_fail (buffer != NULL, 0); 1843 : - 1844 123330 : num_mems = gst_buffer_n_memory (buffer); - 1845 123330 : if (num_mems < NNS_TENSOR_MEMORY_MAX) { - 1846 121629 : return num_mems; + 1844 123440 : num_mems = gst_buffer_n_memory (buffer); + 1845 123440 : if (num_mems < NNS_TENSOR_MEMORY_MAX) { + 1846 121739 : return num_mems; 1847 : } 1848 : 1849 : /* num_mems == NNS_TENSOR_MEMORY_MAX */ diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.func-c.html index a60289928..6281b7f32 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 95.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 98.2 % @@ -156,63 +156,63 @@ gst_tensor_info_convert_to_meta - 388 + 387 gst_tensor_meta_info_update_header - 401 + 400 gst_tensors_info_get_size - 488 + 486 _compare_rate - 798 + 799 gst_tensors_config_is_equal - 802 + 803 gst_tensors_info_is_equal - 1292 + 1293 gst_tensor_info_is_equal - 1508 + 1509 _gcd - 1596 + 1598 gst_tensor_dimension_is_equal - 1650 + 1651 @@ -247,7 +247,7 @@ gst_tensors_info_copy - 4521 + 4531 @@ -268,196 +268,196 @@ gst_tensors_info_parse_types_string - 8101 + 8158 gst_tensors_info_parse_dimensions_string - 8126 + 8183 gst_tensor_get_format - 12333 + 12374 - find_key_strv + gst_tensor_get_type_string - 12635 + 12669 - gst_tensor_get_type_string + find_key_strv - 12669 + 12676 gst_tensor_info_copy - 23473 + 23582 gst_tensor_info_copy_n - 23473 + 23582 gst_tensor_meta_info_parse_header - 53802 + 53809 gst_tensor_meta_info_validate - 54713 + 54718 gst_tensor_meta_info_get_header_size - 61828 + 61882 gst_tensors_config_validate - 67157 + 67462 gst_tensors_info_validate - 75341 + 75590 gst_tensor_info_get_size - 104498 + 104417 gst_tensor_get_element_count - 127823 + 127718 gst_tensor_info_validate - 140275 + 140585 gst_tensor_meta_info_init - 141906 + 141968 gst_tensor_dimension_is_valid - 148932 + 149238 gst_tensor_get_type - 158439 + 158604 gst_tensor_parse_dimension - 159008 + 159173 gst_tensor_dimension_get_rank - 160409 + 160715 gst_tensors_config_free - 165808 + 165926 gst_tensors_info_free - 175850 + 175979 gst_tensors_config_init - 219723 + 219892 gst_tensors_info_get_nth_info - 382899 + 383582 gst_tensors_info_init - 415569 + 415889 gst_tensor_info_free - 2862222 + 2864286 gst_tensor_info_init - 9567752 + 9574936 gst_tensor_get_element_size - 10313237 + 10313189 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.func.html index 554262105..e250f77f5 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 95.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 98.2 % @@ -65,21 +65,21 @@ _compare_rate - 798 + 799 _gcd - 1596 + 1598 find_key_strv - 12635 + 12676 @@ -93,21 +93,21 @@ gst_tensor_dimension_get_rank - 160409 + 160715 gst_tensor_dimension_is_equal - 1650 + 1651 gst_tensor_dimension_is_valid - 148932 + 149238 @@ -128,21 +128,21 @@ gst_tensor_get_element_count - 127823 + 127718 gst_tensor_get_element_size - 10313237 + 10313189 gst_tensor_get_format - 12333 + 12374 @@ -163,7 +163,7 @@ gst_tensor_get_type - 158439 + 158604 @@ -177,28 +177,28 @@ gst_tensor_info_convert_to_meta - 388 + 387 gst_tensor_info_copy - 23473 + 23582 gst_tensor_info_copy_n - 23473 + 23582 gst_tensor_info_free - 2862222 + 2864286 @@ -212,28 +212,28 @@ gst_tensor_info_get_size - 104498 + 104417 gst_tensor_info_init - 9567752 + 9574936 gst_tensor_info_is_equal - 1508 + 1509 gst_tensor_info_validate - 140275 + 140585 @@ -254,7 +254,7 @@ gst_tensor_meta_info_get_header_size - 61828 + 61882 @@ -268,35 +268,35 @@ gst_tensor_meta_info_init - 141906 + 141968 gst_tensor_meta_info_parse_header - 53802 + 53809 gst_tensor_meta_info_update_header - 401 + 400 gst_tensor_meta_info_validate - 54713 + 54718 gst_tensor_parse_dimension - 159008 + 159173 @@ -310,21 +310,21 @@ gst_tensors_config_free - 165808 + 165926 gst_tensors_config_init - 219723 + 219892 gst_tensors_config_is_equal - 802 + 803 @@ -338,21 +338,21 @@ gst_tensors_config_validate - 67157 + 67462 gst_tensors_info_copy - 4521 + 4531 gst_tensors_info_free - 175850 + 175979 @@ -373,7 +373,7 @@ gst_tensors_info_get_nth_info - 382899 + 383582 @@ -387,7 +387,7 @@ gst_tensors_info_get_size - 488 + 486 @@ -401,21 +401,21 @@ gst_tensors_info_init - 415569 + 415889 gst_tensors_info_is_equal - 1292 + 1293 gst_tensors_info_parse_dimensions_string - 8126 + 8183 @@ -429,7 +429,7 @@ gst_tensors_info_parse_types_string - 8101 + 8158 @@ -443,7 +443,7 @@ gst_tensors_info_validate - 75341 + 75590 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.gcov.html index d1c4f95db..222ed00e5 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_plugin_api_util_impl.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 95.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 98.2 % @@ -126,42 +126,42 @@ 64 : * @brief Internal function, copied from gst_util_greatest_common_divisor() to remove dependency of gstreamer. 65 : */ 66 : static gint - 67 1596 : _gcd (gint a, gint b) + 67 1598 : _gcd (gint a, gint b) 68 : { - 69 3202 : while (b != 0) { - 70 1606 : int temp = a; + 69 3206 : while (b != 0) { + 70 1608 : int temp = a; 71 : - 72 1606 : a = b; - 73 1606 : b = temp % b; + 72 1608 : a = b; + 73 1608 : b = temp % b; 74 : } 75 : - 76 1596 : return ABS (a); + 76 1598 : return ABS (a); 77 : } 78 : 79 : /** 80 : * @brief Internal function, copied from gst_util_fraction_compare() to remove dependency of gstreamer. 81 : */ 82 : static gint - 83 798 : _compare_rate (gint a_n, gint a_d, gint b_n, gint b_d) + 83 799 : _compare_rate (gint a_n, gint a_d, gint b_n, gint b_d) 84 : { 85 : gint64 new_num_1; 86 : gint64 new_num_2; 87 : gint gcd; 88 : - 89 798 : g_return_val_if_fail (a_d != 0 && b_d != 0, 0); + 89 799 : g_return_val_if_fail (a_d != 0 && b_d != 0, 0); 90 : 91 : /* Simplify */ - 92 798 : gcd = _gcd (a_n, a_d); - 93 798 : a_n /= gcd; - 94 798 : a_d /= gcd; + 92 799 : gcd = _gcd (a_n, a_d); + 93 799 : a_n /= gcd; + 94 799 : a_d /= gcd; 95 : - 96 798 : gcd = _gcd (b_n, b_d); - 97 798 : b_n /= gcd; - 98 798 : b_d /= gcd; + 96 799 : gcd = _gcd (b_n, b_d); + 97 799 : b_n /= gcd; + 98 799 : b_d /= gcd; 99 : 100 : /* fractions are reduced when set, so we can quickly see if they're equal */ - 101 798 : if (a_n == b_n && a_d == b_d) - 102 794 : return 0; + 101 799 : if (a_n == b_n && a_d == b_d) + 102 795 : return 0; 103 : 104 : /* extend to 64 bits */ 105 4 : new_num_1 = ((gint64) a_n) * b_d; @@ -180,17 +180,17 @@ 118 : * @param info tensor info structure to be initialized 119 : */ 120 : void - 121 9567752 : gst_tensor_info_init (GstTensorInfo * info) + 121 9574936 : gst_tensor_info_init (GstTensorInfo * info) 122 : { 123 : guint i; 124 : - 125 9567752 : g_return_if_fail (info != NULL); + 125 9574936 : g_return_if_fail (info != NULL); 126 : - 127 9567752 : info->name = NULL; - 128 9567752 : info->type = _NNS_END; + 127 9574936 : info->name = NULL; + 128 9574936 : info->type = _NNS_END; 129 : - 130 162651784 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { - 131 153084032 : info->dimension[i] = 0; + 130 162773912 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { + 131 153198976 : info->dimension[i] = 0; 132 : } 133 : } 134 : @@ -199,14 +199,14 @@ 137 : * @param info tensor info structure 138 : */ 139 : void - 140 2862222 : gst_tensor_info_free (GstTensorInfo * info) + 140 2864286 : gst_tensor_info_free (GstTensorInfo * info) 141 : { - 142 2862222 : g_return_if_fail (info != NULL); + 142 2864286 : g_return_if_fail (info != NULL); 143 : - 144 2862222 : g_free (info->name); + 144 2864286 : g_free (info->name); 145 : 146 : /* Init default */ - 147 2862222 : gst_tensor_info_init (info); + 147 2864286 : gst_tensor_info_init (info); 148 : } 149 : 150 : /** @@ -215,16 +215,16 @@ 153 : * @return data size 154 : */ 155 : gsize - 156 104498 : gst_tensor_info_get_size (const GstTensorInfo * info) + 156 104417 : gst_tensor_info_get_size (const GstTensorInfo * info) 157 : { 158 : gsize data_size; 159 : - 160 104498 : g_return_val_if_fail (info != NULL, 0); + 160 104417 : g_return_val_if_fail (info != NULL, 0); 161 : - 162 104497 : data_size = gst_tensor_get_element_count (info->dimension) * - 163 104497 : gst_tensor_get_element_size (info->type); + 162 104416 : data_size = gst_tensor_get_element_count (info->dimension) * + 163 104416 : gst_tensor_get_element_size (info->type); 164 : - 165 104497 : return data_size; + 165 104416 : return data_size; 166 : } 167 : 168 : /** @@ -233,11 +233,11 @@ 171 : * @return TRUE if info is valid 172 : */ 173 : gboolean - 174 140275 : gst_tensor_info_validate (const GstTensorInfo * info) + 174 140585 : gst_tensor_info_validate (const GstTensorInfo * info) 175 : { - 176 140275 : g_return_val_if_fail (info != NULL, FALSE); + 176 140585 : g_return_val_if_fail (info != NULL, FALSE); 177 : - 178 140272 : if (info->type == _NNS_END) { + 178 140582 : if (info->type == _NNS_END) { 179 2055 : nns_logd 180 : ("Failed to validate tensor info. type: %s. Please specify tensor type. e.g., type=uint8 ", 181 : _STR_NULL (gst_tensor_get_type_string (info->type))); @@ -248,7 +248,7 @@ 186 : } 187 : 188 : /* validate tensor dimension */ - 189 138217 : return gst_tensor_dimension_is_valid (info->dimension); + 189 138527 : return gst_tensor_dimension_is_valid (info->dimension); 190 : } 191 : 192 : /** @@ -256,20 +256,20 @@ 194 : * @return TRUE if equal, FALSE if given tensor infos are invalid or not equal. 195 : */ 196 : gboolean - 197 1508 : gst_tensor_info_is_equal (const GstTensorInfo * i1, const GstTensorInfo * i2) + 197 1509 : gst_tensor_info_is_equal (const GstTensorInfo * i1, const GstTensorInfo * i2) 198 : { - 199 1508 : if (!gst_tensor_info_validate (i1) || !gst_tensor_info_validate (i2)) { + 199 1509 : if (!gst_tensor_info_validate (i1) || !gst_tensor_info_validate (i2)) { 200 2 : return FALSE; 201 : } 202 : - 203 1506 : if (i1->type != i2->type) { + 203 1507 : if (i1->type != i2->type) { 204 153 : nns_logd ("Tensor info is not equal. Given tensor types %s vs %s", 205 : _STR_NULL (gst_tensor_get_type_string (i1->type)), 206 : _STR_NULL (gst_tensor_get_type_string (i2->type))); 207 153 : return FALSE; 208 : } 209 : - 210 1353 : if (!gst_tensor_dimension_is_equal (i1->dimension, i2->dimension)) { + 210 1354 : if (!gst_tensor_dimension_is_equal (i1->dimension, i2->dimension)) { 211 47 : g_autofree gchar *_dim1 = gst_tensor_get_dimension_string (i1->dimension); 212 47 : g_autofree gchar *_dim2 = gst_tensor_get_dimension_string (i2->dimension); 213 47 : nns_logd ("Tensor info is not equal. Given tensor dimensions %s vs %s", @@ -278,7 +278,7 @@ 216 : } 217 : 218 : /* matched all */ - 219 1306 : return TRUE; + 219 1307 : return TRUE; 220 : } 221 : 222 : /** @@ -286,19 +286,19 @@ 224 : * @note Copied info should be freed with gst_tensor_info_free() 225 : */ 226 : void - 227 23473 : gst_tensor_info_copy_n (GstTensorInfo * dest, const GstTensorInfo * src, + 227 23582 : gst_tensor_info_copy_n (GstTensorInfo * dest, const GstTensorInfo * src, 228 : const guint n) 229 : { 230 : guint i; 231 : - 232 23473 : g_return_if_fail (dest != NULL); - 233 23473 : g_return_if_fail (src != NULL); + 232 23582 : g_return_if_fail (dest != NULL); + 233 23582 : g_return_if_fail (src != NULL); 234 : - 235 23473 : dest->name = g_strdup (src->name); - 236 23473 : dest->type = src->type; + 235 23582 : dest->name = g_strdup (src->name); + 236 23582 : dest->type = src->type; 237 : - 238 399041 : for (i = 0; i < n; i++) { - 239 375568 : dest->dimension[i] = src->dimension[i]; + 238 400894 : for (i = 0; i < n; i++) { + 239 377312 : dest->dimension[i] = src->dimension[i]; 240 : } 241 : } 242 : @@ -307,10 +307,10 @@ 245 : * @note Copied info should be freed with gst_tensor_info_free() 246 : */ 247 : void - 248 23473 : gst_tensor_info_copy (GstTensorInfo * dest, const GstTensorInfo * src) + 248 23582 : gst_tensor_info_copy (GstTensorInfo * dest, const GstTensorInfo * src) 249 : { - 250 23473 : gst_tensor_info_copy_n (dest, src, NNS_TENSOR_RANK_LIMIT); - 251 23473 : } + 250 23582 : gst_tensor_info_copy_n (dest, src, NNS_TENSOR_RANK_LIMIT); + 251 23582 : } 252 : 253 : /** 254 : * @brief Convert GstTensorInfo structure to GstTensorMetaInfo. @@ -319,23 +319,23 @@ 257 : * @return TRUE if successfully set the meta 258 : */ 259 : gboolean - 260 388 : gst_tensor_info_convert_to_meta (GstTensorInfo * info, GstTensorMetaInfo * meta) + 260 387 : gst_tensor_info_convert_to_meta (GstTensorInfo * info, GstTensorMetaInfo * meta) 261 : { 262 : guint i; 263 : - 264 388 : g_return_val_if_fail (gst_tensor_info_validate (info), FALSE); - 265 386 : g_return_val_if_fail (meta != NULL, FALSE); + 264 387 : g_return_val_if_fail (gst_tensor_info_validate (info), FALSE); + 265 385 : g_return_val_if_fail (meta != NULL, FALSE); 266 : - 267 385 : gst_tensor_meta_info_init (meta); + 267 384 : gst_tensor_meta_info_init (meta); 268 : - 269 385 : meta->type = info->type; + 269 384 : meta->type = info->type; 270 : - 271 6545 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { + 271 6528 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { 272 : /** @todo handle rank from info.dimension */ - 273 6160 : meta->dimension[i] = info->dimension[i]; + 273 6144 : meta->dimension[i] = info->dimension[i]; 274 : } 275 : - 276 385 : return TRUE; + 276 384 : return TRUE; 277 : } 278 : 279 : /** @@ -355,14 +355,14 @@ 293 : * @brief Get the pointer of nth tensor information. 294 : */ 295 : GstTensorInfo * - 296 382899 : gst_tensors_info_get_nth_info (GstTensorsInfo * info, guint index) + 296 383582 : gst_tensors_info_get_nth_info (GstTensorsInfo * info, guint index) 297 : { 298 : guint i; 299 : - 300 382899 : g_return_val_if_fail (info != NULL, NULL); + 300 383582 : g_return_val_if_fail (info != NULL, NULL); 301 : - 302 382899 : if (index < NNS_TENSOR_MEMORY_MAX) - 303 326315 : return &info->info[index]; + 302 383582 : if (index < NNS_TENSOR_MEMORY_MAX) + 303 326998 : return &info->info[index]; 304 : 305 56584 : if (!info->extra) { 306 205 : info->extra = g_new0 (GstTensorInfo, NNS_TENSOR_SIZE_EXTRA_LIMIT); @@ -384,20 +384,20 @@ 322 : * @param info tensors info structure to be initialized 323 : */ 324 : void - 325 415569 : gst_tensors_info_init (GstTensorsInfo * info) + 325 415889 : gst_tensors_info_init (GstTensorsInfo * info) 326 : { 327 : guint i; 328 : - 329 415569 : g_return_if_fail (info != NULL); + 329 415889 : g_return_if_fail (info != NULL); 330 : - 331 415569 : info->num_tensors = 0; - 332 415569 : info->extra = NULL; + 331 415889 : info->num_tensors = 0; + 332 415889 : info->extra = NULL; 333 : 334 : /** @note default format is static */ - 335 415569 : info->format = _NNS_TENSOR_FORMAT_STATIC; + 335 415889 : info->format = _NNS_TENSOR_FORMAT_STATIC; 336 : - 337 7064673 : for (i = 0; i < NNS_TENSOR_MEMORY_MAX; i++) { - 338 6649104 : gst_tensor_info_init (&info->info[i]); + 337 7070113 : for (i = 0; i < NNS_TENSOR_MEMORY_MAX; i++) { + 338 6654224 : gst_tensor_info_init (&info->info[i]); 339 : } 340 : } 341 : @@ -406,17 +406,17 @@ 344 : * @param info tensors info structure 345 : */ 346 : void - 347 175850 : gst_tensors_info_free (GstTensorsInfo * info) + 347 175979 : gst_tensors_info_free (GstTensorsInfo * info) 348 : { 349 : guint i; 350 : - 351 175850 : g_return_if_fail (info != NULL); + 351 175979 : g_return_if_fail (info != NULL); 352 : - 353 2989450 : for (i = 0; i < NNS_TENSOR_MEMORY_MAX; i++) { - 354 2813600 : gst_tensor_info_free (&info->info[i]); + 353 2991643 : for (i = 0; i < NNS_TENSOR_MEMORY_MAX; i++) { + 354 2815664 : gst_tensor_info_free (&info->info[i]); 355 : } 356 : - 357 175850 : if (info->extra) { + 357 175979 : if (info->extra) { 358 48682 : for (i = 0; i < NNS_TENSOR_SIZE_EXTRA_LIMIT; ++i) 359 48480 : gst_tensor_info_free (&info->extra[i]); 360 : @@ -425,7 +425,7 @@ 363 : } 364 : 365 : /* Init default */ - 366 175850 : gst_tensors_info_init (info); + 366 175979 : gst_tensors_info_init (info); 367 : } 368 : 369 : /** @@ -435,26 +435,26 @@ 373 : * @return data size 374 : */ 375 : gsize - 376 488 : gst_tensors_info_get_size (const GstTensorsInfo * info, gint index) + 376 486 : gst_tensors_info_get_size (const GstTensorsInfo * info, gint index) 377 : { 378 : GstTensorInfo *_info; - 379 488 : gsize data_size = 0; + 379 486 : gsize data_size = 0; 380 : guint i; 381 : - 382 488 : g_return_val_if_fail (info != NULL, 0); - 383 487 : g_return_val_if_fail (index < (gint) info->num_tensors, 0); + 382 486 : g_return_val_if_fail (info != NULL, 0); + 383 485 : g_return_val_if_fail (index < (gint) info->num_tensors, 0); 384 : - 385 486 : if (index < 0) { + 385 484 : if (index < 0) { 386 245 : for (i = 0; i < info->num_tensors; ++i) { 387 137 : _info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) info, i); 388 137 : data_size += gst_tensor_info_get_size (_info); 389 : } 390 : } else { - 391 378 : _info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) info, index); - 392 378 : data_size = gst_tensor_info_get_size (_info); + 391 376 : _info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) info, index); + 392 376 : data_size = gst_tensor_info_get_size (_info); 393 : } 394 : - 395 486 : return data_size; + 395 484 : return data_size; 396 : } 397 : 398 : /** @@ -463,15 +463,15 @@ 401 : * @return TRUE if info is valid 402 : */ 403 : gboolean - 404 75341 : gst_tensors_info_validate (const GstTensorsInfo * info) + 404 75590 : gst_tensors_info_validate (const GstTensorsInfo * info) 405 : { 406 : guint i; 407 : GstTensorInfo *_info; 408 : - 409 75341 : g_return_val_if_fail (info != NULL, FALSE); + 409 75590 : g_return_val_if_fail (info != NULL, FALSE); 410 : 411 : /* tensor stream format */ - 412 75340 : if (info->format >= _NNS_TENSOR_FORMAT_END) { + 412 75589 : if (info->format >= _NNS_TENSOR_FORMAT_END) { 413 0 : nns_logd 414 : ("Failed to validate tensors info, format: %s. format should be one of %s.", 415 : _STR_NULL (gst_tensor_get_format_string (info->format)), @@ -484,11 +484,11 @@ 422 : } 423 : 424 : /* cannot check tensor info when tensor is not static */ - 425 75340 : if (info->format != _NNS_TENSOR_FORMAT_STATIC) { - 426 282 : return TRUE; + 425 75589 : if (info->format != _NNS_TENSOR_FORMAT_STATIC) { + 426 281 : return TRUE; 427 : } 428 : - 429 75058 : if (info->num_tensors < 1) { + 429 75308 : if (info->num_tensors < 1) { 430 3150 : nns_logd 431 : ("Failed to validate tensors info. the number of tensors: %d. the number of tensors should be greater than 0.", 432 : info->num_tensors); @@ -498,14 +498,14 @@ 436 3150 : return FALSE; 437 : } 438 : - 439 145862 : for (i = 0; i < info->num_tensors; i++) { - 440 76644 : _info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) info, i); + 439 146362 : for (i = 0; i < info->num_tensors; i++) { + 440 76894 : _info = gst_tensors_info_get_nth_info ((GstTensorsInfo *) info, i); 441 : - 442 76644 : if (!gst_tensor_info_validate (_info)) + 442 76894 : if (!gst_tensor_info_validate (_info)) 443 2690 : return FALSE; 444 : } 445 : - 446 69218 : return TRUE; + 446 69468 : return TRUE; 447 : } 448 : 449 : /** @@ -513,15 +513,15 @@ 451 : * @return TRUE if equal, FALSE if given tensor infos are invalid or not equal. 452 : */ 453 : gboolean - 454 1292 : gst_tensors_info_is_equal (const GstTensorsInfo * i1, const GstTensorsInfo * i2) + 454 1293 : gst_tensors_info_is_equal (const GstTensorsInfo * i1, const GstTensorsInfo * i2) 455 : { 456 : guint i; 457 : GstTensorInfo *_info1, *_info2; 458 : - 459 1292 : g_return_val_if_fail (i1 != NULL, FALSE); - 460 1291 : g_return_val_if_fail (i2 != NULL, FALSE); + 459 1293 : g_return_val_if_fail (i1 != NULL, FALSE); + 460 1292 : g_return_val_if_fail (i2 != NULL, FALSE); 461 : - 462 1290 : if (i1->format != i2->format || i1->format == _NNS_TENSOR_FORMAT_END) { + 462 1291 : if (i1->format != i2->format || i1->format == _NNS_TENSOR_FORMAT_END) { 463 7 : nns_logd ("Tensors info is not equal. format: %s vs %s ", 464 : _STR_NULL (gst_tensor_get_format_string (i1->format)), 465 : _STR_NULL (gst_tensor_get_format_string (i2->format))); @@ -529,31 +529,31 @@ 467 : } 468 : 469 : /* cannot compare tensor info when tensor is not static */ - 470 1283 : if (i1->format != _NNS_TENSOR_FORMAT_STATIC) { + 470 1284 : if (i1->format != _NNS_TENSOR_FORMAT_STATIC) { 471 26 : return TRUE; 472 : } 473 : - 474 1257 : if (!gst_tensors_info_validate (i1) || !gst_tensors_info_validate (i2)) { + 474 1258 : if (!gst_tensors_info_validate (i1) || !gst_tensors_info_validate (i2)) { 475 107 : return FALSE; 476 : } 477 : - 478 1150 : if (i1->num_tensors != i2->num_tensors) { + 478 1151 : if (i1->num_tensors != i2->num_tensors) { 479 8 : nns_logd ("Tensors info is not equal. the number of tensors: %d vs %d. ", 480 : i1->num_tensors, i2->num_tensors); 481 8 : return FALSE; 482 : } 483 : - 484 2370 : for (i = 0; i < i1->num_tensors; i++) { - 485 1428 : _info1 = gst_tensors_info_get_nth_info ((GstTensorsInfo *) i1, i); - 486 1428 : _info2 = gst_tensors_info_get_nth_info ((GstTensorsInfo *) i2, i); + 484 2372 : for (i = 0; i < i1->num_tensors; i++) { + 485 1429 : _info1 = gst_tensors_info_get_nth_info ((GstTensorsInfo *) i1, i); + 486 1429 : _info2 = gst_tensors_info_get_nth_info ((GstTensorsInfo *) i2, i); 487 : - 488 1428 : if (!gst_tensor_info_is_equal (_info1, _info2)) { + 488 1429 : if (!gst_tensor_info_is_equal (_info1, _info2)) { 489 200 : return FALSE; 490 : } 491 : } 492 : 493 : /* matched all */ - 494 942 : return TRUE; + 494 943 : return TRUE; 495 : } 496 : 497 : /** @@ -561,22 +561,22 @@ 499 : * @note Copied info should be freed with gst_tensors_info_free() 500 : */ 501 : void - 502 4521 : gst_tensors_info_copy (GstTensorsInfo * dest, const GstTensorsInfo * src) + 502 4531 : gst_tensors_info_copy (GstTensorsInfo * dest, const GstTensorsInfo * src) 503 : { 504 : guint i, num; 505 : GstTensorInfo *_dest, *_src; 506 : - 507 4521 : g_return_if_fail (dest != NULL); - 508 4521 : g_return_if_fail (src != NULL); + 507 4531 : g_return_if_fail (dest != NULL); + 508 4531 : g_return_if_fail (src != NULL); 509 : - 510 4521 : gst_tensors_info_init (dest); - 511 4521 : num = dest->num_tensors = src->num_tensors; - 512 4521 : dest->format = src->format; + 510 4531 : gst_tensors_info_init (dest); + 511 4531 : num = dest->num_tensors = src->num_tensors; + 512 4531 : dest->format = src->format; 513 : - 514 4521 : if (src->format != _NNS_TENSOR_FORMAT_STATIC) - 515 185 : return; + 514 4531 : if (src->format != _NNS_TENSOR_FORMAT_STATIC) + 515 193 : return; 516 : - 517 10099 : for (i = 0; i < num; i++) { + 517 10101 : for (i = 0; i < num; i++) { 518 5763 : _dest = gst_tensors_info_get_nth_info (dest, i); 519 5763 : _src = gst_tensors_info_get_nth_info ((GstTensorsInfo *) src, i); 520 : @@ -591,37 +591,37 @@ 529 : * @return number of parsed dimensions 530 : */ 531 : guint - 532 8126 : gst_tensors_info_parse_dimensions_string (GstTensorsInfo * info, + 532 8183 : gst_tensors_info_parse_dimensions_string (GstTensorsInfo * info, 533 : const gchar * dim_string) 534 : { - 535 8126 : guint num_dims = 0; + 535 8183 : guint num_dims = 0; 536 : GstTensorInfo *_info; 537 : - 538 8126 : g_return_val_if_fail (info != NULL, 0); + 538 8183 : g_return_val_if_fail (info != NULL, 0); 539 : - 540 8125 : if (dim_string) { + 540 8182 : if (dim_string) { 541 : guint i; 542 : gchar **str_dims; 543 : - 544 8124 : str_dims = g_strsplit_set (dim_string, ",.", -1); - 545 8124 : num_dims = g_strv_length (str_dims); + 544 8181 : str_dims = g_strsplit_set (dim_string, ",.", -1); + 545 8181 : num_dims = g_strv_length (str_dims); 546 : - 547 8124 : if (num_dims > NNS_TENSOR_SIZE_LIMIT) { + 547 8181 : if (num_dims > NNS_TENSOR_SIZE_LIMIT) { 548 1 : nns_logw ("Invalid param, dimensions (%d) max (%d)\n", 549 : num_dims, NNS_TENSOR_SIZE_LIMIT); 550 : 551 1 : num_dims = NNS_TENSOR_SIZE_LIMIT; 552 : } 553 : - 554 25364 : for (i = 0; i < num_dims; i++) { - 555 17240 : _info = gst_tensors_info_get_nth_info (info, i); - 556 17240 : gst_tensor_parse_dimension (str_dims[i], _info->dimension); + 554 25535 : for (i = 0; i < num_dims; i++) { + 555 17354 : _info = gst_tensors_info_get_nth_info (info, i); + 556 17354 : gst_tensor_parse_dimension (str_dims[i], _info->dimension); 557 : } 558 : - 559 8124 : g_strfreev (str_dims); + 559 8181 : g_strfreev (str_dims); 560 : } 561 : - 562 8125 : return num_dims; + 562 8182 : return num_dims; 563 : } 564 : 565 : /** @@ -631,37 +631,37 @@ 569 : * @return number of parsed types 570 : */ 571 : guint - 572 8101 : gst_tensors_info_parse_types_string (GstTensorsInfo * info, + 572 8158 : gst_tensors_info_parse_types_string (GstTensorsInfo * info, 573 : const gchar * type_string) 574 : { - 575 8101 : guint num_types = 0; + 575 8158 : guint num_types = 0; 576 : GstTensorInfo *_info; 577 : - 578 8101 : g_return_val_if_fail (info != NULL, 0); + 578 8158 : g_return_val_if_fail (info != NULL, 0); 579 : - 580 8100 : if (type_string) { + 580 8157 : if (type_string) { 581 : guint i; 582 : gchar **str_types; 583 : - 584 8099 : str_types = g_strsplit_set (type_string, ",.", -1); - 585 8099 : num_types = g_strv_length (str_types); + 584 8156 : str_types = g_strsplit_set (type_string, ",.", -1); + 585 8156 : num_types = g_strv_length (str_types); 586 : - 587 8099 : if (num_types > NNS_TENSOR_SIZE_LIMIT) { + 587 8156 : if (num_types > NNS_TENSOR_SIZE_LIMIT) { 588 1 : nns_logw ("Invalid param, types (%d) max (%d)\n", 589 : num_types, NNS_TENSOR_SIZE_LIMIT); 590 : 591 1 : num_types = NNS_TENSOR_SIZE_LIMIT; 592 : } 593 : - 594 25327 : for (i = 0; i < num_types; i++) { - 595 17228 : _info = gst_tensors_info_get_nth_info (info, i); - 596 17228 : _info->type = gst_tensor_get_type (str_types[i]); + 594 25498 : for (i = 0; i < num_types; i++) { + 595 17342 : _info = gst_tensors_info_get_nth_info (info, i); + 596 17342 : _info->type = gst_tensor_get_type (str_types[i]); 597 : } 598 : - 599 8099 : g_strfreev (str_types); + 599 8156 : g_strfreev (str_types); 600 : } 601 : - 602 8100 : return num_types; + 602 8157 : return num_types; 603 : } 604 : 605 : /** @@ -889,14 +889,14 @@ 827 : * @param config tensors config structure to be initialized 828 : */ 829 : void - 830 219723 : gst_tensors_config_init (GstTensorsConfig * config) + 830 219892 : gst_tensors_config_init (GstTensorsConfig * config) 831 : { - 832 219723 : g_return_if_fail (config != NULL); + 832 219892 : g_return_if_fail (config != NULL); 833 : - 834 219723 : gst_tensors_info_init (&config->info); + 834 219892 : gst_tensors_info_init (&config->info); 835 : - 836 219723 : config->rate_n = -1; - 837 219723 : config->rate_d = -1; + 836 219892 : config->rate_n = -1; + 837 219892 : config->rate_d = -1; 838 : } 839 : 840 : /** @@ -904,11 +904,11 @@ 842 : * @param config tensors config structure 843 : */ 844 : void - 845 165808 : gst_tensors_config_free (GstTensorsConfig * config) + 845 165926 : gst_tensors_config_free (GstTensorsConfig * config) 846 : { - 847 165808 : g_return_if_fail (config != NULL); + 847 165926 : g_return_if_fail (config != NULL); 848 : - 849 165808 : gst_tensors_info_free (&config->info); + 849 165926 : gst_tensors_info_free (&config->info); 850 : } 851 : 852 : /** @@ -917,22 +917,22 @@ 855 : * @return TRUE if configured 856 : */ 857 : gboolean - 858 67157 : gst_tensors_config_validate (const GstTensorsConfig * config) + 858 67462 : gst_tensors_config_validate (const GstTensorsConfig * config) 859 : { - 860 67157 : g_return_val_if_fail (config != NULL, FALSE); + 860 67462 : g_return_val_if_fail (config != NULL, FALSE); 861 : 862 : /* framerate (numerator >= 0 and denominator > 0) */ - 863 67153 : if (config->rate_n < 0 || config->rate_d <= 0) { - 864 6293 : nns_logd + 863 67458 : if (config->rate_n < 0 || config->rate_d <= 0) { + 864 6350 : nns_logd 865 : ("Failed to validate tensors config. framerate: %d/%d. framerate should be numerator >= 0 and denominator > 0.", 866 : config->rate_n, config->rate_d); - 867 6293 : _nnstreamer_error_write + 867 6350 : _nnstreamer_error_write 868 : ("Failed to validate tensors config. framerate: %d/%d. framerate should be numerator >= 0 and denominator > 0.", - 869 6293 : config->rate_n, config->rate_d); - 870 6293 : return FALSE; + 869 6350 : config->rate_n, config->rate_d); + 870 6350 : return FALSE; 871 : } 872 : - 873 60860 : return gst_tensors_info_validate (&config->info); + 873 61108 : return gst_tensors_info_validate (&config->info); 874 : } 875 : 876 : /** @@ -940,23 +940,23 @@ 878 : * @param TRUE if equal 879 : */ 880 : gboolean - 881 802 : gst_tensors_config_is_equal (const GstTensorsConfig * c1, + 881 803 : gst_tensors_config_is_equal (const GstTensorsConfig * c1, 882 : const GstTensorsConfig * c2) 883 : { - 884 802 : g_return_val_if_fail (c1 != NULL, FALSE); - 885 801 : g_return_val_if_fail (c2 != NULL, FALSE); + 884 803 : g_return_val_if_fail (c1 != NULL, FALSE); + 885 802 : g_return_val_if_fail (c2 != NULL, FALSE); 886 : - 887 800 : if (!gst_tensors_config_validate (c1) || !gst_tensors_config_validate (c2)) { + 887 801 : if (!gst_tensors_config_validate (c1) || !gst_tensors_config_validate (c2)) { 888 2 : return FALSE; 889 : } 890 : - 891 798 : if (_compare_rate (c1->rate_n, c1->rate_d, c2->rate_n, c2->rate_d)) { + 891 799 : if (_compare_rate (c1->rate_n, c1->rate_d, c2->rate_n, c2->rate_d)) { 892 4 : nns_logd ("Tensors config is not equal. framerate: %d/%d vs %d/%d.", 893 : c1->rate_n, c1->rate_d, c2->rate_n, c2->rate_d); 894 4 : return FALSE; 895 : } 896 : - 897 794 : return gst_tensors_info_is_equal (&c1->info, &c2->info); + 897 795 : return gst_tensors_info_is_equal (&c1->info, &c2->info); 898 : } 899 : 900 : /** @@ -999,31 +999,31 @@ 937 : * @return TRUE if dimension is valid 938 : */ 939 : gboolean - 940 148932 : gst_tensor_dimension_is_valid (const tensor_dim dim) + 940 149238 : gst_tensor_dimension_is_valid (const tensor_dim dim) 941 : { 942 : guint i; - 943 148932 : gboolean is_valid = FALSE; + 943 149238 : gboolean is_valid = FALSE; 944 : - 945 148932 : i = gst_tensor_dimension_get_rank (dim); - 946 148932 : if (i == 0) + 945 149238 : i = gst_tensor_dimension_get_rank (dim); + 946 149238 : if (i == 0) 947 2834 : goto done; 948 : - 949 1888398 : for (; i < NNS_TENSOR_RANK_LIMIT; i++) { - 950 1742306 : if (dim[i] > 0) + 949 1892372 : for (; i < NNS_TENSOR_RANK_LIMIT; i++) { + 950 1745974 : if (dim[i] > 0) 951 6 : goto done; 952 : } 953 : - 954 146092 : is_valid = TRUE; + 954 146398 : is_valid = TRUE; 955 : - 956 148932 : done: - 957 148932 : if (!is_valid) { + 956 149238 : done: + 957 149238 : if (!is_valid) { 958 2840 : nns_logd 959 : ("Failed to validate tensor dimension. The dimension string should be in the form of d1:...:d8, d1:d2:d3:d4, d1:d2:d3, d1:d2, or d1. Here, dN is a positive integer."); 960 2840 : _nnstreamer_error_write 961 : ("Failed to validate tensor dimension. The dimension string should be in the form of d1:...:d8, d1:d2:d3:d4, d1:d2:d3, d1:d2, or d1. Here, dN is a positive integer."); 962 : } 963 : - 964 148932 : return is_valid; + 964 149238 : return is_valid; 965 : } 966 : 967 : /** @@ -1031,24 +1031,24 @@ 969 : * @return TRUE if given tensors have same dimension. 970 : */ 971 : gboolean - 972 1650 : gst_tensor_dimension_is_equal (const tensor_dim dim1, const tensor_dim dim2) + 972 1651 : gst_tensor_dimension_is_equal (const tensor_dim dim1, const tensor_dim dim2) 973 : { 974 : guint i; 975 : 976 : /* Do not compare invalid dimensions. */ - 977 1650 : if (!gst_tensor_dimension_is_valid (dim1) || - 978 1649 : !gst_tensor_dimension_is_valid (dim2)) + 977 1651 : if (!gst_tensor_dimension_is_valid (dim1) || + 978 1650 : !gst_tensor_dimension_is_valid (dim2)) 979 1 : return FALSE; 980 : - 981 27255 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { - 982 25656 : if (dim1[i] != dim2[i]) { + 981 27272 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { + 982 25672 : if (dim1[i] != dim2[i]) { 983 : /* Supposed dimension is same if remained dimension is 1. */ 984 242 : if (dim1[i] > 1 || dim2[i] > 1) 985 50 : return FALSE; 986 : } 987 : } 988 : - 989 1599 : return TRUE; + 989 1600 : return TRUE; 990 : } 991 : 992 : /** @@ -1057,16 +1057,16 @@ 995 : * @return tensor rank (Minimum rank is 1 if given dimension is valid) 996 : */ 997 : guint - 998 160409 : gst_tensor_dimension_get_rank (const tensor_dim dim) + 998 160715 : gst_tensor_dimension_get_rank (const tensor_dim dim) 999 : { 1000 : guint i; 1001 : - 1002 797945 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { - 1003 794832 : if (dim[i] == 0) - 1004 157296 : break; + 1002 799479 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { + 1003 796366 : if (dim[i] == 0) + 1004 157602 : break; 1005 : } 1006 : - 1007 160409 : return i; + 1007 160715 : return i; 1008 : } 1009 : 1010 : /** @@ -1099,40 +1099,40 @@ 1037 : * @param dim dimension to be filled. 1038 : */ 1039 : guint - 1040 159008 : gst_tensor_parse_dimension (const gchar * dimstr, tensor_dim dim) + 1040 159173 : gst_tensor_parse_dimension (const gchar * dimstr, tensor_dim dim) 1041 : { - 1042 159008 : guint rank = 0; + 1042 159173 : guint rank = 0; 1043 : guint64 val; 1044 : gchar **strv; 1045 : gchar *dim_string; 1046 : guint i, num_dims; 1047 : 1048 : /* 0-init */ - 1049 2703136 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) - 1050 2544128 : dim[i] = 0; + 1049 2705941 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) + 1050 2546768 : dim[i] = 0; 1051 : - 1052 159008 : if (dimstr == NULL) + 1052 159173 : if (dimstr == NULL) 1053 0 : return 0; 1054 : 1055 : /* remove spaces */ - 1056 159008 : dim_string = g_strstrip (g_strdup (dimstr)); + 1056 159173 : dim_string = g_strstrip (g_strdup (dimstr)); 1057 : - 1058 159008 : strv = g_strsplit (dim_string, ":", NNS_TENSOR_RANK_LIMIT); - 1059 159008 : num_dims = g_strv_length (strv); + 1058 159173 : strv = g_strsplit (dim_string, ":", NNS_TENSOR_RANK_LIMIT); + 1059 159173 : num_dims = g_strv_length (strv); 1060 : - 1061 804225 : for (i = 0; i < num_dims; i++) { - 1062 645217 : g_strstrip (strv[i]); - 1063 645217 : if (strv[i] == NULL || strlen (strv[i]) == 0) + 1061 805014 : for (i = 0; i < num_dims; i++) { + 1062 645841 : g_strstrip (strv[i]); + 1063 645841 : if (strv[i] == NULL || strlen (strv[i]) == 0) 1064 : break; 1065 : - 1066 645217 : val = g_ascii_strtoull (strv[i], NULL, 10); - 1067 645217 : dim[i] = (uint32_t) val; - 1068 645217 : rank = i + 1; + 1066 645841 : val = g_ascii_strtoull (strv[i], NULL, 10); + 1067 645841 : dim[i] = (uint32_t) val; + 1068 645841 : rank = i + 1; 1069 : } 1070 : - 1071 159008 : g_strfreev (strv); - 1072 159008 : g_free (dim_string); - 1073 159008 : return rank; + 1071 159173 : g_strfreev (strv); + 1072 159173 : g_free (dim_string); + 1073 159173 : return rank; 1074 : } 1075 : 1076 : /** @@ -1245,30 +1245,30 @@ 1183 : * @param dim The tensor dimension 1184 : */ 1185 : gulong - 1186 127823 : gst_tensor_get_element_count (const tensor_dim dim) + 1186 127718 : gst_tensor_get_element_count (const tensor_dim dim) 1187 : { - 1188 127823 : gulong count = 1; + 1188 127718 : gulong count = 1; 1189 : guint i; 1190 : - 1191 580825 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { - 1192 579948 : if (dim[i] == 0) - 1193 126946 : break; + 1191 580278 : for (i = 0; i < NNS_TENSOR_RANK_LIMIT; i++) { + 1192 579401 : if (dim[i] == 0) + 1193 126841 : break; 1194 : - 1195 453002 : count *= dim[i]; + 1195 452560 : count *= dim[i]; 1196 : } 1197 : - 1198 127823 : return (i > 0) ? count : 0; + 1198 127718 : return (i > 0) ? count : 0; 1199 : } 1200 : 1201 : /** 1202 : * @brief Get element size of tensor type (byte per element) 1203 : */ 1204 : gsize - 1205 10313237 : gst_tensor_get_element_size (tensor_type type) + 1205 10313189 : gst_tensor_get_element_size (tensor_type type) 1206 : { - 1207 10313237 : g_return_val_if_fail (type >= 0 && type <= _NNS_END, 0); + 1207 10313189 : g_return_val_if_fail (type >= 0 && type <= _NNS_END, 0); 1208 : - 1209 10313237 : return tensor_element_size[type]; + 1209 10313189 : return tensor_element_size[type]; 1210 : } 1211 : 1212 : /** @@ -1277,34 +1277,34 @@ 1215 : * @param typestr The string type name, supposed to be one of tensor_element_typename[] 1216 : */ 1217 : tensor_type - 1218 158439 : gst_tensor_get_type (const gchar * typestr) + 1218 158604 : gst_tensor_get_type (const gchar * typestr) 1219 : { 1220 : gsize size, len; 1221 : gchar *type_string; - 1222 158439 : tensor_type type = _NNS_END; + 1222 158604 : tensor_type type = _NNS_END; 1223 : - 1224 158439 : if (typestr == NULL) + 1224 158604 : if (typestr == NULL) 1225 7 : return _NNS_END; 1226 : 1227 : /* remove spaces */ - 1228 158432 : type_string = g_strdup (typestr); - 1229 158432 : g_strstrip (type_string); + 1228 158597 : type_string = g_strdup (typestr); + 1229 158597 : g_strstrip (type_string); 1230 : - 1231 158432 : len = strlen (type_string); + 1231 158597 : len = strlen (type_string); 1232 : - 1233 158432 : if (len == 0) { + 1233 158597 : if (len == 0) { 1234 1 : g_free (type_string); 1235 1 : return _NNS_END; 1236 : } 1237 : - 1238 158431 : if (g_regex_match_simple ("^uint(8|16|32|64)$", + 1238 158596 : if (g_regex_match_simple ("^uint(8|16|32|64)$", 1239 : type_string, G_REGEX_CASELESS, 0)) { - 1240 87398 : size = (gsize) g_ascii_strtoull (&type_string[4], NULL, 10); + 1240 87637 : size = (gsize) g_ascii_strtoull (&type_string[4], NULL, 10); 1241 : - 1242 87398 : switch (size) { - 1243 85171 : case 8: - 1244 85171 : type = _NNS_UINT8; - 1245 85171 : break; + 1242 87637 : switch (size) { + 1243 85410 : case 8: + 1244 85410 : type = _NNS_UINT8; + 1245 85410 : break; 1246 195 : case 16: 1247 195 : type = _NNS_UINT16; 1248 195 : break; @@ -1314,7 +1314,7 @@ 1252 75 : case 64: 1253 75 : type = _NNS_UINT64; 1254 : } - 1255 71033 : } else if (g_regex_match_simple ("^int(8|16|32|64)$", + 1255 70959 : } else if (g_regex_match_simple ("^int(8|16|32|64)$", 1256 : type_string, G_REGEX_CASELESS, 0)) { 1257 900 : size = (gsize) g_ascii_strtoull (&type_string[3], NULL, 10); 1258 : @@ -1331,24 +1331,24 @@ 1269 91 : case 64: 1270 91 : type = _NNS_INT64; 1271 : } - 1272 70133 : } else if (g_regex_match_simple ("^float(16|32|64)$", + 1272 70059 : } else if (g_regex_match_simple ("^float(16|32|64)$", 1273 : type_string, G_REGEX_CASELESS, 0)) { - 1274 70111 : size = (gsize) g_ascii_strtoull (&type_string[5], NULL, 10); + 1274 70037 : size = (gsize) g_ascii_strtoull (&type_string[5], NULL, 10); 1275 : - 1276 70111 : switch (size) { + 1276 70037 : switch (size) { 1277 63 : case 16: 1278 63 : type = _NNS_FLOAT16; 1279 63 : break; - 1280 69694 : case 32: - 1281 69694 : type = _NNS_FLOAT32; - 1282 69694 : break; + 1280 69620 : case 32: + 1281 69620 : type = _NNS_FLOAT32; + 1282 69620 : break; 1283 354 : case 64: 1284 354 : type = _NNS_FLOAT64; 1285 : } 1286 : } 1287 : - 1288 158431 : g_free (type_string); - 1289 158431 : return type; + 1288 158596 : g_free (type_string); + 1289 158596 : return type; 1290 : } 1291 : 1292 : /** @@ -1368,16 +1368,16 @@ 1306 : * @return Corresponding tensor_format. _NNS_TENSOR_FORMAT_END if unrecognized value is there. 1307 : */ 1308 : tensor_format - 1309 12333 : gst_tensor_get_format (const gchar * format_str) + 1309 12374 : gst_tensor_get_format (const gchar * format_str) 1310 : { 1311 : gint idx; - 1312 12333 : tensor_format format = _NNS_TENSOR_FORMAT_END; + 1312 12374 : tensor_format format = _NNS_TENSOR_FORMAT_END; 1313 : - 1314 12333 : idx = find_key_strv (tensor_format_name, format_str); - 1315 12333 : if (idx >= 0) - 1316 10848 : format = (tensor_format) idx; + 1314 12374 : idx = find_key_strv (tensor_format_name, format_str); + 1315 12374 : if (idx >= 0) + 1316 10889 : format = (tensor_format) idx; 1317 : - 1318 12333 : return format; + 1318 12374 : return format; 1319 : } 1320 : 1321 : /** @@ -1431,18 +1431,18 @@ 1369 : * @param[in,out] meta tensor meta structure to be initialized 1370 : */ 1371 : void - 1372 141906 : gst_tensor_meta_info_init (GstTensorMetaInfo * meta) + 1372 141968 : gst_tensor_meta_info_init (GstTensorMetaInfo * meta) 1373 : { - 1374 141906 : g_return_if_fail (meta != NULL); + 1374 141968 : g_return_if_fail (meta != NULL); 1375 : 1376 : /* zero-init */ - 1377 141906 : memset (meta, 0, sizeof (GstTensorMetaInfo)); + 1377 141968 : memset (meta, 0, sizeof (GstTensorMetaInfo)); 1378 : - 1379 141906 : meta->magic = GST_TENSOR_META_MAGIC; - 1380 141906 : meta->version = GST_TENSOR_META_VERSION; - 1381 141906 : meta->type = _NNS_END; - 1382 141906 : meta->format = _NNS_TENSOR_FORMAT_STATIC; - 1383 141906 : meta->media_type = _NNS_TENSOR; + 1379 141968 : meta->magic = GST_TENSOR_META_MAGIC; + 1380 141968 : meta->version = GST_TENSOR_META_VERSION; + 1381 141968 : meta->type = _NNS_END; + 1382 141968 : meta->format = _NNS_TENSOR_FORMAT_STATIC; + 1383 141968 : meta->media_type = _NNS_TENSOR; 1384 : } 1385 : 1386 : /** @@ -1473,20 +1473,20 @@ 1411 : * @return TRUE if given meta is valid 1412 : */ 1413 : gboolean - 1414 54713 : gst_tensor_meta_info_validate (GstTensorMetaInfo * meta) + 1414 54718 : gst_tensor_meta_info_validate (GstTensorMetaInfo * meta) 1415 : { - 1416 54713 : g_return_val_if_fail (meta != NULL, FALSE); + 1416 54718 : g_return_val_if_fail (meta != NULL, FALSE); 1417 : - 1418 54709 : if (!GST_TENSOR_META_IS_VALID (meta)) - 1419 52707 : return FALSE; + 1418 54714 : if (!GST_TENSOR_META_IS_VALID (meta)) + 1419 52718 : return FALSE; 1420 : - 1421 2002 : if (meta->type >= _NNS_END) { + 1421 1996 : if (meta->type >= _NNS_END) { 1422 1 : nns_logd ("Failed to validate tensor meta info. type: %s. ", 1423 : _STR_NULL (gst_tensor_get_type_string (meta->type))); 1424 1 : return FALSE; 1425 : } 1426 : - 1427 2001 : if (!gst_tensor_dimension_is_valid (meta->dimension)) { + 1427 1995 : if (!gst_tensor_dimension_is_valid (meta->dimension)) { 1428 1 : gchar *dim_str = gst_tensor_get_dimension_string (meta->dimension); 1429 1 : nns_logd ("Failed to validate tensor meta info. Given dimension: %s", 1430 : dim_str); @@ -1494,19 +1494,19 @@ 1432 1 : return FALSE; 1433 : } 1434 : - 1435 2000 : if (meta->format >= _NNS_TENSOR_FORMAT_END) { + 1435 1994 : if (meta->format >= _NNS_TENSOR_FORMAT_END) { 1436 1 : nns_logd ("Failed to validate tensors meta info. format: %s. ", 1437 : _STR_NULL (gst_tensor_get_format_string (meta->format))); 1438 1 : return FALSE; 1439 : } 1440 : - 1441 1999 : if (meta->media_type > _NNS_TENSOR) { + 1441 1993 : if (meta->media_type > _NNS_TENSOR) { 1442 1 : nns_logd ("Failed to validate tensor meta info. invalid media type: %d.", 1443 : meta->media_type); 1444 1 : return FALSE; 1445 : } 1446 : - 1447 1998 : return TRUE; + 1447 1992 : return TRUE; 1448 : } 1449 : 1450 : /** @@ -1515,16 +1515,16 @@ 1453 : * @return Header size for meta info (0 if meta is invalid) 1454 : */ 1455 : gsize - 1456 61828 : gst_tensor_meta_info_get_header_size (GstTensorMetaInfo * meta) + 1456 61882 : gst_tensor_meta_info_get_header_size (GstTensorMetaInfo * meta) 1457 : { - 1458 61828 : g_return_val_if_fail (meta != NULL, 0); + 1458 61882 : g_return_val_if_fail (meta != NULL, 0); 1459 : - 1460 61827 : if (!GST_TENSOR_META_IS_VALID (meta)) + 1460 61881 : if (!GST_TENSOR_META_IS_VALID (meta)) 1461 2 : return 0; 1462 : 1463 : /* return fixed size for meta version */ - 1464 61825 : if (GST_TENSOR_META_IS_V1 (meta->version)) { - 1465 61825 : return 128; + 1464 61879 : if (GST_TENSOR_META_IS_V1 (meta->version)) { + 1465 61879 : return 128; 1466 : } 1467 : 1468 0 : return 0; @@ -1564,19 +1564,19 @@ 1502 : * @note User should allocate enough memory for header (see gst_tensor_meta_info_get_header_size()). 1503 : */ 1504 : gboolean - 1505 401 : gst_tensor_meta_info_update_header (GstTensorMetaInfo * meta, gpointer header) + 1505 400 : gst_tensor_meta_info_update_header (GstTensorMetaInfo * meta, gpointer header) 1506 : { 1507 : gsize hsize; 1508 : - 1509 401 : g_return_val_if_fail (header != NULL, FALSE); - 1510 400 : g_return_val_if_fail (gst_tensor_meta_info_validate (meta), FALSE); + 1509 400 : g_return_val_if_fail (header != NULL, FALSE); + 1510 399 : g_return_val_if_fail (gst_tensor_meta_info_validate (meta), FALSE); 1511 : - 1512 399 : hsize = gst_tensor_meta_info_get_header_size (meta); + 1512 398 : hsize = gst_tensor_meta_info_get_header_size (meta); 1513 : - 1514 399 : memset (header, 0, hsize); + 1514 398 : memset (header, 0, hsize); 1515 : - 1516 399 : memcpy (header, meta, sizeof (GstTensorMetaInfo)); - 1517 399 : return TRUE; + 1516 398 : memcpy (header, meta, sizeof (GstTensorMetaInfo)); + 1517 398 : return TRUE; 1518 : } 1519 : 1520 : /** @@ -1586,32 +1586,32 @@ 1524 : * @return TRUE if successfully set the meta 1525 : */ 1526 : gboolean - 1527 53802 : gst_tensor_meta_info_parse_header (GstTensorMetaInfo * meta, gpointer header) + 1527 53809 : gst_tensor_meta_info_parse_header (GstTensorMetaInfo * meta, gpointer header) 1528 : { - 1529 53802 : uint32_t *val = (uint32_t *) header; + 1529 53809 : uint32_t *val = (uint32_t *) header; 1530 : - 1531 53802 : g_return_val_if_fail (header != NULL, FALSE); - 1532 53801 : g_return_val_if_fail (meta != NULL, FALSE); + 1531 53809 : g_return_val_if_fail (header != NULL, FALSE); + 1532 53808 : g_return_val_if_fail (meta != NULL, FALSE); 1533 : - 1534 53800 : gst_tensor_meta_info_init (meta); + 1534 53807 : gst_tensor_meta_info_init (meta); 1535 : - 1536 53800 : meta->magic = val[0]; - 1537 53800 : meta->version = val[1]; - 1538 53800 : meta->type = val[2]; - 1539 53800 : memcpy (meta->dimension, &val[3], sizeof (uint32_t) * NNS_TENSOR_RANK_LIMIT); - 1540 53800 : meta->format = val[19]; - 1541 53800 : meta->media_type = val[20]; + 1536 53807 : meta->magic = val[0]; + 1537 53807 : meta->version = val[1]; + 1538 53807 : meta->type = val[2]; + 1539 53807 : memcpy (meta->dimension, &val[3], sizeof (uint32_t) * NNS_TENSOR_RANK_LIMIT); + 1540 53807 : meta->format = val[19]; + 1541 53807 : meta->media_type = val[20]; 1542 : - 1543 53800 : switch ((tensor_format) meta->format) { + 1543 53807 : switch ((tensor_format) meta->format) { 1544 204 : case _NNS_TENSOR_FORMAT_SPARSE: 1545 204 : meta->sparse_info.nnz = val[21]; 1546 204 : break; - 1547 53596 : default: - 1548 53596 : break; + 1547 53603 : default: + 1548 53603 : break; 1549 : } 1550 : 1551 : /** @todo update meta info for each version */ - 1552 53800 : return gst_tensor_meta_info_validate (meta); + 1552 53807 : return gst_tensor_meta_info_validate (meta); 1553 : } 1554 : 1555 : /** @@ -1645,19 +1645,19 @@ 1583 : * @param key The key string value 1584 : */ 1585 : gint - 1586 12635 : find_key_strv (const gchar ** strv, const gchar * key) + 1586 12676 : find_key_strv (const gchar ** strv, const gchar * key) 1587 : { - 1588 12635 : gint cursor = 0; + 1588 12676 : gint cursor = 0; 1589 : - 1590 12635 : if (strv == NULL) { + 1590 12676 : if (strv == NULL) { 1591 0 : ml_logf_stacktrace 1592 : ("find_key_strv is called with a null pointer. Possible internal logic errors.\n"); 1593 0 : return -1; 1594 : } - 1595 15167 : while (strv[cursor] && key) { - 1596 13678 : if (g_ascii_strcasecmp (strv[cursor], key) == 0) - 1597 11146 : return cursor; - 1598 2532 : cursor++; + 1595 15192 : while (strv[cursor] && key) { + 1596 13703 : if (g_ascii_strcasecmp (strv[cursor], key) == 0) + 1597 11187 : return cursor; + 1598 2516 : cursor++; 1599 : } 1600 : 1601 1489 : return -1; /* Not Found */ diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.func-c.html index 5379b14c0..62b81eb05 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -114,7 +114,7 @@ get_subplugin - 2870 + 2866 @@ -142,7 +142,7 @@ _get_subplugin_data - 9056 + 9052 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.func.html index 81c526c4b..98f9c918b 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -72,7 +72,7 @@ _get_subplugin_data - 9056 + 9052 @@ -107,7 +107,7 @@ get_subplugin - 2870 + 2866 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.gcov.html index a83da5905..f1f747d98 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_subplugin.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 91.7 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -146,21 +146,21 @@ 84 : * @brief Internal function to get sub-plugin data. 85 : */ 86 : static subpluginData * - 87 9056 : _get_subplugin_data (subpluginType type, const gchar * name) + 87 9052 : _get_subplugin_data (subpluginType type, const gchar * name) 88 : { - 89 9056 : subpluginData *spdata = NULL; + 89 9052 : subpluginData *spdata = NULL; 90 : - 91 9056 : G_LOCK (splock); - 92 9056 : if (subplugins[type] == NULL) { + 91 9052 : G_LOCK (splock); + 92 9052 : if (subplugins[type] == NULL) { 93 1246 : subplugins[type] = 94 1246 : g_hash_table_new_full (g_str_hash, g_str_equal, g_free, 95 : _spdata_destroy); 96 : } else { - 97 7810 : spdata = g_hash_table_lookup (subplugins[type], name); + 97 7806 : spdata = g_hash_table_lookup (subplugins[type], name); 98 : } - 99 9056 : G_UNLOCK (splock); + 99 9052 : G_UNLOCK (splock); 100 : - 101 9056 : return spdata; + 101 9052 : return spdata; 102 : } 103 : 104 : /** @@ -200,13 +200,13 @@ 138 : 139 : /** @brief Public function defined in the header */ 140 : const void * - 141 2870 : get_subplugin (subpluginType type, const char *name) + 141 2866 : get_subplugin (subpluginType type, const char *name) 142 : { - 143 2870 : subpluginData *spdata = NULL; + 143 2866 : subpluginData *spdata = NULL; 144 : - 145 2870 : g_return_val_if_fail (name, NULL); + 145 2866 : g_return_val_if_fail (name, NULL); 146 : - 147 2865 : if (searchAlgorithm[type] == NNS_SEARCH_GETALL) { + 147 2861 : if (searchAlgorithm[type] == NNS_SEARCH_GETALL) { 148 438 : nnsconf_type_path conf_type = (nnsconf_type_path) type; 149 : subplugin_info_s info; 150 : guint i; @@ -219,18 +219,18 @@ 157 438 : searchAlgorithm[type] = NNS_SEARCH_NO_OP; 158 : } 159 : - 160 2865 : spdata = _get_subplugin_data (type, name); - 161 2865 : if (spdata == NULL && searchAlgorithm[type] == NNS_SEARCH_FILENAME) { + 160 2861 : spdata = _get_subplugin_data (type, name); + 161 2861 : if (spdata == NULL && searchAlgorithm[type] == NNS_SEARCH_FILENAME) { 162 : /** Search and register if found with the conf */ - 163 382 : nnsconf_type_path conf_type = (nnsconf_type_path) type; - 164 382 : const gchar *fullpath = nnsconf_get_fullpath (name, conf_type); + 163 378 : nnsconf_type_path conf_type = (nnsconf_type_path) type; + 164 378 : const gchar *fullpath = nnsconf_get_fullpath (name, conf_type); 165 : - 166 382 : if (nnsconf_validate_file (conf_type, fullpath)) { + 166 378 : if (nnsconf_validate_file (conf_type, fullpath)) { 167 231 : spdata = _search_subplugin (type, name, fullpath); 168 : } 169 : } 170 : - 171 2865 : return (spdata != NULL) ? spdata->data : NULL; + 171 2861 : return (spdata != NULL) ? spdata->data : NULL; 172 : } 173 : 174 : /** @brief Public function defined in the header */ diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.func-c.html index 22dc83ad9..234862bf5 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.func.html index acf2dacec..e32cc232a 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.gcov.html index 1a99fcce6..2c4f6f01b 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/nnstreamer_watchdog.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 84.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index-sort-f.html index 9c44b9568..81b858a13 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/registerer + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/registerer @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index-sort-l.html index 15bc3a7b7..8c680fd99 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/registerer + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/registerer @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index.html index 04e4adcc3..a3c78d7b3 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/registerer + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/registerer @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.func-c.html index 8f685a61d..7a965a234 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.func.html index 5bbee9fac..b9bd565be 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.gcov.html index 91c95818e..1e6d64a27 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/registerer/nnstreamer.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 66.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.func-c.html index 6740aa7ec..23a6bda52 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 94.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.func.html index 901f82108..13f915225 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 94.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.gcov.html index b56925ec4..632f2a952 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_allocator.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 94.9 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.func-c.html index 1fd998e1d..d4627b80e 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -114,7 +114,7 @@ gst_tensor_data_typecast - 3869843 + 3869841 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.func.html index 8a919d771..7586f621c 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -114,7 +114,7 @@ gst_tensor_data_typecast - 3869843 + 3869841 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.gcov.html index 18f9b3344..83f242622 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_data.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 88.6 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -262,14 +262,14 @@ 200 : * @return TRUE if no error 201 : */ 202 : gboolean - 203 3869843 : gst_tensor_data_typecast (tensor_data_s * td, tensor_type type) + 203 3869841 : gst_tensor_data_typecast (tensor_data_s * td, tensor_type type) 204 : { 205 : gboolean is_float; 206 : - 207 3869843 : g_return_val_if_fail (td != NULL, FALSE); + 207 3869841 : g_return_val_if_fail (td != NULL, FALSE); 208 : 209 : /* do nothing when transform to same type */ - 210 3869843 : if (td->type != type) { + 210 3869841 : if (td->type != type) { 211 3549646 : is_float = (td->type == _NNS_FLOAT32 || td->type == _NNS_FLOAT64 212 7319322 : || td->type == _NNS_FLOAT16); 213 : @@ -337,7 +337,7 @@ 275 3769676 : td->type = type; 276 : } 277 : - 278 3869843 : return TRUE; + 278 3869841 : return TRUE; 279 : } 280 : 281 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index-sort-f.html index d1797c0d0..14ea6453f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 81.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.9 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index-sort-l.html index aa7ba6a29..9d1e25820 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 81.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.9 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index.html index baaed6656..6c1fe40aa 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 81.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 96.9 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.func-c.html index c5653c610..957615d94 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -177,7 +177,7 @@ gst_tensor_filter_sink_event - 686 + 689 @@ -198,7 +198,7 @@ gst_tensor_filter_src_event - 1937 + 1957 @@ -233,98 +233,98 @@ gst_tensor_filter_query - 2697 + 2702 gst_tensor_filter_transform_caps - 2718 + 2723 _gst_tensor_filter_transform_update_outbuf - 23232 + 23209 _gst_tensor_filter_transform_check_invoke_result - 23252 + 23229 _gst_tensor_filter_transform_get_output_data - 23253 + 23230 _gst_tensor_filter_transform_prepare_output_tensors - 23253 + 23230 _gst_tensor_filter_transform_get_all_input_data - 23255 + 23232 _gst_tensor_filter_transform_get_invoke_tensors - 23255 + 23232 _gst_tensor_filter_transform_validate - 23403 + 23380 gst_tensor_filter_check_throttling_delay - 23403 + 23380 gst_tensor_filter_transform - 23403 + 23380 gst_tensor_filter_transform_size - 23403 + 23380 _gst_tensor_filter_convert_meta - 23723 + 23700 gst_tensor_filter_get_tensor_size - 47349 + 47303 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.func.html index 701fa94fe..9def2b28c 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -65,7 +65,7 @@ _gst_tensor_filter_convert_meta - 23723 + 23700 @@ -79,49 +79,49 @@ _gst_tensor_filter_transform_check_invoke_result - 23252 + 23229 _gst_tensor_filter_transform_get_all_input_data - 23255 + 23232 _gst_tensor_filter_transform_get_invoke_tensors - 23255 + 23232 _gst_tensor_filter_transform_get_output_data - 23253 + 23230 _gst_tensor_filter_transform_prepare_output_tensors - 23253 + 23230 _gst_tensor_filter_transform_update_outbuf - 23232 + 23209 _gst_tensor_filter_transform_validate - 23403 + 23380 @@ -135,7 +135,7 @@ gst_tensor_filter_check_throttling_delay - 23403 + 23380 @@ -184,7 +184,7 @@ gst_tensor_filter_get_tensor_size - 47349 + 47303 @@ -233,7 +233,7 @@ gst_tensor_filter_query - 2697 + 2702 @@ -254,14 +254,14 @@ gst_tensor_filter_sink_event - 686 + 689 gst_tensor_filter_src_event - 1937 + 1957 @@ -282,21 +282,21 @@ gst_tensor_filter_transform - 23403 + 23380 gst_tensor_filter_transform_caps - 2718 + 2723 gst_tensor_filter_transform_size - 23403 + 23380 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.gcov.html index 8d5ad3339..917f9bc4a 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 83.5 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -336,27 +336,27 @@ 274 : * @return tensor buffer size 275 : */ 276 : static gsize - 277 47349 : gst_tensor_filter_get_tensor_size (GstTensorFilter * self, guint index, + 277 47303 : gst_tensor_filter_get_tensor_size (GstTensorFilter * self, guint index, 278 : gboolean is_input) 279 : { 280 : GstTensorFilterPrivate *priv; 281 : GstTensorsInfo *info; 282 : - 283 47349 : priv = &self->priv; - 284 47349 : if (is_input) - 285 23720 : info = &priv->prop.input_meta; + 283 47303 : priv = &self->priv; + 284 47303 : if (is_input) + 285 23697 : info = &priv->prop.input_meta; 286 : else - 287 23629 : info = &priv->prop.output_meta; + 287 23606 : info = &priv->prop.output_meta; 288 : 289 : /* Internal Logic Error: out of bound */ - 290 47349 : if (index >= info->num_tensors) { + 290 47303 : if (index >= info->num_tensors) { 291 0 : GST_ELEMENT_ERROR_BTRACE (self, STREAM, FAILED, 292 : ("tensor_filter's core has inconsistent data. Please report to https://github.com/nnstreamer/nnstreamer/issues . The index argument (%u) of tensors is greater-than or equal-to the number of tensors (%u)", 293 : index, info->num_tensors)); 294 0 : return 0; 295 : } 296 : - 297 47349 : return gst_tensor_info_get_size (gst_tensors_info_get_nth_info (info, index)); + 297 47303 : return gst_tensor_info_get_size (gst_tensors_info_get_nth_info (info, index)); 298 : } 299 : 300 : /** @@ -595,18 +595,18 @@ 533 : * @brief Check throttling delay and send qos overflow event to upstream elements 534 : */ 535 : static gboolean - 536 23403 : gst_tensor_filter_check_throttling_delay (GstBaseTransform * trans, + 536 23380 : gst_tensor_filter_check_throttling_delay (GstBaseTransform * trans, 537 : GstBuffer * inbuf) 538 : { 539 : GstTensorFilter *self; 540 : GstTensorFilterPrivate *priv; 541 : - 542 23403 : self = GST_TENSOR_FILTER_CAST (trans); - 543 23403 : priv = &self->priv; + 542 23380 : self = GST_TENSOR_FILTER_CAST (trans); + 543 23380 : priv = &self->priv; 544 : - 545 23403 : GST_OBJECT_LOCK (trans); + 545 23380 : GST_OBJECT_LOCK (trans); 546 : - 547 23403 : if (self->throttling_delay != 0) { + 547 23380 : if (self->throttling_delay != 0) { 548 297 : GstClockTime curr_ts = GST_BUFFER_PTS (inbuf); 549 297 : GstClockTime prev_ts = self->prev_ts; 550 : @@ -644,22 +644,22 @@ 582 : } 583 : } 584 : - 585 23255 : GST_OBJECT_UNLOCK (trans); - 586 23255 : return FALSE; + 585 23232 : GST_OBJECT_UNLOCK (trans); + 586 23232 : return FALSE; 587 : } 588 : 589 : /** 590 : * @brief Check input parameters for gst_tensor_filter_transform (); 591 : */ 592 : static GstFlowReturn - 593 23403 : _gst_tensor_filter_transform_validate (GstBaseTransform * trans, + 593 23380 : _gst_tensor_filter_transform_validate (GstBaseTransform * trans, 594 : GstBuffer * inbuf, GstBuffer * outbuf) 595 : { - 596 23403 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); - 597 23403 : GstTensorFilterPrivate *priv = &self->priv; - 598 23403 : GstTensorFilterProperties *prop = &priv->prop; + 596 23380 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); + 597 23380 : GstTensorFilterPrivate *priv = &self->priv; + 598 23380 : GstTensorFilterProperties *prop = &priv->prop; 599 : - 600 23403 : if (G_UNLIKELY (!priv->configured)) { + 600 23380 : if (G_UNLIKELY (!priv->configured)) { 601 0 : GST_ELEMENT_ERROR_BTRACE (self, STREAM, TYPE_NOT_FOUND, 602 : ("The tensor_filter instance is not configured (pad caps not negotiated). Property info (framework = '%s', framework_opened = %d, model[0] = '%s', num-models = %d, custom_properties = '%s'.", 603 : prop ? prop->fwname : "property info is NULL.", @@ -669,7 +669,7 @@ 607 : prop ? prop->custom_properties : "property info is NULL.")); 608 0 : return GST_FLOW_NOT_NEGOTIATED; 609 : } - 610 23403 : if (G_UNLIKELY (!priv->fw)) { + 610 23380 : if (G_UNLIKELY (!priv->fw)) { 611 : /** 612 : * This is fatal; if framework is not configured until this stage, 613 : * it means that an extension is missing or not configured. @@ -683,43 +683,43 @@ 621 : prop->fwname); 622 0 : return GST_FLOW_ERROR; 623 : } - 624 23403 : if (G_UNLIKELY (!priv->fw->run_without_model) && - 625 23311 : G_UNLIKELY (!(prop->model_files && + 624 23380 : if (G_UNLIKELY (!priv->fw->run_without_model) && + 625 23288 : G_UNLIKELY (!(prop->model_files && 626 : prop->num_models > 0 && prop->model_files[0]))) { 627 0 : GST_ELEMENT_ERROR_BTRACE (self, STREAM, FAILED, 628 : ("For the framework='%s', its model filepath is not provided and this framework requires a model file. Thus, we cannot proceed with tensor_filter for inferences. Please provide a valid model file path.", 629 : prop->fwname)); 630 0 : return GST_FLOW_ERROR; 631 : } - 632 23403 : if ((GST_TF_FW_V0 (priv->fw) && G_UNLIKELY (!priv->fw->invoke_NN)) || - 633 23403 : (GST_TF_FW_V1 (priv->fw) && G_UNLIKELY (!priv->fw->invoke))) { + 632 23380 : if ((GST_TF_FW_V0 (priv->fw) && G_UNLIKELY (!priv->fw->invoke_NN)) || + 633 23380 : (GST_TF_FW_V1 (priv->fw) && G_UNLIKELY (!priv->fw->invoke))) { 634 0 : GST_ELEMENT_ERROR_BTRACE (self, STREAM, FAILED, 635 : ("The tensor-filter subplugin for the framework='%s' does not have its mandatory methods (or callback functions). It appears that your subplugin implementation of '%s' is not completed. There is no 'invoke_NN (v1)' or 'invoke (v2)' methods available.", 636 : prop->fwname, prop->fwname)); 637 0 : return GST_FLOW_ERROR; 638 : } 639 : - 640 23403 : silent_debug (self, "Invoking %s with %s model\n", prop->fwname, + 640 23380 : silent_debug (self, "Invoking %s with %s model\n", prop->fwname, 641 : GST_STR_NULL (prop->model_files[0])); 642 : 643 : /* skip input data when throttling delay is set */ - 644 23403 : if (gst_tensor_filter_check_throttling_delay (trans, inbuf)) + 644 23380 : if (gst_tensor_filter_check_throttling_delay (trans, inbuf)) 645 148 : return GST_BASE_TRANSFORM_FLOW_DROPPED; 646 : - 647 23255 : if (!outbuf) { + 647 23232 : if (!outbuf) { 648 0 : GST_ELEMENT_ERROR_BTRACE (self, STREAM, FAILED, 649 : ("The output buffer for the instance of tensor-filter subplugin (%s / %s) is null. Cannot proceed.", 650 : prop->fwname, TF_MODELNAME (prop))); 651 0 : return GST_FLOW_ERROR; 652 : } - 653 23255 : if (gst_buffer_get_size (outbuf) != 0) { + 653 23232 : if (gst_buffer_get_size (outbuf) != 0) { 654 0 : GST_ELEMENT_ERROR_BTRACE (self, STREAM, FAILED, 655 : ("The output buffer for the instance of tensor-filter subplugin (%s / %s) already has a content (buffer size = %zu). It should be 0.", 656 : prop->fwname, TF_MODELNAME (prop), gst_buffer_get_size (outbuf))); 657 0 : return GST_FLOW_ERROR; 658 : } 659 : - 660 23255 : return GST_FLOW_OK; + 660 23232 : return GST_FLOW_OK; 661 : } 662 : 663 : /** @@ -743,14 +743,14 @@ 681 : * @brief Internal function to convert tensor meta and get header size of flexible tensor. 682 : */ 683 : static gsize - 684 23723 : _gst_tensor_filter_convert_meta (FilterTransformData * trans_data, + 684 23700 : _gst_tensor_filter_convert_meta (FilterTransformData * trans_data, 685 : GstTensorsInfo * info, guint idx) 686 : { - 687 23723 : gsize header_size = 0; + 687 23700 : gsize header_size = 0; 688 : GstTensorMetaInfo *_meta; 689 : GstTensorInfo *_info; 690 : - 691 23723 : if (trans_data->is_flexible) { + 691 23700 : if (trans_data->is_flexible) { 692 31 : _meta = &trans_data->meta[idx]; 693 31 : _info = gst_tensors_info_get_nth_info (info, idx); 694 : @@ -759,38 +759,38 @@ 697 31 : gst_tensor_meta_info_convert (_meta, _info); 698 : } 699 : - 700 23723 : return header_size; + 700 23700 : return header_size; 701 : } 702 : 703 : /** 704 : * @brief Internal function to get input tensors. 705 : */ 706 : static FilterTransformData * - 707 23255 : _gst_tensor_filter_transform_get_all_input_data (GstBaseTransform * trans, + 707 23232 : _gst_tensor_filter_transform_get_all_input_data (GstBaseTransform * trans, 708 : GstBuffer * buf) 709 : { - 710 23255 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); - 711 23255 : GstTensorFilterPrivate *priv = &self->priv; - 712 23255 : GstTensorFilterProperties *prop = &priv->prop; + 710 23232 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); + 711 23232 : GstTensorFilterPrivate *priv = &self->priv; + 712 23232 : GstTensorFilterProperties *prop = &priv->prop; 713 : guint i; 714 : gsize hsize; - 715 23255 : FilterTransformData *trans_data = NULL; + 715 23232 : FilterTransformData *trans_data = NULL; 716 : - 717 23255 : trans_data = g_new0 (FilterTransformData, 1); + 717 23232 : trans_data = g_new0 (FilterTransformData, 1); 718 : - 719 23255 : if (!trans_data) { + 719 23232 : if (!trans_data) { 720 0 : ml_loge 721 : ("Failed to allocate memory for internal data of tensor filter transform input data."); 722 0 : return NULL; 723 : } 724 : - 725 23255 : trans_data->num_tensors = gst_tensor_buffer_get_count (buf); - 726 23255 : trans_data->is_flexible = - 727 23255 : gst_tensor_pad_caps_is_flexible (GST_BASE_TRANSFORM_SINK_PAD (trans)); + 725 23232 : trans_data->num_tensors = gst_tensor_buffer_get_count (buf); + 726 23232 : trans_data->is_flexible = + 727 23232 : gst_tensor_pad_caps_is_flexible (GST_BASE_TRANSFORM_SINK_PAD (trans)); 728 : - 729 46978 : for (i = 0; i < trans_data->num_tensors; i++) { - 730 23723 : trans_data->mem[i] = gst_tensor_buffer_get_nth_memory (buf, i); - 731 23723 : if (!gst_memory_map (trans_data->mem[i], &trans_data->info[i], + 729 46932 : for (i = 0; i < trans_data->num_tensors; i++) { + 730 23700 : trans_data->mem[i] = gst_tensor_buffer_get_nth_memory (buf, i); + 731 23700 : if (!gst_memory_map (trans_data->mem[i], &trans_data->info[i], 732 : GST_MAP_READ)) { 733 0 : ml_logf_stacktrace 734 : ("gst_tensor_filter_transform: For the given input buffer, tensor-filter (%s : %s) cannot map input memory from the buffer for reading. The %u-th memory chunk (%u-th tensor) has failed for memory map.\n", @@ -800,45 +800,45 @@ 738 0 : return NULL; 739 : } 740 : - 741 23723 : hsize = _gst_tensor_filter_convert_meta (trans_data, &prop->input_meta, i); + 741 23700 : hsize = _gst_tensor_filter_convert_meta (trans_data, &prop->input_meta, i); 742 : - 743 23723 : trans_data->tensors[i].data = trans_data->info[i].data + hsize; - 744 23723 : trans_data->tensors[i].size = trans_data->info[i].size - hsize; + 743 23700 : trans_data->tensors[i].data = trans_data->info[i].data + hsize; + 744 23700 : trans_data->tensors[i].size = trans_data->info[i].size - hsize; 745 : } 746 : - 747 23255 : return trans_data; + 747 23232 : return trans_data; 748 : } 749 : 750 : /** 751 : * @brief Internal function to get invoke tensors. 752 : */ 753 : static GstTensorMemory * - 754 23255 : _gst_tensor_filter_transform_get_invoke_tensors (GstBaseTransform * trans, + 754 23232 : _gst_tensor_filter_transform_get_invoke_tensors (GstBaseTransform * trans, 755 : FilterTransformData * trans_data) 756 : { - 757 23255 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); - 758 23255 : GstTensorFilterPrivate *priv = &self->priv; - 759 23255 : GstTensorFilterProperties *prop = &priv->prop; + 757 23232 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); + 758 23232 : GstTensorFilterPrivate *priv = &self->priv; + 759 23232 : GstTensorFilterProperties *prop = &priv->prop; 760 : guint i; 761 : gsize expected; - 762 23255 : GstTensorMemory *invoke_tensors = NULL; - 763 23255 : guint invoke_num_tensors = 0; + 762 23232 : GstTensorMemory *invoke_tensors = NULL; + 763 23232 : guint invoke_num_tensors = 0; 764 : - 765 23255 : if (priv->combi.in_combi_defined) { + 765 23232 : if (priv->combi.in_combi_defined) { 766 1 : invoke_num_tensors = g_list_length (priv->combi.in_combi); 767 : } else { - 768 23254 : if (trans_data->num_tensors != prop->input_meta.num_tensors) { + 768 23231 : if (trans_data->num_tensors != prop->input_meta.num_tensors) { 769 1 : ml_loge_stacktrace 770 : ("gst_tensor_filter_transform: Input buffer has invalid number of memory blocks (%u), which is expected to be %u (the number of tensors). Maybe, the pad capability is not consistent with the actual input stream.\n", 771 : prop->input_meta.num_tensors, prop->input_meta.num_tensors); 772 1 : return NULL; 773 : } - 774 23253 : invoke_num_tensors = trans_data->num_tensors; + 774 23230 : invoke_num_tensors = trans_data->num_tensors; 775 : } 776 : - 777 23254 : invoke_tensors = g_new0 (GstTensorMemory, invoke_num_tensors); + 777 23231 : invoke_tensors = g_new0 (GstTensorMemory, invoke_num_tensors); 778 : - 779 23254 : if (!invoke_tensors) { + 779 23231 : if (!invoke_tensors) { 780 0 : ml_loge 781 : ("Failed to allocate memory for internal data of tensor filter transform invoke tensors. The number of invoke tensors: %u", 782 : invoke_num_tensors); @@ -846,7 +846,7 @@ 784 : } 785 : 786 : /* Prepare tensors to invoke. */ - 787 23254 : if (priv->combi.in_combi_defined) { + 787 23231 : if (priv->combi.in_combi_defined) { 788 : GList *list; 789 1 : guint info_idx = 0; 790 : @@ -874,9 +874,9 @@ 812 1 : invoke_tensors[info_idx++] = trans_data->tensors[i]; 813 : } 814 : } else { - 815 46971 : for (i = 0; i < prop->input_meta.num_tensors; i++) { - 816 23719 : expected = gst_tensor_filter_get_tensor_size (self, i, TRUE); - 817 23719 : if (expected != trans_data->tensors[i].size) { + 815 46925 : for (i = 0; i < prop->input_meta.num_tensors; i++) { + 816 23696 : expected = gst_tensor_filter_get_tensor_size (self, i, TRUE); + 817 23696 : if (expected != trans_data->tensors[i].size) { 818 1 : ml_loge_stacktrace 819 : ("gst_tensor_filter_transform: Input buffer size (%u'th memory chunk: %zd) is invalid, which is expected to be %zd, which is the frame size of the corresponding tensor. Maybe, the pad capability is not consistent with the actual input stream; if the size is supposed to change dynamically and the given neural network, framework, and the subpluigins can handle it, please consider using format=flexible.\n", 820 : i, trans_data->tensors[i].size, expected); @@ -884,68 +884,68 @@ 822 1 : return NULL; 823 : } 824 : - 825 23718 : invoke_tensors[i] = trans_data->tensors[i]; + 825 23695 : invoke_tensors[i] = trans_data->tensors[i]; 826 : } 827 : } 828 : - 829 23253 : return invoke_tensors; + 829 23230 : return invoke_tensors; 830 : } 831 : 832 : /** 833 : * @brief Internal function to get output tensors. 834 : */ 835 : static FilterTransformData * - 836 23253 : _gst_tensor_filter_transform_get_output_data (GstBaseTransform * trans) + 836 23230 : _gst_tensor_filter_transform_get_output_data (GstBaseTransform * trans) 837 : { - 838 23253 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); - 839 23253 : GstTensorFilterPrivate *priv = &self->priv; - 840 23253 : GstTensorFilterProperties *prop = &priv->prop; - 841 23253 : FilterTransformData *trans_data = NULL; + 838 23230 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); + 839 23230 : GstTensorFilterPrivate *priv = &self->priv; + 840 23230 : GstTensorFilterProperties *prop = &priv->prop; + 841 23230 : FilterTransformData *trans_data = NULL; 842 : - 843 23253 : trans_data = g_new0 (FilterTransformData, 1); + 843 23230 : trans_data = g_new0 (FilterTransformData, 1); 844 : - 845 23253 : if (!trans_data) { + 845 23230 : if (!trans_data) { 846 0 : ml_loge 847 : ("Failed to allocate memory for internal data of tensor filter transform output data."); 848 0 : return NULL; 849 : } 850 : - 851 23253 : trans_data->num_tensors = prop->output_meta.num_tensors; - 852 23253 : trans_data->allocate_in_invoke = gst_tensor_filter_allocate_in_invoke (priv); - 853 23253 : trans_data->is_flexible = - 854 23253 : gst_tensor_pad_caps_is_flexible (GST_BASE_TRANSFORM_SRC_PAD (trans)); + 851 23230 : trans_data->num_tensors = prop->output_meta.num_tensors; + 852 23230 : trans_data->allocate_in_invoke = gst_tensor_filter_allocate_in_invoke (priv); + 853 23230 : trans_data->is_flexible = + 854 23230 : gst_tensor_pad_caps_is_flexible (GST_BASE_TRANSFORM_SRC_PAD (trans)); 855 : - 856 23253 : if (prop->invoke_dynamic && !trans_data->is_flexible) { + 856 23230 : if (prop->invoke_dynamic && !trans_data->is_flexible) { 857 0 : ml_loge 858 : ("Dynamic Invoke of tensor filter is activated but the output of tensor filter is static tensors. Currently, only flexible tensors is supported as output of dynamic invoke. If you don't want to dynamic invoke, remove the invoke-dynamic option of tensor filter."); 859 0 : g_free (trans_data); 860 0 : return NULL; 861 : } 862 : - 863 23253 : return trans_data; + 863 23230 : return trans_data; 864 : } 865 : 866 : /** 867 : * @brief Internal function to get output tensors. 868 : */ 869 : static GstFlowReturn - 870 23253 : _gst_tensor_filter_transform_prepare_output_tensors (GstBaseTransform * trans, + 870 23230 : _gst_tensor_filter_transform_prepare_output_tensors (GstBaseTransform * trans, 871 : FilterTransformData * trans_data) 872 : { - 873 23253 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); - 874 23253 : GstTensorFilterPrivate *priv = &self->priv; - 875 23253 : GstTensorFilterProperties *prop = &priv->prop; + 873 23230 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); + 874 23230 : GstTensorFilterPrivate *priv = &self->priv; + 875 23230 : GstTensorFilterProperties *prop = &priv->prop; 876 : GstTensorInfo *_info; 877 : guint i; 878 : gsize hsize; 879 : - 880 46881 : for (i = 0; i < prop->output_meta.num_tensors; i++) { - 881 23629 : trans_data->tensors[i].data = NULL; - 882 23629 : trans_data->tensors[i].size = - 883 23629 : gst_tensor_filter_get_tensor_size (self, i, FALSE); + 880 46835 : for (i = 0; i < prop->output_meta.num_tensors; i++) { + 881 23606 : trans_data->tensors[i].data = NULL; + 882 23606 : trans_data->tensors[i].size = + 883 23606 : gst_tensor_filter_get_tensor_size (self, i, FALSE); 884 : - 885 23629 : hsize = 0; - 886 23629 : if (trans_data->is_flexible && !prop->invoke_dynamic) { + 885 23606 : hsize = 0; + 886 23606 : if (trans_data->is_flexible && !prop->invoke_dynamic) { 887 2 : _info = gst_tensors_info_get_nth_info (&prop->output_meta, i); 888 2 : if (!gst_tensor_info_convert_to_meta (_info, &trans_data->meta[i])) { 889 1 : ml_loge_stacktrace @@ -957,16 +957,16 @@ 895 : } 896 : 897 : /* allocate memory if allocate_in_invoke is FALSE */ - 898 23628 : if (!trans_data->allocate_in_invoke) { - 899 23585 : trans_data->mem[i] = - 900 23585 : gst_allocator_alloc (NULL, trans_data->tensors[i].size + hsize, NULL); - 901 23585 : if (!trans_data->mem[i]) { + 898 23605 : if (!trans_data->allocate_in_invoke) { + 899 23562 : trans_data->mem[i] = + 900 23562 : gst_allocator_alloc (NULL, trans_data->tensors[i].size + hsize, NULL); + 901 23562 : if (!trans_data->mem[i]) { 902 0 : ml_loge_stacktrace 903 : ("gst_tensor_filter_transform: cannot allocate memory for the output buffer (%u'th memory chunk for %u'th tensor), which requires %zd bytes. gst_allocate_alloc has returned Null. Out of memory?", 904 : i, i, trans_data->tensors[i].size + hsize); 905 0 : return GST_FLOW_ERROR; 906 : } - 907 23585 : if (!gst_memory_map (trans_data->mem[i], &trans_data->info[i], + 907 23562 : if (!gst_memory_map (trans_data->mem[i], &trans_data->info[i], 908 : GST_MAP_WRITE)) { 909 0 : ml_loge_stacktrace 910 : ("gst_tensor_filter_transform: For the given output buffer, allocated by gst_tensor_filter_transform, it cannot map output memory buffer for the %u'th memory chunk (%u'th output tensor) for write.\n", @@ -974,10 +974,10 @@ 912 0 : return GST_FLOW_ERROR; 913 : } 914 : - 915 23585 : trans_data->tensors[i].data = trans_data->info[i].data + hsize; + 915 23562 : trans_data->tensors[i].data = trans_data->info[i].data + hsize; 916 : 917 : /* append header */ - 918 23585 : if (trans_data->is_flexible) { + 918 23562 : if (trans_data->is_flexible) { 919 1 : if (FALSE == gst_tensor_meta_info_update_header 920 1 : (&trans_data->meta[i], trans_data->info[i].data)) { 921 0 : ml_loge_stacktrace @@ -988,60 +988,60 @@ 926 : } 927 : } 928 : } - 929 23252 : return GST_FLOW_OK; + 929 23229 : return GST_FLOW_OK; 930 : } 931 : 932 : /** 933 : * @brief Internal function to check the invoke result. 934 : */ 935 : static GstFlowReturn - 936 23252 : _gst_tensor_filter_transform_check_invoke_result (GstBaseTransform * trans, + 936 23229 : _gst_tensor_filter_transform_check_invoke_result (GstBaseTransform * trans, 937 : FilterTransformData * in_trans_data, FilterTransformData * out_trans_data, 938 : gint invoke_res) 939 : { - 940 23252 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); - 941 23252 : GstTensorFilterPrivate *priv = &self->priv; - 942 23252 : GstTensorFilterProperties *prop = &priv->prop; + 940 23229 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); + 941 23229 : GstTensorFilterPrivate *priv = &self->priv; + 942 23229 : GstTensorFilterProperties *prop = &priv->prop; 943 : guint i; 944 : - 945 46971 : for (i = 0; i < in_trans_data->num_tensors; i++) { - 946 23719 : gst_memory_unmap (in_trans_data->mem[i], &in_trans_data->info[i]); - 947 23719 : if (invoke_res != 0) + 945 46925 : for (i = 0; i < in_trans_data->num_tensors; i++) { + 946 23696 : gst_memory_unmap (in_trans_data->mem[i], &in_trans_data->info[i]); + 947 23696 : if (invoke_res != 0) 948 20 : gst_memory_unref (in_trans_data->mem[i]); 949 : } 950 : - 951 23252 : if (!out_trans_data->allocate_in_invoke) { - 952 46792 : for (i = 0; i < prop->output_meta.num_tensors; i++) { - 953 23585 : gst_memory_unmap (out_trans_data->mem[i], &out_trans_data->info[i]); - 954 23585 : if (invoke_res != 0) + 951 23229 : if (!out_trans_data->allocate_in_invoke) { + 952 46746 : for (i = 0; i < prop->output_meta.num_tensors; i++) { + 953 23562 : gst_memory_unmap (out_trans_data->mem[i], &out_trans_data->info[i]); + 954 23562 : if (invoke_res != 0) 955 20 : gst_memory_unref (out_trans_data->mem[i]); 956 : } 957 : } 958 : - 959 23252 : if (invoke_res < 0) { + 959 23229 : if (invoke_res < 0) { 960 0 : ml_loge_stacktrace 961 : ("Calling invoke function (inference instance) of the tensor-filter subplugin (%s for %s) has failed with error code (%d).\n", 962 : prop->fwname, TF_MODELNAME (prop), invoke_res); 963 0 : return GST_FLOW_ERROR; - 964 23252 : } else if (invoke_res > 0) { + 964 23229 : } else if (invoke_res > 0) { 965 : /* drop this buffer */ 966 20 : return GST_BASE_TRANSFORM_FLOW_DROPPED; 967 : } 968 : - 969 23232 : return GST_FLOW_OK; + 969 23209 : return GST_FLOW_OK; 970 : } 971 : 972 : /** 973 : * @brief Internal function to make output buffer. 974 : */ 975 : static void - 976 23232 : _gst_tensor_filter_transform_update_outbuf (GstBaseTransform * trans, + 976 23209 : _gst_tensor_filter_transform_update_outbuf (GstBaseTransform * trans, 977 : FilterTransformData * in_trans_data, FilterTransformData * out_trans_data, 978 : GstBuffer * outbuf) 979 : { - 980 23232 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); - 981 23232 : GstTensorFilterPrivate *priv = &self->priv; - 982 23232 : GstTensorFilterProperties *prop = &priv->prop; + 980 23209 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); + 981 23209 : GstTensorFilterPrivate *priv = &self->priv; + 982 23209 : GstTensorFilterProperties *prop = &priv->prop; 983 : GstMemory *mem; 984 : guint i; 985 : GList *list; @@ -1049,7 +1049,7 @@ 987 : gsize hsize; 988 : 989 : /* If output combination is defined, append input tensors first */ - 990 23232 : if (priv->combi.out_combi_i_defined) { + 990 23209 : if (priv->combi.out_combi_i_defined) { 991 2 : for (list = priv->combi.out_combi_i; list != NULL; list = list->next) { 992 1 : i = GPOINTER_TO_UINT (list->data); 993 : @@ -1072,14 +1072,14 @@ 1010 : } 1011 : } 1012 : - 1013 46931 : for (i = 0; i < in_trans_data->num_tensors; i++) { - 1014 23699 : if (in_trans_data->mem[i]) { - 1015 23699 : gst_memory_unref (in_trans_data->mem[i]); + 1013 46885 : for (i = 0; i < in_trans_data->num_tensors; i++) { + 1014 23676 : if (in_trans_data->mem[i]) { + 1015 23676 : gst_memory_unref (in_trans_data->mem[i]); 1016 : } 1017 : } 1018 : - 1019 46842 : for (i = 0; i < prop->output_meta.num_tensors; i++) { - 1020 23610 : if (priv->combi.out_combi_o_defined) { + 1019 46796 : for (i = 0; i < prop->output_meta.num_tensors; i++) { + 1020 23587 : if (priv->combi.out_combi_o_defined) { 1021 1 : gboolean out_combi = FALSE; 1022 : 1023 1 : for (list = priv->combi.out_combi_o; list != NULL; list = list->next) { @@ -1101,7 +1101,7 @@ 1039 : } 1040 : } 1041 : - 1042 23610 : if (prop->invoke_dynamic) { + 1042 23587 : if (prop->invoke_dynamic) { 1043 : GstTensorMetaInfo meta; 1044 : GstMemory *flex_mem; 1045 : @@ -1119,7 +1119,7 @@ 1057 18 : out_trans_data->mem[i] = 1058 18 : gst_tensor_meta_info_append_header (&meta, flex_mem); 1059 18 : gst_memory_unref (flex_mem); - 1060 23592 : } else if (out_trans_data->allocate_in_invoke) { + 1060 23569 : } else if (out_trans_data->allocate_in_invoke) { 1061 : /* prepare memory block if successfully done */ 1062 27 : out_trans_data->mem[i] = mem = gst_tensor_filter_get_wrapped_mem (self, 1063 : out_trans_data->tensors[i].data, out_trans_data->tensors[i].size); @@ -1133,10 +1133,10 @@ 1071 : } 1072 : 1073 : /* append the memory block to outbuf */ - 1074 23610 : gst_tensor_buffer_append_memory (outbuf, out_trans_data->mem[i], - 1075 23610 : gst_tensors_info_get_nth_info (&prop->output_meta, i)); + 1074 23587 : gst_tensor_buffer_append_memory (outbuf, out_trans_data->mem[i], + 1075 23587 : gst_tensors_info_get_nth_info (&prop->output_meta, i)); 1076 : } - 1077 23232 : } + 1077 23209 : } 1078 : 1079 : /** 1080 : * @brief Called when there is no input within suspend time specified by the user. @@ -1156,20 +1156,20 @@ 1094 : * @brief non-ip transform. required vmethod of GstBaseTransform. 1095 : */ 1096 : static GstFlowReturn - 1097 23403 : gst_tensor_filter_transform (GstBaseTransform * trans, + 1097 23380 : gst_tensor_filter_transform (GstBaseTransform * trans, 1098 : GstBuffer * inbuf, GstBuffer * outbuf) 1099 : { - 1100 23403 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); - 1101 23403 : GstTensorFilterPrivate *priv = &self->priv; - 1102 23403 : gint invoke_res = -1; + 1100 23380 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); + 1101 23380 : GstTensorFilterPrivate *priv = &self->priv; + 1102 23380 : gint invoke_res = -1; 1103 : gboolean need_profiling; - 1104 23403 : GstFlowReturn retval = GST_FLOW_OK; - 1105 23403 : FilterTransformData *in_trans_data = NULL; - 1106 23403 : FilterTransformData *out_trans_data = NULL; - 1107 23403 : GstTensorMemory *invoke_tensors = NULL; + 1104 23380 : GstFlowReturn retval = GST_FLOW_OK; + 1105 23380 : FilterTransformData *in_trans_data = NULL; + 1106 23380 : FilterTransformData *out_trans_data = NULL; + 1107 23380 : GstTensorMemory *invoke_tensors = NULL; 1108 : 1109 : /** Reset suspend timeout */ - 1110 23403 : if (priv->prop.suspend != 0) { + 1110 23380 : if (priv->prop.suspend != 0) { 1111 2 : GST_OBJECT_LOCK (self); 1112 2 : nnstreamer_watchdog_release (priv->watchdog_h); 1113 2 : GST_OBJECT_UNLOCK (self); @@ -1177,57 +1177,57 @@ 1115 : } 1116 : 1117 : /* 0. Check all properties. */ - 1118 23403 : retval = _gst_tensor_filter_transform_validate (trans, inbuf, outbuf); - 1119 23403 : if (retval != GST_FLOW_OK) + 1118 23380 : retval = _gst_tensor_filter_transform_validate (trans, inbuf, outbuf); + 1119 23380 : if (retval != GST_FLOW_OK) 1120 148 : return retval; 1121 : 1122 : in_trans_data = - 1123 23255 : _gst_tensor_filter_transform_get_all_input_data (trans, inbuf); - 1124 23255 : if (!in_trans_data) { + 1123 23232 : _gst_tensor_filter_transform_get_all_input_data (trans, inbuf); + 1124 23232 : if (!in_trans_data) { 1125 0 : return GST_FLOW_ERROR; 1126 : } 1127 : 1128 : invoke_tensors = - 1129 23255 : _gst_tensor_filter_transform_get_invoke_tensors (trans, in_trans_data); - 1130 23255 : if (!invoke_tensors) { + 1129 23232 : _gst_tensor_filter_transform_get_invoke_tensors (trans, in_trans_data); + 1130 23232 : if (!invoke_tensors) { 1131 2 : goto mem_map_error; 1132 : } 1133 : - 1134 23253 : out_trans_data = _gst_tensor_filter_transform_get_output_data (trans); - 1135 23253 : if (!out_trans_data) { + 1134 23230 : out_trans_data = _gst_tensor_filter_transform_get_output_data (trans); + 1135 23230 : if (!out_trans_data) { 1136 0 : goto mem_map_error; 1137 : } 1138 : 1139 : retval = - 1140 23253 : _gst_tensor_filter_transform_prepare_output_tensors (trans, + 1140 23230 : _gst_tensor_filter_transform_prepare_output_tensors (trans, 1141 : out_trans_data); - 1142 23253 : if (retval != GST_FLOW_OK) { + 1142 23230 : if (retval != GST_FLOW_OK) { 1143 1 : goto mem_map_error; 1144 : } 1145 : - 1146 46351 : need_profiling = (priv->latency_mode > 0 || priv->throughput_mode > 0 || - 1147 23099 : priv->latency_reporting); - 1148 23252 : if (need_profiling) + 1146 46305 : need_profiling = (priv->latency_mode > 0 || priv->throughput_mode > 0 || + 1147 23076 : priv->latency_reporting); + 1148 23229 : if (need_profiling) 1149 160 : prepare_statistics (priv); 1150 : - 1151 23252 : GST_TF_FW_INVOKE_COMPAT (priv, invoke_res, invoke_tensors, + 1151 23229 : GST_TF_FW_INVOKE_COMPAT (priv, invoke_res, invoke_tensors, 1152 : out_trans_data->tensors); - 1153 23252 : if (need_profiling) { + 1153 23229 : if (need_profiling) { 1154 160 : record_statistics (priv); 1155 160 : track_latency (self); 1156 : } 1157 : 1158 : retval = - 1159 23252 : _gst_tensor_filter_transform_check_invoke_result (trans, in_trans_data, + 1159 23229 : _gst_tensor_filter_transform_check_invoke_result (trans, in_trans_data, 1160 : out_trans_data, invoke_res); - 1161 23252 : if (retval != GST_FLOW_OK) { + 1161 23229 : if (retval != GST_FLOW_OK) { 1162 20 : goto done; 1163 : } 1164 : - 1165 23232 : _gst_tensor_filter_transform_update_outbuf (trans, in_trans_data, + 1165 23209 : _gst_tensor_filter_transform_update_outbuf (trans, in_trans_data, 1166 : out_trans_data, outbuf); 1167 : - 1168 23232 : goto done; + 1168 23209 : goto done; 1169 : 1170 3 : mem_map_error: 1171 3 : retval = GST_FLOW_ERROR; @@ -1243,7 +1243,7 @@ 1181 : 1182 2 : done: 1183 : /** Set suspend timeout */ - 1184 23255 : if (retval == GST_FLOW_OK && priv->prop.suspend != 0) { + 1184 23232 : if (retval == GST_FLOW_OK && priv->prop.suspend != 0) { 1185 2 : GST_OBJECT_LOCK (self); 1186 2 : if (!nnstreamer_watchdog_feed (priv->watchdog_h, 1187 : gst_tensor_filter_watchdog_trigger, priv->prop.suspend, priv)) { @@ -1252,11 +1252,11 @@ 1190 2 : GST_OBJECT_UNLOCK (self); 1191 : } 1192 : - 1193 23255 : g_free (in_trans_data); - 1194 23255 : g_free (out_trans_data); - 1195 23255 : g_free (invoke_tensors); + 1193 23232 : g_free (in_trans_data); + 1194 23232 : g_free (out_trans_data); + 1195 23232 : g_free (invoke_tensors); 1196 : - 1197 23255 : return retval; + 1197 23232 : return retval; 1198 : } 1199 : 1200 : /** @@ -1464,7 +1464,7 @@ 1402 : * Be careful not to fix/set caps at this stage. Negotiation not completed yet. 1403 : */ 1404 : static GstCaps * - 1405 2718 : gst_tensor_filter_transform_caps (GstBaseTransform * trans, + 1405 2723 : gst_tensor_filter_transform_caps (GstBaseTransform * trans, 1406 : GstPadDirection direction, GstCaps * caps, GstCaps * filter) 1407 : { 1408 : GstTensorFilter *self; @@ -1474,26 +1474,26 @@ 1412 : GstPad *pad; 1413 : GstCaps *result; 1414 : GstStructure *structure; - 1415 2718 : gboolean configured = FALSE; + 1415 2723 : gboolean configured = FALSE; 1416 : - 1417 2718 : self = GST_TENSOR_FILTER_CAST (trans); - 1418 2718 : priv = &self->priv; - 1419 2718 : prop = &priv->prop; + 1417 2723 : self = GST_TENSOR_FILTER_CAST (trans); + 1418 2723 : priv = &self->priv; + 1419 2723 : prop = &priv->prop; 1420 : 1421 : /* Not ready */ - 1422 2718 : if (priv->fw == NULL) - 1423 2718 : return NULL; + 1422 2723 : if (priv->fw == NULL) + 1423 2723 : return NULL; 1424 : - 1425 2654 : gst_tensors_config_init (&in_config); - 1426 2654 : gst_tensors_config_init (&out_config); + 1425 2659 : gst_tensors_config_init (&in_config); + 1426 2659 : gst_tensors_config_init (&out_config); 1427 : - 1428 2654 : silent_debug_caps (self, caps, "from"); - 1429 2654 : silent_debug_caps (self, filter, "filter"); + 1428 2659 : silent_debug_caps (self, caps, "from"); + 1429 2659 : silent_debug_caps (self, filter, "filter"); 1430 : - 1431 2654 : if (direction == GST_PAD_SINK) - 1432 1338 : pad = GST_BASE_TRANSFORM_SRC_PAD (trans); + 1431 2659 : if (direction == GST_PAD_SINK) + 1432 1339 : pad = GST_BASE_TRANSFORM_SRC_PAD (trans); 1433 : else - 1434 1316 : pad = GST_BASE_TRANSFORM_SINK_PAD (trans); + 1434 1320 : pad = GST_BASE_TRANSFORM_SINK_PAD (trans); 1435 : 1436 : /** 1437 : * GstTensorFilter has to parse the tensor dimension and type from NN model. @@ -1503,66 +1503,66 @@ 1441 : * 1442 : * @todo how to set the framerate of output tensors 1443 : */ - 1444 2654 : gst_tensor_filter_load_tensor_info (&self->priv); + 1444 2659 : gst_tensor_filter_load_tensor_info (&self->priv); 1445 : - 1446 2654 : structure = gst_caps_get_structure (caps, 0); - 1447 2654 : gst_tensors_config_from_structure (&in_config, structure); + 1446 2659 : structure = gst_caps_get_structure (caps, 0); + 1447 2659 : gst_tensors_config_from_structure (&in_config, structure); 1448 : 1449 : /* set framerate from input config */ - 1450 2654 : out_config.rate_n = in_config.rate_n; - 1451 2654 : out_config.rate_d = in_config.rate_d; + 1450 2659 : out_config.rate_n = in_config.rate_n; + 1451 2659 : out_config.rate_d = in_config.rate_d; 1452 : - 1453 2654 : if (direction == GST_PAD_SINK) { + 1453 2659 : if (direction == GST_PAD_SINK) { 1454 : GstTensorsInfo out_info; 1455 : - 1456 1338 : gst_tensors_info_init (&out_info); + 1456 1339 : gst_tensors_info_init (&out_info); 1457 : 1458 : /* caps: sink pad. get src pad info */ - 1459 1338 : if (prop->output_configured) { + 1459 1339 : if (prop->output_configured) { 1460 : /* caps with sub-plugin's tensor info */ - 1461 803 : gst_tensors_info_copy (&out_info, &prop->output_meta); - 1462 803 : configured = TRUE; + 1461 805 : gst_tensors_info_copy (&out_info, &prop->output_meta); + 1462 805 : configured = TRUE; 1463 : } else { 1464 : /* check in-tensor info to call setInputDimension */ - 1465 535 : configured = gst_tensor_filter_common_get_out_info (priv, + 1465 534 : configured = gst_tensor_filter_common_get_out_info (priv, 1466 : &in_config.info, &out_info); 1467 : } 1468 : 1469 : /* If output combination option is given, reconfigure tensor info */ - 1470 1338 : if (configured) - 1471 1040 : configured = gst_tensor_filter_common_get_combined_out_info (priv, + 1470 1339 : if (configured) + 1471 1042 : configured = gst_tensor_filter_common_get_combined_out_info (priv, 1472 : &in_config.info, &out_info, &out_config.info); 1473 : - 1474 1338 : gst_tensors_info_free (&out_info); + 1474 1339 : gst_tensors_info_free (&out_info); 1475 : } else { 1476 : /* caps: src pad. get sink pad info */ - 1477 1316 : if (prop->input_configured && !priv->combi.in_combi_defined) { + 1477 1320 : if (prop->input_configured && !priv->combi.in_combi_defined) { 1478 : /* caps with sub-plugin's tensor info */ - 1479 836 : gst_tensors_info_copy (&out_config.info, &prop->input_meta); - 1480 836 : configured = TRUE; + 1479 842 : gst_tensors_info_copy (&out_config.info, &prop->input_meta); + 1480 842 : configured = TRUE; 1481 : } 1482 : } 1483 : - 1484 2654 : if (configured) { + 1484 2659 : if (configured) { 1485 : /* output info may be configured */ - 1486 1874 : result = gst_tensor_pad_possible_caps_from_config (pad, &out_config); + 1486 1882 : result = gst_tensor_pad_possible_caps_from_config (pad, &out_config); 1487 : 1488 : /* Update dimension for src pad caps. */ - 1489 1874 : if (direction == GST_PAD_SINK) { - 1490 1038 : GstCaps *peer = gst_pad_peer_query_caps (pad, NULL); + 1489 1882 : if (direction == GST_PAD_SINK) { + 1490 1040 : GstCaps *peer = gst_pad_peer_query_caps (pad, NULL); 1491 : - 1492 1038 : if (peer) { - 1493 1038 : if (!gst_caps_is_any (peer)) - 1494 456 : gst_tensor_caps_update_dimension (result, peer); - 1495 1038 : gst_caps_unref (peer); + 1492 1040 : if (peer) { + 1493 1040 : if (!gst_caps_is_any (peer)) + 1494 458 : gst_tensor_caps_update_dimension (result, peer); + 1495 1040 : gst_caps_unref (peer); 1496 : } 1497 : } 1498 : } else { 1499 : /* we don't know the exact tensor info yet */ - 1500 780 : result = gst_caps_from_string (CAPS_STRING); + 1500 777 : result = gst_caps_from_string (CAPS_STRING); 1501 : } 1502 : - 1503 2654 : if (filter && gst_caps_get_size (filter) > 0) { + 1503 2659 : if (filter && gst_caps_get_size (filter) > 0) { 1504 : GstCaps *intersection; 1505 : 1506 : /** @@ -1571,16 +1571,16 @@ 1509 : * For now, we assume that if caps-size is 0, filter is "ANY". 1510 : */ 1511 : intersection = - 1512 506 : gst_caps_intersect_full (result, filter, GST_CAPS_INTERSECT_FIRST); + 1512 507 : gst_caps_intersect_full (result, filter, GST_CAPS_INTERSECT_FIRST); 1513 : - 1514 506 : gst_caps_unref (result); - 1515 506 : result = intersection; + 1514 507 : gst_caps_unref (result); + 1515 507 : result = intersection; 1516 : } 1517 : - 1518 2654 : silent_debug_caps (self, result, "to"); - 1519 2654 : gst_tensors_config_free (&in_config); - 1520 2654 : gst_tensors_config_free (&out_config); - 1521 2654 : return result; + 1518 2659 : silent_debug_caps (self, result, "to"); + 1519 2659 : gst_tensors_config_free (&in_config); + 1520 2659 : gst_tensors_config_free (&out_config); + 1521 2659 : return result; 1522 : } 1523 : 1524 : /** @@ -1682,18 +1682,18 @@ 1620 : * @brief query handling, optional vmethod of GstBaseTransform. 1621 : */ 1622 : static gboolean - 1623 2697 : gst_tensor_filter_query (GstBaseTransform * trans, + 1623 2702 : gst_tensor_filter_query (GstBaseTransform * trans, 1624 : GstPadDirection direction, GstQuery * query) 1625 : { 1626 : GstTensorFilter *self; 1627 : GstTensorFilterPrivate *priv; - 1628 2697 : gboolean res = FALSE; + 1628 2702 : gboolean res = FALSE; 1629 : 1630 : UNUSED (direction); - 1631 2697 : self = GST_TENSOR_FILTER_CAST (trans); - 1632 2697 : priv = &self->priv; + 1631 2702 : self = GST_TENSOR_FILTER_CAST (trans); + 1632 2702 : priv = &self->priv; 1633 : - 1634 2697 : switch (GST_QUERY_TYPE (query)) { + 1634 2702 : switch (GST_QUERY_TYPE (query)) { 1635 338 : case GST_QUERY_LATENCY: 1636 : { 1637 : GstClockTime min, max; @@ -1736,14 +1736,14 @@ 1674 : } 1675 338 : break; 1676 : } - 1677 2359 : default: + 1677 2364 : default: 1678 : res = - 1679 2359 : GST_BASE_TRANSFORM_CLASS (parent_class)->query (trans, direction, + 1679 2364 : GST_BASE_TRANSFORM_CLASS (parent_class)->query (trans, direction, 1680 : query); - 1681 2359 : break; + 1681 2364 : break; 1682 : } 1683 : - 1684 2697 : return res; + 1684 2702 : return res; 1685 : } 1686 : 1687 : /** @@ -1753,7 +1753,7 @@ 1691 : * This is called when non-ip mode is used. 1692 : */ 1693 : static gboolean - 1694 23403 : gst_tensor_filter_transform_size (GstBaseTransform * trans, + 1694 23380 : gst_tensor_filter_transform_size (GstBaseTransform * trans, 1695 : GstPadDirection direction, GstCaps * caps, gsize size, 1696 : GstCaps * othercaps, gsize * othersize) 1697 : { @@ -1763,16 +1763,16 @@ 1701 : UNUSED (caps); 1702 : UNUSED (size); 1703 : UNUSED (othercaps); - 1704 23403 : self = GST_TENSOR_FILTER_CAST (trans); - 1705 23403 : priv = &self->priv; + 1704 23380 : self = GST_TENSOR_FILTER_CAST (trans); + 1705 23380 : priv = &self->priv; 1706 : /** Internal Logic Error. Cannot proceed without configured pipeline */ - 1707 23403 : g_assert (priv->configured); + 1707 23380 : g_assert (priv->configured); 1708 : /** 1709 : * Consider multi-tensors. 1710 : * Set each memory block in transform() 1711 : */ - 1712 23403 : *othersize = 0; - 1713 23403 : return TRUE; + 1712 23380 : *othersize = 0; + 1713 23380 : return TRUE; 1714 : } 1715 : 1716 : /** @@ -1782,13 +1782,13 @@ 1720 : * @return TRUE if there is no error. 1721 : */ 1722 : static gboolean - 1723 686 : gst_tensor_filter_sink_event (GstBaseTransform * trans, GstEvent * event) + 1723 689 : gst_tensor_filter_sink_event (GstBaseTransform * trans, GstEvent * event) 1724 : { 1725 : GstTensorFilter *self; 1726 : GstTensorFilterPrivate *priv; - 1727 686 : self = GST_TENSOR_FILTER_CAST (trans); - 1728 686 : priv = &self->priv; - 1729 686 : switch (GST_EVENT_TYPE (event)) { + 1727 689 : self = GST_TENSOR_FILTER_CAST (trans); + 1728 689 : priv = &self->priv; + 1729 689 : switch (GST_EVENT_TYPE (event)) { 1730 0 : case GST_EVENT_CUSTOM_DOWNSTREAM: 1731 : { 1732 0 : const GstStructure *structure = gst_event_get_structure (event); @@ -1808,12 +1808,12 @@ 1746 0 : gst_event_unref (event); 1747 0 : return (ret == 0); 1748 : } - 1749 686 : default: - 1750 686 : break; + 1749 689 : default: + 1750 689 : break; 1751 : } 1752 : 1753 : /** other events are handled in the default event handler */ - 1754 686 : return GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, event); + 1754 689 : return GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, event); 1755 : } 1756 : 1757 : /** @@ -1823,16 +1823,16 @@ 1761 : * @return TRUE if there is no error. 1762 : */ 1763 : static gboolean - 1764 1937 : gst_tensor_filter_src_event (GstBaseTransform * trans, GstEvent * event) + 1764 1957 : gst_tensor_filter_src_event (GstBaseTransform * trans, GstEvent * event) 1765 : { - 1766 1937 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); - 1767 1937 : switch (GST_EVENT_TYPE (event)) { - 1768 1574 : case GST_EVENT_QOS: + 1766 1957 : GstTensorFilter *self = GST_TENSOR_FILTER_CAST (trans); + 1767 1957 : switch (GST_EVENT_TYPE (event)) { + 1768 1595 : case GST_EVENT_QOS: 1769 : { 1770 : GstQOSType type; 1771 : GstClockTimeDiff diff; - 1772 1574 : gst_event_parse_qos (event, &type, NULL, &diff, NULL); - 1773 1574 : if (type == GST_QOS_TYPE_THROTTLE && diff > 0) { + 1772 1595 : gst_event_parse_qos (event, &type, NULL, &diff, NULL); + 1773 1595 : if (type == GST_QOS_TYPE_THROTTLE && diff > 0) { 1774 50 : GST_OBJECT_LOCK (trans); 1775 50 : if (self->throttling_delay != 0) 1776 : /* set to more tight framerate */ @@ -1848,11 +1848,11 @@ 1786 : } 1787 : /* fall-through */ 1788 : default: - 1789 1887 : break; + 1789 1907 : break; 1790 : } 1791 : 1792 : /** other events are handled in the default event handler */ - 1793 1887 : return GST_BASE_TRANSFORM_CLASS (parent_class)->src_event (trans, event); + 1793 1907 : return GST_BASE_TRANSFORM_CLASS (parent_class)->src_event (trans, event); 1794 : } 1795 : 1796 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.func-c.html index 52b5e060b..38dfc826c 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 79.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.9 % @@ -471,7 +471,7 @@ gst_tensor_filter_common_get_out_info - 588 + 587 @@ -499,14 +499,14 @@ verify_model_path - 814 + 810 gst_tensor_filter_common_get_combined_out_info - 1188 + 1190 @@ -541,14 +541,14 @@ gst_tensor_filter_load_tensor_info - 2849 + 2854 gst_tensor_filter_common_open_fw - 2863 + 2859 @@ -576,7 +576,7 @@ gst_tensor_filter_allocate_in_invoke - 23261 + 23238 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.func.html index bdc12c688..4891296fb 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 79.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.9 % @@ -226,7 +226,7 @@ gst_tensor_filter_allocate_in_invoke - 23261 + 23238 @@ -261,14 +261,14 @@ gst_tensor_filter_common_get_combined_out_info - 1188 + 1190 gst_tensor_filter_common_get_out_info - 588 + 587 @@ -289,7 +289,7 @@ gst_tensor_filter_common_open_fw - 2863 + 2859 @@ -380,7 +380,7 @@ gst_tensor_filter_load_tensor_info - 2849 + 2854 @@ -576,7 +576,7 @@ verify_model_path - 814 + 810 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.gcov.html index 4e74d2a3b..45a39ee96 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_common.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 79.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 95.9 % @@ -532,19 +532,19 @@ 470 : * @return TRUE if there is no error 471 : */ 472 : static inline gboolean - 473 814 : verify_model_path (const GstTensorFilterPrivate * priv) + 473 810 : verify_model_path (const GstTensorFilterPrivate * priv) 474 : { 475 : const GstTensorFilterProperties *prop; - 476 814 : gboolean ret = TRUE; - 477 814 : int verify_model_path = 0, i; + 476 810 : gboolean ret = TRUE; + 477 810 : int verify_model_path = 0, i; 478 : - 479 814 : if (priv == NULL) + 479 810 : if (priv == NULL) 480 0 : return FALSE; 481 : - 482 814 : prop = &(priv->prop); + 482 810 : prop = &(priv->prop); 483 : - 484 814 : if (g_strcmp0 (prop->fwname, "custom-easy") == 0) - 485 39 : return TRUE; + 484 810 : if (g_strcmp0 (prop->fwname, "custom-easy") == 0) + 485 35 : return TRUE; 486 : 487 775 : if (GST_TF_FW_V0 (priv->fw)) { 488 662 : verify_model_path = priv->fw->verify_model_path; @@ -816,16 +816,16 @@ 754 : * @return TRUE if valid, FALSE on error 755 : */ 756 : gboolean - 757 23261 : gst_tensor_filter_allocate_in_invoke (GstTensorFilterPrivate * priv) + 757 23238 : gst_tensor_filter_allocate_in_invoke (GstTensorFilterPrivate * priv) 758 : { - 759 23261 : int allocate_in_invoke = 0; + 759 23238 : int allocate_in_invoke = 0; 760 : - 761 23261 : if (priv->prop.invoke_dynamic) + 761 23238 : if (priv->prop.invoke_dynamic) 762 18 : return TRUE; 763 : - 764 23243 : if (GST_TF_FW_V0 (priv->fw)) { - 765 23179 : allocate_in_invoke = priv->fw->allocate_in_invoke; - 766 23179 : if (allocate_in_invoke == TRUE && priv->fw->allocateInInvoke) { + 764 23220 : if (GST_TF_FW_V0 (priv->fw)) { + 765 23156 : allocate_in_invoke = priv->fw->allocate_in_invoke; + 766 23156 : if (allocate_in_invoke == TRUE && priv->fw->allocateInInvoke) { 767 919 : if (priv->fw->allocateInInvoke (&priv->privateData) == 0) { 768 24 : allocate_in_invoke = TRUE; 769 : } else { @@ -836,7 +836,7 @@ 774 64 : allocate_in_invoke = priv->info.allocate_in_invoke; 775 : } 776 : - 777 23243 : return allocate_in_invoke; + 777 23220 : return allocate_in_invoke; 778 : } 779 : 780 : /** @@ -2374,20 +2374,20 @@ 2312 : * @brief Configure output tensor info with combi option. 2313 : */ 2314 : gboolean - 2315 1188 : gst_tensor_filter_common_get_combined_out_info (GstTensorFilterPrivate * priv, + 2315 1190 : gst_tensor_filter_common_get_combined_out_info (GstTensorFilterPrivate * priv, 2316 : const GstTensorsInfo * in, const GstTensorsInfo * out, 2317 : GstTensorsInfo * combined) 2318 : { 2319 : GList *list; - 2320 1188 : guint i, idx = 0; + 2320 1190 : guint i, idx = 0; 2321 : - 2322 1188 : g_return_val_if_fail (in != NULL, FALSE); - 2323 1188 : g_return_val_if_fail (out != NULL, FALSE); - 2324 1188 : g_return_val_if_fail (combined != NULL, FALSE); + 2322 1190 : g_return_val_if_fail (in != NULL, FALSE); + 2323 1190 : g_return_val_if_fail (out != NULL, FALSE); + 2324 1190 : g_return_val_if_fail (combined != NULL, FALSE); 2325 : - 2326 1188 : gst_tensors_info_init (combined); + 2326 1190 : gst_tensors_info_init (combined); 2327 : - 2328 1188 : if (priv->combi.out_combi_i_defined || priv->combi.out_combi_o_defined) { + 2328 1190 : if (priv->combi.out_combi_i_defined || priv->combi.out_combi_o_defined) { 2329 6 : if (priv->combi.out_combi_i_defined) { 2330 10 : for (list = priv->combi.out_combi_i; list != NULL; list = list->next) { 2331 6 : i = GPOINTER_TO_UINT (list->data); @@ -2419,10 +2419,10 @@ 2357 4 : combined->num_tensors = idx; 2358 4 : combined->format = out->format; 2359 : } else { - 2360 1182 : gst_tensors_info_copy (combined, out); + 2360 1184 : gst_tensors_info_copy (combined, out); 2361 : } 2362 : - 2363 1186 : return TRUE; + 2363 1188 : return TRUE; 2364 : 2365 2 : error: 2366 2 : gst_tensors_info_free (combined); @@ -2433,31 +2433,31 @@ 2371 : * @brief Get output tensor info from NN model with given input info. 2372 : */ 2373 : gboolean - 2374 588 : gst_tensor_filter_common_get_out_info (GstTensorFilterPrivate * priv, + 2374 587 : gst_tensor_filter_common_get_out_info (GstTensorFilterPrivate * priv, 2375 : GstTensorsInfo * in, GstTensorsInfo * out) 2376 : { - 2377 588 : int r = -1; + 2377 587 : int r = -1; 2378 : - 2379 588 : g_return_val_if_fail (in != NULL, FALSE); - 2380 588 : g_return_val_if_fail (out != NULL, FALSE); + 2379 587 : g_return_val_if_fail (in != NULL, FALSE); + 2380 587 : g_return_val_if_fail (out != NULL, FALSE); 2381 : - 2382 588 : gst_tensors_info_init (out); + 2382 587 : gst_tensors_info_init (out); 2383 : - 2384 588 : if (!gst_tensors_info_validate (in)) { + 2384 587 : if (!gst_tensors_info_validate (in)) { 2385 270 : nns_logw ("Given input info is invalid, cannot get output info."); 2386 270 : return FALSE; 2387 : } 2388 : 2389 : /* call setInputDimension with given input tensor */ - 2390 318 : if (GST_TF_FW_V0 (priv->fw)) { + 2390 317 : if (GST_TF_FW_V0 (priv->fw)) { 2391 285 : gst_tensor_filter_v0_call (priv, r, setInputDimension, in, out); 2392 : } else { - 2393 33 : gst_tensor_filter_v1_call (priv, r, getModelInfo, SET_INPUT_INFO, in, out); + 2393 32 : gst_tensor_filter_v1_call (priv, r, getModelInfo, SET_INPUT_INFO, in, out); 2394 : } 2395 : - 2396 318 : if (r != 0) { - 2397 29 : nns_loge ("Failed to get output info from NN model."); - 2398 29 : return FALSE; + 2396 317 : if (r != 0) { + 2397 28 : nns_loge ("Failed to get output info from NN model."); + 2398 28 : return FALSE; 2399 : } 2400 : 2401 289 : return TRUE; @@ -2468,22 +2468,22 @@ 2406 : * (both input and output tensor) 2407 : */ 2408 : void - 2409 2849 : gst_tensor_filter_load_tensor_info (GstTensorFilterPrivate * priv) + 2409 2854 : gst_tensor_filter_load_tensor_info (GstTensorFilterPrivate * priv) 2410 : { 2411 : GstTensorFilterProperties *prop; 2412 : GstTensorsInfo in_info, out_info; - 2413 2849 : int res_in = -1, res_out = -1; + 2413 2854 : int res_in = -1, res_out = -1; 2414 : - 2415 2849 : prop = &priv->prop; + 2415 2854 : prop = &priv->prop; 2416 : - 2417 2849 : gst_tensors_info_init (&in_info); - 2418 2849 : gst_tensors_info_init (&out_info); + 2417 2854 : gst_tensors_info_init (&in_info); + 2418 2854 : gst_tensors_info_init (&out_info); 2419 : - 2420 2849 : if (GST_TF_FW_V1 (priv->fw)) { - 2421 703 : if (!prop->input_configured || !prop->output_configured) { - 2422 188 : gst_tensor_filter_v1_call (priv, res_in, getModelInfo, GET_IN_OUT_INFO, + 2420 2854 : if (GST_TF_FW_V1 (priv->fw)) { + 2421 708 : if (!prop->input_configured || !prop->output_configured) { + 2422 185 : gst_tensor_filter_v1_call (priv, res_in, getModelInfo, GET_IN_OUT_INFO, 2423 : &in_info, &out_info); - 2424 188 : res_out = res_in; + 2424 185 : res_out = res_in; 2425 : } 2426 : } else { 2427 2146 : if (!prop->input_configured) @@ -2493,7 +2493,7 @@ 2431 : } 2432 : 2433 : /* supposed fixed in-tensor info if getInputDimension was success. */ - 2434 2849 : if (!prop->input_configured && res_in == 0) { + 2434 2854 : if (!prop->input_configured && res_in == 0) { 2435 272 : g_assert (in_info.num_tensors > 0); 2436 : 2437 : /** if set-property called and already has info, verify it! */ @@ -2516,9 +2516,9 @@ 2454 : } 2455 : 2456 : /** In case of dynamic invoke, output tensors info is determined after invoke. */ - 2457 2716 : if (prop->invoke_dynamic) { - 2458 115 : prop->output_configured = TRUE; - 2459 2601 : } else if (!prop->output_configured && res_out == 0) { + 2457 2721 : if (prop->invoke_dynamic) { + 2458 122 : prop->output_configured = TRUE; + 2459 2599 : } else if (!prop->output_configured && res_out == 0) { 2460 : /* supposed fixed out-tensor info if getOutputDimension was success. */ 2461 191 : g_assert (out_info.num_tensors > 0); 2462 : @@ -2541,46 +2541,46 @@ 2479 132 : silent_debug_info (&out_info, "output tensor"); 2480 : } 2481 : - 2482 2542 : done: - 2483 2849 : gst_tensors_info_free (&in_info); - 2484 2849 : gst_tensors_info_free (&out_info); - 2485 2849 : } + 2482 2540 : done: + 2483 2854 : gst_tensors_info_free (&in_info); + 2484 2854 : gst_tensors_info_free (&out_info); + 2485 2854 : } 2486 : 2487 : /** 2488 : * @brief Open NN framework. 2489 : */ 2490 : void - 2491 2863 : gst_tensor_filter_common_open_fw (GstTensorFilterPrivate * priv) + 2491 2859 : gst_tensor_filter_common_open_fw (GstTensorFilterPrivate * priv) 2492 : { - 2493 2863 : int run_without_model = 0; + 2493 2859 : int run_without_model = 0; 2494 : - 2495 2863 : if (!priv->prop.fw_opened && priv->fw) { + 2495 2859 : if (!priv->prop.fw_opened && priv->fw) { 2496 : gint64 start_time, end_time; 2497 : - 2498 816 : start_time = g_get_monotonic_time (); - 2499 816 : if (priv->fw->open) { + 2498 812 : start_time = g_get_monotonic_time (); + 2499 812 : if (priv->fw->open) { 2500 : /* at least one model should be configured before opening fw */ - 2501 814 : if (GST_TF_FW_V0 (priv->fw)) { + 2501 810 : if (GST_TF_FW_V0 (priv->fw)) { 2502 662 : run_without_model = priv->fw->run_without_model; - 2503 152 : } else if (GST_TF_FW_V1 (priv->fw)) { - 2504 152 : run_without_model = priv->info.run_without_model; + 2503 148 : } else if (GST_TF_FW_V1 (priv->fw)) { + 2504 148 : run_without_model = priv->info.run_without_model; 2505 : } 2506 : - 2507 814 : if (G_UNLIKELY (!run_without_model) && - 2508 814 : G_UNLIKELY (!(priv->prop.model_files && + 2507 810 : if (G_UNLIKELY (!run_without_model) && + 2508 810 : G_UNLIKELY (!(priv->prop.model_files && 2509 : priv->prop.num_models > 0 && priv->prop.model_files[0]))) { 2510 0 : return; 2511 : } 2512 : /* 0 if successfully loaded. 1 if skipped (already loaded). */ - 2513 814 : if (verify_model_path (priv)) { - 2514 772 : if (priv->fw->open (&priv->prop, &priv->privateData) >= 0) + 2513 810 : if (verify_model_path (priv)) { + 2514 768 : if (priv->fw->open (&priv->prop, &priv->privateData) >= 0) 2515 206 : priv->prop.fw_opened = TRUE; 2516 : } 2517 : } else { 2518 2 : priv->prop.fw_opened = TRUE; 2519 : } 2520 : - 2521 816 : if (priv->prop.fw_opened) { + 2521 812 : if (priv->prop.fw_opened) { 2522 : /* Update the framework info once it has been opened */ 2523 208 : if (GST_TF_FW_V1 (priv->fw) && 2524 40 : priv->fw->getFrameworkInfo (priv->fw, &priv->prop, priv->privateData, @@ -2590,8 +2590,8 @@ 2528 : } 2529 : } 2530 : - 2531 816 : end_time = g_get_monotonic_time (); - 2532 816 : if (priv->prop.fw_opened == TRUE && + 2531 812 : end_time = g_get_monotonic_time (); + 2532 812 : if (priv->prop.fw_opened == TRUE && 2533 208 : priv->prop.fwname && priv->prop.model_files) { 2534 206 : ml_logi ("Filter %s with model file %s is opened. It took %" 2535 : G_GINT64_FORMAT " us", priv->prop.fwname, priv->prop.model_files[0], diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.func-c.html index 396561e7b..6965cc183 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 79.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.func.html index d936ed2fc..58713f5e2 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 79.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.gcov.html index d8d5e14c2..e980e84b1 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 79.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.func-c.html index bdc357a88..c358373f7 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -114,7 +114,7 @@ custom_open - 39 + 35 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.func.html index aba4f7c69..cc74cde08 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -128,7 +128,7 @@ custom_open - 39 + 35 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.gcov.html index ca1436a14..4707f166f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_custom_easy.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 82.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % @@ -224,20 +224,20 @@ 162 : * @brief Callback required by tensor_filter subplugin 163 : */ 164 : static int - 165 39 : custom_open (const GstTensorFilterProperties * prop, void **private_data) + 165 35 : custom_open (const GstTensorFilterProperties * prop, void **private_data) 166 : { 167 : runtime_data *rd; 168 : - 169 39 : rd = g_new (runtime_data, 1); - 170 39 : if (!rd) + 169 35 : rd = g_new (runtime_data, 1); + 170 35 : if (!rd) 171 0 : return -ENOMEM; - 172 39 : rd->model = get_subplugin (NNS_EASY_CUSTOM_FILTER, prop->model_files[0]); + 172 35 : rd->model = get_subplugin (NNS_EASY_CUSTOM_FILTER, prop->model_files[0]); 173 : - 174 39 : if (NULL == rd->model) { - 175 24 : ml_loge + 174 35 : if (NULL == rd->model) { + 175 20 : ml_loge 176 : ("Cannot find the easy-custom model, \"%s\". You should provide a valid model name of easy-custom.", 177 : prop->model_files[0]); - 178 24 : goto errorreturn; + 178 20 : goto errorreturn; 179 : } 180 : 181 15 : if (NULL == rd->model->func && NULL == rd->model->func_dynamic) { @@ -280,9 +280,9 @@ 218 : 219 6 : *private_data = rd; 220 6 : return 0; - 221 33 : errorreturn: - 222 33 : g_free (rd); - 223 33 : return -EINVAL; + 221 29 : errorreturn: + 222 29 : g_free (rd); + 223 29 : return -EINVAL; 224 : } 225 : 226 : /** diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.func-c.html index 276ece209..6f17598ff 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.func.html index acc203c80..cf9b315a9 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.gcov.html index 5986fe2fb..20acbcebf 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_single.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 90.2 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.func-c.html index 4742381d4..f53bf6071 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 81.8 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.func.html index 9b541d0b5..8f7cd20eb 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 81.8 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.gcov.html index ad35fb02a..0b7b33606 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_filter/tensor_filter_support_cc.cc @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 81.8 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.func-c.html index 0d7f968e9..d024f15cc 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 95.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.func.html index 230bfc176..275ad96d8 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 95.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.gcov.html index c2d22240b..6d024c5f0 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_meta.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 95.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index-sort-f.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index-sort-f.html index 861475adc..0f4ec582c 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index-sort-f.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index-sort-f.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 76.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index-sort-l.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index-sort-l.html index f038b800c..cb7304acb 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index-sort-l.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index-sort-l.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 76.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index.html index 7da472dd3..892b0f348 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/index.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 76.4 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.func-c.html index 1cfc151ab..377f80a4f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.8 % @@ -135,7 +135,7 @@ _nns_edge_event_cb - 109 + 108 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.func.html index 0f553f1ce..992e79314 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.8 % @@ -65,7 +65,7 @@ _nns_edge_event_cb - 109 + 108 diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.gcov.html index 6add25b1d..487e80ed9 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_client.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 80.3 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.8 % @@ -286,8 +286,8 @@ 224 11 : g_free (self->in_caps_str); 225 11 : self->in_caps_str = NULL; 226 : - 227 18 : while ((data_h = g_async_queue_try_pop (self->msg_queue))) { - 228 7 : nns_edge_data_destroy (data_h); + 227 19 : while ((data_h = g_async_queue_try_pop (self->msg_queue))) { + 228 8 : nns_edge_data_destroy (data_h); 229 : } 230 : 231 11 : if (self->msg_queue) { @@ -494,18 +494,18 @@ 432 : * @brief nnstreamer-edge event callback. 433 : */ 434 : static int - 435 109 : _nns_edge_event_cb (nns_edge_event_h event_h, void *user_data) + 435 108 : _nns_edge_event_cb (nns_edge_event_h event_h, void *user_data) 436 : { 437 : nns_edge_event_e event_type; - 438 109 : int ret = NNS_EDGE_ERROR_NONE; - 439 109 : GstTensorQueryClient *self = (GstTensorQueryClient *) user_data; + 438 108 : int ret = NNS_EDGE_ERROR_NONE; + 439 108 : GstTensorQueryClient *self = (GstTensorQueryClient *) user_data; 440 : - 441 109 : if (NNS_EDGE_ERROR_NONE != nns_edge_event_get_type (event_h, &event_type)) { + 441 108 : if (NNS_EDGE_ERROR_NONE != nns_edge_event_get_type (event_h, &event_type)) { 442 0 : nns_loge ("Failed to get event type!"); - 443 109 : return NNS_EDGE_ERROR_NOT_SUPPORTED; + 443 108 : return NNS_EDGE_ERROR_NOT_SUPPORTED; 444 : } 445 : - 446 109 : switch (event_type) { + 446 108 : switch (event_type) { 447 11 : case NNS_EDGE_EVENT_CAPABILITY: 448 : { 449 : GstCaps *server_caps, *client_caps; @@ -561,19 +561,19 @@ 499 11 : g_free (caps_str); 500 11 : break; 501 : } - 502 89 : case NNS_EDGE_EVENT_NEW_DATA_RECEIVED: + 502 88 : case NNS_EDGE_EVENT_NEW_DATA_RECEIVED: 503 : { 504 : nns_edge_data_h data; 505 : - 506 89 : nns_edge_event_parse_new_data (event_h, &data); - 507 89 : g_async_queue_push (self->msg_queue, data); - 508 89 : break; + 506 88 : nns_edge_event_parse_new_data (event_h, &data); + 507 88 : g_async_queue_push (self->msg_queue, data); + 508 88 : break; 509 : } 510 9 : default: 511 9 : break; 512 : } 513 : - 514 109 : return ret; + 514 108 : return ret; 515 : } 516 : 517 : /** @@ -619,23 +619,23 @@ 557 16 : nns_edge_set_info (self->edge_h, "CAPS", self->in_caps_str); 558 : 559 16 : ret = nns_edge_start (self->edge_h); - 560 16 : if (ret != NNS_EDGE_ERROR_NONE) { + 560 15 : if (ret != NNS_EDGE_ERROR_NONE) { 561 0 : nns_loge 562 : ("Failed to start NNStreamer-edge. Please check server IP and port."); 563 0 : goto done; 564 : } 565 : - 566 16 : ret = nns_edge_connect (self->edge_h, self->dest_host, self->dest_port); - 567 16 : if (ret != NNS_EDGE_ERROR_NONE) { - 568 5 : nns_loge ("Failed to connect to edge server!"); - 569 5 : goto done; + 566 15 : ret = nns_edge_connect (self->edge_h, self->dest_host, self->dest_port); + 567 15 : if (ret != NNS_EDGE_ERROR_NONE) { + 568 4 : nns_loge ("Failed to connect to edge server!"); + 569 4 : goto done; 570 : } 571 : 572 11 : started = TRUE; 573 : - 574 16 : done: - 575 16 : if (!started) { - 576 5 : nns_edge_release_handle (self->edge_h); + 574 15 : done: + 575 15 : if (!started) { + 576 4 : nns_edge_release_handle (self->edge_h); 577 4 : self->edge_h = NULL; 578 : } 579 : @@ -748,91 +748,91 @@ 686 : UNUSED (pad); 687 : 688 150 : if (self->max_request > 0 && self->requested_num > self->max_request) { - 689 37 : nns_logi + 689 38 : nns_logi 690 : ("The processing speed of the query server is too slow. Drop the input buffer."); - 691 37 : goto try_pop; + 691 38 : goto try_pop; 692 : } 693 : - 694 113 : ret = nns_edge_data_create (&data_h); - 695 113 : if (ret != NNS_EDGE_ERROR_NONE) { + 694 112 : ret = nns_edge_data_create (&data_h); + 695 112 : if (ret != NNS_EDGE_ERROR_NONE) { 696 0 : nns_loge ("Failed to create data handle in client chain."); 697 0 : goto try_pop; 698 : } 699 : - 700 113 : num_tensors = gst_tensor_buffer_get_count (buf); - 701 226 : for (i = 0; i < num_tensors; i++) { - 702 113 : mem[i] = gst_tensor_buffer_get_nth_memory (buf, i); - 703 113 : if (!gst_memory_map (mem[i], &map[i], GST_MAP_READ)) { + 700 112 : num_tensors = gst_tensor_buffer_get_count (buf); + 701 224 : for (i = 0; i < num_tensors; i++) { + 702 112 : mem[i] = gst_tensor_buffer_get_nth_memory (buf, i); + 703 112 : if (!gst_memory_map (mem[i], &map[i], GST_MAP_READ)) { 704 0 : ml_loge ("Cannot map the %uth memory in gst-buffer.", i); 705 0 : gst_memory_unref (mem[i]); 706 0 : num_tensors = i; 707 0 : goto try_pop; 708 : } - 709 113 : nns_edge_data_add (data_h, map[i].data, map[i].size, NULL); + 709 112 : nns_edge_data_add (data_h, map[i].data, map[i].size, NULL); 710 : } 711 : - 712 113 : nns_edge_get_info (self->edge_h, "client_id", &val); - 713 113 : nns_edge_data_set_info (data_h, "client_id", val); - 714 113 : g_free (val); + 712 112 : nns_edge_get_info (self->edge_h, "client_id", &val); + 713 112 : nns_edge_data_set_info (data_h, "client_id", val); + 714 112 : g_free (val); 715 : - 716 113 : ret = nns_edge_send (self->edge_h, data_h); - 717 113 : if (ret == NNS_EDGE_ERROR_NONE) { - 718 95 : self->requested_num++; + 716 112 : ret = nns_edge_send (self->edge_h, data_h); + 717 112 : if (ret == NNS_EDGE_ERROR_NONE) { + 718 94 : self->requested_num++; 719 : } else { 720 18 : nns_loge ("Failed to publish to server node."); 721 : } 722 : 723 150 : try_pop: 724 150 : if (data_h) - 725 113 : nns_edge_data_destroy (data_h); + 725 112 : nns_edge_data_destroy (data_h); 726 : 727 300 : data_h = g_async_queue_timeout_pop (self->msg_queue, 728 150 : self->timeout * G_TIME_SPAN_MILLISECOND); 729 150 : if (data_h) { - 730 81 : if (self->requested_num > 0) - 731 81 : self->requested_num--; - 732 81 : ret = nns_edge_data_get_count (data_h, &num_data); + 730 79 : if (self->requested_num > 0) + 731 79 : self->requested_num--; + 732 79 : ret = nns_edge_data_get_count (data_h, &num_data); 733 : - 734 81 : if (ret == NNS_EDGE_ERROR_NONE && num_data > 0) { + 734 79 : if (ret == NNS_EDGE_ERROR_NONE && num_data > 0) { 735 : GstMemory *new_mem; 736 : GstTensorInfo *_info; 737 : - 738 81 : out_buf = gst_buffer_new (); + 738 79 : out_buf = gst_buffer_new (); 739 : - 740 162 : for (i = 0; i < num_data; i++) { - 741 81 : void *data = NULL; + 740 158 : for (i = 0; i < num_data; i++) { + 741 79 : void *data = NULL; 742 : nns_size_t data_len; 743 : gpointer new_data; 744 : - 745 81 : nns_edge_data_get (data_h, i, &data, &data_len); - 746 81 : new_data = _g_memdup (data, data_len); + 745 79 : nns_edge_data_get (data_h, i, &data, &data_len); + 746 79 : new_data = _g_memdup (data, data_len); 747 : - 748 81 : new_mem = gst_memory_new_wrapped (0, new_data, data_len, 0, data_len, + 748 79 : new_mem = gst_memory_new_wrapped (0, new_data, data_len, 0, data_len, 749 : new_data, g_free); 750 : - 751 81 : if (self->is_tensor) { - 752 72 : _info = gst_tensors_info_get_nth_info (&self->config.info, i); - 753 72 : gst_tensor_buffer_append_memory (out_buf, new_mem, _info); + 751 79 : if (self->is_tensor) { + 752 70 : _info = gst_tensors_info_get_nth_info (&self->config.info, i); + 753 70 : gst_tensor_buffer_append_memory (out_buf, new_mem, _info); 754 : } else { 755 9 : gst_buffer_append_memory (out_buf, new_mem); 756 : } 757 : } 758 : 759 : /* metadata from incoming buffer */ - 760 81 : gst_buffer_copy_into (out_buf, buf, GST_BUFFER_COPY_METADATA, 0, -1); + 760 79 : gst_buffer_copy_into (out_buf, buf, GST_BUFFER_COPY_METADATA, 0, -1); 761 : - 762 81 : res = gst_pad_push (self->srcpad, out_buf); + 762 79 : res = gst_pad_push (self->srcpad, out_buf); 763 : } else { 764 0 : nns_loge ("Failed to get the number of memories of the edge data."); 765 0 : res = GST_FLOW_ERROR; 766 : } 767 : - 768 81 : nns_edge_data_destroy (data_h); + 768 79 : nns_edge_data_destroy (data_h); 769 : } 770 : - 771 263 : for (i = 0; i < num_tensors; i++) { - 772 113 : gst_memory_unmap (mem[i], &map[i]); - 773 113 : gst_memory_unref (mem[i]); + 771 262 : for (i = 0; i < num_tensors; i++) { + 772 112 : gst_memory_unmap (mem[i], &map[i]); + 773 112 : gst_memory_unref (mem[i]); 774 : } 775 : 776 150 : gst_buffer_unref (buf); diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.func-c.html index 7709aff7a..2f5113c16 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.func.html index c8c54399f..326ac7e58 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.gcov.html index 9ed79952e..396f421f8 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_common.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 100.0 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 100.0 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.func-c.html index 8d090bbf4..b95091d01 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 66.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 91.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.func.html index ed1395a4b..38275946f 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 66.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 91.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.gcov.html index a418e4630..eb7a078fd 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_server.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 66.1 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 91.7 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.func-c.html index 47ff96a26..c323177e0 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 79.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.func.html index 0a8503243..149a3dbfa 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 79.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.gcov.html index 918470411..fafb09026 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversink.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 79.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 92.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.func-c.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.func-c.html index 82418fcec..23db46bd2 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.func-c.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.func-c.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 75.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.func.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.func.html index 208e8fb9a..73a737420 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.func.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.func.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c - functions + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c - functions @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 75.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.3 % diff --git a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.gcov.html b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.gcov.html index 09ab58e96..9435f06ff 100644 --- a/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.gcov.html +++ b/testresult/nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c.gcov.html @@ -4,7 +4,7 @@ - LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c + LCOV - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa - nnstreamer-2.4.2/gst/nnstreamer/tensor_query/tensor_query_serversrc.c @@ -28,7 +28,7 @@ Test: - nnstreamer 2.4.2-0 nnstreamer/nnstreamer#b1f66c649f56483758a0084aaf04f96825f25342 + nnstreamer 2.4.2-0 nnstreamer/nnstreamer#fc8a2ff509ab0e12a0b4eae26fbd1e9b923e40fa Lines: 75.8 % @@ -37,7 +37,7 @@ Test Date: - 2025-01-03 05:35:50 + 2025-01-06 05:34:21 Functions: 93.3 %