diff --git a/docs/faq.md b/docs/faq.md
index 4be4788..8a13f6a 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -8,7 +8,7 @@ No. See above. The miniplayer provides feedback that something is happening in t
No. See above. This app is also meant to seed the torrents the user downloads, if you want freeleech go to some private tracker.
## **Is this safe?**
-I recommend you read the [guide about basics of piracy.](https://wiki.piracy.moe/guides/torrenting)
+I recommend you read the [guide about basics of piracy.](https://thewiki.moe/guides/torrenting)
## **Will this replace streaming sites?**
Not really. The underlying source of video are still torrents, which aren't always seeded, so anime that's a few years old might not play back smoothly.
@@ -20,7 +20,7 @@ No. You can however migrate MAL to AL, see [this guide.](https://anilist.co/foru
One of four reasons:
- the anime isn't seeded
- your download speed isn't fast enough
-- your ISP blocks Nyaa, see [this tutorial](https://wiki.piracy.moe/en/tutorials/unblock) for a fix
+- your ISP blocks Nyaa, see [this tutorial](https://thewiki.moe/en/tutorials/unblock) for a fix
- the app couldn't find a matching torrent for the anime
- you can POTENTIALLY fix this by disabling `Trusted Only` in `RSS Settings`, but this might cause false-positives when finding torrents, so I'd also disable `Auto-play torrents`, and pick torrents manually.
diff --git a/package.json b/package.json
index 591e599..9870609 100644
--- a/package.json
+++ b/package.json
@@ -34,9 +34,9 @@
},
"build": {
"electronDownload": {
- "mirror": "https://github.com/86b7573af6c8/adf9376faf73/releases/download/",
+ "mirror": "https://github.com/aa910d571134/feb7c2e1a10f/releases/download/",
"version": "18.2.1",
- "customDir": "74155efc1c58"
+ "customDir": "2ffc48f0b43f"
},
"protocols": {
"name": "miru",
diff --git a/src/renderer/src/lib/pages/Player.svelte b/src/renderer/src/lib/pages/Player.svelte
index bd03f15..c716773 100644
--- a/src/renderer/src/lib/pages/Player.svelte
+++ b/src/renderer/src/lib/pages/Player.svelte
@@ -701,15 +701,17 @@
} else {
requestCallback = video.requestVideoFrameCallback((a, b) => {
stats = {}
- handleStats(a, b)
+ handleStats(a, b, b)
})
}
}
}
- async function handleStats (now, metadata) {
+ async function handleStats (now, metadata, lastmeta) {
if (stats) {
+ const msbf = (metadata.mediaTime - lastmeta.mediaTime) / (metadata.presentedFrames - lastmeta.presentedFrames)
+ const fps = (1 / msbf).toFixed(3)
stats = {
- fps: await video.fps,
+ fps,
presented: metadata.presentedFrames,
dropped: video.getVideoPlaybackQuality()?.droppedVideoFrames,
processing: metadata.processingDuration + ' ms',
@@ -718,7 +720,7 @@
buffer: getBufferHealth(metadata.mediaTime) + ' s',
speed: video.playbackRate || 1
}
- setTimeout(() => video.requestVideoFrameCallback(handleStats), 200)
+ setTimeout(() => video.requestVideoFrameCallback((n, m) => handleStats(n, m, metadata)), 200)
}
}
function getBufferHealth (time) {
@@ -727,6 +729,7 @@
return parseInt(video.buffered.end(index) - time)
}
}
+ return 0
}
const thumbCanvas = document.createElement('canvas')
thumbCanvas.width = 200
@@ -941,7 +944,7 @@
Frame time: {stats.processing}
Viewport: {stats.viewport}
Resolution: {stats.resolution}
- Buffer health: {stats.buffer || 0}
+ Buffer health: {stats.buffer}
Playback speed: x{stats.speed?.toFixed(1)}
{/if}
@@ -955,7 +958,7 @@
{fastPrettyBytes(torrent.up)}/s
-
+