void RekognitionEnabledKinesisVideoFrameTransportCallback()

in kinesis_video_streamer/src/subscriber_callbacks.cpp [26:47]


void RekognitionEnabledKinesisVideoFrameTransportCallback(
    KinesisStreamManagerInterface & stream_manager, std::string stream_name,
    const kinesis_video_msgs::msg::KinesisVideoFrame::ConstSharedPtr frame_msg,
    const rclcpp::Publisher<std_msgs::msg::String>::SharedPtr publisher)
{
    KinesisVideoFrameTransportCallback(stream_manager, stream_name, frame_msg);
    Aws::Vector<Model::Record> records;
    KinesisManagerStatus status = stream_manager.FetchRekognitionResults(stream_name, &records);
    if (KINESIS_MANAGER_STATUS_FAILED(status) &&
        KINESIS_MANAGER_STATUS_GET_RECORDS_THROTTLED != status) {
        AWS_LOGSTREAM_WARN(__func__, stream_name.c_str()
                << " FetchRekognitionResults failed. Error code: " << status);
        return;
    }
    for (auto item = records.begin(); item != records.end(); item++) {
        std_msgs::msg::String message;
        const char * data = reinterpret_cast<char *>(item->GetData().GetUnderlyingData());
        size_t length = item->GetData().GetLength();
        message.data = std::string(data, length);
        publisher->publish(message);
    }
}