~alinuxninja/nginx-edge/trunk

« back to all changes in this revision

Viewing changes to debian/modules/ngx_pagespeed/psol/include/third_party/libwebp/examples/gif2webp_util.h

  • Committer: Vivian
  • Date: 2015-12-04 18:20:11 UTC
  • Revision ID: git-v1:a36f2bc32e884f7473b3a47040e5411306144d7d
* Do not extract psol.tar.gz

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Copyright 2013 Google Inc. All Rights Reserved.
2
 
//
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
5
 
// tree. An additional intellectual property rights grant can be found
6
 
// in the file PATENTS. All contributing project authors may
7
 
// be found in the AUTHORS file in the root of the source tree.
8
 
// -----------------------------------------------------------------------------
9
 
//
10
 
//  Helper structs and methods for gif2webp tool.
11
 
//
12
 
// Author: Urvang (urvang@google.com)
13
 
 
14
 
#ifndef WEBP_EXAMPLES_GIF2WEBP_UTIL_H_
15
 
#define WEBP_EXAMPLES_GIF2WEBP_UTIL_H_
16
 
 
17
 
#include <stdlib.h>
18
 
 
19
 
#include "webp/mux.h"
20
 
 
21
 
#ifdef __cplusplus
22
 
extern "C" {
23
 
#endif
24
 
 
25
 
//------------------------------------------------------------------------------
26
 
// Helper utilities.
27
 
 
28
 
#define WEBP_UTIL_TRANSPARENT_COLOR 0x00ffffff
29
 
 
30
 
struct WebPPicture;
31
 
 
32
 
typedef struct {
33
 
  int x_offset, y_offset, width, height;
34
 
} WebPFrameRect;
35
 
 
36
 
// Clear pixels in 'picture' within given 'rect' to transparent color.
37
 
void WebPUtilClearPic(struct WebPPicture* const picture,
38
 
                      const WebPFrameRect* const rect);
39
 
 
40
 
//------------------------------------------------------------------------------
41
 
// Frame cache.
42
 
 
43
 
typedef struct WebPFrameCache WebPFrameCache;
44
 
 
45
 
// Given the minimum distance between key frames 'kmin' and maximum distance
46
 
// between key frames 'kmax', returns an appropriately allocated cache object.
47
 
// If 'allow_mixed' is true, the subsequent calls to WebPFrameCacheAddFrame()
48
 
// will heuristically pick lossy or lossless compression for each frame.
49
 
// Use WebPFrameCacheDelete() to deallocate the 'cache'.
50
 
WebPFrameCache* WebPFrameCacheNew(int width, int height,
51
 
                                  size_t kmin, size_t kmax, int allow_mixed);
52
 
 
53
 
// Release all the frame data from 'cache' and free 'cache'.
54
 
void WebPFrameCacheDelete(WebPFrameCache* const cache);
55
 
 
56
 
// Given an image described by 'frame', 'info' and 'orig_rect', optimize it for
57
 
// WebP, encode it and add it to 'cache'. 'orig_rect' can be NULL.
58
 
// This takes care of frame disposal too, according to 'info->dispose_method'.
59
 
// Returns false in case of error (and sets frame->error_code accordingly).
60
 
int WebPFrameCacheAddFrame(WebPFrameCache* const cache,
61
 
                           const WebPConfig* const config,
62
 
                           const WebPFrameRect* const orig_rect,
63
 
                           WebPPicture* const frame,
64
 
                           WebPMuxFrameInfo* const info);
65
 
 
66
 
// Flush the *ready* frames from cache and add them to 'mux'. If 'verbose' is
67
 
// true, prints the information about these frames.
68
 
WebPMuxError WebPFrameCacheFlush(WebPFrameCache* const cache, int verbose,
69
 
                                 WebPMux* const mux);
70
 
 
71
 
// Similar to 'WebPFrameCacheFlushFrames()', but flushes *all* the frames.
72
 
WebPMuxError WebPFrameCacheFlushAll(WebPFrameCache* const cache, int verbose,
73
 
                                    WebPMux* const mux);
74
 
 
75
 
//------------------------------------------------------------------------------
76
 
 
77
 
#ifdef __cplusplus
78
 
}    // extern "C"
79
 
#endif
80
 
 
81
 
#endif  // WEBP_EXAMPLES_GIF2WEBP_UTIL_H_