Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 19b823079b6db3f9210dcc7e4034e0c2d317b92a
      
https://github.com/WebKit/WebKit/commit/19b823079b6db3f9210dcc7e4034e0c2d317b92a
  Author: Myles C. Maxfield <mmaxfi...@apple.com>
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/cocoa/AppleJPEGXL/AppleJPEGXLSPI.h
    M Source/WebCore/platform/graphics/PixelBufferConversion.cpp
    M Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp
    M Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.h
    M 
WebKitLibraries/DownlevelFrameworkStubs/120000/AppleJPEGXL.framework/AppleJPEGXL.tbd
    M 
WebKitLibraries/DownlevelFrameworkStubs/130000/AppleJPEGXL.framework/AppleJPEGXL.tbd

  Log Message:
  -----------
  [JPEGXL] [Cocoa] Hook up color conversion to downlevel JPEG XL infrastructure
https://bugs.webkit.org/show_bug.cgi?id=258267
rdar://111012276

Reviewed by Cameron McCormack and Don Olmstead.

The existing JPEG XL infrastructure on downlevel builds uses the "little cms" 
library
from https://github.com/LuaDist/lcms/tree/master to perform color conversions. 
However,
on Cocoa platforms, we already have color conversion support in the platform. 
This
patch hooks up the existing colorspace conversion functionality in
PixelBufferConversion.cpp instead of the little cms library.

The existing infrastructure only works with RGBA8 sRGB images, so configuring 
all
the converters is actually pretty straightforward.

This patch isn't testable, because AppleJPEGXL will only be present in builds 
produced
by Apple's internal build system, but our testers use local builds to test 
with. I had
to verify manually that this patch is working correctly.

* Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
* Source/WebCore/PAL/pal/cocoa/VImageConverterPtr.h: Added.
(VImageConverterRefDerefTraits::refIfNotNull):
(VImageConverterRefDerefTraits::derefIfNotNull):
(adoptVImageConverter):
* Source/WebCore/PAL/pal/spi/cocoa/AppleJPEGXL/AppleJPEGXLSPI.h:
* Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp:
(WebCore::JPEGXLImageDecoder::clear):
(WebCore::JPEGXLImageDecoder::processInput):
(WebCore::JPEGXLImageDecoder::imageOut):
(WebCore::JPEGXLImageDecoder::maybePerformColorSpaceConversion):
(WebCore::JPEGXLImageDecoder::clearColorTransform):
(WebCore::JPEGXLImageDecoder::prepareColorTransform):
(WebCore::JPEGXLImageDecoder::tryDecodeICCColorProfile):
* Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.h:
* 
WebKitLibraries/DownlevelFrameworkStubs/120000/AppleJPEGXL.framework/AppleJPEGXL.tbd:
* 
WebKitLibraries/DownlevelFrameworkStubs/130000/AppleJPEGXL.framework/AppleJPEGXL.tbd:

Canonical link: https://commits.webkit.org/265440@main


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to