Skip to content

Commit 96fc68a

Browse files
authored
Make alpha and gain map quality default to the same as color in API. (#2631)
1 parent ddc5ab4 commit 96fc68a

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

src/write.c

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1831,11 +1831,22 @@ static avifResult avifEncoderAddImageInternal(avifEncoder * encoder,
18311831
}
18321832

18331833
// -----------------------------------------------------------------------
1834-
// Map quality and qualityAlpha to quantizer and quantizerAlpha
1834+
// Map quality settings to quantizer values.
18351835
encoder->data->quantizer = avifQualityToQuantizer(encoder->quality, encoder->minQuantizer, encoder->maxQuantizer);
1836-
encoder->data->quantizerAlpha = avifQualityToQuantizer(encoder->qualityAlpha, encoder->minQuantizerAlpha, encoder->maxQuantizerAlpha);
1837-
encoder->data->quantizerGainMap =
1838-
avifQualityToQuantizer(encoder->qualityGainMap, AVIF_QUANTIZER_BEST_QUALITY, AVIF_QUANTIZER_WORST_QUALITY);
1836+
// If alpha quality, and min and max alpha quantizer have their default values, default to the same quality as color.
1837+
if (encoder->qualityAlpha == AVIF_QUALITY_DEFAULT && encoder->minQuantizerAlpha == AVIF_QUANTIZER_BEST_QUALITY &&
1838+
encoder->maxQuantizerAlpha == AVIF_QUANTIZER_WORST_QUALITY) {
1839+
encoder->data->quantizerAlpha = encoder->data->quantizer;
1840+
} else {
1841+
encoder->data->quantizerAlpha =
1842+
avifQualityToQuantizer(encoder->qualityAlpha, encoder->minQuantizerAlpha, encoder->maxQuantizerAlpha);
1843+
}
1844+
if (encoder->qualityGainMap == AVIF_QUALITY_DEFAULT) {
1845+
encoder->data->quantizerGainMap = encoder->data->quantizer; // Default to the same quality as color.
1846+
} else {
1847+
encoder->data->quantizerGainMap =
1848+
avifQualityToQuantizer(encoder->qualityGainMap, AVIF_QUANTIZER_BEST_QUALITY, AVIF_QUANTIZER_WORST_QUALITY);
1849+
}
18391850

18401851
// -----------------------------------------------------------------------
18411852
// Handle automatic tiling

0 commit comments

Comments
 (0)