-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
Salem874 edited this page Apr 3, 2026
·
1 revision
Copyright Β© 2026 MWBM Partners Ltd. All rights reserved.
MeedyaConverter uses a three-layer architecture with a shared cross-platform core:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MeedyaConverter β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββ β
β β macOS App β β Windows App β β Linux App β β
β β (SwiftUI) β β (WinUI 3) β β (GTK4) β β
β ββββββββ¬βββββββββ ββββββββ¬ββββββββ ββββββββ¬βββββββββ β
β β β β β
β ββββββββ΄βββββββββββββββββββ΄βββββββββββββββββββ΄βββββββββ β
β β meedya-convert (CLI) β β
β ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ β
β β β
β ββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββ β
β β ConverterEngine β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β EncodingBackend (Protocol) β β β
β β β βββββββββββββββββββ βββββββββββββββββββββββ β β β
β β β β FFmpeg Subprocessβ β AVFoundation/ β β β β
β β β β (Direct Dist.) β β FFmpegKit Hybrid β β β β
β β β βββββββββββββββββββ βββββββββββββββββββββββ β β β
β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Target | Type | Purpose |
|---|---|---|
| ConverterEngine | Library | Cross-platform core β encoding, probing, manifests, disc reading |
| meedya-convert | Executable | CLI tool for automation and scripting |
| MeedyaConverter | Executable | macOS SwiftUI application |
Names are deliberately distinct from the Meedya product family (MeedyaDL, MeedyaManager, MeedyaDB).
The encoding backend is selected at build time via build configuration:
- FFmpeg invoked as subprocess with full GPL codecs (libx264, libx265)
- dovi_tool as subprocess for Dolby Vision
- No sandbox restrictions
- Sparkle 2 auto-updates
- AVFoundation / VideoToolbox for H.264, HEVC, ProRes (hardware-accelerated)
- FFmpegKit (LGPL linked) for codecs AVFoundation doesn't support
- dovi_tool bundled as signed helper (MIT license)
- Apple-managed updates
- Three-tier sandbox file access
- Tier 1 β User-selected access via NSOpenPanel/NSSavePanel (default)
- Tier 2 β Security-scoped bookmarks for persistent folder access (recommended)
- Tier 3 β Full Disk Access via System Settings (optional, user-granted)
Sources/
βββ ConverterEngine/ # Cross-platform core
β βββ Backend/ # EncodingBackend protocol + implementations
β βββ FFmpeg/ # FFmpeg subprocess integration
β βββ Native/ # AVFoundation/VideoToolbox integration
β βββ Encoding/ # Profiles, jobs, queue
β βββ Manifest/ # HLS/DASH manifest generation
β βββ Audio/ # Normalization, ReplayGain
β βββ Subtitles/ # Format conversion, CC handling, OCR
β βββ HDR/ # HDR10/DV/dovi_tool/DDVT
β βββ Crypto/ # AES-128, key management
β βββ Cloud/ # Upload providers
β βββ Disc/ # Optical disc reading/authoring
β βββ Models/ # Shared data models
β βββ Reports/ # Post-encoding reports
β βββ Utilities/ # Logging, process runner
βββ meedya-convert/ # CLI executable
β βββ Commands/ # ArgumentParser commands
βββ MeedyaConverter/ # macOS SwiftUI app
βββ Views/
βββ ViewModels/
βββ Components/