diff --git a/reactos/dll/win32/iccvid/iccvid.c b/reactos/dll/win32/iccvid/iccvid.c index 76bb15b7fa5..c2bdb705756 100644 --- a/reactos/dll/win32/iccvid/iccvid.c +++ b/reactos/dll/win32/iccvid/iccvid.c @@ -95,6 +95,10 @@ static inline BOOL heap_free( LPVOID ptr ) return HeapFree( GetProcessHeap(), 0, ptr ); } +static inline int get_stride(int width, int depth) +{ + return ((depth * width + 31) >> 3) & ~3; +} /* ------------------------------------------------------------------------ */ static unsigned char *in_buffer, uiclip[1024], *uiclp = NULL; @@ -463,7 +467,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 +852,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/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index a61d58ffdc2..6ca23f8a509 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -73,7 +73,7 @@ reactos/dll/win32/hhctrl.ocx # Synced to WineStaging-1.9.4 reactos/dll/win32/hlink # Synced to WineStaging-1.9.4 reactos/dll/win32/hnetcfg # Synced to WineStaging-1.9.11 reactos/dll/win32/httpapi # Synced to WineStaging-1.9.4 -reactos/dll/win32/iccvid # Synced to WineStaging-1.9.4 +reactos/dll/win32/iccvid # Synced to WineStaging-1.9.11 reactos/dll/win32/ieframe # Synced to WineStaging-1.9.4 reactos/dll/win32/imaadp32.acm # Synced to WineStaging-1.9.4 reactos/dll/win32/imagehlp # Synced to WineStaging-1.9.4