Repository navigation
v0.1.6
Changelog
Unreleased
0.1.6 - 2026-04-10
Fixed (Documentation)
- Clarified in
.plans/01-initial-plan.mdthat the Quick Look extension does not override the systemMovie.qlgeneratorforpublic.avifiles unless MKVQuickLook is set as the active default opener for AVI in Launch Services. TheLSHandlerRank = Ownerdeclaration is a preference, not a guarantee — if another app (e.g. VLC) is already the registered default, the system generator wins. This is a macOS architectural constraint, not a code bug.
Known Issues
- For AVI files, Quick Look uses the system
Movie.qlgenerator(AVFoundation) on systems where MKVQuickLook is not the default app forpublic.avi. This produces a working preview for files with common codecs (MPEG-4 Part 2, H.264, MP3). For exotic codecs that AVFoundation cannot decode, the user must set MKVQuickLook as the default AVI opener via Finder → Get Info → Open With → Change All. - Seek and volume delays are inherent pipeline constraints, not bugs. See README section "Playback Delays".
0.1.5 - 2026-04-10
Added
- Hover overlay play/pause toggle on the video frame — fades in on mouse enter, fades out on exit, clicking anywhere on the video frame toggles playback. Matches native Quick Look behavior.
- Buffering note label added to the expanded preview explaining that seek and volume changes have an inherent short delay caused by VLCKit's audio/video pipeline.
- README now includes a permanent technical explanation of volume buffer latency (80–200 ms) and keyframe seek latency (100–500 ms) so users understand these are inherent hardware/codec constraints, not bugs.
Changed
- Seek and volume sliders now jump immediately to the click position. Replaced
super.mouseDown(which triggered AppKit page-step behavior) with awindow?.trackEventscustom local event loop. Handle jumps on firstmouseDown;beginScrubbingis deferred to the first actual drag event, so a plain click never triggers an unwanted pause/resume cycle. - Play button removed from the controls row for video mode. The hover overlay replaces it. The play button is kept only for audio-only mode where there is no video frame to hover.
- AVI routing fixed: added
public.avitoLSItemContentTypesinCFBundleDocumentTypes. macOS assigns real.avifiles the system UTIpublic.avi; the app only claimedcom.robertwildling.mkvquicklook.avi, so Finder never routed.avifiles to it. The extensionQLSupportedContentTypesalready hadpublic.avi; only the host app ownership declaration was missing.
Removed
VLCVideoLayerHostView.swiftdeleted. It was dead code — never referenced outside its own file. The playback path exclusively usesVLCVideoView.
Known Issues
- Seek and volume delays are not bugs but inherent pipeline constraints. See README section "Playback Delays" for the full technical explanation.
- AVI playback is routed correctly but playback quality for obscure legacy codecs (DivX, old Xvid variants, uncompressed audio) depends on VLCKit codec support and may fail for unusual files.
0.1.4 - 2026-04-10
Added
- Added owned
.opusaudio support in the app and extension metadata. - Added an audio-only Quick Look mode that keeps playback controls visible without showing an empty video frame.
- Added stronger regression tests for volume state handling and for preventing playback metrics from overwriting the user-controlled volume slider position.
- Added local VLCKit volume-notification diagnostics so downstream audio timing can be measured instead of guessed.
Changed
- Full Quick Look preview autoplays again in expanded mode; compact Finder preview remains a non-live summary.
- Volume slider state is now driven by the last user-commanded value instead of repeated backend metric write-backs.
Fixed
- Selecting another file while a preview is already open now stops the previously active preview session before the new one loads, preventing stray audio from continuing in the background.
- Pause now cuts audible output immediately before VLC finishes its own state transition, so the control feels more responsive.
- Volume handle release now stays at the released position instead of snapping back to the earlier pickup position.
- The custom slider no longer pre-applies an absolute value on knob drag start, which was a real source of incorrect volume-handle movement.
Known Issues
- Direct click on the volume bar still has an observable delay on the target machine even though handle placement is now exact.
- The remaining volume-click latency is instrumented but not fully eliminated in Finder-hosted Quick Look.
0.1.3 - 2026-04-09
Changed
- Replaced the committed
VLCKitbinary payload with a pinned bootstrap download script. - Updated install, DMG-build, and GitHub Actions release paths to fetch
VLCKitautomatically when needed. - Updated the GitHub Actions release workflow to skip
RendererSmokeTestsat thexcodebuildlayer so the DMG packaging path can complete on GitHub-hosted macOS runners. - Clarified the README release flow so the asynchronous DMG upload behavior on GitHub Releases is easier to understand.
Fixed
- Reduced repository bloat by removing the tracked
VLCKitruntime payload and generated release artifacts from Git history. - Fixed the release pipeline so a tagged GitHub Actions run can finish and attach a downloadable DMG asset to the GitHub Release.
Notes
- Local development still keeps the full renderer smoke tests.
- GitHub release runs intentionally skip only the GUI renderer smoke tests; the metadata and layout tests still run in CI.
0.1.2 - 2026-04-09
Changed
- Added automatic tag-driven GitHub Release automation with a macOS GitHub Actions workflow.
- Added a script to build a release DMG and upload-ready release artifacts.
- Added developer and release documentation for GitHub Releases, ignored build artifacts, and repository size policy.
Notes
v0.1.2was the first automated-release attempt and exposed CI incompatibility in the renderer smoke tests.
0.1.1 - 2026-04-09
Added
- Bundled
VLCKitplayback backend embedded directly into the Quick Look preview extension. - Shared playback layer for the app and Quick Look extension:
MediaPreviewPlayerVLCKitMediaPreviewPlayerPreviewContentViewVideoLayout
- Playback diagnostics via unified logging under:
- subsystem:
com.robertwildling.MKVQuickLook - category:
Playback
- subsystem:
- Host-app playback lab for renderer and layout verification outside Finder.
- Renderer smoke tests that verify visible video output for real sample media.
- Metadata tests that verify Launch Services ownership and extension-supported types.
- UI regression tests for overlay visibility and playback button availability.
Changed
- Quick Look playback now starts paused by default in all contexts.
- Compact Finder column preview is non-live summary mode instead of autoplaying media.
- Finder routing now relies on exported and owned app UTIs plus document claims, not extension registration alone.
- The play/pause button was moved into the control row to the left of the seek bar.
- Volume changes while dragging are immediate.
- Seek dragging is stable and no longer snaps back to the old value after release.
- Seek and volume controls now emit timestamped diagnostics for latency analysis.
Fixed
- Finder now reliably selects
MKVQuickLookfor the supported owned media UTIs. Reflections.mkvnow renders through the custom Quick Look path instead of the stock preview.- Large-preview renderer regressions where state changed but no visible video frame appeared.
- MKV centering issues caused by earlier renderer/layout experiments.
- Immediate autoplay in Finder column preview.
- Stuck overlay text such as
Preparing video surface...after video output becomes visible. - Audio muting regressions introduced during paused-start experiments.
- Pause button becoming unavailable while VLC remained in
openingorbuffering.
Notes
aviremains best-effort support.- The current OGG sample in
example-videosresolves to audio on this machine, not Theora video. - Pure seek-bar click behavior has been strengthened again in this version and should be revalidated in Finder on the target machine.
Third-party software
This release bundles VLCKit 3.7.2 (VLC 3.0.23), licensed under the GNU LGPL 2.1 or later (license text: https://code.videolan.org/videolan/VLCKit/-/blob/3.7.2/COPYING).
- Binary: VideoLAN package
VLCKit-3.7.2-3e42ae47-79128878.tar.xz(SHA-25645fc6398c80d1f8dc0e384a9c80704848e9e82a3a382611bf531fa83c198c276) - Source code: VLCKit tag
3.7.2(commit3e42ae4786d74be5a7387e01824733cbd4b294c3): https://code.videolan.org/videolan/VLCKit/-/tree/3.7.2 - Source code: VLC 3.0.x commit
79128878ddb2c280bbb6c89c76a46b31a80ade1c, with the patches in VLCKit'slibvlc/patchesapplied: https://code.videolan.org/videolan/vlc/-/tree/79128878ddb2c280bbb6c89c76a46b31a80ade1c - Full notices: https://github.com/rowild/MKVQuickLook/blob/main/THIRD_PARTY_NOTICES.md