22 #include "gazebo/common/Plugin.hh" 23 #include "gazebo/sensors/CameraSensor.hh" 24 #include "gazebo/gazebo.hh" 25 #include "gazebo/common/common.hh" 26 #include "gazebo/rendering/Camera.hh" 27 #include "gazebo/util/system.hh" 28 #include "gazebo/transport/transport.hh" 29 #include "gazebo/msgs/msgs.hh" 50 public:
virtual void Load(sensors::SensorPtr sensor, sdf::ElementPtr sdf);
52 public:
virtual void OnNewFrame(
const unsigned char *image,
53 unsigned int width,
unsigned int height,
54 unsigned int depth,
const std::string &
format);
56 public:
void startGstThread();
57 public:
void gstCallback(GstElement *appsrc);
59 protected:
unsigned int width, height, depth;
66 protected: rendering::CameraPtr
camera;
72 private:
const std::string topicName =
"gst_video";
std::string format(const std::string &fmt, Args ... args)
A Gazebo plugin that can be attached to a camera and then streams the video data using gstreamer...
sensors::CameraSensorPtr parentSensor
event::ConnectionPtr newFrameConnection
GstClockTime gstTimestamp
rendering::CameraPtr camera
transport::NodePtr node_handle_
std::mutex frameBufferMutex
std::recursive_mutex mutex