From: Amine Khaldi Date: Thu, 15 Mar 2018 11:25:00 +0000 (+0100) Subject: [ICCVID] Sync with Wine Staging 3.3. CORE-14434 X-Git-Tag: 0.4.9-RC~579 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=7546f9fee829bf1eb6b6efc0ca9bc688effec83f;hp=1bcc1c247d725887d48def48175a524b092f9fcb [ICCVID] Sync with Wine Staging 3.3. CORE-14434 --- diff --git a/dll/win32/iccvid/iccvid.c b/dll/win32/iccvid/iccvid.c index f588b47c554..3977d95a41b 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 -#include -#include -#include -//#include "winuser.h" -//#include "commdlg.h" -#include -//#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 +#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 40319c23769..56b082d844d 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 +#include #define IDS_NAME 100 #define IDS_DESCRIPTION 101 diff --git a/media/doc/README.WINE b/media/doc/README.WINE index e724dd87db8..0fdb2367518 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