blob: d6304154efc5c03902e1204ff7694ea02b5881ed [file] [log] [blame]
Kristian Høgsberg894e0b52012-05-25 17:55:20 -04001/*
2 * Copyright © 2012 Intel Corporation
3 *
4 * Permission to use, copy, modify, distribute, and sell this software and
5 * its documentation for any purpose is hereby granted without fee, provided
6 * that the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of the copyright holders not be used in
9 * advertising or publicity pertaining to distribution of the software
10 * without specific, written prior permission. The copyright holders make
11 * no representations about the suitability of this software for any
12 * purpose. It is provided "as is" without express or implied warranty.
13 *
14 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
15 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
17 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
18 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
19 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
20 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 */
22
23#ifndef _WCAP_DECODE_
24#define _WCAP_DECODE_
25
26#define WCAP_HEADER_MAGIC 0x57434150
27
28#define WCAP_FORMAT_XRGB8888 0x34325258
29#define WCAP_FORMAT_XBGR8888 0x34324258
30#define WCAP_FORMAT_RGBX8888 0x34325852
31#define WCAP_FORMAT_BGRX8888 0x34325842
32
33struct wcap_header {
34 uint32_t magic;
35 uint32_t format;
36 uint32_t width, height;
37};
38
39struct wcap_frame_header {
40 uint32_t msecs;
41 uint32_t nrects;
42};
43
44struct wcap_rectangle {
45 int32_t x1, y1, x2, y2;
46};
47
48struct wcap_decoder {
49 int fd;
50 size_t size;
51 void *map, *p, *end;
52 uint32_t *frame;
Kristian Høgsberg2255eb02012-05-25 21:51:25 -040053 uint32_t format;
Kristian Høgsberg11374d22012-05-25 22:33:35 -040054 uint32_t msecs;
55 uint32_t count;
Kristian Høgsberg894e0b52012-05-25 17:55:20 -040056 int width, height;
57};
58
59int wcap_decoder_get_frame(struct wcap_decoder *decoder);
60struct wcap_decoder *wcap_decoder_create(const char *filename);
61void wcap_decoder_destroy(struct wcap_decoder *decoder);
62
63#endif