OLD | NEW |
1 // Copyright 2012 Google Inc. All Rights Reserved. | 1 // Copyright 2012 Google Inc. All Rights Reserved. |
2 // | 2 // |
3 // Use of this source code is governed by a BSD-style license | 3 // Use of this source code is governed by a BSD-style license |
4 // that can be found in the COPYING file in the root of the source | 4 // that can be found in the COPYING file in the root of the source |
5 // tree. An additional intellectual property rights grant can be found | 5 // tree. An additional intellectual property rights grant can be found |
6 // in the file PATENTS. All contributing project authors may | 6 // in the file PATENTS. All contributing project authors may |
7 // be found in the AUTHORS file in the root of the source tree. | 7 // be found in the AUTHORS file in the root of the source tree. |
8 // ----------------------------------------------------------------------------- | 8 // ----------------------------------------------------------------------------- |
9 // | 9 // |
10 // Demux API. | 10 // Demux API. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 | 46 |
47 #ifndef WEBP_WEBP_DEMUX_H_ | 47 #ifndef WEBP_WEBP_DEMUX_H_ |
48 #define WEBP_WEBP_DEMUX_H_ | 48 #define WEBP_WEBP_DEMUX_H_ |
49 | 49 |
50 #include "./mux_types.h" | 50 #include "./mux_types.h" |
51 | 51 |
52 #if defined(__cplusplus) || defined(c_plusplus) | 52 #if defined(__cplusplus) || defined(c_plusplus) |
53 extern "C" { | 53 extern "C" { |
54 #endif | 54 #endif |
55 | 55 |
56 #define WEBP_DEMUX_ABI_VERSION 0x0100 // MAJOR(8b) + MINOR(8b) | 56 #define WEBP_DEMUX_ABI_VERSION 0x0101 // MAJOR(8b) + MINOR(8b) |
57 | 57 |
58 // Note: forward declaring enumerations is not allowed in (strict) C and C++, | 58 // Note: forward declaring enumerations is not allowed in (strict) C and C++, |
59 // the types are left here for reference. | 59 // the types are left here for reference. |
60 // typedef enum WebPDemuxState WebPDemuxState; | 60 // typedef enum WebPDemuxState WebPDemuxState; |
61 // typedef enum WebPFormatFeature WebPFormatFeature; | 61 // typedef enum WebPFormatFeature WebPFormatFeature; |
62 typedef struct WebPDemuxer WebPDemuxer; | 62 typedef struct WebPDemuxer WebPDemuxer; |
63 typedef struct WebPIterator WebPIterator; | 63 typedef struct WebPIterator WebPIterator; |
64 typedef struct WebPChunkIterator WebPChunkIterator; | 64 typedef struct WebPChunkIterator WebPChunkIterator; |
65 | 65 |
66 //------------------------------------------------------------------------------ | 66 //------------------------------------------------------------------------------ |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 int fragment_num; | 129 int fragment_num; |
130 int num_fragments; | 130 int num_fragments; |
131 int x_offset, y_offset; // offset relative to the canvas. | 131 int x_offset, y_offset; // offset relative to the canvas. |
132 int width, height; // dimensions of this frame or fragment. | 132 int width, height; // dimensions of this frame or fragment. |
133 int duration; // display duration in milliseconds. | 133 int duration; // display duration in milliseconds. |
134 WebPMuxAnimDispose dispose_method; // dispose method for the frame. | 134 WebPMuxAnimDispose dispose_method; // dispose method for the frame. |
135 int complete; // true if 'fragment' contains a full frame. partial images | 135 int complete; // true if 'fragment' contains a full frame. partial images |
136 // may still be decoded with the WebP incremental decoder. | 136 // may still be decoded with the WebP incremental decoder. |
137 WebPData fragment; // The frame or fragment given by 'frame_num' and | 137 WebPData fragment; // The frame or fragment given by 'frame_num' and |
138 // 'fragment_num'. | 138 // 'fragment_num'. |
| 139 int has_alpha; // True if the frame or fragment contains transparency. |
| 140 WebPMuxAnimBlend blend_method; // Blend operation for the frame. |
139 | 141 |
140 uint32_t pad[4]; // padding for later use. | 142 uint32_t pad[2]; // padding for later use. |
141 void* private_; // for internal use only. | 143 void* private_; // for internal use only. |
142 }; | 144 }; |
143 | 145 |
144 // Retrieves frame 'frame_number' from 'dmux'. | 146 // Retrieves frame 'frame_number' from 'dmux'. |
145 // 'iter->fragment' points to the first fragment on return from this function. | 147 // 'iter->fragment' points to the first fragment on return from this function. |
146 // Individual fragments may be extracted using WebPDemuxSetFragment(). | 148 // Individual fragments may be extracted using WebPDemuxSetFragment(). |
147 // Setting 'frame_number' equal to 0 will return the last frame of the image. | 149 // Setting 'frame_number' equal to 0 will return the last frame of the image. |
148 // Returns false if 'dmux' is NULL or frame 'frame_number' is not present. | 150 // Returns false if 'dmux' is NULL or frame 'frame_number' is not present. |
149 // Call WebPDemuxReleaseIterator() when use of the iterator is complete. | 151 // Call WebPDemuxReleaseIterator() when use of the iterator is complete. |
150 // NOTE: 'dmux' must persist for the lifetime of 'iter'. | 152 // NOTE: 'dmux' must persist for the lifetime of 'iter'. |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 // WebPDemuxDelete(). | 207 // WebPDemuxDelete(). |
206 WEBP_EXTERN(void) WebPDemuxReleaseChunkIterator(WebPChunkIterator* iter); | 208 WEBP_EXTERN(void) WebPDemuxReleaseChunkIterator(WebPChunkIterator* iter); |
207 | 209 |
208 //------------------------------------------------------------------------------ | 210 //------------------------------------------------------------------------------ |
209 | 211 |
210 #if defined(__cplusplus) || defined(c_plusplus) | 212 #if defined(__cplusplus) || defined(c_plusplus) |
211 } // extern "C" | 213 } // extern "C" |
212 #endif | 214 #endif |
213 | 215 |
214 #endif /* WEBP_WEBP_DEMUX_H_ */ | 216 #endif /* WEBP_WEBP_DEMUX_H_ */ |
OLD | NEW |