node-mac-recorder 2.23.1 → 2.23.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-mac-recorder",
3
- "version": "2.23.1",
3
+ "version": "2.23.2",
4
4
  "description": "Native macOS screen recording package for Node.js applications",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -805,10 +805,21 @@ extern "C" NSString *ScreenCaptureKitCurrentAudioPath(void) {
805
805
  AVVideoMaxKeyFrameIntervalDurationKey: @(1.0)
806
806
  };
807
807
 
808
+ // Renk etiketleri: kayıt sRGB uzayında yakalanıyor (streamConfig.colorSpaceName),
809
+ // BT.709 olarak etiketle ki Chromium/QuickTime decode'da doğru yorumlasın.
810
+ // Etiket olmadan player'lar tahmin yürütüyor ve renkler soluk/kaymış görünüyordu.
811
+ // Bitrate/boyut maliyeti sıfırdır.
812
+ NSDictionary *colorProps = @{
813
+ AVVideoColorPrimariesKey: AVVideoColorPrimaries_ITU_R_709_2,
814
+ AVVideoTransferFunctionKey: AVVideoTransferFunction_ITU_R_709_2,
815
+ AVVideoYCbCrMatrixKey: AVVideoYCbCrMatrix_ITU_R_709_2
816
+ };
817
+
808
818
  NSDictionary *videoSettings = @{
809
819
  AVVideoCodecKey: AVVideoCodecTypeH264,
810
820
  AVVideoWidthKey: @(width),
811
821
  AVVideoHeightKey: @(height),
822
+ AVVideoColorPropertiesKey: colorProps,
812
823
  AVVideoCompressionPropertiesKey: compressionProps
813
824
  };
814
825
 
@@ -1534,6 +1545,12 @@ static void SCKPerformRecordingSetup(NSDictionary *config, SCShareableContent *c
1534
1545
  streamConfig.shouldBeOpaque = YES;
1535
1546
  MRLog(@"🎯 Using SCCaptureResolutionBest + shouldBeOpaque for maximum quality (macOS 14+)");
1536
1547
  }
1548
+ if (@available(macOS 13.0, *)) {
1549
+ // Frame'leri bilinen bir renk uzayında (sRGB) iste; encoder tarafında
1550
+ // BT.709 etiketiyle birlikte uçtan uca tutarlı renk sağlar.
1551
+ // Aksi halde P3 ekranlarda display-native, etiketsiz piksel gelir.
1552
+ streamConfig.colorSpaceName = kCGColorSpaceSRGB;
1553
+ }
1537
1554
 
1538
1555
  BOOL shouldCaptureMic = includeMicrophone ? [includeMicrophone boolValue] : NO;
1539
1556
  BOOL shouldCaptureSystemAudio = includeSystemAudio ? [includeSystemAudio boolValue] : NO;