From 58e413fca461366289ce4a65acafde207d4dc83d Mon Sep 17 00:00:00 2001 From: wiiiii123 Date: Fri, 22 May 2026 17:13:43 +0700 Subject: [PATCH] fix(windows): validate WGC encoder fps --- .../bin/win32-x64/helpers-manifest.json | 66 +++++++++--------- electron/native/bin/win32-x64/wgc-capture.exe | Bin 109568 -> 109568 bytes .../native/wgc-capture/src/mf_encoder.cpp | 11 ++- 3 files changed, 43 insertions(+), 34 deletions(-) diff --git a/electron/native/bin/win32-x64/helpers-manifest.json b/electron/native/bin/win32-x64/helpers-manifest.json index 28335972..be5fe147 100644 --- a/electron/native/bin/win32-x64/helpers-manifest.json +++ b/electron/native/bin/win32-x64/helpers-manifest.json @@ -1,35 +1,35 @@ { - "version": 1, - "platform": "win32", - "arch": "x64", - "helpers": { - "wgc-capture": { - "binaryName": "wgc-capture.exe", - "binarySha256": "78a15935cad651c06ec64df3cabf8945a0d66e647e3eb97dfe75cd4c90d66564", - "sourceDir": "electron/native/wgc-capture", - "sourceFingerprint": "504f3447cf64455a5c7ab1831e4257aee483c5714e714d0e020427e4c491e5eb", - "updatedAt": "2026-05-22T10:06:11.293Z" - }, - "cursor-monitor": { - "binaryName": "cursor-monitor.exe", - "binarySha256": "6ae6d91103b6e891a851e8ea5791e1c1f9aaab700134c18bc4c46cfffd7fdd12", - "sourceDir": "electron/native/cursor-monitor", - "sourceFingerprint": "6ad1b8b50bb336f2a48937b06f5ec56d90b6ab4a3e56a4bca278cf67a5d3e52e", - "updatedAt": "2026-05-07T15:22:18.173Z" - }, - "recordly-gpu-export": { - "binaryName": "recordly-gpu-export.exe", - "binarySha256": "4cb3a293fd36f718af55906820d9b3fd78babc855888c2e248f0b918ec1aff3c", - "sourceDir": "electron/native/gpu-export-probe", - "sourceFingerprint": "743b386a5f1bbcc99cec5465c3de228d2b045061dead31dfcbf25cf6a1e61de5", - "updatedAt": "2026-05-07T20:13:48.585Z" - }, - "recordly-nvidia-cuda-compositor": { - "binaryName": "recordly-nvidia-cuda-compositor.exe", - "binarySha256": "a787531c07142de7c292d1726e0339c97dbce5073d9a0853d539a725265fd945", - "sourceDir": "electron/native/nvidia-cuda-compositor", - "sourceFingerprint": "528b599e9d576d81ec087d0d4dc93a79af1bbf30fdb969f44f773bef90146135", - "updatedAt": "2026-05-07T20:14:13.794Z" - } - } + "version": 1, + "platform": "win32", + "arch": "x64", + "helpers": { + "wgc-capture": { + "binaryName": "wgc-capture.exe", + "binarySha256": "b840fb2847ac8fcfc5137febfc8dd49b55a4d15bea4f9185a0916fb0c1544bed", + "sourceDir": "electron/native/wgc-capture", + "sourceFingerprint": "fdbc8002a894a1300c7fed58a0f7aae18119dbb2bd71bcaacf3bfc398db904a9", + "updatedAt": "2026-05-22T10:12:36.734Z" + }, + "cursor-monitor": { + "binaryName": "cursor-monitor.exe", + "binarySha256": "6ae6d91103b6e891a851e8ea5791e1c1f9aaab700134c18bc4c46cfffd7fdd12", + "sourceDir": "electron/native/cursor-monitor", + "sourceFingerprint": "6ad1b8b50bb336f2a48937b06f5ec56d90b6ab4a3e56a4bca278cf67a5d3e52e", + "updatedAt": "2026-05-07T15:22:18.173Z" + }, + "recordly-gpu-export": { + "binaryName": "recordly-gpu-export.exe", + "binarySha256": "4cb3a293fd36f718af55906820d9b3fd78babc855888c2e248f0b918ec1aff3c", + "sourceDir": "electron/native/gpu-export-probe", + "sourceFingerprint": "743b386a5f1bbcc99cec5465c3de228d2b045061dead31dfcbf25cf6a1e61de5", + "updatedAt": "2026-05-07T20:13:48.585Z" + }, + "recordly-nvidia-cuda-compositor": { + "binaryName": "recordly-nvidia-cuda-compositor.exe", + "binarySha256": "a787531c07142de7c292d1726e0339c97dbce5073d9a0853d539a725265fd945", + "sourceDir": "electron/native/nvidia-cuda-compositor", + "sourceFingerprint": "528b599e9d576d81ec087d0d4dc93a79af1bbf30fdb969f44f773bef90146135", + "updatedAt": "2026-05-07T20:14:13.794Z" + } + } } diff --git a/electron/native/bin/win32-x64/wgc-capture.exe b/electron/native/bin/win32-x64/wgc-capture.exe index f38fee1ddf8bcb6640618bdc3c58a118bf53fb94..1ec9914494b70226ba836d234e75ae4215e2658a 100644 GIT binary patch delta 13277 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 delta 13177 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 GBj& frameBuffer, int64_t timestampHns) { if (frameBuffer.empty()) return false; + if (fps_ <= 0) return false; + + const int64_t frameDurationHns = 10000000LL / fps_; + if (frameDurationHns <= 0) return false; // Create MF sample DWORD bufferSize = static_cast(frameBuffer.size()); @@ -294,7 +303,7 @@ bool MFEncoder::writeNv12SampleLocked(const std::vector& frameBuffer, i sample->AddBuffer(buffer.Get()); sample->SetSampleTime(timestampHns); - sample->SetSampleDuration(10000000LL / fps_); + sample->SetSampleDuration(frameDurationHns); hr = sinkWriter_->WriteSample(streamIndex_, sample.Get()); if (FAILED(hr)) {