bool RosStreamSubscriptionInstaller::SetupImageTransport()

in kinesis_video_streamer/src/ros_stream_subscription_installer.cpp [22:42]


bool RosStreamSubscriptionInstaller::SetupImageTransport(const ImageTransportCallbackFn callback)
{
  if (!callback) {
    AWS_LOG_ERROR(__func__, "Invalid callback was provided");
    return false;
  }
  SubscriberSetupFn image_transport_setup_closure =
    [this, callback](const StreamSubscriptionDescriptor & descriptor) -> bool {
    image_transport::ImageTransport it(*handle_);
    boost::function<void(const sensor_msgs::ImageConstPtr &)> callback_wrapper;
    callback_wrapper = [this, callback,
                        descriptor](const sensor_msgs::ImageConstPtr & image) -> void {
      callback(*this->stream_manager_, descriptor.stream_name, image);
    };
    image_transport_subscribers_.push_back(
      it.subscribe(descriptor.topic_name, descriptor.message_queue_size, callback_wrapper));
    return true;
  };
  installers_.insert({KINESIS_STREAM_INPUT_TYPE_IMAGE_TRANSPORT, image_transport_setup_closure});
  return true;
}