node-mac-recorder 2.18.7 → 2.18.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +3 -1
- package/index.js +8 -8
- package/package.json +1 -1
- package/src/screen_capture_kit.h +0 -1
- package/src/screen_capture_kit.mm +15 -9
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
"Bash(./test-cleanup.sh:*)",
|
|
13
13
|
"Bash(FORCE_AVFOUNDATION=1 node test-avfoundation-dpr.js)",
|
|
14
14
|
"Bash(FORCE_AVFOUNDATION=1 node test-cursor-fix.js)",
|
|
15
|
-
"Bash(pkill:*)"
|
|
15
|
+
"Bash(pkill:*)",
|
|
16
|
+
"Bash(FORCE_AVFOUNDATION=1 node debug-cursor-scaling.js)",
|
|
17
|
+
"Bash(FORCE_AVFOUNDATION=1 node test-final-cursor.js)"
|
|
16
18
|
],
|
|
17
19
|
"deny": [],
|
|
18
20
|
"ask": []
|
package/index.js
CHANGED
|
@@ -253,10 +253,10 @@ class MacRecorder extends EventEmitter {
|
|
|
253
253
|
// Recording için display bilgisini sakla (cursor capture için)
|
|
254
254
|
const targetDisplay = displays.find(d => d.id === targetDisplayId);
|
|
255
255
|
|
|
256
|
-
// CRITICAL FIX:
|
|
257
|
-
// This
|
|
258
|
-
|
|
259
|
-
|
|
256
|
+
// CRITICAL FIX: For now, use logical dimensions to avoid cross-display scaling issues
|
|
257
|
+
// This prevents using wrong display's physical dimensions
|
|
258
|
+
let displayScalingInfo = null;
|
|
259
|
+
// TODO: Implement proper per-display scaling detection in native layer
|
|
260
260
|
|
|
261
261
|
this.recordingDisplayInfo = {
|
|
262
262
|
displayId: targetDisplayId,
|
|
@@ -308,10 +308,10 @@ class MacRecorder extends EventEmitter {
|
|
|
308
308
|
}
|
|
309
309
|
|
|
310
310
|
if (targetDisplay) {
|
|
311
|
-
// CRITICAL FIX:
|
|
312
|
-
// This
|
|
313
|
-
const
|
|
314
|
-
|
|
311
|
+
// CRITICAL FIX: For now, use logical dimensions to avoid cross-display scaling issues
|
|
312
|
+
// This prevents using wrong display's physical dimensions
|
|
313
|
+
const displayScalingInfo = null;
|
|
314
|
+
// TODO: Implement proper per-display scaling detection in native layer
|
|
315
315
|
|
|
316
316
|
this.recordingDisplayInfo = {
|
|
317
317
|
displayId: targetDisplay.id,
|
package/package.json
CHANGED
package/src/screen_capture_kit.h
CHANGED
|
@@ -297,9 +297,11 @@ static NSString *g_outputPath = nil;
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
-
if (
|
|
301
|
-
|
|
302
|
-
|
|
300
|
+
if (@available(macOS 15.0, *)) {
|
|
301
|
+
if (!g_recordingOutput) {
|
|
302
|
+
NSLog(@"❌ Failed to create SCRecordingOutput");
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
303
305
|
}
|
|
304
306
|
|
|
305
307
|
NSLog(@"✅ Pure ScreenCaptureKit recording output created");
|
|
@@ -389,9 +391,11 @@ static NSString *g_outputPath = nil;
|
|
|
389
391
|
g_isCleaningUp = YES;
|
|
390
392
|
g_isRecording = NO;
|
|
391
393
|
|
|
392
|
-
if (
|
|
393
|
-
|
|
394
|
-
|
|
394
|
+
if (@available(macOS 15.0, *)) {
|
|
395
|
+
if (g_recordingOutput) {
|
|
396
|
+
// SCRecordingOutput finalizes automatically
|
|
397
|
+
NSLog(@"✅ Pure recording output finalized");
|
|
398
|
+
}
|
|
395
399
|
}
|
|
396
400
|
|
|
397
401
|
[ScreenCaptureKitRecorder cleanupVideoWriter];
|
|
@@ -413,9 +417,11 @@ static NSString *g_outputPath = nil;
|
|
|
413
417
|
NSLog(@"✅ Stream reference cleared");
|
|
414
418
|
}
|
|
415
419
|
|
|
416
|
-
if (
|
|
417
|
-
g_recordingOutput
|
|
418
|
-
|
|
420
|
+
if (@available(macOS 15.0, *)) {
|
|
421
|
+
if (g_recordingOutput) {
|
|
422
|
+
g_recordingOutput = nil;
|
|
423
|
+
NSLog(@"✅ Recording output reference cleared");
|
|
424
|
+
}
|
|
419
425
|
}
|
|
420
426
|
|
|
421
427
|
if (g_streamDelegate) {
|