FREERDP_API void rfx_message_free(RFX_CONTEXT* context, RFX_MESSAGE* message);
FREERDP_API BOOL rfx_compose_message(RFX_CONTEXT* context, wStream* s, const RFX_RECT* rects,
- int num_rects, BYTE* image_data, int width, int height,
- int rowstride);
+ size_t num_rects, const BYTE* image_data, UINT32 width,
+ UINT32 height, UINT32 rowstride);
FREERDP_API RFX_MESSAGE* rfx_encode_message(RFX_CONTEXT* context, const RFX_RECT* rects,
- int numRects, BYTE* data, int width, int height,
- int scanline);
+ size_t numRects, const BYTE* data, UINT32 width,
+ UINT32 height, size_t scanline);
+
FREERDP_API RFX_MESSAGE* rfx_encode_messages(RFX_CONTEXT* context, const RFX_RECT* rects,
- int numRects, BYTE* data, int width, int height,
- int scanline, int* numMessages, int maxDataSize);
- FREERDP_API BOOL rfx_write_message(RFX_CONTEXT* context, wStream* s, RFX_MESSAGE* message);
+ size_t numRects, const BYTE* data, UINT32 width,
+ UINT32 height, UINT32 scanline,
+ size_t* numMessages, size_t maxDataSize);
+ FREERDP_API BOOL rfx_write_message(RFX_CONTEXT* context, wStream* s,
+ const RFX_MESSAGE* message);
FREERDP_API BOOL rfx_context_reset(RFX_CONTEXT* context, UINT32 width, UINT32 height);
return message->tiles[index];
}
+static const RFX_RECT* rfx_message_get_rect_const(const RFX_MESSAGE* message, UINT32 index)
+{
+ return &message->rects[index];
+}
+
static RFX_RECT* rfx_message_get_rect(RFX_MESSAGE* message, UINT32 index)
{
return &message->rects[index];
static BOOL rfx_process_message_region(RFX_CONTEXT* context, RFX_MESSAGE* message, wStream* s,
UINT16* pExpectedBlockType)
{
- int i;
+ UINT16 i;
UINT16 regionType;
UINT16 numTileSets;
RFX_RECT* tmpRects;
return TRUE;
}
-RFX_MESSAGE* rfx_encode_message(RFX_CONTEXT* context, const RFX_RECT* rects, int numRects,
- BYTE* data, int w, int h, int s)
+RFX_MESSAGE* rfx_encode_message(RFX_CONTEXT* context, const RFX_RECT* rects, size_t numRects,
+ const BYTE* data, UINT32 w, UINT32 h, size_t s)
{
const UINT32 width = (UINT32)w;
const UINT32 height = (UINT32)h;
tile->allocated = FALSE;
}
- tile->data = &data[(ay * scanline) + (ax * bytesPerPixel)];
+ /* Cast away const */
+ tile->data = (BYTE*)&data[(ay * scanline) + (ax * bytesPerPixel)];
tile->quantIdxY = context->quantIdxY;
tile->quantIdxCb = context->quantIdxCb;
tile->quantIdxCr = context->quantIdxCr;
return NULL;
}
-static RFX_MESSAGE* rfx_split_message(RFX_CONTEXT* context, RFX_MESSAGE* message, int* numMessages,
- int maxDataSize)
+static RFX_MESSAGE* rfx_split_message(RFX_CONTEXT* context, RFX_MESSAGE* message,
+ size_t* numMessages, size_t maxDataSize)
{
- int i, j;
+ size_t i, j;
UINT32 tileDataSize;
RFX_MESSAGE* messages;
maxDataSize -= 1024; /* reserve enough space for headers */
return NULL;
}
-RFX_MESSAGE* rfx_encode_messages(RFX_CONTEXT* context, const RFX_RECT* rects, int numRects,
- BYTE* data, int width, int height, int scanline, int* numMessages,
- int maxDataSize)
+RFX_MESSAGE* rfx_encode_messages(RFX_CONTEXT* context, const RFX_RECT* rects, size_t numRects,
+ const BYTE* data, UINT32 width, UINT32 height, UINT32 scanline,
+ size_t* numMessages, size_t maxDataSize)
{
RFX_MESSAGE* message;
RFX_MESSAGE* messageList;
return messageList;
}
-static BOOL rfx_write_message_tileset(RFX_CONTEXT* context, wStream* s, RFX_MESSAGE* message)
+static BOOL rfx_write_message_tileset(RFX_CONTEXT* context, wStream* s, const RFX_MESSAGE* message)
{
int i;
RFX_TILE* tile;
return TRUE;
}
-static BOOL rfx_write_message_frame_begin(RFX_CONTEXT* context, wStream* s, RFX_MESSAGE* message)
+static BOOL rfx_write_message_frame_begin(RFX_CONTEXT* context, wStream* s,
+ const RFX_MESSAGE* message)
{
if (!Stream_EnsureRemainingCapacity(s, 14))
return FALSE;
return TRUE;
}
-static BOOL rfx_write_message_region(RFX_CONTEXT* context, wStream* s, RFX_MESSAGE* message)
+static BOOL rfx_write_message_region(RFX_CONTEXT* context, wStream* s, const RFX_MESSAGE* message)
{
int i;
UINT32 blockLen;
for (i = 0; i < message->numRects; i++)
{
- const RFX_RECT* rect = rfx_message_get_rect(message, i);
+ const RFX_RECT* rect = rfx_message_get_rect_const(message, i);
/* Clipping rectangles are relative to destLeft, destTop */
Stream_Write_UINT16(s, rect->x); /* x (2 bytes) */
Stream_Write_UINT16(s, rect->y); /* y (2 bytes) */
return TRUE;
}
-static BOOL rfx_write_message_frame_end(RFX_CONTEXT* context, wStream* s, RFX_MESSAGE* message)
+static BOOL rfx_write_message_frame_end(RFX_CONTEXT* context, wStream* s,
+ const RFX_MESSAGE* message)
{
if (!Stream_EnsureRemainingCapacity(s, 8))
return FALSE;
return TRUE;
}
-BOOL rfx_write_message(RFX_CONTEXT* context, wStream* s, RFX_MESSAGE* message)
+BOOL rfx_write_message(RFX_CONTEXT* context, wStream* s, const RFX_MESSAGE* message)
{
if (context->state == RFX_STATE_SEND_HEADERS)
{
return TRUE;
}
-BOOL rfx_compose_message(RFX_CONTEXT* context, wStream* s, const RFX_RECT* rects, int numRects,
- BYTE* data, int width, int height, int scanline)
+BOOL rfx_compose_message(RFX_CONTEXT* context, wStream* s, const RFX_RECT* rects, size_t numRects,
+ const BYTE* data, UINT32 width, UINT32 height, UINT32 scanline)
{
RFX_MESSAGE* message;
BOOL ret = TRUE;