From 519953e90378628fddf9cfd76cb69aa173b0953f Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 20 Feb 2024 09:35:20 -0800
Subject: [PATCH] Use the HDR10 colorspace for HDR10 images
---
src/IMG_avif.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/src/IMG_avif.c b/src/IMG_avif.c
index e650d0f4..60fd2a33 100644
--- a/src/IMG_avif.c
+++ b/src/IMG_avif.c
@@ -302,7 +302,7 @@ static int ConvertGBR444toXBGR2101010(avifImage *image, SDL_Surface *surface)
return 0;
}
-static int ConvertRGB16toXBGR2101010(avifRGBImage *image, SDL_Surface *surface)
+static void ConvertRGB16toXBGR2101010(avifRGBImage *image, SDL_Surface *surface)
{
const Uint16 *src;
Uint32 sR, sG, sB;
@@ -329,7 +329,6 @@ static int ConvertRGB16toXBGR2101010(avifRGBImage *image, SDL_Surface *surface)
}
dst += dstskip;
}
- return 0;
}
/* Load a AVIF type image from an SDL datasource */
@@ -426,12 +425,7 @@ SDL_Surface *IMG_LoadAVIF_RW(SDL_RWops *src)
surface = SDL_CreateSurface(image->width, image->height, SDL_PIXELFORMAT_XBGR2101010);
if (surface) {
- if (ConvertRGB16toXBGR2101010(&rgb, surface) == 0) {
- } else {
- // Invalid image, let avif take care of it
- SDL_free(surface);
- surface = NULL;
- }
+ ConvertRGB16toXBGR2101010(&rgb, surface);
}
SDL_free(rgb.pixels);
@@ -444,7 +438,7 @@ SDL_Surface *IMG_LoadAVIF_RW(SDL_RWops *src)
SDL_COLOR_RANGE_FULL,
image->colorPrimaries,
image->transferCharacteristics,
- SDL_MATRIX_COEFFICIENTS_UNSPECIFIED,
+ SDL_MATRIX_COEFFICIENTS_IDENTITY,
SDL_CHROMA_LOCATION_NONE);
SDL_SetNumberProperty(props, SDL_PROP_SURFACE_COLORSPACE_NUMBER, colorspace);
SDL_SetNumberProperty(props, SDL_PROP_SURFACE_MAXCLL_NUMBER, image->clli.maxCLL);