// Copyright 2012 Google Inc. All Rights Reserved. // // Use of this source code is governed by a BSD-style license // that can be found in the COPYING file in the root of the source // tree. An additional intellectual property rights grant can be found // in the file PATENTS. All contributing project authors may // be found in the AUTHORS file in the root of the source tree. // ----------------------------------------------------------------------------- // // Metadata types and functions. // #ifndef WEBP_EXAMPLES_METADATA_H_ #define WEBP_EXAMPLES_METADATA_H_ #include "webp/types.h" #ifdef __cplusplus extern "C" { #endif typedef struct MetadataPayload { uint8_t* bytes; size_t size; } MetadataPayload; typedef struct Metadata { MetadataPayload exif; MetadataPayload iccp; MetadataPayload xmp; } Metadata; #define METADATA_OFFSET(x) offsetof(Metadata, x) void MetadataInit(Metadata* const metadata); void MetadataPayloadDelete(MetadataPayload* const payload); void MetadataFree(Metadata* const metadata); // Stores 'metadata' to 'payload->bytes', returns false on allocation error. int MetadataCopy(const char* metadata, size_t metadata_len, MetadataPayload* const payload); #ifdef __cplusplus } // extern "C" #endif #endif // WEBP_EXAMPLES_METADATA_H_