Skip to content

Commit 32005b9

Browse files
author
J. Cappelletto
committed
Merge branch 'release/0.9.2'
Complete Meshroom node migration merge, Close #62, #69. Add release notes (missing from previous releases)
2 parents da350c1 + cac0fcf commit 32005b9

File tree

19 files changed

+282
-204
lines changed

19 files changed

+282
-204
lines changed

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Repository Guidelines
22

33
## Project Structure & Module Organization
4-
`videostrip_core/` contains the C++17 extraction engine (feature detection, metadata writers, logging). `videostrip_cli/` builds the command-line entry point exported to `build/bin/videostrip_cli`. `videostrip_utils/` hosts shared helpers; `videostrip_gui/` is an experimental viewer. Pipeline templates for Meshroom live under `meshroom/`, sample YAML configs under `configs/`, and generated docs/manpages under `doc/`. Keep CMake build artifacts in `build/` and add new tests beside the existing Catch2 suites in `tests/`.
4+
`videostrip_core/` contains the C++17 extraction engine (feature detection, metadata writers, logging). `videostrip_cli/` builds the command-line entry point exported to `build/bin/videostrip_cli`. `videostrip_utils/` hosts shared helpers; `videostrip_gui/` is an experimental viewer. Pipeline templates for Meshroom live under its own repository `videostrip-meshroom/`, sample YAML configs under `configs/`, and generated docs/manpages under `doc/`. Keep CMake build artifacts in `build/` and add new tests beside the existing Catch2 suites in `tests/`.
55

66
## Build, Test, and Development Commands
77
Configure once, then build incrementally:

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cmake_minimum_required(VERSION 3.18)
2-
project(videostrip VERSION 0.9.1 LANGUAGES CXX)
2+
project(videostrip VERSION 0.9.2 LANGUAGES CXX)
33

44
# ------------------------------------------------------------
55
# Licensing

README.md

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
[![C/C++ CI](https://github.com/cappelletto/videostrip/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/cappelletto/videostrip/actions/workflows/c-cpp.yml)
23
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
34
[![License](https://img.shields.io/badge/License-LGPL_3.0-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0.html)
@@ -7,7 +8,9 @@
78
# videostrip
89

910
**videostrip** is a modular project for **video frame extraction and keyframe selection** to support **2D/3D reconstruction of underwater video transects**.
10-
It produces **SfM-ready frame sets** and metadata for tools like **COLMAP, Meshroom, Metashape**, and our (future) **custom video transect pipeline**.
11+
It produces **SfM-ready frame sets** and metadata for tools like **COLMAP, Metashape**, and our (future) **custom video transect pipeline**.
12+
13+
> ⚠️ **Note**: The Meshroom integration node has been moved to a separate repository: [videostrip-meshroom](https://github.com/cappelletto/videostrip-meshroom).
1114
1215
---
1316

@@ -28,7 +31,7 @@ It produces **SfM-ready frame sets** and metadata for tools like **COLMAP, Meshr
2831

2932
---
3033

31-
## **Key Features (v0.8.2)**
34+
## **Key Features (v0.7.X onwards)**
3235

3336
***CLI support** for video processing with YAML or CLI configs.
3437
***Frame extraction with stride or overlap-based selection**.
@@ -61,7 +64,7 @@ It produces **SfM-ready frame sets** and metadata for tools like **COLMAP, Meshr
6164

6265
* **C++17** compiler
6366
* **CMake ≥ 3.18**
64-
* **OpenCV ≥ 4.5**
67+
* **OpenCV ≥ 4.5** (option: bundle 4.12 for Meshroom compatibility)
6568
* **yaml-cpp** (for YAML config parsing)
6669
* **Catch2** (for unit testing)
6770

@@ -75,12 +78,12 @@ cd videostrip
7578
# Configure and build
7679
cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_MANPAGE=OFF -DBUILD_TESTS=OFF
7780
cmake --build build -j4
78-
```
81+
````
7982

8083
The build produces:
8184

8285
```
83-
build/bin/videostrip_cli # CLI binary
86+
build/bin/videostrip_cli # CLI binary
8487
build/lib/libvideostrip_core.a # Core library
8588
```
8689
@@ -95,6 +98,7 @@ Basic run (defaults to ./output/*):
9598
```
9699

97100
Outputs:
101+
98102
```
99103
./output/images/*.png
100104
./output/features/*.feat.txt
@@ -104,11 +108,13 @@ Outputs:
104108
```
105109

106110
With YAML config:
111+
107112
```bash
108113
./videostrip_cli --config configs/sample_min.yaml
109114
```
110115

111116
CLI overrides YAML:
117+
112118
```bash
113119
./videostrip_cli --config configs/sample_min.yaml --feature AKAZE --output ./out
114120
```
@@ -141,7 +147,6 @@ processing:
141147
---
142148
143149
## **Enhancement Pipeline (NEW)**
144-
TODO: extract this into a separate `docs/enhancement.md`.
145150
146151
Starting with **v0.7.x**, videostrip supports an optional **image enhancement stage** that preprocesses frames before feature extraction. This improves contrast and uniformity in underwater imagery.
147152
@@ -170,8 +175,6 @@ Starting with **v0.7.x**, videostrip supports an optional **image enhancement st
170175

171176
### Minimal YAML configuration
172177

173-
Add an `enhance` block at the top level of the config file:
174-
175178
```yaml
176179
enhance:
177180
enable: true
@@ -199,8 +202,6 @@ is set, a default sequence `{grayworld, clahe(YCrCb)}` will be applied.
199202

200203
### CLI override
201204

202-
You can also pass a shorthand string (for quick tests):
203-
204205
```bash
205206
./videostrip_cli --enhance.sequence "contrast(alpha=1.1,beta=-5); grayworld; gamma(1.05); clahe(clip=2.0,grid=8x8,space=YCrCb)"
206207
```
@@ -222,27 +223,34 @@ Schema is locked at `v1`. Future changes will bump schema_version.
222223
## **Roadmap**
223224

224225
Near-term milestones:
226+
225227
1. In-depth performance profiling
226228
2. Performance release by adding multithreading and GPU support.
229+
3. Improved cross-OS packaging (OpenCV bundle, Meshroom node)
227230

228231
Long-term:
232+
229233
* Optical flow / ECC overlap modes.
230234
* Cross-platform GUI for both pipeline configuration and dispatching.
231-
* Integration with Meshroom (node-base core library)
235+
* Meshroom integration continues in [videostrip-meshroom](https://github.com/cappelletto/videostrip-meshroom)
232236

233237
---
234238

239+
## **Contributing?**
240+
241+
For more information on how to contribute to this project, please visit the [Contributing guidelines](CONTRIBUTING.md)
242+
235243
## **License**
236244

237245
**Dual License Notice**
238246

239247
videostrip is dual-licensed under:
240248

241-
* Apache License, Version 2.0
242-
(see LICENSE.Apache or https://www.apache.org/licenses/LICENSE-2.0)
249+
* Apache License, Version 2.0
250+
(see LICENSE.Apache or [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0))
243251

244-
* GNU Lesser General Public License, Version 3.0 or later
245-
(see LICENSE.LGPL or https://www.gnu.org/licenses/lgpl-3.0.html)
252+
* GNU Lesser General Public License, Version 3.0 or later
253+
(see LICENSE.LGPL or [https://www.gnu.org/licenses/lgpl-3.0.html](https://www.gnu.org/licenses/lgpl-3.0.html))
246254

247255
You may choose to use *videostrip* as a whole under either license. Note that some dependencies (e.g., OpenCV with non-free modules) have their own licensing terms.
248256

RELEASE_NOTES.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Release Notes Draft
2+
3+
# videostrip v0.9.2 — 2025-09-25
4+
5+
## Highlights
6+
- Completed the Meshroom integration split: all node templates and scripts now live in the new [videostrip-meshroom](https://github.com/cappelletto/videostrip-
7+
meshroom) repository, keeping this tree focused on the core extractor and CLI.
8+
- Added `scripts/todo2issues.py`, a GitHub CLI helper that turns structured sections in `doc/TODO.md` into labelled issues (supports dry-run, milestone
9+
assignment, and cross-repo targeting).
10+
11+
## Breaking Changes
12+
- Meshroom node assets (`meshroom/` and `doc/TODO.md` entries tied to them) have been removed from this repository. Clone `videostrip-meshroom` alongside
13+
`videostrip` if you rely on Meshroom pipelines.
14+
15+
## Enhancements
16+
- Promoted the bundled `args.hxx` header to `third_party/args.hxx` and rewired include paths in the CLI/core targets, simplifying packaging and making the
17+
dependency boundary explicit.
18+
- Pruned the unused `videostrip_utils` module to reduce build surface area.
19+
20+
## Documentation
21+
- README now opens with the Meshroom migration notice, refreshed build/usage guidance, and a direct link to the contributing guide.
22+
- AGENTS.md updated to reference the new Meshroom repository and keep contributor roles accurate.
23+
24+
## Maintenance
25+
- TODO backlog cleaned while moving Meshroom work items into issue automation.
26+
- Version bumped to 0.9.2 in CMake to anchor release artifacts.
27+
28+
## Upgrade Notes
29+
- Consumers who automated Meshroom flows should fetch `videostrip-meshroom` and update any paths that previously referenced `meshroom/` inside this repo.
30+
- To try the TODO automation, install GitHub CLI, then run:
31+
```bash
32+
python scripts/todo2issues.py --todo doc/TODO.md --owner <github-org> --dry-run
33+
```
34+

doc/TODO.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
Perfect time to split. Below is a **migration plan** expressed as **ready-to-paste GitHub issues**, split between the two repos.
2-
3-
---
4-
51
# 📦 New repo: `videostrip-meshroom`
62

73
### Issue: **Bootstrap repository & import history**

meshroom/_config.json

Lines changed: 0 additions & 12 deletions
This file was deleted.

meshroom/videostrip_cli_meshroom

Lines changed: 0 additions & 24 deletions
This file was deleted.

meshroom/videostrip_minimal.mg

Whitespace-only changes.

meshroom/videostrip_nodes/VideostripExtractor.py

Lines changed: 0 additions & 138 deletions
This file was deleted.

meshroom/videostrip_nodes/__init__.py

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)