| /* |
| * Copyright 2026 Google LLC |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "include/core/SkData.h" |
| #include "include/private/SkHdrMetadata.h" |
| |
| #include <cstddef> |
| #include <cstdint> |
| |
| void FuzzHdrAgtm(const uint8_t* data, size_t size) { |
| sk_sp<SkData> skdata = SkData::MakeWithoutCopy(data, size); |
| skhdr::AdaptiveGlobalToneMap agtm; |
| if (agtm.parse(skdata.get())) { |
| auto serialized = agtm.serialize(); |
| (void)serialized; |
| } |
| } |
| |
| #if defined(SK_BUILD_FOR_LIBFUZZER) |
| extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { |
| // The SMPTE ST 2094-50 bitstream is very compact (max 4 alternate images, max 32 control |
| // points per curve). Valid data is always well under 1KB. Limiting the size improves |
| // fuzzer efficiency by reducing the search space. |
| if (size > 1024) { |
| return 0; |
| } |
| FuzzHdrAgtm(data, size); |
| return 0; |
| } |
| #endif |