https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7546f9fee829bf1eb6b6e…
commit 7546f9fee829bf1eb6b6efc0ca9bc688effec83f
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Thu Mar 15 12:25:00 2018 +0100
Commit: Amine Khaldi <amine.khaldi(a)reactos.org>
CommitDate: Thu Mar 15 12:25:00 2018 +0100
[ICCVID] Sync with Wine Staging 3.3. CORE-14434
---
dll/win32/iccvid/iccvid.c | 41 +++++++++++++++------------------------
dll/win32/iccvid/iccvid_private.h | 2 +-
media/doc/README.WINE | 2 +-
3 files changed, 18 insertions(+), 27 deletions(-)
diff --git a/dll/win32/iccvid/iccvid.c b/dll/win32/iccvid/iccvid.c
index f588b47c55..3977d95a41 100644
--- a/dll/win32/iccvid/iccvid.c
+++ b/dll/win32/iccvid/iccvid.c
@@ -40,21 +40,18 @@
* Tim Ferguson:
http://www.csse.monash.edu.au/~timf/
* ------------------------------------------------------------------------ */
-#define WIN32_NO_STATUS
-#define _INC_WINDOWS
-#define COM_NO_WINDOWS_H
-
#include <stdarg.h>
-#include <windef.h>
-#include <winbase.h>
-#include <wingdi.h>
-//#include "winuser.h"
-//#include "commdlg.h"
-#include <vfw.h>
-//#include "mmsystem.h"
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "commdlg.h"
+#include "vfw.h"
+#include "mmsystem.h"
#include "iccvid_private.h"
-#include <wine/debug.h>
+#include "wine/debug.h"
+#include "wine/heap.h"
WINE_DEFAULT_DEBUG_CHANNEL(iccvid);
@@ -85,16 +82,6 @@ typedef struct _ICCVID_Info
cinepak_info *cvinfo;
} ICCVID_Info;
-static inline void* __WINE_ALLOC_SIZE(1) heap_alloc(size_t size)
-{
- return HeapAlloc(GetProcessHeap(), 0, size);
-}
-
-static inline BOOL heap_free(void *mem)
-{
- return HeapFree(GetProcessHeap(), 0, mem);
-}
-
/* ------------------------------------------------------------------------ */
static unsigned char *in_buffer, uiclip[1024], *uiclp = NULL;
@@ -182,6 +169,10 @@ int x, y;
}
}
+static inline int get_stride(int width, int depth)
+{
+ return ((depth * width + 31) >> 3) & ~3;
+}
/* ------------------------------------------------------------------------ */
static void cvid_v4_32(unsigned char *frm, unsigned char *limit, int stride, BOOL
inverted,
@@ -463,7 +454,7 @@ static void decode_cinepak(cinepak_info *cvinfo, unsigned char *buf,
int size,
break;
}
- frm_stride = out_width * bpp;
+ frm_stride = get_stride(out_width, bpp * 8);
frm_ptr = output;
if(frame.length != size)
@@ -848,9 +839,9 @@ static LRESULT ICCVID_DecompressGetFormat( ICCVID_Info *info,
LPBITMAPINFO in, L
if( out )
{
memcpy( out, in, size );
+ out->bmiHeader.biBitCount = 24;
out->bmiHeader.biCompression = BI_RGB;
- out->bmiHeader.biSizeImage = in->bmiHeader.biHeight
- * in->bmiHeader.biWidth *4;
+ out->bmiHeader.biSizeImage = get_stride(in->bmiHeader.biWidth, 24) *
in->bmiHeader.biHeight;
return ICERR_OK;
}
return size;
diff --git a/dll/win32/iccvid/iccvid_private.h b/dll/win32/iccvid/iccvid_private.h
index 40319c2376..56b082d844 100644
--- a/dll/win32/iccvid/iccvid_private.h
+++ b/dll/win32/iccvid/iccvid_private.h
@@ -19,7 +19,7 @@
#ifndef __ICCVID_PRIVATE_H
#define __ICCVID_PRIVATE_H
-//#include <windef.h>
+#include <windef.h>
#define IDS_NAME 100
#define IDS_DESCRIPTION 101
diff --git a/media/doc/README.WINE b/media/doc/README.WINE
index e724dd87db..0fdb236751 100644
--- a/media/doc/README.WINE
+++ b/media/doc/README.WINE
@@ -73,7 +73,7 @@ reactos/dll/win32/hhctrl.ocx # Synced to WineStaging-3.3
reactos/dll/win32/hlink # Synced to WineStaging-3.3
reactos/dll/win32/hnetcfg # Synced to WineStaging-3.3
reactos/dll/win32/httpapi # Synced to WineStaging-3.3
-reactos/dll/win32/iccvid # Synced to Wine-3.0
+reactos/dll/win32/iccvid # Synced to WineStaging-3.3
reactos/dll/win32/ieframe # Synced to Wine-3.0
reactos/dll/win32/imaadp32.acm # Synced to WineStaging-2.16
reactos/dll/win32/imagehlp # Synced to Wine-3.0