FreeRDP
yuv.h
1 
20 #ifndef FREERDP_CODEC_YUV_H
21 #define FREERDP_CODEC_YUV_H
22 
23 #include <freerdp/api.h>
24 #include <freerdp/types.h>
25 #include <freerdp/constants.h>
26 
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31 
32  typedef struct S_YUV_CONTEXT YUV_CONTEXT;
33 
34  FREERDP_API BOOL yuv420_context_decode(
35  YUV_CONTEXT* WINPR_RESTRICT context, const BYTE* WINPR_RESTRICT pYUVData[3],
36  const UINT32 iStride[3], UINT32 yuvHeight, DWORD DstFormat, BYTE* WINPR_RESTRICT dest,
37  UINT32 nDstStep, const RECTANGLE_16* WINPR_RESTRICT regionRects, UINT32 numRegionRects);
38  FREERDP_API BOOL yuv420_context_encode(YUV_CONTEXT* WINPR_RESTRICT context,
39  const BYTE* WINPR_RESTRICT rgbData, UINT32 srcStep,
40  UINT32 srcFormat, const UINT32 iStride[3],
41  BYTE* WINPR_RESTRICT yuvData[3],
42  const RECTANGLE_16* WINPR_RESTRICT regionRects,
43  UINT32 numRegionRects);
44 
45  FREERDP_API BOOL yuv444_context_decode(
46  YUV_CONTEXT* WINPR_RESTRICT context, BYTE type, const BYTE* WINPR_RESTRICT pYUVData[3],
47  const UINT32 iStride[3], UINT32 srcYuvHeight, BYTE* WINPR_RESTRICT pYUVDstData[3],
48  const UINT32 iDstStride[3], DWORD DstFormat, BYTE* WINPR_RESTRICT dest, UINT32 nDstStep,
49  const RECTANGLE_16* WINPR_RESTRICT regionRects, UINT32 numRegionRects);
50  FREERDP_API BOOL yuv444_context_encode(YUV_CONTEXT* WINPR_RESTRICT context, BYTE version,
51  const BYTE* WINPR_RESTRICT pSrcData, UINT32 nSrcStep,
52  UINT32 SrcFormat, const UINT32 iStride[3],
53  BYTE* WINPR_RESTRICT pYUVLumaData[3],
54  BYTE* WINPR_RESTRICT pYUVChromaData[3],
55  const RECTANGLE_16* WINPR_RESTRICT regionRects,
56  UINT32 numRegionRects);
57 
58  FREERDP_API BOOL yuv_context_reset(YUV_CONTEXT* WINPR_RESTRICT context, UINT32 width,
59  UINT32 height);
60 
61  FREERDP_API void yuv_context_free(YUV_CONTEXT* context);
62 
63  WINPR_ATTR_MALLOC(yuv_context_free, 1)
64  FREERDP_API YUV_CONTEXT* yuv_context_new(BOOL encoder, UINT32 ThreadingFlags);
65 
66 #ifdef __cplusplus
67 }
68 #endif
69 
70 #endif /* FREERDP_CODEC_YUV_H */