Releases: mapillary/mapillary_tools
v0.14.4
v0.14.3
v0.14.2
v0.14.1
🚀 Features
- Upload images with keep-alive: Improve image uploads by enabling keep-alive connections, resulting in faster and more reliable uploads. Now images are uploaded with 4 keep-alive connections by default. (by @ptpt in #772)
🛠️ Improvements
- Enable multiprocessing logging: Added logging support for multiprocessing in verbose mode, making debugging and monitoring easier (by @ptpt in #774)
🐞 Bug Fixes
- Graceful handling of authentication timeouts: Authentication now properly handles request timeouts, preventing abrupt failures and improving user experience (by @ptpt in #773)
- Fix unhandled exception in EXIF XML parsing: Prevent crashes caused by unhandled exceptions during exiftool XML parsing (by @nickplesha in #776)
- Calculate video file size with GPX extractor: Video file sizes are now correctly calculated when using the GPX extractor tool (by @nickplesha in #775)
Full Changelog: v0.14.0...v0.14.1
v0.14.0
🌟 Highlights
-
🚀 Performance Boosts:
Enjoy massive speed improvements across the board, including faster native EXIF, GoPro, CAMM, and Blackvue video processing. Uploads and processing are now significantly more responsive, making large dataset handling smoother than ever. -
🛠️ Built-in ExifTool Fallback:
Mapillary Tools now uses its optimized native parsers for EXIF, CAMM, GoPro, and related metadata by default. If native parsing fails, it seamlessly falls back to using the ExifTool installed on your system, ensuring robust and reliable metadata extraction for all your files. -
📤 File-by-File Upload:
Images are now uploaded individually, eliminating the need to create zip archives before uploading. This approach greatly reduces intermediate disk usage, speeds up the upload process, and enhances reliability—especially with large or interrupted uploads.
🚀 Features
- Improved Authentication: Enhanced authentication flow for a smoother user experience. (#733)
- Image Upload Flexibility: Added support for uploading images file by file. (#753)
- More Upload Options: Introduced additional upload options for debugging/development purpose. (#764)
- Export as GPX: Now you can export descriptions as GPX files for visualization (just name your desc file as .gpx, i.e.
--desc_path=foo.gpx
). (#759)
🛠️ Improvements
- Performance Boosts: Major speed-ups in native EXIF, GoPro, CAMM, and Blackvue video processing. (#721, #722, #729, #731)
- Remove md5sum from Processing: Removed unnecessary md5sum calculation to speed up processing. (#725)
- Better Upload Progress: Enhanced upload progress tracking and error handling. (#760, #736)
- Geotagging Workflow: Improved geotagging process, including fallback with exiftool and better EXIF extraction. (#737, #728, #743)
- Improved Logging: Logging is now more informative and easier to read. (#769)
- EXIFTool Speed: Runs exiftool with the
-fast
parameter for quicker metadata extraction. (#745) - Timezone-aware gpxpy: Upgraded
gpxpy
to handle timezones correctly. (#768) - Upload Timeouts: Added configurable upload timeouts to prevent hanging uploads. (#767)
- Upload Handle Caching: Upload handles are now cached to avoid offset reset issue (upload from beginning) and improved efficiency. (#766)
🐛 Bug Fixes
- EXIF Extraction: Fixed issues with EXIF data extraction and MAPFilename restoration. (#728, #739)
- Upload Consistency: Ensured session keys are unique and the same sequence generates the same zip file. (#752, #738)
- GoPro & Blackvue Compatibility: Improved camera detection and parsing for GoPro and Blackvue 900x. (#740, #756)
- Source Options & Sequence Splitting: Fixed issues with source option handling and sequence splitting. (#754, #763)
- Progress Bar: Fixed duplicate initialization of the progress bar. (#765)
- Sample Video Quality: Addressed issues affecting sample video quality. (#761)
- Duplication Check: Improved duplicate detection when compass angles are missing. (#718)
- NMEA Parsing: Enhanced support for NMEA GGA/GLL/RMC sentences in Blackvue videos. (#757)
👷 CI
- PyInstaller Builds: Create builds in a folder using PyInstaller
onedir
. (#742) - Packaging with Python3.13: Upgrade from Python 3.11 to Python 3.13. (78fd6a49db)
- Build System Updates: Switched to
pyproject.toml
for build configuration. (#755)
♻️ Refactoring & Chores
- Uploader Refactors: Major refactoring in uploader-related modules and CAMM/MP4 builder for maintainability. (#734, #735, #758)
- Visitor Pattern for CAMM: Refactored CAMM parsing using the visitor pattern. (#723)
- Geotagging Clean-up: Moved and simplified geotagging logic for clarity. (#726, #727)
- Upload Zips Refactor: Improved logic for uploading zipped files. (#732)
- Test Improvements: Added and fixed tests, including CLI and sequence processing tests. (#720, #730)
- GoPro gpmf Module: Consolidated all GoPro related code in the
gpmf
module. (#724) - Types Upgrade: Upgraded types for better code reliability. (#741)
- General Refactors: Various improvements and simplifications in ffmpeg usage and upload service. (#762, #758)
- Uploader Enhancements: Refined uploader modules for reliability and maintainability. (#734, #735, #758)
Full Changelog: v0.13.3...v0.14.0
v0.14.0b1
What's Changed
Here are the release notes/changelog based on the provided pull requests:
New Features
- Support uploading images file by file: You can now upload images one at a time, improving flexibility and reliability in the upload process. (#753 by @ptpt)
- Export descriptions as GPX: Descriptions can now be exported in GPX format, aiding integration with GPS tools and workflows. (#759 by @ptpt)
Improvements
- Improved BlackVue video NMEA support: Enhanced support for parsing NMEA GGA, GLL, and RMC sentences in BlackVue videos, leading to better metadata extraction. (#757 by @ptpt)
- Upload service refactored: The upload service has been improved for better maintainability and reliability. (#758 by @ptpt)
- FFmpeg handling refactored: FFmpeg integration has been cleaned up, laying groundwork for future improvements. (#762 by @ptpt)
Bug Fixes
- Ensure session key uniqueness for uploads: Fixed an issue where session keys were not unique to the uploaded content, which could cause conflicts. (#752 by @ptpt)
- BlackVue 900x parsing fixed: Addressed issues with parsing data from BlackVue 900x series videos. (#756 by @ptpt)
- Sample video quality improved: Fixed problems related to the quality of sample videos. (#761 by @ptpt)
- Source options handling fixed: Resolved issues with the handling of source options during processing. (#754 by @ptpt)
Performance
- Use exiftool -fast parameter: Improved performance by utilizing the
-fast
parameter when running exiftool, resulting in faster metadata extraction. (#745 by @nickplesha)
Maintenance
- Upgraded to pyproject.toml: Migrated project configuration to
pyproject.toml
for modern Python packaging and dependency management. (#755 by @ptpt)
Full Changelog: v0.14.0a2...v0.14.0b1
v0.14.0a2
What's Changed
- Improve: geotag and fixed
NotImplementedError
error by @ptpt in #743 - CI: Create folder builds with Pyinstaller by @nickplesha in #742
- Chore: upgrade types by @ptpt in #741
Full Changelog: v0.14.0a1...v0.14.0a2
v0.14.0a1
🚀 Features
🐛 Bug Fixes
- fix: EXIF extraction by @ptpt in #728
- fix: add back MAPFilename by @ptpt in #739
- fix: check distance for duplications when compass angles are not found by @ptpt in #718
- fix: distinguish GoPro and other cameras using the same gpmd format by @ptpt in #740
- fix: make sure the same sequence always produces the same zipfile by @ptpt in #738
🔧 Improvements
- improve: check video sequence/video for null island, speed, and file size by @ptpt in #719
- improve: improve authentication UI by @ptpt in #733
- improve: add tests for sequence processing by @ptpt in #720
- improve: handle upload errors by @ptpt in #736
- improve: performance for CAMM processing by @ptpt in #731
- improve: performance for blackvue processing by @ptpt in #729
- improve: remove md5sum calculation from processing stage by @ptpt in #725
- improve: speed up GoPro processing by @ptpt in #722
- improve: speed up native EXIF parsing by @ptpt in #721
🛠️ Refactors and Chores
- refactor: Improve uploader and CAMM mp4 builder by @ptpt in #735
- refactor: improve uploader related modules by @ptpt in #734
- refactor: move stationary check from geotagging to process_sequence_properties.py by @ptpt in #726
- refactor: simplify geotagging by @ptpt in #727
- refactor: upload zips by @ptpt in #732
- refactor: use visitor pattern to parse different CAMM entries by @ptpt in #723
- chore: add all GoPro related to gpmf module by @ptpt in #724
- chore: decrease chunk size to make upload more responsive by @ptpt in #717
- chore: fix test cli by @ptpt in #730
Full Changelog: v0.13.3...v0.14.0a1
v0.13.3
What's Changed
Improvements
- Improve: use chunked transfer encoding to improve stability for streaming large files in #714
- Chore: increase the filesize limit per sequence to 110GB in 7a0edd6
- Improve Logging for API HTTP requests (#715)
CI
- Switch back to Ubuntu 20.04 to build linux binaries (#716)
Full Changelog: v0.13.2...v0.13.3
v0.13.3a1
What's Changed
- improve: use chunked transfer encoding to improve stability for streaming large files in #714
- chore: increase the filesize limit per sequence to 110GB in 7a0edd6
Full Changelog: v0.13.2...v0.13.3a1