mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-10-21 17:01:25 -07:00
fix(jellyfin): keep invalid mpv.executablePath from falling back in preview
- Timing preview passes an invalid configured path through so the spawn fails, instead of the preview silently running mpv from PATH - Docs: Accessibility is not strictly required on macOS; without it the window helper uses a Core Graphics lookup that cannot detect a minimized mpv window
This commit is contained in:
4 files changed
+8
-4
No files matched your search
@@ -199,7 +199,7 @@ The AppImage is all you need. First-run setup can install the optional `subminer
|
|||||||
|
|
||||||
Download the latest DMG from [GitHub Releases](https://github.com/ksyasuda/SubMiner/releases/latest) and drag `SubMiner.app` into `/Applications`.
|
Download the latest DMG from [GitHub Releases](https://github.com/ksyasuda/SubMiner/releases/latest) and drag `SubMiner.app` into `/Applications`.
|
||||||
|
|
||||||
Then enable SubMiner under **System Settings > Privacy & Security > Accessibility** (named **Device Control and Data Access** on macOS 27), or the overlay cannot follow the mpv window. If macOS blocks the first launch, right-click the app and choose **Open**.
|
Then enable SubMiner under **System Settings > Privacy & Security > Accessibility** (named **Device Control and Data Access** on macOS 27) so the overlay can track the mpv window. Without it, SubMiner falls back to a basic window lookup that cannot tell when mpv is minimized. If macOS blocks the first launch, right-click the app and choose **Open**.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ First-run setup can install the `subminer` command for you.
|
|||||||
xattr -d com.apple.quarantine /Applications/SubMiner.app
|
xattr -d com.apple.quarantine /Applications/SubMiner.app
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Open **System Settings > Privacy & Security > Accessibility** and enable SubMiner (add it if it is missing). On macOS 27 this list is named **Device Control and Data Access**. The overlay cannot follow the mpv window without this.
|
3. Open **System Settings > Privacy & Security > Accessibility** and enable SubMiner (add it if it is missing). On macOS 27 this list is named **Device Control and Data Access**. SubMiner uses it to track the mpv window. Without it, SubMiner falls back to a basic window lookup that cannot tell when mpv is minimized.
|
||||||
|
|
||||||
First-run setup can install the `subminer` command for you.
|
First-run setup can install the `subminer` command for you.
|
||||||
|
|
||||||
|
|||||||
@@ -262,5 +262,5 @@ mpv --gpu-context=x11vk,x11egl,x11 video.mkv
|
|||||||
|
|
||||||
## macOS
|
## macOS
|
||||||
|
|
||||||
- Accessibility permission is required for window tracking: System Settings > Privacy & Security > Accessibility. On macOS 27 this list is named **Device Control and Data Access**.
|
- Grant Accessibility permission under System Settings > Privacy & Security > Accessibility (named **Device Control and Data Access** on macOS 27). Without it, SubMiner falls back to a basic window lookup that cannot tell when mpv is minimized.
|
||||||
- If Gatekeeper blocks the app, right-click it and choose Open, or run `xattr -d com.apple.quarantine /path/to/SubMiner.app`.
|
- If Gatekeeper blocks the app, right-click it and choose Open, or run `xattr -d com.apple.quarantine /path/to/SubMiner.app`.
|
||||||
+5
-1
@@ -2999,7 +2999,11 @@ const mediaTimingReviewRuntime = createMediaTimingReviewRuntime({
|
|||||||
getMpvClient: () => appState.mpvClient,
|
getMpvClient: () => appState.mpvClient,
|
||||||
getCurrentMediaPath: () =>
|
getCurrentMediaPath: () =>
|
||||||
appState.currentMediaPath?.trim() || appState.mpvClient?.currentVideoPath?.trim() || null,
|
appState.currentMediaPath?.trim() || appState.mpvClient?.currentVideoPath?.trim() || null,
|
||||||
getMpvExecutablePath: () => findMpvExecutablePath(configService.getConfig().mpv.executablePath),
|
// An invalid configured path is passed through so the preview fails instead of using PATH mpv.
|
||||||
|
getMpvExecutablePath: () => {
|
||||||
|
const configuredPath = configService.getConfig().mpv.executablePath;
|
||||||
|
return findMpvExecutablePath(configuredPath) || configuredPath;
|
||||||
|
},
|
||||||
createPreviewSession: () => new MediaTimingPreviewSession(),
|
createPreviewSession: () => new MediaTimingPreviewSession(),
|
||||||
generateWaveform: (options) => generateSpeechWaveform(options),
|
generateWaveform: (options) => generateSpeechWaveform(options),
|
||||||
generateFrame: (options) => mediaTimingFrameExtractor.generate(options),
|
generateFrame: (options) => mediaTimingFrameExtractor.generate(options),
|
||||||
|
|||||||
Reference in new issue
Block a user