blob: e1f48f3622fddde19f21ca2db36c5bec8cd04ead [file] [log] [blame]
/*
* Copyright 2024 Google LLC.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "include/codec/SkPngRustDecoder.h"
#include <utility>
#include "include/core/SkStream.h"
#include "src/codec/SkPngRustCodec.h"
namespace SkPngRustDecoder {
bool IsPng(const void* buff, size_t bytesRead) {
static constexpr unsigned char pngSignature[] = {
0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A};
if (bytesRead < sizeof(pngSignature)) {
return false;
}
return memcmp(buff, pngSignature, sizeof(pngSignature)) == 0;
}
std::unique_ptr<SkCodec> Decode(std::unique_ptr<SkStream> stream,
SkCodec::Result* result,
SkCodecs::DecodeContext) {
SkCodec::Result resultStorage;
if (!result) {
result = &resultStorage;
}
return SkPngRustCodec::MakeFromStream(std::move(stream), result);
}
} // namespace SkPngRustDecoder