@@ -43,7 +43,7 @@ static void CalcTransferFunction(uint16_t const transferCharacteristics, vImageT
43
43
*/
44
44
45
45
switch (transferCharacteristics) {
46
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_GAMMA28 : // 5
46
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT470BG : // 5, gamma=2.8
47
47
tf->cutoff = -INFINITY;
48
48
tf->c0 = 1 .0f ;
49
49
tf->c1 = 1 .0f ;
@@ -53,7 +53,7 @@ static void CalcTransferFunction(uint16_t const transferCharacteristics, vImageT
53
53
tf->c5 = 0 .0f ;
54
54
tf->gamma = 1 .0f /2 .8f ;
55
55
break ;
56
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT709: // 1
56
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT709: // 1, sRGB
57
57
case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT601: // 6
58
58
case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT2020_10BIT: // 14
59
59
case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT2020_12BIT: // 15
@@ -68,7 +68,7 @@ static void CalcTransferFunction(uint16_t const transferCharacteristics, vImageT
68
68
tf->c4 = 4 .5f ;
69
69
tf->c5 = 0 .0f ;
70
70
break ;
71
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_ST240 : // 7
71
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_SMPTE240 : // 7
72
72
tf->cutoff = beta;
73
73
//
74
74
tf->c0 = alpha;
@@ -104,7 +104,7 @@ static void CalcTransferFunction(uint16_t const transferCharacteristics, vImageT
104
104
tf->c4 = 4 .5f ;
105
105
tf->c5 = 0 .0f ;
106
106
break ;
107
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT1361_EXTENDED : // 12
107
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT1361 : // 12
108
108
tf->cutoff = beta;
109
109
//
110
110
tf->c0 = alpha;
@@ -128,7 +128,7 @@ static void CalcTransferFunction(uint16_t const transferCharacteristics, vImageT
128
128
tf->c4 = 12 .92f ;
129
129
tf->c5 = 0 .0f ;
130
130
break ;
131
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_ST428 : // 17
131
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_SMPTE428 : // 17
132
132
tf->cutoff = -INFINITY;
133
133
//
134
134
tf->c0 = 1 .0f ;
@@ -141,14 +141,14 @@ static void CalcTransferFunction(uint16_t const transferCharacteristics, vImageT
141
141
tf->c5 = 0 .0f ;
142
142
break ;
143
143
// Can't be represented by vImageTransferFunction. Use gamma 2.2 as a fallback.
144
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_ST2084 : // 16
145
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT2100_HLG : // 18
146
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_LOG_100_1 : // 9
147
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_LOG_100_SQRT : // 10
144
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_SMPTE2084 : // 16
145
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_HLG : // 18
146
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_LOG100 : // 9
147
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_LOG100_SQRT10 : // 10
148
148
//
149
149
case AVIF_NCLX_TRANSFER_CHARACTERISTICS_UNKNOWN: // 0
150
150
case AVIF_NCLX_TRANSFER_CHARACTERISTICS_UNSPECIFIED: // 2
151
- case AVIF_NCLX_TRANSFER_CHARACTERISTICS_GAMMA22 : // 4
151
+ case AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT470M : // 4
152
152
default :
153
153
tf->cutoff = -INFINITY;
154
154
tf->c0 = 1 .0f ;
@@ -244,7 +244,7 @@ void SDAVIFCalcColorSpaceMono(avifImage * avif, CGColorSpaceRef* ref, BOOL* shou
244
244
*shouldRelease = FALSE ;
245
245
return ;
246
246
}
247
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_SRGB &&
247
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_BT709 &&
248
248
transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_SRGB) {
249
249
static CGColorSpaceRef sRGB = NULL ;
250
250
static dispatch_once_t onceToken;
@@ -287,7 +287,7 @@ void SDAVIFCalcColorSpaceMono(avifImage * avif, CGColorSpaceRef* ref, BOOL* shou
287
287
*shouldRelease = FALSE ;
288
288
return ;
289
289
}
290
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_P3 &&
290
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_SMPTE432 /* Display P3 */ &&
291
291
transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_SRGB) {
292
292
static CGColorSpaceRef p3 = NULL ;
293
293
static dispatch_once_t onceToken;
@@ -367,7 +367,7 @@ void SDAVIFCalcColorSpaceRGB(avifImage * avif, CGColorSpaceRef* ref, BOOL* shoul
367
367
*shouldRelease = FALSE ;
368
368
return ;
369
369
}
370
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_SRGB &&
370
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_BT709 /* sRGB */ &&
371
371
transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_SRGB) {
372
372
static CGColorSpaceRef sRGB = NULL ;
373
373
static dispatch_once_t onceToken;
@@ -382,7 +382,7 @@ void SDAVIFCalcColorSpaceRGB(avifImage * avif, CGColorSpaceRef* ref, BOOL* shoul
382
382
*shouldRelease = FALSE ;
383
383
return ;
384
384
}
385
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_SRGB &&
385
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_BT709 /* sRGB */ &&
386
386
transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_LINEAR) {
387
387
static CGColorSpaceRef sRGBlinear = NULL ;
388
388
static dispatch_once_t onceToken;
@@ -428,8 +428,8 @@ void SDAVIFCalcColorSpaceRGB(avifImage * avif, CGColorSpaceRef* ref, BOOL* shoul
428
428
*shouldRelease = FALSE ;
429
429
return ;
430
430
}
431
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_BT2100 &&
432
- transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT2100_HLG ) {
431
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_BT2020 &&
432
+ transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_HLG ) {
433
433
static CGColorSpaceRef bt2020hlg = NULL ;
434
434
static dispatch_once_t onceToken;
435
435
dispatch_once (&onceToken, ^{
@@ -443,8 +443,8 @@ void SDAVIFCalcColorSpaceRGB(avifImage * avif, CGColorSpaceRef* ref, BOOL* shoul
443
443
*shouldRelease = FALSE ;
444
444
return ;
445
445
}
446
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_BT2100 &&
447
- transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT2100_PQ ) {
446
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_BT2020 &&
447
+ transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_SMPTE2084 /* PQ */ ) {
448
448
static CGColorSpaceRef bt2020pq = NULL ;
449
449
static dispatch_once_t onceToken;
450
450
dispatch_once (&onceToken, ^{
@@ -458,7 +458,7 @@ void SDAVIFCalcColorSpaceRGB(avifImage * avif, CGColorSpaceRef* ref, BOOL* shoul
458
458
*shouldRelease = FALSE ;
459
459
return ;
460
460
}
461
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_P3 &&
461
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_SMPTE432 /* Display P3 */ &&
462
462
transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_SRGB) {
463
463
static CGColorSpaceRef p3 = NULL ;
464
464
static dispatch_once_t onceToken;
@@ -473,8 +473,8 @@ void SDAVIFCalcColorSpaceRGB(avifImage * avif, CGColorSpaceRef* ref, BOOL* shoul
473
473
*shouldRelease = FALSE ;
474
474
return ;
475
475
}
476
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_P3 &&
477
- transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT2100_HLG ) {
476
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_SMPTE432 /* Display P3 */ &&
477
+ transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_HLG ) {
478
478
static CGColorSpaceRef p3hlg = NULL ;
479
479
static dispatch_once_t onceToken;
480
480
dispatch_once (&onceToken, ^{
@@ -489,8 +489,8 @@ void SDAVIFCalcColorSpaceRGB(avifImage * avif, CGColorSpaceRef* ref, BOOL* shoul
489
489
*shouldRelease = FALSE ;
490
490
return ;
491
491
}
492
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_P3 &&
493
- transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT2100_PQ ) {
492
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_SMPTE432 /* Display P3 */ &&
493
+ transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_SMPTE2084 /* PQ */ ) {
494
494
static CGColorSpaceRef p3pq = NULL ;
495
495
static dispatch_once_t onceToken;
496
496
dispatch_once (&onceToken, ^{
@@ -504,7 +504,7 @@ void SDAVIFCalcColorSpaceRGB(avifImage * avif, CGColorSpaceRef* ref, BOOL* shoul
504
504
*shouldRelease = FALSE ;
505
505
return ;
506
506
}
507
- if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_P3 &&
507
+ if (colorPrimaries == AVIF_NCLX_COLOUR_PRIMARIES_SMPTE432 /* Display P3 */ &&
508
508
transferCharacteristics == AVIF_NCLX_TRANSFER_CHARACTERISTICS_LINEAR) {
509
509
static CGColorSpaceRef p3linear = NULL ;
510
510
static dispatch_once_t onceToken;
0 commit comments