Revert "[codec] encode messages considering endianness"

This reverts commit 6ba4aad9ab0d3a039f982494dc40c7fc56a35376.
This commit is contained in:
akallabeth 2024-01-29 11:42:10 +01:00 committed by akallabeth
parent 93649f62cd
commit db8682648b
2 changed files with 58 additions and 92 deletions

View File

@ -117,8 +117,6 @@ static BOOL nsc_encode_argb_to_aycocg(NSC_CONTEXT* context, const BYTE* data, UI
UINT16 rw;
BYTE ccl;
const BYTE* src;
const UINT32* src_32;
const UINT16* src_16;
BYTE* yplane = NULL;
BYTE* coplane = NULL;
BYTE* cgplane = NULL;
@ -140,85 +138,69 @@ static BOOL nsc_encode_argb_to_aycocg(NSC_CONTEXT* context, const BYTE* data, UI
coplane = context->priv->PlaneBuffers[1] + y * rw;
cgplane = context->priv->PlaneBuffers[2] + y * rw;
aplane = context->priv->PlaneBuffers[3] + y * context->width;
src_32 = (const UINT32*)src;
src_16 = (const UINT16*)src;
for (x = 0; x < context->width; x++)
{
switch (context->format)
{
case PIXEL_FORMAT_BGRX32:
b_val = (INT16)(*src_32 & 0xFF);
g_val = (INT16)((*src_32 >> 8) & 0xFF);
r_val = (INT16)((*src_32 >> 16) & 0xFF);
b_val = *src++;
g_val = *src++;
r_val = *src++;
src++;
a_val = 0xFF;
src_32++;
break;
case PIXEL_FORMAT_BGRA32:
b_val = (INT16)(*src_32 & 0xFF);
g_val = (INT16)((*src_32 >> 8) & 0xFF);
r_val = (INT16)((*src_32 >> 16) & 0xFF);
a_val = (INT16)((*src_32 >> 24) & 0xFF);
src_32++;
b_val = *src++;
g_val = *src++;
r_val = *src++;
a_val = *src++;
break;
case PIXEL_FORMAT_RGBX32:
r_val = (INT16)(*src_32 & 0xFF);
g_val = (INT16)((*src_32 >> 8) & 0xFF);
b_val = (INT16)((*src_32 >> 16) & 0xFF);
r_val = *src++;
g_val = *src++;
b_val = *src++;
src++;
a_val = 0xFF;
src_32++;
break;
case PIXEL_FORMAT_RGBA32:
r_val = (INT16)(*src_32 & 0xFF);
g_val = (INT16)((*src_32 >> 8) & 0xFF);
b_val = (INT16)((*src_32 >> 16) & 0xFF);
a_val = (INT16)((*src_32 >> 24) & 0xFF);
src_32++;
r_val = *src++;
g_val = *src++;
b_val = *src++;
a_val = *src++;
break;
case PIXEL_FORMAT_BGR24:
#ifdef __LITTLE_ENDIAN__
b_val = *src++;
g_val = *src++;
r_val = *src++;
#else
r_val = *src++;
g_val = *src++;
b_val = *src++;
#endif
a_val = 0xFF;
break;
case PIXEL_FORMAT_RGB24:
#ifdef __LITTLE_ENDIAN__
r_val = *src++;
g_val = *src++;
b_val = *src++;
#else
b_val = *src++;
g_val = *src++;
r_val = *src++;
#endif
a_val = 0xFF;
break;
case PIXEL_FORMAT_BGR16:
b_val = (INT16)((*src_16) & 0x1F);
g_val = (INT16)((*src_16 >> 5) & 0x3F);
r_val = (INT16)((*src_16 >> 11) & 0x1F);
b_val = (INT16)(((*(src + 1)) & 0xF8) | ((*(src + 1)) >> 5));
g_val = (INT16)((((*(src + 1)) & 0x07) << 5) | (((*src) & 0xE0) >> 3));
r_val = (INT16)((((*src) & 0x1F) << 3) | (((*src) >> 2) & 0x07));
a_val = 0xFF;
src_16++;
src += 2;
break;
case PIXEL_FORMAT_RGB16:
r_val = (INT16)((*src_16) & 0x1F);
g_val = (INT16)((*src_16 >> 5) & 0x3F);
b_val = (INT16)((*src_16 >> 11) & 0x1F);
r_val = (INT16)(((*(src + 1)) & 0xF8) | ((*(src + 1)) >> 5));
g_val = (INT16)((((*(src + 1)) & 0x07) << 5) | (((*src) & 0xE0) >> 3));
b_val = (INT16)((((*src) & 0x1F) << 3) | (((*src) >> 2) & 0x07));
a_val = 0xFF;
src_16++;
src += 2;
break;
case PIXEL_FORMAT_A4:
@ -226,17 +208,17 @@ static BOOL nsc_encode_argb_to_aycocg(NSC_CONTEXT* context, const BYTE* data, UI
int shift;
BYTE idx;
shift = (7 - (x % 8));
idx = (BYTE)(((*src_32 & 0xFF) >> shift) & 1);
idx |= (BYTE)(((((*src_32 >> 8) & 0xFF) >> shift) & 1) << 1);
idx |= (BYTE)(((((*src_32 >> 16) & 0xFF) >> shift) & 1) << 2);
idx |= (BYTE)(((((*src_32 >> 24) & 0xFF) >> shift) & 1) << 3);
idx = ((*src) >> shift) & 1;
idx |= (((*(src + 1)) >> shift) & 1) << 1;
idx |= (((*(src + 2)) >> shift) & 1) << 2;
idx |= (((*(src + 3)) >> shift) & 1) << 3;
idx *= 3;
r_val = (INT16)context->palette[idx];
g_val = (INT16)context->palette[idx + 1];
b_val = (INT16)context->palette[idx + 2];
if (shift == 0)
src_32++;
src += 4;
}
a_val = 0xFF;

View File

@ -47,8 +47,6 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
int x_exceed;
int y_exceed;
const BYTE* src;
const UINT32* src_32;
const UINT16* src_16;
INT16 r, g, b;
INT16 *r_last, *g_last, *b_last;
x_exceed = 64 - width;
@ -57,8 +55,6 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
for (y = 0; y < height; y++)
{
src = rgb_data + y * rowstride;
src_32 = (const UINT32*)src;
src_16 = (const UINT16*)src;
switch (pixel_format)
{
@ -66,10 +62,10 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
case PIXEL_FORMAT_BGRA32:
for (x = 0; x < width; x++)
{
*b_buf++ = (INT16)(*src_32 & 0xFF);
*g_buf++ = (INT16)((*src_32 >> 8) & 0xFF);
*r_buf++ = (INT16)((*src_32 >> 16) & 0xFF);
src_32++;
*b_buf++ = (INT16)(*src++);
*g_buf++ = (INT16)(*src++);
*r_buf++ = (INT16)(*src++);
src++;
}
break;
@ -78,10 +74,10 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
case PIXEL_FORMAT_ABGR32:
for (x = 0; x < width; x++)
{
*b_buf++ = (INT16)((*src_32 >> 8) & 0xFF);
*g_buf++ = (INT16)((*src_32 >> 16) & 0xFF);
*r_buf++ = (INT16)((*src_32 >> 24) & 0xFF);
src_32++;
src++;
*b_buf++ = (INT16)(*src++);
*g_buf++ = (INT16)(*src++);
*r_buf++ = (INT16)(*src++);
}
break;
@ -90,10 +86,10 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
case PIXEL_FORMAT_RGBA32:
for (x = 0; x < width; x++)
{
*r_buf++ = (INT16)(*src_32 & 0xFF);
*g_buf++ = (INT16)((*src_32 >> 8) & 0xFF);
*b_buf++ = (INT16)((*src_32 >> 16) & 0xFF);
src_32++;
*r_buf++ = (INT16)(*src++);
*g_buf++ = (INT16)(*src++);
*b_buf++ = (INT16)(*src++);
src++;
}
break;
@ -102,10 +98,10 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
case PIXEL_FORMAT_ARGB32:
for (x = 0; x < width; x++)
{
*r_buf++ = (INT16)((*src_32 >> 8) & 0xFF);
*g_buf++ = (INT16)((*src_32 >> 16) & 0xFF);
*b_buf++ = (INT16)((*src_32 >> 24) & 0xFF);
src_32++;
src++;
*r_buf++ = (INT16)(*src++);
*g_buf++ = (INT16)(*src++);
*b_buf++ = (INT16)(*src++);
}
break;
@ -113,15 +109,9 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
case PIXEL_FORMAT_BGR24:
for (x = 0; x < width; x++)
{
#ifdef __LITTLE_ENDIAN__
*b_buf++ = (INT16)(*src++);
*g_buf++ = (INT16)(*src++);
*r_buf++ = (INT16)(*src++);
#else
*r_buf++ = (INT16)(*src++);
*g_buf++ = (INT16)(*src++);
*b_buf++ = (INT16)(*src++);
#endif
}
break;
@ -129,15 +119,9 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
case PIXEL_FORMAT_RGB24:
for (x = 0; x < width; x++)
{
#ifdef __LITTLE_ENDIAN__
*r_buf++ = (INT16)(*src++);
*g_buf++ = (INT16)(*src++);
*b_buf++ = (INT16)(*src++);
#else
*b_buf++ = (INT16)(*src++);
*g_buf++ = (INT16)(*src++);
*r_buf++ = (INT16)(*src++);
#endif
}
break;
@ -145,10 +129,10 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
case PIXEL_FORMAT_BGR16:
for (x = 0; x < width; x++)
{
*b_buf++ = (INT16)((*src_16) & 0x1F);
*g_buf++ = (INT16)((*src_16 >> 5) & 0x3F);
*r_buf++ = (INT16)((*src_16 >> 11) & 0x1F);
src_16++;
*b_buf++ = (INT16)(((*(src + 1)) & 0xF8) | ((*(src + 1)) >> 5));
*g_buf++ = (INT16)((((*(src + 1)) & 0x07) << 5) | (((*src) & 0xE0) >> 3));
*r_buf++ = (INT16)((((*src) & 0x1F) << 3) | (((*src) >> 2) & 0x07));
src += 2;
}
break;
@ -156,10 +140,10 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
case PIXEL_FORMAT_RGB16:
for (x = 0; x < width; x++)
{
*r_buf++ = (INT16)((*src_16 & 0x1F));
*g_buf++ = (INT16)((*src_16 >> 5) & 0x3F);
*b_buf++ = (INT16)((*src_16 >> 11) & 0x1F);
src_16++;
*r_buf++ = (INT16)(((*(src + 1)) & 0xF8) | ((*(src + 1)) >> 5));
*g_buf++ = (INT16)((((*(src + 1)) & 0x07) << 5) | (((*src) & 0xE0) >> 3));
*b_buf++ = (INT16)((((*src) & 0x1F) << 3) | (((*src) >> 2) & 0x07));
src += 2;
}
break;
@ -173,17 +157,17 @@ static void rfx_encode_format_rgb(const BYTE* rgb_data, int width, int height, i
int shift;
BYTE idx;
shift = (7 - (x % 8));
idx = (BYTE)(((*src_32 & 0xFF) >> shift) & 1);
idx |= (BYTE)(((((*src_32 >> 8) & 0xFF) >> shift) & 1) << 1);
idx |= (BYTE)(((((*src_32 >> 16) & 0xFF) >> shift) & 1) << 2);
idx |= (BYTE)(((((*src_32 >> 24) & 0xFF) >> shift) & 1) << 3);
idx = ((*src) >> shift) & 1;
idx |= (((*(src + 1)) >> shift) & 1) << 1;
idx |= (((*(src + 2)) >> shift) & 1) << 2;
idx |= (((*(src + 3)) >> shift) & 1) << 3;
idx *= 3;
*r_buf++ = (INT16)palette[idx];
*g_buf++ = (INT16)palette[idx + 1];
*b_buf++ = (INT16)palette[idx + 2];
if (shift == 0)
src_32++;
src += 4;
}
break;