# Set firmware version
add_definitions( -DFIRMWARE_VERSION_MAJOR=4 )
add_definitions( -DFIRMWARE_VERSION_MINOR=16 )
-add_definitions( -DFIRMWARE_VERSION_REVISION=0 )
+add_definitions( -DFIRMWARE_VERSION_REVISION=1 )
if(HAILO_BUILD_SERVICE)
add_definitions( -DHAILO_SUPPORT_MULTI_PROCESS )
endif()
set(HAILORT_MAJOR_VERSION 4)
set(HAILORT_MINOR_VERSION 16)
-set(HAILORT_REVISION_VERSION 0)
+set(HAILORT_REVISION_VERSION 1)
# Add the cmake folder so the modules there are found
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
message(FATAL_ERROR "Only unix hosts are supported, stopping build")
endif()
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
# GST_PLUGIN_DEFINE needs PACKAGE to be defined
set(GST_HAILO_PACKAGE_NAME "hailo")
PROP_NMS_IOU_THRESHOLD,
PROP_NMS_MAX_PROPOSALS_PER_CLASS,
PROP_INPUT_FROM_META,
+ PROP_NO_TRANSFORM,
PROP_MULTI_PROCESS_SERVICE,
// Deprecated
// In RGB formats, Gstreamer is padding each row to 4.
for (const auto &input_name : self->infer_model->get_input_names()) {
- // TODO (HRT-12492): change transformations to be togglable
- if (self->props.m_input_from_meta.get()) {
- // do not apply transformations when taking input from meta
- self->infer_model->input(input_name)->set_format_order(HAILO_FORMAT_ORDER_NHCW);
+ if(self->props.m_no_transform.get()) {
+ // In case transformation is disabled - format order will be the same as we get from the HW (stream info).
+ auto input_stream_infos = self->infer_model->hef().get_stream_info_by_name(input_name, HAILO_H2D_STREAM);
+ CHECK_EXPECTED_AS_STATUS(input_stream_infos);
+ self->infer_model->input(input_name)->set_format_order(input_stream_infos.value().format.order);
} else if (self->infer_model->input(input_name)->format().order == HAILO_FORMAT_ORDER_NHWC) {
self->infer_model->input(input_name)->set_format_order(HAILO_FORMAT_ORDER_RGB4);
}
}
- if (self->props.m_input_from_meta.get()) {
+ if (self->props.m_no_transform.get()) {
for (const auto &output_name : self->infer_model->get_output_names()) {
- // TODO (HRT-12492): change transformations to be togglable
- // do not apply transformations when taking output to meta
- self->infer_model->output(output_name)->set_format_order(HAILO_FORMAT_ORDER_NHCW);
+ // In case transformation is disabled - format order will be the same as we get from the HW (stream info).
+ auto output_stream_infos = self->infer_model->hef().get_stream_info_by_name(output_name, HAILO_D2H_STREAM);
+ CHECK_EXPECTED_AS_STATUS(output_stream_infos);
+ self->infer_model->output(output_name)->set_format_order(output_stream_infos.value().format.order);
}
}
}
self->props.m_input_from_meta = g_value_get_boolean(value);
break;
+ case PROP_NO_TRANSFORM:
+ if (self->is_configured) {
+ g_warning("The network was already configured so disabling the transformation will not take place!");
+ }
+ self->props.m_no_transform = g_value_get_boolean(value);
+ break;
case PROP_MULTI_PROCESS_SERVICE:
if (self->is_configured) {
g_warning("The network was already configured so changing the multi-process-service property will not take place!");
case PROP_INPUT_FROM_META:
g_value_set_boolean(value, self->props.m_input_from_meta.get());
break;
+ case PROP_NO_TRANSFORM:
+ g_value_set_boolean(value, self->props.m_no_transform.get());
+ break;
case PROP_MULTI_PROCESS_SERVICE:
g_value_set_boolean(value, self->props.m_multi_process_service.get());
break;
g_object_class_install_property(gobject_class, PROP_INPUT_FROM_META,
g_param_spec_boolean("input-from-meta", "Enable input from meta", "Take network input from metadata instead of video frame.", false,
(GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+ g_object_class_install_property(gobject_class, PROP_NO_TRANSFORM,
+ g_param_spec_boolean("no-transform", "Disable transformations", "Format will remain the same as the HW format.", false,
+ (GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property(gobject_class, PROP_NMS_SCORE_THRESHOLD,
g_param_spec_float("nms-score-threshold", "NMS score threshold", "Threshold used for filtering out candidates. Any box with score<TH is suppressed.",
m_scheduler_threshold(HAILO_DEFAULT_SCHEDULER_THRESHOLD), m_scheduler_priority(HAILO_SCHEDULER_PRIORITY_NORMAL),
m_input_format_type(HAILO_FORMAT_TYPE_AUTO), m_output_format_type(HAILO_FORMAT_TYPE_AUTO),
m_nms_score_threshold(0), m_nms_iou_threshold(0), m_nms_max_proposals_per_class(0), m_input_from_meta(false),
- m_multi_process_service(HAILO_DEFAULT_MULTI_PROCESS_SERVICE),
+ m_no_transform(false), m_multi_process_service(HAILO_DEFAULT_MULTI_PROCESS_SERVICE),
m_vdevice_key(DEFAULT_VDEVICE_KEY)
{}
HailoElemProperty<gfloat> m_nms_iou_threshold;
HailoElemProperty<guint32> m_nms_max_proposals_per_class;
HailoElemProperty<gboolean> m_input_from_meta;
+ HailoElemProperty<gboolean> m_no_transform;
HailoElemProperty<gboolean> m_multi_process_service;
// Deprecated
SUPPORTED_PROTOCOL_VERSION = 2
SUPPORTED_FW_MAJOR = 4
SUPPORTED_FW_MINOR = 16
-SUPPORTED_FW_REVISION = 0
+SUPPORTED_FW_REVISION = 1
MEGA_MULTIPLIER = 1000.0 * 1000.0
"linux_aarch64",
],
url="https://hailo.ai/",
- version="4.16.0",
+ version="4.16.1",
zip_safe=False,
)
# VISIBILITY_INLINES_HIDDEN YES
)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
target_link_libraries(_pyhailort PRIVATE HailoRT::libhailort)
if(WIN32)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(data_quantization_example.c PROPERTIES LANGUAGE C)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(infer_pipeline_example.c PROPERTIES LANGUAGE C)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(multi_device_example.c PROPERTIES LANGUAGE C)
find_package(Threads REQUIRED)
set(THREADS_PREFER_PTHREAD_FLAG ON)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(multi_network_vstream_example.c PROPERTIES LANGUAGE C)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(notification_callback_example.c PROPERTIES LANGUAGE C)
cmake_minimum_required(VERSION 3.0.0)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(power_measurement_example.c PROPERTIES LANGUAGE C)
cmake_minimum_required(VERSION 3.0.0)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(raw_async_streams_single_thread_example.c PROPERTIES LANGUAGE C)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(raw_streams_example.c PROPERTIES LANGUAGE C)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(switch_network_groups_example.c PROPERTIES LANGUAGE C)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(switch_network_groups_manually_example.c PROPERTIES LANGUAGE C)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
SET_SOURCE_FILES_PROPERTIES(vstreams_example.c PROPERTIES LANGUAGE C)
cmake_minimum_required(VERSION 3.0.0)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_async_infer_example async_infer_example.cpp)
target_link_libraries(cpp_async_infer_example PRIVATE HailoRT::libhailort)
cmake_minimum_required(VERSION 3.0.0)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_async_infer_functionality_example async_infer_functionality_example.cpp)
target_link_libraries(cpp_async_infer_functionality_example PRIVATE HailoRT::libhailort)
cmake_minimum_required(VERSION 3.0.0)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_infer_pipeline_example infer_pipeline_example.cpp)
target_link_libraries(cpp_infer_pipeline_example PRIVATE HailoRT::libhailort)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_multi_device_example multi_device_example.cpp)
target_link_libraries(cpp_multi_device_example PRIVATE HailoRT::libhailort Threads::Threads)
find_package(Threads REQUIRED)
set(THREADS_PREFER_PTHREAD_FLAG ON)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_multi_network_vstream_example multi_network_vstream_example.cpp)
target_link_libraries(cpp_multi_network_vstream_example PRIVATE HailoRT::libhailort Threads::Threads)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_multi_process_example multi_process_example.cpp)
target_link_libraries(cpp_multi_process_example PRIVATE HailoRT::libhailort Threads::Threads)
cmake_minimum_required(VERSION 3.0.0)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_notification_callback_example notification_callback_example.cpp)
target_link_libraries(cpp_notification_callback_example PRIVATE HailoRT::libhailort)
cmake_minimum_required(VERSION 3.0.0)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_power_measurement_example power_measurement_example.cpp)
target_link_libraries(cpp_power_measurement_example PRIVATE HailoRT::libhailort)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_raw_async_streams_multi_thread_example raw_async_streams_multi_thread_example.cpp)
target_link_libraries(cpp_raw_async_streams_multi_thread_example PRIVATE HailoRT::libhailort Threads::Threads)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_raw_async_streams_single_thread_example raw_async_streams_single_thread_example.cpp)
target_link_libraries(cpp_raw_async_streams_single_thread_example PRIVATE HailoRT::libhailort Threads::Threads)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_raw_streams_example raw_streams_example.cpp)
target_link_libraries(cpp_raw_streams_example PRIVATE HailoRT::libhailort Threads::Threads)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_switch_network_groups_example switch_network_groups_example.cpp)
target_link_libraries(cpp_switch_network_groups_example PRIVATE HailoRT::libhailort Threads::Threads)
find_package(Threads REQUIRED)
set(THREADS_PREFER_PTHREAD_FLAG ON)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_switch_network_groups_manually_example switch_network_groups_manually_example.cpp)
target_link_libraries(cpp_switch_network_groups_manually_example PRIVATE HailoRT::libhailort Threads::Threads)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
-find_package(HailoRT 4.16.0 EXACT REQUIRED)
+find_package(HailoRT 4.16.1 EXACT REQUIRED)
add_executable(cpp_vstreams_example vstreams_example.cpp)
target_link_libraries(cpp_vstreams_example PRIVATE HailoRT::libhailort Threads::Threads)
m_client(std::move(client)),
m_identifier(std::move(identifier)),
m_devices(std::move(devices)),
- m_is_listener_thread_running(false)
+ m_is_listener_thread_running(false),
+ m_should_use_listener_thread(false)
{}
VDeviceClient::~VDeviceClient()
hailo_status VDeviceClient::after_fork_in_child()
{
HailoRtRpcClientUtils::get_instance().after_fork_in_child();
+
auto listener_status = start_listener_thread(m_identifier);
CHECK_SUCCESS(listener_status);
// Init listener thread only in case configure happens with async api
if ((configure_params.size() > 0) &&
configure_params.begin()->second.stream_params_by_name.begin()->second.flags == HAILO_STREAM_FLAGS_ASYNC) {
+ m_should_use_listener_thread = true;
auto init_status = start_listener_thread(m_identifier);
CHECK_SUCCESS_AS_EXPECTED(init_status);
}
hailo_status VDeviceClient::start_listener_thread(VDeviceIdentifier identifier)
{
- if (m_is_listener_thread_running) {
+ if (!m_should_use_listener_thread || m_is_listener_thread_running) {
return HAILO_SUCCESS;
}
AsyncThreadPtr<hailo_status> m_cb_listener_thread;
std::atomic_bool m_is_listener_thread_running;
+ std::atomic_bool m_should_use_listener_thread; // True only on async inference
};
#endif // HAILO_SUPPORT_MULTI_PROCESS
@ECHO OFF
set BASE_URI=https://hailo-hailort.s3.eu-west-2.amazonaws.com
-set HRT_VERSION=4.16.0
+set HRT_VERSION=4.16.1
set FW_DIR=Hailo8/%HRT_VERSION%/FW
set FW=hailo8_fw.%HRT_VERSION%_eth.bin
set -e
readonly BASE_URI="https://hailo-hailort.s3.eu-west-2.amazonaws.com"
-readonly HRT_VERSION=4.16.0
+readonly HRT_VERSION=4.16.1
readonly FW_AWS_DIR="Hailo8/${HRT_VERSION}/FW"
readonly FW="hailo8_fw.${HRT_VERSION}_eth.bin"
:: cmd
@ECHO OFF
set BASE_URI=https://hailo-hailort.s3.eu-west-2.amazonaws.com
-set HRT_VERSION=4.16.0
+set HRT_VERSION=4.16.1
set REMOTE_HEF_DIR=Hailo8/%HRT_VERSION%/HEFS
set LOCAL_EXAMPLES_HEF_DIR=..\libhailort\examples\hefs
set LOCAL_TUTORIALS_HEF_DIR=..\libhailort\bindings\python\platform\hailo_tutorials\hefs
set -e
readonly BASE_URI="https://hailo-hailort.s3.eu-west-2.amazonaws.com"
-readonly HRT_VERSION=4.16.0
+readonly HRT_VERSION=4.16.1
readonly REMOTE_HEF_DIR="Hailo8/${HRT_VERSION}/HEFS"
readonly LOCAL_EXAMPLES_HEF_DIR="../libhailort/examples/hefs"
readonly LOCAL_TUTORIALS_HEF_DIR="../libhailort/bindings/python/platform/hailo_tutorials/hefs"