This repository was archived by the owner on Sep 10, 2026. It is now read-only.
Repository navigation
Releases: kcenon/video_converter
Releases · kcenon/video_converter
Release list
Video Converter v0.2.0.0
Fixed
- Session State Deadlock (#116): Resolved deadlock in
SessionStateManagerby usingthreading.RLock()instead ofthreading.Lock(). The nested lock acquisition whencreate_session()calledsave()was causing test hangs.
Changed
- Version scheme changed from 1.x.x to 0.x.x.x (project is in active development)
- Coverage Configuration: Exclude
__main__.py(CLI entrypoint) andapplescript.py(macOS-specific) from coverage measurement. Focus coverage on testable business logic modules.
Added
Core Features
- VMAF Quality Measurement (#26):
VmafAnalyzerclass for perceptual video quality measurement with VMAF score calculation,VmafScoresdataclass (min, mean, max, percentiles),VmafQualityLevelenum (visually lossless >= 93), frame sampling,quick_analyze()for fast estimation, and async support. 46 comprehensive unit tests. - Concurrent Processing (#31):
ConcurrentProcessorfor parallel video processing with configurable max concurrent jobs,ResourceMonitorfor system resource tracking,AggregatedProgressfor combined progress, semaphore-based concurrency limiting, and thread-safe job management. 32 test cases. - Error Recovery (#32):
ErrorRecoveryManagerwithErrorCategoryandRecoveryActionenums, automatic error classification, disk space monitoring,FailureRecordtracking, manual retry API, and partial output cleanup. - Retry Logic (#27):
RetryManagerwith four-stage retry (same settings → switch encoder → adjust quality → final attempt), automatic encoder fallback (HW ↔ SW), CRF adjustment,RetryConfig,RetryAttempttracking, andRetryResult. 35 unit tests.
Photos Integration
- Photos Re-Import (#101):
PhotosImporterclass for importing converted videos back to Photos library via AppleScript,import_video(),verify_import(),get_video_info()methods, configurable timeout, and comprehensive exception hierarchy (PhotosImportError,PhotosNotRunningError,ImportTimeoutError,DuplicateVideoError,ImportFailedError). - Metadata Preservation (#103):
MetadataPreserverclass withVideoMetadataSnapshot,capture_metadata(),embed_metadata_in_file()via ExifTool,apply_photos_metadata()via AppleScript,verify_metadata()withMetadataTolerancepresets, andVerificationResult. - Original Handling (#102):
OriginalHandlingenum (DELETE, ARCHIVE, KEEP),handle_original()method, CLI options (--reimport,--delete-originals,--keep-originals,--archive-album,--confirm-delete), and AppleScript integration. - Permission Guidance (#96):
--check-permissionsflag, rich panel display for permission errors,display_photos_permission_error(),display_photos_permission_success(),display_photos_library_info(), and quick access to System Settings. - Progress Display (#97):
PhotosProgressDisplaywith library info panel, two-phase progress tracking (Export/Convert), metadata display, styled summary panel, and_NullPhotosProgressfor quiet mode.
Folder Support
- iCloud Drive Support (#88): Automatic iCloud stub file detection (
.filename.icloudformat) inFolderExtractor,_is_icloud_stub(),_get_original_path_from_stub(),in_cloudandstub_pathproperties,FolderConfigwith iCloud settings, and_ensure_file_available()in Orchestrator. 15 unit tests. - Folder Extractor:
FolderExtractorclass for direct video conversion from filesystem folders, recursive scanning with include/exclude patterns, video codec detection,FolderVideoInfoandFolderStatsdataclasses. 62 test cases.
Automation
- Service Management (#35): Public
load(),unload(),restart()methods inServiceManager, permission checking, CLI commands (service-start,service-stop,service-load,service-unload,service-restart,service-logs),--followand--stderroptions. - Status Query (#36):
calculate_next_run(),get_last_run_info(),get_detailed_status()methods,LastRunInfoandDetailedServiceStatusdataclasses, enhanced CLIstatuscommand with next run time and statistics. 26 tests.
UI/UX
- Rich Progress Display (#38):
ui/progress.pymodule withSingleFileProgressDisplay,BatchProgressDisplay,IndeterminateSpinner,ProgressDisplayManager, custom Rich columns (SizeProgressColumn,SpeedColumn,ETAColumn), and null object pattern for quiet mode. 35 unit tests. - Statistics Reporter:
StatisticsReporterclass withStatsPeriodenum, time-based filtering (today, week, month, all), enhancedstatsCLI command,stats-exportfor JSON/CSV,--detailedand--periodoptions. - macOS Notifications:
NotificationManagerclass with automatic batch completion notifications, success/partial/failure types, summary statistics,NotificationConfig, and Orchestrator integration.
Quality & Validation
- Metadata Verification (#22):
MetadataVerifierclass for comprehensive metadata comparison,ToleranceSettings(date: 1s, GPS: 0.000001°, duration: 0.1s),CheckResultandVerificationResultdataclasses, category-based verification, and tolerance profiles. 43 test cases. - Timestamp Sync (#21):
TimestampSynchronizerfor copying timestamps,FileTimestampsdataclass, birth time support on macOS via SetFile,TimestampVerificationResult,preserve_timestampsconfig option. 23 test cases. - Conversion History (#18):
ConversionHistoryclass for duplicate prevention,ConversionRecorddataclass,HistoryStatistics, UUID and file hash identification, JSON persistence, export functionality. 41 test cases.
Other
- iCloud Download (#16):
iCloudHandlerfor detecting and downloading iCloud videos,CloudStatusenum, stub file analysis, brctl download triggering,DownloadProgresstracking,icloud_timeoutandskip_cloud_onlyoptions. - Real-time Progress (#11):
ProgressInfodataclass with ETA calculation,ProgressParserfor FFmpeg output,ProgressMonitorwith throttling,create_simple_callbackhelper. - 10-bit HDR Encoding:
bit_depthoption for 8/10-bit,hdroption for HDR10 (BT.2020 PQ), libx265 10-bit support with yuv420p10le.
Test Infrastructure
- Integration Tests (#115):
test_vmaf_integration.py(29 tests),test_concurrent_integration.py(24 tests),test_error_recovery_integration.py(34 tests),test_icloud_folder_integration.py(31 tests),test_statistics_integration.py(47 tests),test_notification_integration.py(49 tests). - Test Coverage (#116): Verified 81.62% unit test coverage, exceeding 80% target. Added
mock_osxphotosfixture, updatedtest_config_version, refactoredtest_photos_extractor.py. - Photos CLI Tests (#98):
test_photos_handler.py,test_photos_permissions.py,test_photos_progress.py,test_photos_cli.py. - Photos Re-Import Tests (#104):
test_photos_metadata_preservation.py,test_photos_original_handling.py,test_photos_reimport.py.