mirror of
https://github.com/webmproject/libwebp.git
synced 2024-11-20 12:28:26 +01:00
Merge "don't forward declare enums"
This commit is contained in:
commit
d3136ce27d
@ -20,13 +20,13 @@ extern "C" {
|
|||||||
|
|
||||||
#define WEBP_DECODER_ABI_VERSION 0x0201 // MAJOR(8b) + MINOR(8b)
|
#define WEBP_DECODER_ABI_VERSION 0x0201 // MAJOR(8b) + MINOR(8b)
|
||||||
|
|
||||||
|
// Note: forward declaring enumerations is not allowed in (strict) C and C++,
|
||||||
|
// the types are left here for reference.
|
||||||
|
// typedef enum VP8StatusCode VP8StatusCode;
|
||||||
|
// typedef enum WEBP_CSP_MODE WEBP_CSP_MODE;
|
||||||
typedef struct WebPRGBABuffer WebPRGBABuffer;
|
typedef struct WebPRGBABuffer WebPRGBABuffer;
|
||||||
typedef struct WebPYUVABuffer WebPYUVABuffer;
|
typedef struct WebPYUVABuffer WebPYUVABuffer;
|
||||||
typedef struct WebPDecBuffer WebPDecBuffer;
|
typedef struct WebPDecBuffer WebPDecBuffer;
|
||||||
#if !(defined(__cplusplus) || defined(c_plusplus))
|
|
||||||
typedef enum VP8StatusCode VP8StatusCode;
|
|
||||||
typedef enum WEBP_CSP_MODE WEBP_CSP_MODE;
|
|
||||||
#endif
|
|
||||||
typedef struct WebPIDecoder WebPIDecoder;
|
typedef struct WebPIDecoder WebPIDecoder;
|
||||||
typedef struct WebPBitstreamFeatures WebPBitstreamFeatures;
|
typedef struct WebPBitstreamFeatures WebPBitstreamFeatures;
|
||||||
typedef struct WebPDecoderOptions WebPDecoderOptions;
|
typedef struct WebPDecoderOptions WebPDecoderOptions;
|
||||||
@ -138,7 +138,7 @@ WEBP_EXTERN(uint8_t*) WebPDecodeYUVInto(
|
|||||||
// RGBA-4444: [b3 b2 b1 b0 a3 a2 a1 a0], [r3 r2 r1 r0 g3 g2 g1 g0], ...
|
// RGBA-4444: [b3 b2 b1 b0 a3 a2 a1 a0], [r3 r2 r1 r0 g3 g2 g1 g0], ...
|
||||||
// RGB-565: [g2 g1 g0 b4 b3 b2 b1 b0], [r4 r3 r2 r1 r0 g5 g4 g3], ...
|
// RGB-565: [g2 g1 g0 b4 b3 b2 b1 b0], [r4 r3 r2 r1 r0 g5 g4 g3], ...
|
||||||
|
|
||||||
enum WEBP_CSP_MODE {
|
typedef enum WEBP_CSP_MODE {
|
||||||
MODE_RGB = 0, MODE_RGBA = 1,
|
MODE_RGB = 0, MODE_RGBA = 1,
|
||||||
MODE_BGR = 2, MODE_BGRA = 3,
|
MODE_BGR = 2, MODE_BGRA = 3,
|
||||||
MODE_ARGB = 4, MODE_RGBA_4444 = 5,
|
MODE_ARGB = 4, MODE_RGBA_4444 = 5,
|
||||||
@ -151,7 +151,7 @@ enum WEBP_CSP_MODE {
|
|||||||
// YUV modes must come after RGB ones.
|
// YUV modes must come after RGB ones.
|
||||||
MODE_YUV = 11, MODE_YUVA = 12, // yuv 4:2:0
|
MODE_YUV = 11, MODE_YUVA = 12, // yuv 4:2:0
|
||||||
MODE_LAST = 13
|
MODE_LAST = 13
|
||||||
};
|
} WEBP_CSP_MODE;
|
||||||
|
|
||||||
// Some useful macros:
|
// Some useful macros:
|
||||||
static WEBP_INLINE int WebPIsPremultipliedMode(WEBP_CSP_MODE mode) {
|
static WEBP_INLINE int WebPIsPremultipliedMode(WEBP_CSP_MODE mode) {
|
||||||
@ -220,7 +220,7 @@ WEBP_EXTERN(void) WebPFreeDecBuffer(WebPDecBuffer* buffer);
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Enumeration of the status codes
|
// Enumeration of the status codes
|
||||||
|
|
||||||
enum VP8StatusCode {
|
typedef enum VP8StatusCode {
|
||||||
VP8_STATUS_OK = 0,
|
VP8_STATUS_OK = 0,
|
||||||
VP8_STATUS_OUT_OF_MEMORY,
|
VP8_STATUS_OUT_OF_MEMORY,
|
||||||
VP8_STATUS_INVALID_PARAM,
|
VP8_STATUS_INVALID_PARAM,
|
||||||
@ -229,7 +229,7 @@ enum VP8StatusCode {
|
|||||||
VP8_STATUS_SUSPENDED,
|
VP8_STATUS_SUSPENDED,
|
||||||
VP8_STATUS_USER_ABORT,
|
VP8_STATUS_USER_ABORT,
|
||||||
VP8_STATUS_NOT_ENOUGH_DATA
|
VP8_STATUS_NOT_ENOUGH_DATA
|
||||||
};
|
} VP8StatusCode;
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Incremental decoding
|
// Incremental decoding
|
||||||
|
@ -53,11 +53,11 @@ extern "C" {
|
|||||||
|
|
||||||
#define WEBP_DEMUX_ABI_VERSION 0x0100 // MAJOR(8b) + MINOR(8b)
|
#define WEBP_DEMUX_ABI_VERSION 0x0100 // MAJOR(8b) + MINOR(8b)
|
||||||
|
|
||||||
|
// Note: forward declaring enumerations is not allowed in (strict) C and C++,
|
||||||
|
// the types are left here for reference.
|
||||||
|
// typedef enum WebPDemuxState WebPDemuxState;
|
||||||
|
// typedef enum WebPFormatFeature WebPFormatFeature;
|
||||||
typedef struct WebPDemuxer WebPDemuxer;
|
typedef struct WebPDemuxer WebPDemuxer;
|
||||||
#if !(defined(__cplusplus) || defined(c_plusplus))
|
|
||||||
typedef enum WebPDemuxState WebPDemuxState;
|
|
||||||
typedef enum WebPFormatFeature WebPFormatFeature;
|
|
||||||
#endif
|
|
||||||
typedef struct WebPIterator WebPIterator;
|
typedef struct WebPIterator WebPIterator;
|
||||||
typedef struct WebPChunkIterator WebPChunkIterator;
|
typedef struct WebPChunkIterator WebPChunkIterator;
|
||||||
|
|
||||||
@ -70,11 +70,11 @@ WEBP_EXTERN(int) WebPGetDemuxVersion(void);
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Life of a Demux object
|
// Life of a Demux object
|
||||||
|
|
||||||
enum WebPDemuxState {
|
typedef enum WebPDemuxState {
|
||||||
WEBP_DEMUX_PARSING_HEADER, // Not enough data to parse full header.
|
WEBP_DEMUX_PARSING_HEADER, // Not enough data to parse full header.
|
||||||
WEBP_DEMUX_PARSED_HEADER, // Header parsing complete, data may be available.
|
WEBP_DEMUX_PARSED_HEADER, // Header parsing complete, data may be available.
|
||||||
WEBP_DEMUX_DONE // Entire file has been parsed.
|
WEBP_DEMUX_DONE // Entire file has been parsed.
|
||||||
};
|
} WebPDemuxState;
|
||||||
|
|
||||||
// Internal, version-checked, entry point
|
// Internal, version-checked, entry point
|
||||||
WEBP_EXTERN(WebPDemuxer*) WebPDemuxInternal(
|
WEBP_EXTERN(WebPDemuxer*) WebPDemuxInternal(
|
||||||
@ -100,7 +100,7 @@ WEBP_EXTERN(void) WebPDemuxDelete(WebPDemuxer* dmux);
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Data/information extraction.
|
// Data/information extraction.
|
||||||
|
|
||||||
enum WebPFormatFeature {
|
typedef enum WebPFormatFeature {
|
||||||
WEBP_FF_FORMAT_FLAGS, // Extended format flags present in the 'VP8X' chunk.
|
WEBP_FF_FORMAT_FLAGS, // Extended format flags present in the 'VP8X' chunk.
|
||||||
WEBP_FF_CANVAS_WIDTH,
|
WEBP_FF_CANVAS_WIDTH,
|
||||||
WEBP_FF_CANVAS_HEIGHT,
|
WEBP_FF_CANVAS_HEIGHT,
|
||||||
@ -110,7 +110,7 @@ enum WebPFormatFeature {
|
|||||||
// In case of a partial demux, this is the number of
|
// In case of a partial demux, this is the number of
|
||||||
// frames seen so far, with the last frame possibly
|
// frames seen so far, with the last frame possibly
|
||||||
// being partial.
|
// being partial.
|
||||||
};
|
} WebPFormatFeature;
|
||||||
|
|
||||||
// Get the 'feature' value from the 'dmux'.
|
// Get the 'feature' value from the 'dmux'.
|
||||||
// NOTE: values are only valid if WebPDemux() was used or WebPDemuxPartial()
|
// NOTE: values are only valid if WebPDemux() was used or WebPDemuxPartial()
|
||||||
|
@ -20,12 +20,12 @@ extern "C" {
|
|||||||
|
|
||||||
#define WEBP_ENCODER_ABI_VERSION 0x0201 // MAJOR(8b) + MINOR(8b)
|
#define WEBP_ENCODER_ABI_VERSION 0x0201 // MAJOR(8b) + MINOR(8b)
|
||||||
|
|
||||||
#if !(defined(__cplusplus) || defined(c_plusplus))
|
// Note: forward declaring enumerations is not allowed in (strict) C and C++,
|
||||||
typedef enum WebPImageHint WebPImageHint;
|
// the types are left here for reference.
|
||||||
typedef enum WebPEncCSP WebPEncCSP;
|
// typedef enum WebPImageHint WebPImageHint;
|
||||||
typedef enum WebPPreset WebPPreset;
|
// typedef enum WebPEncCSP WebPEncCSP;
|
||||||
typedef enum WebPEncodingError WebPEncodingError;
|
// typedef enum WebPPreset WebPPreset;
|
||||||
#endif
|
// typedef enum WebPEncodingError WebPEncodingError;
|
||||||
typedef struct WebPConfig WebPConfig;
|
typedef struct WebPConfig WebPConfig;
|
||||||
typedef struct WebPPicture WebPPicture; // main structure for I/O
|
typedef struct WebPPicture WebPPicture; // main structure for I/O
|
||||||
typedef struct WebPAuxStats WebPAuxStats;
|
typedef struct WebPAuxStats WebPAuxStats;
|
||||||
@ -77,13 +77,13 @@ WEBP_EXTERN(size_t) WebPEncodeLosslessBGRA(const uint8_t* bgra,
|
|||||||
// Coding parameters
|
// Coding parameters
|
||||||
|
|
||||||
// Image characteristics hint for the underlying encoder.
|
// Image characteristics hint for the underlying encoder.
|
||||||
enum WebPImageHint {
|
typedef enum WebPImageHint {
|
||||||
WEBP_HINT_DEFAULT = 0, // default preset.
|
WEBP_HINT_DEFAULT = 0, // default preset.
|
||||||
WEBP_HINT_PICTURE, // digital picture, like portrait, inner shot
|
WEBP_HINT_PICTURE, // digital picture, like portrait, inner shot
|
||||||
WEBP_HINT_PHOTO, // outdoor photograph, with natural lighting
|
WEBP_HINT_PHOTO, // outdoor photograph, with natural lighting
|
||||||
WEBP_HINT_GRAPH, // Discrete tone image (graph, map-tile etc).
|
WEBP_HINT_GRAPH, // Discrete tone image (graph, map-tile etc).
|
||||||
WEBP_HINT_LAST
|
WEBP_HINT_LAST
|
||||||
};
|
} WebPImageHint;
|
||||||
|
|
||||||
// Compression parameters.
|
// Compression parameters.
|
||||||
struct WebPConfig {
|
struct WebPConfig {
|
||||||
@ -133,14 +133,14 @@ struct WebPConfig {
|
|||||||
|
|
||||||
// Enumerate some predefined settings for WebPConfig, depending on the type
|
// Enumerate some predefined settings for WebPConfig, depending on the type
|
||||||
// of source picture. These presets are used when calling WebPConfigPreset().
|
// of source picture. These presets are used when calling WebPConfigPreset().
|
||||||
enum WebPPreset {
|
typedef enum WebPPreset {
|
||||||
WEBP_PRESET_DEFAULT = 0, // default preset.
|
WEBP_PRESET_DEFAULT = 0, // default preset.
|
||||||
WEBP_PRESET_PICTURE, // digital picture, like portrait, inner shot
|
WEBP_PRESET_PICTURE, // digital picture, like portrait, inner shot
|
||||||
WEBP_PRESET_PHOTO, // outdoor photograph, with natural lighting
|
WEBP_PRESET_PHOTO, // outdoor photograph, with natural lighting
|
||||||
WEBP_PRESET_DRAWING, // hand or line drawing, with high-contrast details
|
WEBP_PRESET_DRAWING, // hand or line drawing, with high-contrast details
|
||||||
WEBP_PRESET_ICON, // small-sized colorful images
|
WEBP_PRESET_ICON, // small-sized colorful images
|
||||||
WEBP_PRESET_TEXT // text-like
|
WEBP_PRESET_TEXT // text-like
|
||||||
};
|
} WebPPreset;
|
||||||
|
|
||||||
// Internal, version-checked, entry point
|
// Internal, version-checked, entry point
|
||||||
WEBP_EXTERN(int) WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int);
|
WEBP_EXTERN(int) WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int);
|
||||||
@ -230,7 +230,7 @@ WEBP_EXTERN(int) WebPMemoryWrite(const uint8_t* data, size_t data_size,
|
|||||||
typedef int (*WebPProgressHook)(int percent, const WebPPicture* picture);
|
typedef int (*WebPProgressHook)(int percent, const WebPPicture* picture);
|
||||||
|
|
||||||
// Color spaces.
|
// Color spaces.
|
||||||
enum WebPEncCSP {
|
typedef enum WebPEncCSP {
|
||||||
// chroma sampling
|
// chroma sampling
|
||||||
WEBP_YUV420 = 0, // 4:2:0
|
WEBP_YUV420 = 0, // 4:2:0
|
||||||
WEBP_YUV422 = 1, // 4:2:2
|
WEBP_YUV422 = 1, // 4:2:2
|
||||||
@ -243,10 +243,10 @@ enum WebPEncCSP {
|
|||||||
WEBP_YUV444A = 6,
|
WEBP_YUV444A = 6,
|
||||||
WEBP_YUV400A = 7, // grayscale + alpha
|
WEBP_YUV400A = 7, // grayscale + alpha
|
||||||
WEBP_CSP_ALPHA_BIT = 4 // bit that is set if alpha is present
|
WEBP_CSP_ALPHA_BIT = 4 // bit that is set if alpha is present
|
||||||
};
|
} WebPEncCSP;
|
||||||
|
|
||||||
// Encoding error conditions.
|
// Encoding error conditions.
|
||||||
enum WebPEncodingError {
|
typedef enum WebPEncodingError {
|
||||||
VP8_ENC_OK = 0,
|
VP8_ENC_OK = 0,
|
||||||
VP8_ENC_ERROR_OUT_OF_MEMORY, // memory error allocating objects
|
VP8_ENC_ERROR_OUT_OF_MEMORY, // memory error allocating objects
|
||||||
VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, // memory error while flushing bits
|
VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, // memory error while flushing bits
|
||||||
@ -259,7 +259,7 @@ enum WebPEncodingError {
|
|||||||
VP8_ENC_ERROR_FILE_TOO_BIG, // file is bigger than 4G
|
VP8_ENC_ERROR_FILE_TOO_BIG, // file is bigger than 4G
|
||||||
VP8_ENC_ERROR_USER_ABORT, // abort request by user
|
VP8_ENC_ERROR_USER_ABORT, // abort request by user
|
||||||
VP8_ENC_ERROR_LAST // list terminator. always last.
|
VP8_ENC_ERROR_LAST // list terminator. always last.
|
||||||
};
|
} WebPEncodingError;
|
||||||
|
|
||||||
// maximum width/height allowed (inclusive), in pixels
|
// maximum width/height allowed (inclusive), in pixels
|
||||||
#define WEBP_MAX_DIMENSION 16383
|
#define WEBP_MAX_DIMENSION 16383
|
||||||
|
@ -53,26 +53,26 @@ extern "C" {
|
|||||||
|
|
||||||
#define WEBP_MUX_ABI_VERSION 0x0100 // MAJOR(8b) + MINOR(8b)
|
#define WEBP_MUX_ABI_VERSION 0x0100 // MAJOR(8b) + MINOR(8b)
|
||||||
|
|
||||||
|
// Note: forward declaring enumerations is not allowed in (strict) C and C++,
|
||||||
|
// the types are left here for reference.
|
||||||
|
// typedef enum WebPMuxError WebPMuxError;
|
||||||
|
// typedef enum WebPChunkId WebPChunkId;
|
||||||
typedef struct WebPMux WebPMux; // main opaque object.
|
typedef struct WebPMux WebPMux; // main opaque object.
|
||||||
#if !(defined(__cplusplus) || defined(c_plusplus))
|
|
||||||
typedef enum WebPMuxError WebPMuxError;
|
|
||||||
typedef enum WebPChunkId WebPChunkId;
|
|
||||||
#endif
|
|
||||||
typedef struct WebPMuxFrameInfo WebPMuxFrameInfo;
|
typedef struct WebPMuxFrameInfo WebPMuxFrameInfo;
|
||||||
typedef struct WebPMuxAnimParams WebPMuxAnimParams;
|
typedef struct WebPMuxAnimParams WebPMuxAnimParams;
|
||||||
|
|
||||||
// Error codes
|
// Error codes
|
||||||
enum WebPMuxError {
|
typedef enum WebPMuxError {
|
||||||
WEBP_MUX_OK = 1,
|
WEBP_MUX_OK = 1,
|
||||||
WEBP_MUX_NOT_FOUND = 0,
|
WEBP_MUX_NOT_FOUND = 0,
|
||||||
WEBP_MUX_INVALID_ARGUMENT = -1,
|
WEBP_MUX_INVALID_ARGUMENT = -1,
|
||||||
WEBP_MUX_BAD_DATA = -2,
|
WEBP_MUX_BAD_DATA = -2,
|
||||||
WEBP_MUX_MEMORY_ERROR = -3,
|
WEBP_MUX_MEMORY_ERROR = -3,
|
||||||
WEBP_MUX_NOT_ENOUGH_DATA = -4
|
WEBP_MUX_NOT_ENOUGH_DATA = -4
|
||||||
};
|
} WebPMuxError;
|
||||||
|
|
||||||
// IDs for different types of chunks.
|
// IDs for different types of chunks.
|
||||||
enum WebPChunkId {
|
typedef enum WebPChunkId {
|
||||||
WEBP_CHUNK_VP8X, // VP8X
|
WEBP_CHUNK_VP8X, // VP8X
|
||||||
WEBP_CHUNK_ICCP, // ICCP
|
WEBP_CHUNK_ICCP, // ICCP
|
||||||
WEBP_CHUNK_ANIM, // ANIM
|
WEBP_CHUNK_ANIM, // ANIM
|
||||||
@ -84,7 +84,7 @@ enum WebPChunkId {
|
|||||||
WEBP_CHUNK_XMP, // XMP
|
WEBP_CHUNK_XMP, // XMP
|
||||||
WEBP_CHUNK_UNKNOWN, // Other chunks.
|
WEBP_CHUNK_UNKNOWN, // Other chunks.
|
||||||
WEBP_CHUNK_NIL
|
WEBP_CHUNK_NIL
|
||||||
};
|
} WebPChunkId;
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -20,31 +20,31 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !(defined(__cplusplus) || defined(c_plusplus))
|
// Note: forward declaring enumerations is not allowed in (strict) C and C++,
|
||||||
typedef enum WebPFeatureFlags WebPFeatureFlags;
|
// the types are left here for reference.
|
||||||
typedef enum WebPMuxAnimDispose WebPMuxAnimDispose;
|
// typedef enum WebPFeatureFlags WebPFeatureFlags;
|
||||||
#endif
|
// typedef enum WebPMuxAnimDispose WebPMuxAnimDispose;
|
||||||
|
typedef struct WebPData WebPData;
|
||||||
|
|
||||||
// VP8X Feature Flags.
|
// VP8X Feature Flags.
|
||||||
enum WebPFeatureFlags {
|
typedef enum WebPFeatureFlags {
|
||||||
FRAGMENTS_FLAG = 0x00000001,
|
FRAGMENTS_FLAG = 0x00000001,
|
||||||
ANIMATION_FLAG = 0x00000002,
|
ANIMATION_FLAG = 0x00000002,
|
||||||
XMP_FLAG = 0x00000004,
|
XMP_FLAG = 0x00000004,
|
||||||
EXIF_FLAG = 0x00000008,
|
EXIF_FLAG = 0x00000008,
|
||||||
ALPHA_FLAG = 0x00000010,
|
ALPHA_FLAG = 0x00000010,
|
||||||
ICCP_FLAG = 0x00000020
|
ICCP_FLAG = 0x00000020
|
||||||
};
|
} WebPFeatureFlags;
|
||||||
|
|
||||||
// Dispose method (animation only). Indicates how the area used by the current
|
// Dispose method (animation only). Indicates how the area used by the current
|
||||||
// frame is to be treated before rendering the next frame on the canvas.
|
// frame is to be treated before rendering the next frame on the canvas.
|
||||||
enum WebPMuxAnimDispose {
|
typedef enum WebPMuxAnimDispose {
|
||||||
WEBP_MUX_DISPOSE_NONE, // Do not dispose.
|
WEBP_MUX_DISPOSE_NONE, // Do not dispose.
|
||||||
WEBP_MUX_DISPOSE_BACKGROUND // Dispose to background color.
|
WEBP_MUX_DISPOSE_BACKGROUND // Dispose to background color.
|
||||||
};
|
} WebPMuxAnimDispose;
|
||||||
|
|
||||||
// Data type used to describe 'raw' data, e.g., chunk data
|
// Data type used to describe 'raw' data, e.g., chunk data
|
||||||
// (ICC profile, metadata) and WebP compressed image data.
|
// (ICC profile, metadata) and WebP compressed image data.
|
||||||
typedef struct WebPData WebPData;
|
|
||||||
struct WebPData {
|
struct WebPData {
|
||||||
const uint8_t* bytes;
|
const uint8_t* bytes;
|
||||||
size_t size;
|
size_t size;
|
||||||
|
Loading…
Reference in New Issue
Block a user