@@ -803,7 +803,12 @@ - (void)buildFormatDescriptionExtensionsOf:(OSType)cvPixelFormat width:(long)wid
803
803
804
804
// gamma level (legacy)
805
805
NSString * keyGamma = (__bridge NSString *)kCMFormatDescriptionExtension_GammaLevel ;
806
- extensions[keyGamma] = @(2.2 );
806
+ // WORKAROUND: Under macOS 15.0 double value wont work; use float value instead
807
+ if (@available (macOS 15.0 , *)) {
808
+ extensions[keyGamma] = @(2 .2f );
809
+ } else {
810
+ extensions[keyGamma] = @(2.2 );
811
+ }
807
812
}
808
813
{
809
814
// Color space
@@ -922,30 +927,41 @@ - (void)buildFormatDescriptionExtensionsOf:(OSType)cvPixelFormat width:(long)wid
922
927
NSNumber * clapHOffset = @((double_t )self.clapHOffsetN /self.clapHOffsetD );
923
928
NSNumber * clapVOffset = @((double_t )self.clapVOffsetN /self.clapVOffsetD );
924
929
925
- NSString * keyClapWidthR = (__bridge NSString *)kCMFormatDescriptionKey_CleanApertureWidthRational ;
926
- NSString * keyClapHeightR = (__bridge NSString *)kCMFormatDescriptionKey_CleanApertureHeightRational ;
927
- NSString * keyClapHOffsetR = (__bridge NSString *)kCMFormatDescriptionKey_CleanApertureHorizontalOffsetRational ;
928
- NSString * keyClapVOffsetR = (__bridge NSString *)kCMFormatDescriptionKey_CleanApertureVerticalOffsetRational ;
929
-
930
- NSNumber * clapWidthN = @(self.clapWidthN );
931
- NSNumber * clapWidthD = @(self.clapWidthD );
932
- NSNumber * clapHeightN = @(self.clapHeightN );
933
- NSNumber * clapHeightD = @(self.clapHeightD );
934
- NSNumber * clapHOffsetN = @(self.clapHOffsetN );
935
- NSNumber * clapHOffsetD = @(self.clapHOffsetD );
936
- NSNumber * clapVOffsetN = @(self.clapVOffsetN );
937
- NSNumber * clapVOffsetD = @(self.clapVOffsetD );
938
-
939
- NSDictionary * valueClap = @{
940
- keyClapWidth : clapWidth,
941
- keyClapHeight : clapHeight,
942
- keyClapHOffset : clapHOffset,
943
- keyClapVOffset : clapVOffset,
944
- keyClapWidthR : @[clapWidthN, clapWidthD],
945
- keyClapHeightR : @[clapHeightN, clapHeightD],
946
- keyClapHOffsetR : @[clapHOffsetN, clapHOffsetD],
947
- keyClapVOffsetR : @[clapVOffsetN, clapVOffsetD],
948
- };
930
+ NSDictionary * valueClap = nil ;
931
+ // WORKAROUND: macOS 15.0 seems to break rational value support
932
+ if (@available (macOS 15.0 , *)) {
933
+ valueClap = @{
934
+ keyClapWidth : clapWidth,
935
+ keyClapHeight : clapHeight,
936
+ keyClapHOffset : clapHOffset,
937
+ keyClapVOffset : clapVOffset,
938
+ };
939
+ } else {
940
+ NSString * keyClapWidthR = (__bridge NSString *)kCMFormatDescriptionKey_CleanApertureWidthRational ;
941
+ NSString * keyClapHeightR = (__bridge NSString *)kCMFormatDescriptionKey_CleanApertureHeightRational ;
942
+ NSString * keyClapHOffsetR = (__bridge NSString *)kCMFormatDescriptionKey_CleanApertureHorizontalOffsetRational ;
943
+ NSString * keyClapVOffsetR = (__bridge NSString *)kCMFormatDescriptionKey_CleanApertureVerticalOffsetRational ;
944
+
945
+ NSNumber * clapWidthN = @(self.clapWidthN );
946
+ NSNumber * clapWidthD = @(self.clapWidthD );
947
+ NSNumber * clapHeightN = @(self.clapHeightN );
948
+ NSNumber * clapHeightD = @(self.clapHeightD );
949
+ NSNumber * clapHOffsetN = @(self.clapHOffsetN );
950
+ NSNumber * clapHOffsetD = @(self.clapHOffsetD );
951
+ NSNumber * clapVOffsetN = @(self.clapVOffsetN );
952
+ NSNumber * clapVOffsetD = @(self.clapVOffsetD );
953
+
954
+ valueClap = @{
955
+ keyClapWidth : clapWidth,
956
+ keyClapHeight : clapHeight,
957
+ keyClapHOffset : clapHOffset,
958
+ keyClapVOffset : clapVOffset,
959
+ keyClapWidthR : @[clapWidthN, clapWidthD],
960
+ keyClapHeightR : @[clapHeightN, clapHeightD],
961
+ keyClapHOffsetR : @[clapHOffsetN, clapHOffsetD],
962
+ keyClapVOffsetR : @[clapVOffsetN, clapVOffsetD],
963
+ };
964
+ }
949
965
extensions[keyClap] = valueClap;
950
966
951
967
self.extensionsW = extensions;
0 commit comments