Blame include/freerdp/channels/rdpgfx.h

Packit Service fa4841
/**
Packit Service fa4841
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit Service fa4841
 * Graphics Pipeline Extension
Packit Service fa4841
 *
Packit Service fa4841
 * Copyright 2013 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit Service fa4841
 *
Packit Service fa4841
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit Service fa4841
 * you may not use this file except in compliance with the License.
Packit Service fa4841
 * You may obtain a copy of the License at
Packit Service fa4841
 *
Packit Service fa4841
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit Service fa4841
 *
Packit Service fa4841
 * Unless required by applicable law or agreed to in writing, software
Packit Service fa4841
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit Service fa4841
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service fa4841
 * See the License for the specific language governing permissions and
Packit Service fa4841
 * limitations under the License.
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
#ifndef FREERDP_CHANNEL_RDPGFX_H
Packit Service fa4841
#define FREERDP_CHANNEL_RDPGFX_H
Packit Service fa4841
Packit Service fa4841
#include <freerdp/api.h>
Packit Service fa4841
#include <freerdp/dvc.h>
Packit Service fa4841
#include <freerdp/types.h>
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Graphics"
Packit Service fa4841
Packit Service fa4841
/**
Packit Service fa4841
 * Common Data Types
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_POINT16
Packit Service fa4841
{
Packit Service fa4841
	UINT16 x;
Packit Service fa4841
	UINT16 y;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_POINT16 RDPGFX_POINT16;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_COLOR32
Packit Service fa4841
{
Packit Service fa4841
	BYTE B;
Packit Service fa4841
	BYTE G;
Packit Service fa4841
	BYTE R;
Packit Service fa4841
	BYTE XA;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_COLOR32 RDPGFX_COLOR32;
Packit Service fa4841
Packit Service b1ea74
#define GFX_PIXEL_FORMAT_XRGB_8888 0x20
Packit Service b1ea74
#define GFX_PIXEL_FORMAT_ARGB_8888 0x21
Packit Service fa4841
Packit Service fa4841
typedef BYTE RDPGFX_PIXELFORMAT;
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_CMDID_UNUSED_0000 0x0000
Packit Service b1ea74
#define RDPGFX_CMDID_WIRETOSURFACE_1 0x0001
Packit Service b1ea74
#define RDPGFX_CMDID_WIRETOSURFACE_2 0x0002
Packit Service b1ea74
#define RDPGFX_CMDID_DELETEENCODINGCONTEXT 0x0003
Packit Service b1ea74
#define RDPGFX_CMDID_SOLIDFILL 0x0004
Packit Service b1ea74
#define RDPGFX_CMDID_SURFACETOSURFACE 0x0005
Packit Service b1ea74
#define RDPGFX_CMDID_SURFACETOCACHE 0x0006
Packit Service b1ea74
#define RDPGFX_CMDID_CACHETOSURFACE 0x0007
Packit Service b1ea74
#define RDPGFX_CMDID_EVICTCACHEENTRY 0x0008
Packit Service b1ea74
#define RDPGFX_CMDID_CREATESURFACE 0x0009
Packit Service b1ea74
#define RDPGFX_CMDID_DELETESURFACE 0x000A
Packit Service b1ea74
#define RDPGFX_CMDID_STARTFRAME 0x000B
Packit Service b1ea74
#define RDPGFX_CMDID_ENDFRAME 0x000C
Packit Service b1ea74
#define RDPGFX_CMDID_FRAMEACKNOWLEDGE 0x000D
Packit Service b1ea74
#define RDPGFX_CMDID_RESETGRAPHICS 0x000E
Packit Service b1ea74
#define RDPGFX_CMDID_MAPSURFACETOOUTPUT 0x000F
Packit Service b1ea74
#define RDPGFX_CMDID_CACHEIMPORTOFFER 0x0010
Packit Service b1ea74
#define RDPGFX_CMDID_CACHEIMPORTREPLY 0x0011
Packit Service b1ea74
#define RDPGFX_CMDID_CAPSADVERTISE 0x0012
Packit Service b1ea74
#define RDPGFX_CMDID_CAPSCONFIRM 0x0013
Packit Service b1ea74
#define RDPGFX_CMDID_UNUSED_0014 0x0014
Packit Service b1ea74
#define RDPGFX_CMDID_MAPSURFACETOWINDOW 0x0015
Packit Service b1ea74
#define RDPGFX_CMDID_QOEFRAMEACKNOWLEDGE 0x0016
Packit Service b1ea74
#define RDPGFX_CMDID_MAPSURFACETOSCALEDOUTPUT 0x0017
Packit Service b1ea74
#define RDPGFX_CMDID_MAPSURFACETOSCALEDWINDOW 0x0018
Packit Service b1ea74
Packit Service b1ea74
#define RDPGFX_HEADER_SIZE 8
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_HEADER
Packit Service fa4841
{
Packit Service fa4841
	UINT16 cmdId;
Packit Service fa4841
	UINT16 flags;
Packit Service fa4841
	UINT32 pduLength;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_HEADER RDPGFX_HEADER;
Packit Service fa4841
Packit Service fa4841
/**
Packit Service fa4841
 * Capability Sets [MS-RDPEGFX] 2.2.3
Packit Service fa4841
 */
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_CAPVERSION_8 0x00080004   /** [MS-RDPEGFX] 2.2.3.1 */
Packit Service b1ea74
#define RDPGFX_CAPVERSION_81 0x00080105  /** [MS-RDPEGFX] 2.2.3.2 */
Packit Service b1ea74
#define RDPGFX_CAPVERSION_10 0x000A0002  /** [MS-RDPEGFX] 2.2.3.3 */
Packit Service b1ea74
#define RDPGFX_CAPVERSION_101 0x000A0100 /** [MS-RDPEGFX] 2.2.3.4 */
Packit Service b1ea74
#define RDPGFX_CAPVERSION_102 0x000A0200 /** [MS-RDPEGFX] 2.2.3.5 */
Packit Service b1ea74
#define RDPGFX_CAPVERSION_103 0x000A0301 /** [MS-RDPEGFX] 2.2.3.6 */
Packit Service b1ea74
#define RDPGFX_CAPVERSION_104 0x000A0400 /** [MS-RDPEGFX] 2.2.3.7 */
Packit Service b1ea74
#define RDPGFX_CAPVERSION_105 0x000A0502 /** [MS-RDPEGFX] 2.2.3.8 */
Packit Service b1ea74
#define RDPGFX_CAPVERSION_106                                           \
Packit Service b1ea74
	0x000A0600 /** [MS-RDPEGFX] 2.2.3.9, [MS-RDPEGFX-errata] 2018-12-10 \
Packit Service b1ea74
	            */
Packit Service b1ea74
Packit Service b1ea74
#define RDPGFX_NUMBER_CAPSETS 9
Packit Service b1ea74
#define RDPGFX_CAPSET_BASE_SIZE 8
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CAPSET
Packit Service fa4841
{
Packit Service fa4841
	UINT32 version;
Packit Service b1ea74
	UINT32 length;
Packit Service fa4841
	UINT32 flags;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CAPSET RDPGFX_CAPSET;
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_CAPS_FLAG_THINCLIENT 0x00000001U     /* 8.0+ */
Packit Service b1ea74
#define RDPGFX_CAPS_FLAG_SMALL_CACHE 0x00000002U    /* 8.0+ */
Packit Service b1ea74
#define RDPGFX_CAPS_FLAG_AVC420_ENABLED 0x00000010U /* 8.1+ */
Packit Service b1ea74
#define RDPGFX_CAPS_FLAG_AVC_DISABLED 0x00000020U   /* 10.0+ */
Packit Service b1ea74
#define RDPGFX_CAPS_FLAG_AVC_THINCLIENT 0x00000040U /* 10.3+ */
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CAPSET_VERSION8
Packit Service fa4841
{
Packit Service fa4841
	UINT32 version;
Packit Service fa4841
	UINT32 capsDataLength;
Packit Service fa4841
	UINT32 flags;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CAPSET_VERSION8 RDPGFX_CAPSET_VERSION8;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CAPSET_VERSION81
Packit Service fa4841
{
Packit Service fa4841
	UINT32 version;
Packit Service fa4841
	UINT32 capsDataLength;
Packit Service fa4841
	UINT32 flags;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CAPSET_VERSION81 RDPGFX_CAPSET_VERSION81;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CAPSET_VERSION10
Packit Service fa4841
{
Packit Service fa4841
	UINT32 version;
Packit Service fa4841
	UINT32 capsDataLength;
Packit Service fa4841
	UINT32 flags;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CAPSET_VERSION10 RDPGFX_CAPSET_VERSION10;
Packit Service fa4841
Packit Service fa4841
/**
Packit Service fa4841
 * Graphics Messages
Packit Service fa4841
 */
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_CODECID_UNCOMPRESSED 0x0000
Packit Service b1ea74
#define RDPGFX_CODECID_CAVIDEO 0x0003
Packit Service b1ea74
#define RDPGFX_CODECID_CLEARCODEC 0x0008
Packit Service b1ea74
#define RDPGFX_CODECID_PLANAR 0x000A
Packit Service b1ea74
#define RDPGFX_CODECID_AVC420 0x000B
Packit Service b1ea74
#define RDPGFX_CODECID_ALPHA 0x000C
Packit Service b1ea74
#define RDPGFX_CODECID_AVC444 0x000E
Packit Service b1ea74
#define RDPGFX_CODECID_AVC444v2 0x000F
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_WIRE_TO_SURFACE_PDU_1_SIZE 17
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_WIRE_TO_SURFACE_PDU_1
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
	UINT16 codecId;
Packit Service fa4841
	RDPGFX_PIXELFORMAT pixelFormat;
Packit Service fa4841
	RECTANGLE_16 destRect;
Packit Service fa4841
	UINT32 bitmapDataLength;
Packit Service fa4841
	BYTE* bitmapData;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_WIRE_TO_SURFACE_PDU_1 RDPGFX_WIRE_TO_SURFACE_PDU_1;
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_CODECID_CAPROGRESSIVE 0x0009
Packit Service b1ea74
#define RDPGFX_CODECID_CAPROGRESSIVE_V2 0x000D
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_WIRE_TO_SURFACE_PDU_2_SIZE 13
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_WIRE_TO_SURFACE_PDU_2
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
	UINT16 codecId;
Packit Service fa4841
	UINT32 codecContextId;
Packit Service fa4841
	RDPGFX_PIXELFORMAT pixelFormat;
Packit Service fa4841
	UINT32 bitmapDataLength;
Packit Service fa4841
	BYTE* bitmapData;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_WIRE_TO_SURFACE_PDU_2 RDPGFX_WIRE_TO_SURFACE_PDU_2;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_SURFACE_COMMAND
Packit Service fa4841
{
Packit Service fa4841
	UINT32 surfaceId;
Packit Service fa4841
	UINT32 codecId;
Packit Service fa4841
	UINT32 contextId;
Packit Service fa4841
	UINT32 format; /* FreeRDP color format. @see freerdp/codec/color.h */
Packit Service fa4841
	UINT32 left;
Packit Service fa4841
	UINT32 top;
Packit Service fa4841
	UINT32 right;
Packit Service fa4841
	UINT32 bottom;
Packit Service fa4841
	UINT32 width;
Packit Service fa4841
	UINT32 height;
Packit Service fa4841
	UINT32 length;
Packit Service fa4841
	BYTE* data;
Packit Service fa4841
	void* extra;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_SURFACE_COMMAND RDPGFX_SURFACE_COMMAND;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_DELETE_ENCODING_CONTEXT_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
	UINT32 codecContextId;
Packit Service fa4841
};
Packit Service b1ea74
typedef struct _RDPGFX_DELETE_ENCODING_CONTEXT_PDU RDPGFX_DELETE_ENCODING_CONTEXT_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_SOLID_FILL_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
	RDPGFX_COLOR32 fillPixel;
Packit Service fa4841
	UINT16 fillRectCount;
Packit Service fa4841
	RECTANGLE_16* fillRects;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_SOLID_FILL_PDU RDPGFX_SOLID_FILL_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_SURFACE_TO_SURFACE_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceIdSrc;
Packit Service fa4841
	UINT16 surfaceIdDest;
Packit Service fa4841
	RECTANGLE_16 rectSrc;
Packit Service fa4841
	UINT16 destPtsCount;
Packit Service fa4841
	RDPGFX_POINT16* destPts;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_SURFACE_TO_SURFACE_PDU RDPGFX_SURFACE_TO_SURFACE_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_SURFACE_TO_CACHE_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
	UINT64 cacheKey;
Packit Service fa4841
	UINT16 cacheSlot;
Packit Service fa4841
	RECTANGLE_16 rectSrc;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_SURFACE_TO_CACHE_PDU RDPGFX_SURFACE_TO_CACHE_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CACHE_TO_SURFACE_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 cacheSlot;
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
	UINT16 destPtsCount;
Packit Service fa4841
	RDPGFX_POINT16* destPts;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CACHE_TO_SURFACE_PDU RDPGFX_CACHE_TO_SURFACE_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_EVICT_CACHE_ENTRY_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 cacheSlot;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_EVICT_CACHE_ENTRY_PDU RDPGFX_EVICT_CACHE_ENTRY_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CREATE_SURFACE_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
	UINT16 width;
Packit Service fa4841
	UINT16 height;
Packit Service fa4841
	RDPGFX_PIXELFORMAT pixelFormat;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CREATE_SURFACE_PDU RDPGFX_CREATE_SURFACE_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_DELETE_SURFACE_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_DELETE_SURFACE_PDU RDPGFX_DELETE_SURFACE_PDU;
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_START_FRAME_PDU_SIZE 8
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_START_FRAME_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT32 timestamp;
Packit Service fa4841
	UINT32 frameId;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_START_FRAME_PDU RDPGFX_START_FRAME_PDU;
Packit Service fa4841
Packit Service b1ea74
#define RDPGFX_END_FRAME_PDU_SIZE 4
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_END_FRAME_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT32 frameId;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_END_FRAME_PDU RDPGFX_END_FRAME_PDU;
Packit Service fa4841
Packit Service b1ea74
#define QUEUE_DEPTH_UNAVAILABLE 0x00000000
Packit Service b1ea74
#define SUSPEND_FRAME_ACKNOWLEDGEMENT 0xFFFFFFFF
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_FRAME_ACKNOWLEDGE_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT32 queueDepth;
Packit Service fa4841
	UINT32 frameId;
Packit Service fa4841
	UINT32 totalFramesDecoded;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_FRAME_ACKNOWLEDGE_PDU RDPGFX_FRAME_ACKNOWLEDGE_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_RESET_GRAPHICS_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT32 width;
Packit Service fa4841
	UINT32 height;
Packit Service fa4841
	UINT32 monitorCount;
Packit Service fa4841
	MONITOR_DEF* monitorDefArray;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_RESET_GRAPHICS_PDU RDPGFX_RESET_GRAPHICS_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_MAP_SURFACE_TO_OUTPUT_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
	UINT16 reserved;
Packit Service fa4841
	UINT32 outputOriginX;
Packit Service fa4841
	UINT32 outputOriginY;
Packit Service fa4841
};
Packit Service b1ea74
typedef struct _RDPGFX_MAP_SURFACE_TO_OUTPUT_PDU RDPGFX_MAP_SURFACE_TO_OUTPUT_PDU;
Packit Service b1ea74
Packit Service b1ea74
struct _RDPGFX_MAP_SURFACE_TO_SCALED_OUTPUT_PDU
Packit Service b1ea74
{
Packit Service b1ea74
	UINT16 surfaceId;
Packit Service b1ea74
	UINT16 reserved;
Packit Service b1ea74
	UINT32 outputOriginX;
Packit Service b1ea74
	UINT32 outputOriginY;
Packit Service b1ea74
	UINT32 targetWidth;
Packit Service b1ea74
	UINT32 targetHeight;
Packit Service b1ea74
};
Packit Service b1ea74
typedef struct _RDPGFX_MAP_SURFACE_TO_SCALED_OUTPUT_PDU RDPGFX_MAP_SURFACE_TO_SCALED_OUTPUT_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CACHE_ENTRY_METADATA
Packit Service fa4841
{
Packit Service fa4841
	UINT64 cacheKey;
Packit Service fa4841
	UINT32 bitmapLength;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CACHE_ENTRY_METADATA RDPGFX_CACHE_ENTRY_METADATA;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CACHE_IMPORT_OFFER_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 cacheEntriesCount;
Packit Service fa4841
	RDPGFX_CACHE_ENTRY_METADATA* cacheEntries;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CACHE_IMPORT_OFFER_PDU RDPGFX_CACHE_IMPORT_OFFER_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CACHE_IMPORT_REPLY_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 importedEntriesCount;
Packit Service fa4841
	UINT16* cacheSlots;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CACHE_IMPORT_REPLY_PDU RDPGFX_CACHE_IMPORT_REPLY_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CAPS_ADVERTISE_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 capsSetCount;
Packit Service fa4841
	RDPGFX_CAPSET* capsSets;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CAPS_ADVERTISE_PDU RDPGFX_CAPS_ADVERTISE_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_CAPS_CONFIRM_PDU
Packit Service fa4841
{
Packit Service fa4841
	RDPGFX_CAPSET* capsSet;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_CAPS_CONFIRM_PDU RDPGFX_CAPS_CONFIRM_PDU;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_MAP_SURFACE_TO_WINDOW_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT16 surfaceId;
Packit Service fa4841
	UINT64 windowId;
Packit Service fa4841
	UINT32 mappedWidth;
Packit Service fa4841
	UINT32 mappedHeight;
Packit Service fa4841
};
Packit Service b1ea74
typedef struct _RDPGFX_MAP_SURFACE_TO_WINDOW_PDU RDPGFX_MAP_SURFACE_TO_WINDOW_PDU;
Packit Service b1ea74
Packit Service b1ea74
struct _RDPGFX_MAP_SURFACE_TO_SCALED_WINDOW_PDU
Packit Service b1ea74
{
Packit Service b1ea74
	UINT16 surfaceId;
Packit Service b1ea74
	UINT64 windowId;
Packit Service b1ea74
	UINT32 mappedWidth;
Packit Service b1ea74
	UINT32 mappedHeight;
Packit Service b1ea74
	UINT32 targetWidth;
Packit Service b1ea74
	UINT32 targetHeight;
Packit Service b1ea74
};
Packit Service b1ea74
typedef struct _RDPGFX_MAP_SURFACE_TO_SCALED_WINDOW_PDU RDPGFX_MAP_SURFACE_TO_SCALED_WINDOW_PDU;
Packit Service fa4841
Packit Service fa4841
/* H264 */
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_H264_QUANT_QUALITY
Packit Service fa4841
{
Packit Service fa4841
	BYTE qpVal;
Packit Service fa4841
	BYTE qualityVal;
Packit Service fa4841
Packit Service fa4841
	BYTE qp;
Packit Service fa4841
	BYTE r;
Packit Service fa4841
	BYTE p;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_H264_QUANT_QUALITY RDPGFX_H264_QUANT_QUALITY;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_H264_METABLOCK
Packit Service fa4841
{
Packit Service fa4841
	UINT32 numRegionRects;
Packit Service fa4841
	RECTANGLE_16* regionRects;
Packit Service fa4841
	RDPGFX_H264_QUANT_QUALITY* quantQualityVals;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_H264_METABLOCK RDPGFX_H264_METABLOCK;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_AVC420_BITMAP_STREAM
Packit Service fa4841
{
Packit Service fa4841
	RDPGFX_H264_METABLOCK meta;
Packit Service fa4841
	UINT32 length;
Packit Service fa4841
	BYTE* data;
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_AVC420_BITMAP_STREAM RDPGFX_AVC420_BITMAP_STREAM;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_AVC444_BITMAP_STREAM
Packit Service fa4841
{
Packit Service fa4841
	UINT32 cbAvc420EncodedBitstream1;
Packit Service fa4841
	BYTE LC;
Packit Service fa4841
	RDPGFX_AVC420_BITMAP_STREAM bitstream[2];
Packit Service fa4841
};
Packit Service fa4841
typedef struct _RDPGFX_AVC444_BITMAP_STREAM RDPGFX_AVC444_BITMAP_STREAM;
Packit Service fa4841
Packit Service fa4841
struct _RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU
Packit Service fa4841
{
Packit Service fa4841
	UINT32 frameId;
Packit Service fa4841
	UINT32 timestamp;
Packit Service fa4841
	UINT16 timeDiffSE;
Packit Service fa4841
	UINT16 timeDiffEDR;
Packit Service fa4841
};
Packit Service b1ea74
typedef struct _RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU;
Packit Service fa4841
Packit Service fa4841
#endif /* FREERDP_CHANNEL_RDPGFX_H */