@@ -38,7 +38,7 @@ MjpegStreamer::MjpegStreamer(
3838 const async_web_server_cpp::HttpRequest & request,
3939 async_web_server_cpp::HttpConnectionPtr connection, rclcpp::Node::SharedPtr node)
4040: ImageTransportImageStreamer(request, connection, node),
41- stream_ (std::bind(&rclcpp::Node::now, node), connection)
41+ stream_ (connection)
4242{
4343 quality_ = request.get_query_param_value_or_default <int >(" quality" , 95 );
4444 stream_.sendInitialHeader ();
@@ -50,7 +50,9 @@ MjpegStreamer::~MjpegStreamer()
5050 std::scoped_lock lock (send_mutex_); // protects sendImage.
5151}
5252
53- void MjpegStreamer::sendImage (const cv::Mat & img, const rclcpp::Time & time)
53+ void MjpegStreamer::sendImage (
54+ const cv::Mat & img,
55+ const std::chrono::steady_clock::time_point & time)
5456{
5557 std::vector<int > encode_params;
5658 encode_params.push_back (cv::IMWRITE_JPEG_QUALITY);
@@ -94,7 +96,9 @@ JpegSnapshotStreamer::~JpegSnapshotStreamer()
9496 std::scoped_lock lock (send_mutex_); // protects sendImage.
9597}
9698
97- void JpegSnapshotStreamer::sendImage (const cv::Mat & img, const rclcpp::Time & time)
99+ void JpegSnapshotStreamer::sendImage (
100+ const cv::Mat & img,
101+ const std::chrono::steady_clock::time_point & time)
98102{
99103 std::vector<int > encode_params;
100104 encode_params.push_back (cv::IMWRITE_JPEG_QUALITY);
@@ -104,7 +108,8 @@ void JpegSnapshotStreamer::sendImage(const cv::Mat & img, const rclcpp::Time & t
104108 cv::imencode (" .jpeg" , img, encoded_buffer, encode_params);
105109
106110 char stamp[20 ];
107- snprintf (stamp, sizeof (stamp), " %.06lf" , time.seconds ());
111+ snprintf (stamp, sizeof (stamp), " %.06lf" ,
112+ std::chrono::duration_cast<std::chrono::duration<double >>(time.time_since_epoch ()).count ());
108113 async_web_server_cpp::HttpReply::builder (async_web_server_cpp::HttpReply::ok)
109114 .header (" Connection" , " close" )
110115 .header (" Server" , " web_video_server" )
0 commit comments