Repository navigation
Releases
v0.1.13
Fixed
- Rare crash of the Quick Look extension in
libvlc_event_send(EXC_BAD_ACCESS), seen with 0.1.5 and 0.1.8 (Pitfall #25). Cause: a VLCKit 3.7.2 bug (its libvlc patch 0024, asynchronous stop). When a player is released while a play waits behind an asynchronous stop, VLCKit starts that playback during the release and then frees the player; the new playback sends its events into the freed player. The player now always sends a last stop just before it is released, which cancels the waiting play. A test program crashed within 20 rounds without this stop (3 of 3 runs) and ran 200 rounds without a crash with it (2 of 2 runs). - Release automation: the DMG step failed on GitHub on the first 0.1.12 run ("No space left on device"; a re-run worked). Without
-size,hdiutilestimates the image size, and the estimate was too small for VLCKit.scripts/build-release-dmg.shnow passes the folder's apparent size plus 20% and 20 MB.
Tests
- New smoke test: release a player right after stop and play, 40 times. Without the fix it crashed the test process in
libvlc_event_send. - Checked by hand: Quick Look in Finder (maintainer, 2026-10-11: quick switching, pause and play, closing during playback),
qlmanage -pwith the extension's log, no new crash reports; 3 × 40 stress cycles without a hang; the DMG script locally (a too-small-sizegives the exact GitHub error; the new size gives a valid DMG).
Known Issues
- The crash was rare in normal use (2 reports), so the fix is proven by the reproduction and the test, not yet by long use. The same is true for the freeze fix of 0.1.12.
- The release workflow builds with Xcode 16.2 (Swift 6.0); local development uses Xcode 27. The new
StopBeforeReleasecode is first compiled with Swift 6.0 by the release run. - All other Known Issues of 0.1.12 remain.
Third-Party Software
MKVQuickLook's own source code is licensed under the MIT License (see LICENSE).
The app also contains the following third-party software. It keeps its own license.
VLCKit 3.7.2 (with libVLC, VLC 3.0.23)
- Copyright: VideoLAN and the VLC and VLCKit authors
- License: GNU Lesser General Public License, version 2.1 or later (LGPL-2.1-or-later)
- License text in the app:
MKVQuickLook.app/Contents/Resources/VLCKit-COPYING.txt - Location in the app:
MKVQuickLook.app/Contents/Frameworks/VLCKit.framework. MKVQuickLook uses it unmodified, as a separate dynamic framework. The Quick Look extension loads it from there. - Binary used: the official VideoLAN package
https://download.videolan.org/cocoapods/prod/VLCKit-3.7.2-3e42ae47-79128878.tar.xz
(SHA-25645fc6398c80d1f8dc0e384a9c80704848e9e82a3a382611bf531fa83c198c276)
Corresponding source code
- VLCKit, tag
3.7.2(commit3e42ae4786d74be5a7387e01824733cbd4b294c3):
https://code.videolan.org/videolan/VLCKit/-/tree/3.7.2
(mirror: https://github.com/videolan/vlckit/tree/3.7.2) - VLC (libVLC), branch
3.0.x, commit79128878ddb2c280bbb6c89c76a46b31a80ade1c:
https://code.videolan.org/videolan/vlc/-/tree/79128878ddb2c280bbb6c89c76a46b31a80ade1c
(mirror: https://github.com/videolan/vlc/tree/79128878ddb2c280bbb6c89c76a46b31a80ade1c)
VLCKit's build applies the patches inlibvlc/patchesof the VLCKit tag above to this commit. - The libraries that VLC builds into VLCKit (for example FFmpeg, built here under LGPL-2.1-or-later) are defined, with their versions and checksums, in
contrib/srcof that VLC source.
Replacing VLCKit
You may replace MKVQuickLook.app/Contents/Frameworks/VLCKit.framework with a modified, interface-compatible build. Then re-sign the framework and the app, for example:
codesign --force --sign - MKVQuickLook.app/Contents/Frameworks/VLCKit.framework
codesign --force --sign - MKVQuickLook.appv0.1.12
Fixed
- Rare freeze of the Quick Look extension (Pitfall #20). Cause: VLCKit 3.7.2 saves VLC's settings after every media release and every input close (its libvlc patches 0015 and 0024). That save reads VLC's settings lock twice. On macOS, a thread that waits to write the settings blocks the second read, and both threads wait forever. Writers are frequent: the audio output records its device when it closes at every stop, and a volume change records the volume. VLC skips the save before the second read when its settings file is read-only. MKVQuickLook's VLC engine now uses its own empty, read-only settings file (
Application Support/MKVQuickLook/vlcrc; for the extension inside its sandbox container), passed with VLC's--configoption through VLCKit'sVLCParamsuser default. - The Renderer Lab and the tests (all processes outside the sandbox) read and wrote VLC.app's settings file,
~/Library/Preferences/org.videolan.vlc/vlcrc, for example the last preview volume. They no longer touch it.
Changed
- Every new preview, and the Renderer Lab, starts at 35% volume instead of 100%. The slider still goes from 0 to 200%. Within one preview, the volume you set stays after stop and play again.
- Git ignores
.serena/(a local code-tool cache). The plan file has a new Backlog section: notarization, and sound after switching to another previewer in Gallery view.
Tests
- New: the settings file is created read-only; VLCKit gets the
--configoption and keeps its own default options; a real playback with a volume change and a stop makes VLC log "configuration file is read-only" and changes neither settings file; the player and the slider start at 35%. - Checked by hand: Quick Look in Finder (maintainer, 2026-10-11) and
qlmanage -pwith the extension's log; the sandboxed extension creates its read-only file in its container.
Known Issues
- The freeze was rare (3 times in stress runs, never seen in normal use), so no test run can prove it is gone. The fix removes the lock pattern itself. Evidence: VLC's source code, lldb, the new smoke test, and 3 × 40 stress cycles without a hang.
- Not fixed: a separate, rare VLCKit crash in
libvlc_event_send(EXC_BAD_ACCESS) while a player shuts down; seen twice in the extension (0.1.5 on 2026-10-06, 0.1.8 on 2026-10-10). macOS starts a new extension process for the next preview.
Third-Party Software
MKVQuickLook's own source code is licensed under the MIT License (see LICENSE).
The app also contains the following third-party software. It keeps its own license.
VLCKit 3.7.2 (with libVLC, VLC 3.0.23)
- Copyright: VideoLAN and the VLC and VLCKit authors
- License: GNU Lesser General Public License, version 2.1 or later (LGPL-2.1-or-later)
- License text in the app:
MKVQuickLook.app/Contents/Resources/VLCKit-COPYING.txt - Location in the app:
MKVQuickLook.app/Contents/Frameworks/VLCKit.framework. MKVQuickLook uses it unmodified, as a separate dynamic framework. The Quick Look extension loads it from there. - Binary used: the official VideoLAN package
https://download.videolan.org/cocoapods/prod/VLCKit-3.7.2-3e42ae47-79128878.tar.xz
(SHA-25645fc6398c80d1f8dc0e384a9c80704848e9e82a3a382611bf531fa83c198c276)
Corresponding source code
- VLCKit, tag
3.7.2(commit3e42ae4786d74be5a7387e01824733cbd4b294c3):
https://code.videolan.org/videolan/VLCKit/-/tree/3.7.2
(mirror: https://github.com/videolan/vlckit/tree/3.7.2) - VLC (libVLC), branch
3.0.x, commit79128878ddb2c280bbb6c89c76a46b31a80ade1c:
https://code.videolan.org/videolan/vlc/-/tree/79128878ddb2c280bbb6c89c76a46b31a80ade1c
(mirror: https://github.com/videolan/vlc/tree/79128878ddb2c280bbb6c89c76a46b31a80ade1c)
VLCKit's build applies the patches inlibvlc/patchesof the VLCKit tag above to this commit. - The libraries that VLC builds into VLCKit (for example FFmpeg, built here under LGPL-2.1-or-later) are defined, with their versions and checksums, in
contrib/srcof that VLC source.
Replacing VLCKit
You may replace MKVQuickLook.app/Contents/Frameworks/VLCKit.framework with a modified, interface-compatible build. Then re-sign the framework and the app, for example:
codesign --force --sign - MKVQuickLook.app/Contents/Frameworks/VLCKit.framework
codesign --force --sign - MKVQuickLook.appv0.1.11
Added
LICENSE: MKVQuickLook's own code is released under the MIT License. The repository had no license before.THIRD_PARTY_NOTICES.md: VLCKit 3.7.2 (VLC 3.0.23) under the LGPL 2.1 or later, with the exact binary package, the corresponding source code (VLCKit tag3.7.2, commit3e42ae47…; VLC 3.0.x commit79128878…plus VLCKit'slibvlc/patches), and how to replace VLCKit and re-sign the app (verified on a copy of the app).- The app ships
LICENSEandTHIRD_PARTY_NOTICES.mdnext toVLCKit-COPYING.txtinContents/Resources(a bundle test compares them with the repository files). Settings has a new "License" section with a link to the VLCKit source code and a button that shows the license files in Finder. - GitHub release notes append
THIRD_PARTY_NOTICES.mdafter the version's CHANGELOG section.
Fixed
- The Settings window was fixed at 420 pt, but its content needed about 550 pt, so the lower sections were cut off. The window now takes the height of its content.
- The main window still said VLCKit was "bundled inside the app extension"; since 0.1.10 it is bundled inside the app, and the extension loads it from there.
Known Issues
- This is a technical licensing review, not legal advice. Of VLCKit's 244 built-in VLC modules, the three that an old VideoLAN note still listed as GPL (
stream_out/transcode,stream_out/standard,access_output/http) were checked in the VLC 3.0.x source and are LGPL-2.1-or-later; the others were not checked one by one. - The notices link to the source code at VideoLAN and its GitHub mirror; the source archives are not attached to the GitHub releases.
- All Known Issues of 0.1.10 remain.
Third-Party Software
MKVQuickLook's own source code is licensed under the MIT License (see LICENSE).
The app also contains the following third-party software. It keeps its own license.
VLCKit 3.7.2 (with libVLC, VLC 3.0.23)
- Copyright: VideoLAN and the VLC and VLCKit authors
- License: GNU Lesser General Public License, version 2.1 or later (LGPL-2.1-or-later)
- License text in the app:
MKVQuickLook.app/Contents/Resources/VLCKit-COPYING.txt - Location in the app:
MKVQuickLook.app/Contents/Frameworks/VLCKit.framework. MKVQuickLook uses it unmodified, as a separate dynamic framework. The Quick Look extension loads it from there. - Binary used: the official VideoLAN package
https://download.videolan.org/cocoapods/prod/VLCKit-3.7.2-3e42ae47-79128878.tar.xz
(SHA-25645fc6398c80d1f8dc0e384a9c80704848e9e82a3a382611bf531fa83c198c276)
Corresponding source code
- VLCKit, tag
3.7.2(commit3e42ae4786d74be5a7387e01824733cbd4b294c3):
https://code.videolan.org/videolan/VLCKit/-/tree/3.7.2
(mirror: https://github.com/videolan/vlckit/tree/3.7.2) - VLC (libVLC), branch
3.0.x, commit79128878ddb2c280bbb6c89c76a46b31a80ade1c:
https://code.videolan.org/videolan/vlc/-/tree/79128878ddb2c280bbb6c89c76a46b31a80ade1c
(mirror: https://github.com/videolan/vlc/tree/79128878ddb2c280bbb6c89c76a46b31a80ade1c)
VLCKit's build applies the patches inlibvlc/patchesof the VLCKit tag above to this commit. - The libraries that VLC builds into VLCKit (for example FFmpeg, built here under LGPL-2.1-or-later) are defined, with their versions and checksums, in
contrib/srcof that VLC source.
Replacing VLCKit
You may replace MKVQuickLook.app/Contents/Frameworks/VLCKit.framework with a modified, interface-compatible build. Then re-sign the framework and the app, for example:
codesign --force --sign - MKVQuickLook.app/Contents/Frameworks/VLCKit.framework
codesign --force --sign - MKVQuickLook.appv0.1.10
Changed
VLCKitis embedded once instead of twice. The app is about 80 MB instead of 158 MB, and the DMG about 40 MB instead of 74 MB. The app embedsVLCKit.frameworkinContents/Frameworks; the Quick Look extension only links it. BecauseVLCKitrecords its load path as@loader_path/../Frameworks/..., a build step of the extension target (scripts/link-extension-to-app-vlckit.sh) rewrites the extension's reference to@loader_path/../../../../Frameworks/...after linking and re-signs the binary ad hoc. The build fails if the reference is not the expected one.scripts/verify-vlckit-load-paths.shchecks a built app (oneVLCKitcopy, every reference resolves).install-local.shandbuild-release-dmg.shrun it before they install or package, and they now sign the app'sVLCKitcopy.- The test file
Tests/VideoLayoutTests.swiftis split by topic intoVideoLayoutTests,MediaKindTests,PreviewContentViewTests,PreviewPlaybackLifecycleTests,PreviewPlayerBindingTests,MediaPreviewPlayerSessionTests,RendererSmokeTestsandTestSupport(shared spies and helpers). All 41 existing tests are unchanged.
Added
- Bundle tests
testBuiltAppEmbedsVLCKitOnceandtestEveryBinaryCanResolveItsVLCKitLoadPath. The second one resolves the app's and the extension'sVLCKitload paths the way dyld does, so a bundle layout that would crash the extension at launch fails the tests.
Known Issues
- The intermittent
VLCKitteardown deadlock (see 0.1.9) hit the renderer smoke tests again in 1 of 3 runs while this release was prepared. The smoke tests do not involve the bundle layout. The trigger is still unknown. - All other Known Issues of 0.1.9 remain, except the app size, which this release fixes.
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
v0.1.9
Fixed
- A preview that Finder had already closed no longer starts again, out of sight and with sound. Finder lays a closed preview out once more (for example in Gallery view), and that layout pass reloaded and restarted the video. The load/start/stop decision now lives in
PreviewPlaybackLifecycle: a closed preview stays stopped until it is prepared or shown again. - The play button works again after "Playback stopped".
stop()unloads the media; pressing play now reloads the last file instead of doing nothing. - In the Space window, moving to a file that Quick Look shows with another previewer (for example an AVI) no longer leaves the previous video playing in the background. Quick Look does not tell the extension; Finder does close its column preview of the previous file at that moment, and a closed preview of the playing file now stops it. This works in column view and whenever the Finder preview pane is open.
Changed
- Lifecycle diagnostics in the unified log:
[ql] prepare / autoplay / will-appear / did-disappear / stop,[session] …and[load]/[stop]per player. MediaPreviewPlayer.loadedFileURLexposes the file last passed toloadMedia(from:).
Known Issues
- Gallery view, and list or icon view without the preview pane: when Finder switches to a file shown by another previewer (
.mp4,.mov,.avi), the previous MKVQuickLook preview keeps playing until Finder closes it. Finder sends the extension no signal in these cases. - Rare, intermittent freeze inside VLCKit while a player is destroyed: two VLCKit cleanup threads deadlock on VLC's configuration lock. Reproduced 3 times in a load/stop stress program and in 2 renderer smoke-test runs, then 0 times in 10 alternating runs of the 0.1.7 and 0.1.8 player code. The trigger is not known, and it is not known whether 0.1.8 made it more likely.
- Renderer smoke tests can hang when VLCKit produces no video output, because stopping the player then blocks. Run them with
-test-timeouts-enabled YES -default-test-execution-time-allowance 60. - All Known Issues of 0.1.8 remain.
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
v0.1.8
Fixed
.ogg,.oga,.opusand.ogvfiles now reach the Quick Look extension on Macs where another app (for example a Chromium-based browser) declaresorg.xiph.ogg-audio/org.xiph.ogg-video. macOS resolved these files to those identifiers, whichQLSupportedContentTypesdid not list. A new test checks the identifier this Mac resolves for every advertised extension.- The "Preparing video surface..." placeholder no longer reappears over a playing video after a layout pass (window resize, full screen). A failure message is no longer replaced on the next layout pass.
- Audio-only Ogg files use the audio preview layout instead of an empty black video frame. Audio vs. video is now decided from the tracks VLCKit parses, not from the file extension.
- Renderer smoke tests pointed to a missing
Reflections.mkvsample. They now useReflections-test.mkvand name the missing file when a local sample is absent. - Loading a file no longer parses it on the main thread. The deprecated
synchronousParse()blocked the Quick Look window on large files or slow volumes. Parsing now runs asynchronously (parse(options:timeout:), 5 s timeout), and the video size and audio/video kind arrive throughmediaDidFinishParsing(_:). The player keeps its own reference to the currentVLCMedia, becauseVLCMediaPlayerdoes not keep it alive and itsmediagetter returns a different object. - AppKit no longer logs "Invalid view geometry" while the video frame is smaller than 2 pt.
VideoLayout.fittedRectreturned the null rect (infinite origin) it got from insetting tiny bounds; it now returns.zerofor null or infinite bounds.
Added
- The video play/pause overlay is an accessibility button ("Play" / "Pause"), so VoiceOver, Voice Control and Full Keyboard Access can start and pause a video.
- The app ships the VLCKit license (LGPL 2.1) at
MKVQuickLook.app/Contents/Resources/VLCKit-COPYING.txt. A test checks the built app for it.
Changed
- The host app no longer advertises AVI and now lists Opus in its supported formats. Leftover development wording ("scaffold", "Next Implementation Step", "remaining work", "current phase") was replaced.
- The Renderer Lab can open
.opusfiles. - The Quick Look extension and the Renderer Lab now share one tested player/view wiring (
PreviewPlayerBinding) instead of two hand-copied versions. Diagnostics keep thecontroller-*andlab-*log names. PreviewContentViewstores its presentation mode instead of reading it from a hidden label.- Removed code without effect:
VolumeFeedbackStateandMediaPreviewPlaybackMetrics.volume(the view never read them), the unusedsetMuted, an emptyupdateTrackingAreasoverride, aperform()inendScrubbingthat never applied a seek, and redundantawait MainActor.runcalls. The[volume] metricslog now reports the actual VLCKit volume. scripts/install-local.shbuilds into its own.build/install-derived-datafolder instead of searching Xcode's shared DerivedData, which could pick up a stale build from another copy of the project. A failed build now prints the errors and the log path.- GitHub releases use only the matching
CHANGELOG.mdsection as release notes (scripts/changelog-section.sh), not the whole file. The release job fails if that section is missing. .claude/settings.json: removed permission rules for a deleted file and for an old project path.project.yml: removed theresources:keys. XcodeGen ignored them, so they never copied anything; regenerating the project without them produces an identical project file. The license file is added throughsourceswithbuildPhase: resources.
Documentation
- README: fixed the workflow link, which pointed to a local path on the developer's Mac.
- The 0.1.7 entry said all AVI references were removed. The bundle registration, the bundle metadata tests, and the Renderer Lab still reference AVI on purpose.
- Corrected the AVI notes in
.plans/01-initial-plan.md(Pitfall #9). This also corrects the 0.1.6 Known Issues entry, which said the system preview plays AVI files with common codecs. On macOS 26.6.2, AVFoundation opens an AVI with MPEG-4 Part 2 (DivX) video and MP3 audio with no tracks, so the system preview cannot play it. While VLC (or any other app without a Quick Look extension) is the default.aviapp, such files get no working preview. VLC stays the default AVI app by decision. - Fixed the
dutiexample, which used a wrong bundle identifier (com.robertwildling.MKVQuickLookAppinstead ofcom.robertwildling.MKVQuickLook).
Known Issues
- Quick Look routing still depends on the type identifier each Mac resolves for a file, and other installed apps can declare their own identifiers. This release covers the identifiers seen on the development Mac (
org.xiph.ogg-audio,org.xiph.ogg-video). A Mac where yet another app wins can still route a format past the extension; the new bundle test reports this on the machine that runs it. - AVI files with codecs AVFoundation cannot decode (for example DivX/MP3) get no working Quick Look preview while another app, such as VLC, is the default
.aviapp. Making MKVQuickLook the default AVI app is not practical: the host app cannot open files, so a double-click would only show its status window. - VLCKit (about 79 MB) is embedded twice, in the app and in the extension, so the app is about 159 MB.
- Not verified: a Finder preview pane larger than 720 × 440 pt is treated as the full Quick Look player and may start playback with sound.
- Seek and volume delays are inherent pipeline constraints, not bugs. See README section "Playback Delays".
- The app is ad hoc signed and not notarized. See README section "Gatekeeper".
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
v0.1.7
Changelog
Unreleased
0.1.7 - 2026-04-16
Changed
- Removed AVI from the advertised list of supported formats. The UTI registration and VLCKit playback path for
.aviremain in the bundle, but the feature was conditional on MKVQuickLook being the active default opener forpublic.avi— a constraint that makes it unreliable to advertise. The README feature list, AVI Quick Look Limitation section, and all dev/testing AVI references have been removed. - Added
.vscode/to.gitignoreto prevent editor-local Claude Code workspace settings from being committed to the repository.
Known Issues
- Seek and volume delays are inherent pipeline constraints, not bugs. See README section "Playback Delays".
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
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
v0.1.5
Changelog
Unreleased
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
v0.1.4
Changelog
Unreleased
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