// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_PARSERS_WEBP_PARSER_H_ #define MEDIA_PARSERS_WEBP_PARSER_H_ #include #include #include "base/containers/span.h" #include "media/parsers/media_parsers_export.h" namespace media { struct Vp8FrameHeader; // A lightweight WebP file header parser to extract feature and size // information. It validates that a given data stream encodes a simple lossy // WebP image and populates a Vp8FrameHeader upon successful parsing. // For more information, see the WebP Container Specification: // https://developers.google.com/speed/webp/docs/riff_container // Returns true if |encoded_data| claims to encode a simple (non-extended) lossy // WebP image. Returns false otherwise. MEDIA_PARSERS_EXPORT bool IsLossyWebPImage(base::span encoded_data); // Parses a simple (non-extended) lossy WebP image and returns a Vp8FrameHeader // containing the parsed VP8 frame contained by the image. Returns nullptr on // failure. MEDIA_PARSERS_EXPORT std::unique_ptr ParseWebPImage( base::span encoded_data); } // namespace media #endif // MEDIA_PARSERS_WEBP_PARSER_H_