Initial public beta release for Apple Silicon. Introduces the Metal SDR → HDR highlight expansion compute pipeline, resolves six upstream HDR defects, introduces the redesigned 8-pane settings architecture, and integrates native macOS system materials.

Download v0.9.0 MacLC-0.9.0-arm64.dmg · 78.4 MB · Apple Silicon (M1 or newer)

SDR → HDR Highlight Expansion

  • Metal Compute Pipeline (VLCHDRExpander): Implemented an 895-line Metal compute shader that re-encodes standard dynamic range (SDR) video into 10-bit PQ / BT.2020 in real time.
  • Preserved Mid-Tones and Hue: The expansion curve is the identity at and below a knee at half SDR white (50%), transitioning into a quadratic curve above the knee matching value and slope. Scaling is applied to the maximum RGB component, ensuring hue and saturation never shift.
  • Measured Benchmark Performance: Benchmarked on Apple M3 Max at 0.53 ms per frame for 1080p and 0.91 ms per frame for 4K video, including synchronous display synchronization. Wall-clock runtimes match baseline playback with zero memory drift.
  • Live Headroom Clamping: Dynamic boost is user-adjustable from 1.0× (disabled) to 16.0× (default 4.0×), automatically clamped to the connected display’s real physical headroom. Transitions apply instantly to the current frame mid-playback.

Upstream HDR Defect Fixes

  • Multi-Display Headroom Tracking: Resolved an upstream issue where display brightness headroom was sampled once from the primary display. Headroom is now re-measured whenever a window moves between displays or color profiles change.
  • Live Preference Wiring: Fixed non-functional HDR controls in Preferences. The HDR mode selector and boost sliders now apply immediately during playback.
  • SDR Tone-Mapping Path: Implemented a dedicated conversion path to gracefully compress HDR content on standard SDR displays, eliminating flat-white clipping.
  • BT.2408 Subtitle Luminance Clamping: Fixed subtitles rendering at peak display luminance. Subtitles are now anchored to SDR and mapped to the ITU-R BT.2408 203-nit reference white level.
  • High-Bit-Depth Preservation: Prevented 12-bit and 16-bit video sources from being downsampled to 8-bit. Full 10-bit display output is preserved, with 16-bit 4:2:2 wired cleanly through the pipeline.
  • Sub-4K Stream Color Tagging: Corrected wide-gamut and mastering metadata tagging on sub-4K HDR files, ensuring correct color primaries on all streams.

Hardware Decode & Performance Enhancements

  • Hardware AV1 on M3 & M4: Integrated VideoToolbox hardware-accelerated AV1 decoding on Apple Silicon M3 and M4 chips, with automatic software fallback for M1 and M2 processors.
  • HDR10+ Dynamic Metadata: Added passthrough support for HDR10+ metadata packets across the video filter graph.
  • Dolby Vision Stream Extraction: Hardened VideoToolbox bitstream parsers, fixing an upstream defect where Dolby Vision metadata was dropped due to a stray bit on the initial frame.
  • ARM64 NEON Optimization: Replaced scalar software-decode loops with hand-optimized ARM64 NEON vector instructions for chroma conversion.
  • OpenGL Core Profile for libplacebo: Enabled OpenGL 4.1 / 3.2 Core profiles with 64-bit color, unblocking advanced shader stages and resolving legacy version errors.
  • Display Metadata Passthrough: Fixed ST 2086 mastering-display and CTA-861.3 content-light-level metadata forwarding to macOS display services.
  • Per-Window Color Matching: Calibrated rendering to the ICC profile of the specific screen containing the playback window.

Redesigned Settings Architecture

  • Unified 8-Pane Window: Replaced legacy preferences with a single structured window featuring a category sidebar and real-time search across labels, descriptions, and keywords.
  • Plain-Language Impact Descriptions: Every control now features a clear explanation of what you will see or hear (e.g., “highlights keep detail but the picture is dimmer overall” rather than raw technical jargon).
  • Guarded Configuration Reads: Wrapped all 240 preference lookups in guarded handlers, eliminating an upstream application abort caused by missing keys in the interface pane.
  • Power User Access: Preserved access to the complete low-level upstream libVLC configuration tree via an expandable disclosure.
  • Self-Validating Startup: Implemented an automated verification pass on launch (8 panes verified, 8 ok, 0 failed).

macOS Integration & System Materials

  • MacLCDesign Token Layer: Unified colors, typography, radii, and spacing into semantic tokens tied directly to macOS system appearances.
  • Native AppKit Sidebar: Integrated a true source-list sidebar with native vibrancy, materials, and collapse behaviors.
  • HUD Playback Controls: Introduced floating on-screen transport controls with SF Symbol-style iconography and tabular-num timecodes to prevent visual jitter.
  • 8-Point Layout Grid: Normalized interface metrics to an 8-point grid, raising click targets from 25 pt to 32 pt.
  • Built-in Accessibility: Native compliance with Reduce Motion, Increase Contrast, Reduce Transparency, and VoiceOver without custom overrides.

Identity & Isolation

  • Isolated Bundle Identifier: Assigned org.maclc.MacLC, preventing dock and Stage Manager collisions with existing VLC installations.
  • Non-Destructive Configuration Migration: On initial launch, existing VLC preferences and Application Support directories are safely copied, leaving original files unchanged.
  • Programmatic Superellipse Icon: Original app icon designed on Apple’s 824/1024 grid, rendered with an amber highlight bloom and specular edge.
  • Preserved Localizations: Retained all upstream translations with post-processed application naming.

Stability & Lifecycle Fixes

  • Clean Process Teardown: Fixed an upstream use-after-free crash occurring consistently on application quit.
  • Deadlock Resolution: Eliminated thread deadlocks and playback stalls during rapid media switching.
  • Channel & Layer Fixes: Corrected swapped subtitle audio routing, dangling display references, and infinite Core Animation layer wait conditions.