Releases: cappelletto/videostrip
v0.9.3 Meshroom core + dev maintenance
🚀 videostrip v0.9.3
This release marks a stabilization milestone for videostrip, separating the Meshroom plugin into its own repository and solidifying the CLI + core library for long-term use in underwater video transect processing.
🔑 Highlights
- Meshroom plugin split:
The Meshroom node has moved to [videostrip-meshroom](https://github.com/cappelletto/videostrip-meshroom).
videostrip now focuses purely on the CLI and core library. - Stable CLI API:
Arguments and output schema (frames.csv,summary.yaml) are locked at Schema v1.
Future changes will maintain backward compatibility. - Bundled OpenCV 4.12:
Deterministic builds via vendored OpenCV; avoids system ABI conflicts.
Licenses included inshare/licenses/opencv/. - Cross-platform CI/CD:
Continuous builds & tests on Linux + Windows.
Prebuilt binaries available in release assets. - Enhancement pipeline:
Configurable pre-export image enhancement (contrast, gamma, CLAHE, grayworld). - Improved packaging:
Optional DEB/TAR packages install into/opt/videostrip(avoids overwriting system libraries).
📦 Assets
-
Linux:
videostrip-v0.9.3-Linux-x86_64.tar.gz,.deb -
Windows:
videostrip-v0.9.3-win64.zip -
Includes:
videostrip_clibinarylibvideostrip_core.a(static core library)- Configs + licenses
v0.9.0
Core feature complete public release under Apache 2.0 license
v0.8.2
Full Changelog: v0.7.1...v0.8.2
📦 Release Notes — v0.8.2
🚀 New Features
-
Image Enhancement Module
- Introduced a modular
enhance/pipeline with YAML-driven configuration. - Supports configurable enhancement sequence (contrast, gray-world white balance, gamma, CLAHE).
- CLI override syntax for rapid testing.
- Enhancement stage executes before feature extraction/export.
- Introduced a modular
-
Feature Density Normalization
- Added grid-based feature density normalization (#23).
- Provides more uniform feature distribution for SfM workflows.
- Includes configuration structures and working implementation.
-
Documentation & Packaging
- Added manpage target in CMake build system.
- Updated README with enhancement pipeline usage and feature list.
- Listed packaging and manpages as supported features.
🛠 Fixes & Improvements
- Patched yaml-cpp detection across Linux/Nix environments.
- Fixed missing CONFIG stage in top-level CMake.
- Corrected enhancement sequence call ordering and enable flag propagation.
- Enhanced
EnhanceStage.process()to handle 8/16-bit grayscale and multi-channel images. - Disabled CLAHE test for grayscale deterministic inputs (non-reproducible).
- Fixed namespace issues in enhancement units.
- Added 3 unit tests for enhancement pipeline (config, stage, ops).
- Re-enabled YAML container for enhancement config.
🔧 Chores & Maintenance
- Promoted enhancement code into its own
<enhance>module. - Refined CMake structure and removed stale TODOs.
- Added TODO notes for missing dependencies (system-wide yaml).
- Updated
.gitignorefor generated docs.
📑 Versioning
- v0.7.1 → v0.8.0: Initial enhancement pipeline, CMake manpage target.
- v0.8.0 → v0.8.1: Test suite integration for enhancement.
- v0.8.1 → v0.8.2: Grid-based feature density normalization, bug fixes, expanded docs.
Stable Metadata Integration: MVP+ release with locked Schema v1, reproducible metadata outputs (CSV + YAML)
📦 Release v0.6.0 — Stable Metadata Integration
Highlights
This release delivers the first stable contract (Schema v1) for frame extraction metadata, ensuring repeatability, reproducibility, and downstream compatibility with SfM/MVS pipelines.
🚀 New Features
- Schema v1 locked for output contract:
frames.csvwith per-frame metadata (frame_idx, timestamp_ms, output_image, feature_count, quality_score, georef).summary.yamlwith schema version, run info, configuration snapshot, and list of extracted images.- Stable file/folder layout:
images/,features/,frames.csv,summary.yaml,run.log.
- MetadataWriter module (
videostrip_core/io/metadata_writer):- Centralized CSV + YAML writing.
- Append-safe CSV (row written immediately per frame).
- YAML written once at run completion.
- VideoFrameExtractor::run refactor:
- Integrated
MetadataWriterfor schema v1 outputs. - Removed legacy
writeMetadataCSV()/writeSummaryYAML()functions. - Guarantees reproducible metadata even if errors occur during run.
- Integrated
- Logging:
- Errors, warnings, and run completion messages consistently recorded in
run.log.
- Errors, warnings, and run completion messages consistently recorded in
🛠 CI/CD & Testing
- Added unit tests for schema writers (CSV + YAML regression).
- GitHub Actions now builds, runs smoke tests, and validates schema outputs.
- Both Linux and Windows targets covered.
📚 Documentation
- Updated user guide with schema v1 contract.
- Provided sample YAML config and usage examples.
Upgrade Notes
- Consumers of metadata must use
frames.csvandsummary.yaml(schema v1). These formats are stable going forward. - Old ad-hoc CSV/YAML functions have been retired.
Next Steps
- Add optional frame enhancement filters (CLAHE, WB).
- Introduce grid-based feature density normalization as an experimental mode.
- Expand Windows CI/CD to cover feature parity tests with Linux.
✅ This release marks the first stable MVP+ slice: reliable frame extraction, reproducible metadata, and direct downstream compatibility with Meshroom/Metashape pipelines.