aboutsummaryrefslogtreecommitdiff
path: root/Src/libvp6/corelibs/include/WCompC.h
blob: dee8f788d74c86bb70fc84115296af70d843cf90 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/****************************************************************************

	Entry for "C" calls

****************************************************************************/
#ifndef WCOMPC_H
#define WCOMPC_H


#ifndef YUVINPUTBUFFERCONFIG
#define YUVINPUTBUFFERCONFIG
typedef struct
{
    int     YWidth;
    int     YHeight;
    int     YStride;

    int     UVWidth;
    int     UVHeight;
    int     UVStride;

    char *  YBuffer;
    char *  UBuffer;
    char *  VBuffer;

} YUV_INPUT_BUFFER_CONFIG;
#endif

#ifdef __cplusplus
extern "C" 
{
#endif

	void NewWC(void **wc);

	void DeleteWC(void **wc);

	int BeginCompressWC(
			void *wc,
			int ScreenWidth,
			int ScreenHeight,
			int Width,
			int Height,
			int XOffset,
			int YOffset);

	
	int CompressYUVWC(void *wc,
			YUV_INPUT_BUFFER_CONFIG *YuvInputData,
			unsigned char *OutputBufferPtr,
			unsigned char *ReconBufferPtr,
			int TargetSize);

	int CompressWC(void *wc,
			 unsigned char *InputData,
			 unsigned char *OutputBufferPtr,
			 unsigned char *ReconBufferPtr,
			 int TargetSize);

	int AnalyzeWC(void *wc,
			 unsigned char *InputData);


	void EndCompressWC(void *wc);


	int BeginDecompressWC(void *wc,
					  int ScreenWidth,
					  int ScreenHeight,
					  int Width,
					  int Height,
					  int XOffset,
					  int YOffset);

	int DecompressWC(void *wc,
			   unsigned char *InputBufferPtr,
			   unsigned char *OutputBufferPtr);


	void EndDecompressWC(void *wc);
#ifdef __cplusplus

	}
#endif

#endif