diff --git a/audio_capture/src/audio_capture_node.cpp b/audio_capture/src/audio_capture_node.cpp index e1661bd..ffa9714 100644 --- a/audio_capture/src/audio_capture_node.cpp +++ b/audio_capture/src/audio_capture_node.cpp @@ -17,10 +17,8 @@ namespace audio_capture class AudioCaptureNode: public rclcpp::Node { public: - AudioCaptureNode(const rclcpp::NodeOptions &options) - : - Node("audio_capture_node", options), - updater_(this) + AudioCaptureNode(const rclcpp::NodeOptions & options) + : Node("audio_capture_node", options), updater_(this), _desired_rate(-1.0) { gst_init(nullptr, nullptr); @@ -63,8 +61,6 @@ namespace audio_capture rclcpp::Publisher::SharedPtr pub_stamped = this->create_publisher("audio_stamped", 10); - this->declare_parameter("desired_rate", 100.0); - _desired_rate = this->get_parameter("desired_rate").as_double(); this->declare_parameter("diagnostic_tolerance", 0.1); auto tolerance = this->get_parameter("diagnostic_tolerance").as_double(); @@ -246,6 +242,12 @@ namespace audio_capture gst_buffer_unmap(buffer, &map); gst_sample_unref(sample); + if (server->_desired_rate < 0) { + int buffer_size = map.size; + server->_desired_rate = + static_cast(server->_sample_rate) / (buffer_size / (server->_channels * (server->_depth / 8))); + } + server->publish(msg); server->publishStamped(stamped_msg);