-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
formatRelated to data formats (MCAP, ROS bag, ULog, etc.)Related to data formats (MCAP, ROS bag, ULog, etc.)priority-P1High priority - core completenessHigh priority - core completeness
Description
Issue Description
The compression configuration is currently hardcoded (see TODO comment in src/io/formats/bag/parallel.rs:55). Users should be able to control compression level and algorithm when writing files.
Current State
// TODO: Use config options for compression, chunk size, etc.The compression level and chunk size are not exposed through the public API.
Proposed Solution
- Add compression options to WriteOptions
- Expose compression level (1-22 for ZSTD)
- Expose compression algorithm selection (None, Zstd, LZ4)
- Add chunk size configuration for MCAP
Requirements
- Add compression_level field to WriteOptions
- Add compression_algorithm enum (None, Zstd, LZ4)
- Add chunk_size field to WriteOptions
- Apply compression options in MCAP writer
- Apply compression options in ROS1 bag writer
- Add unit tests
- Update CLI with compression flags
- Update Python bindings
API Example
let writer = RoboWriter::create_with_options(
"output.mcap",
WriteOptions::default()
.compression_level(10)
.compression_algorithm(CompressionAlgorithm::Zstd)
.chunk_size(1024 * 1024) // 1MB chunks
)?;Acceptance Criteria
- Compression level is configurable via API
- Compression algorithm can be selected
- Chunk size is configurable for MCAP
- Options work for both MCAP and ROS1 bag writers
- Python bindings expose these options
CLI Example
robocodec convert input.mcap output.mcap --compression zstd --level 10
robocodec convert input.mcap output.mcap --compression nonePriority: P1 - Performance optimization
Estimated effort: Low
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
formatRelated to data formats (MCAP, ROS bag, ULog, etc.)Related to data formats (MCAP, ROS bag, ULog, etc.)priority-P1High priority - core completenessHigh priority - core completeness