[ICCVID] Sync with Wine Staging 3.3. CORE-14434
authorAmine Khaldi <amine.khaldi@reactos.org>
Thu, 15 Mar 2018 11:25:00 +0000 (12:25 +0100)
committerAmine Khaldi <amine.khaldi@reactos.org>
Thu, 15 Mar 2018 11:25:00 +0000 (12:25 +0100)
dll/win32/iccvid/iccvid.c
dll/win32/iccvid/iccvid_private.h
media/doc/README.WINE

index f588b47..3977d95 100644 (file)
  *       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;
index 40319c2..56b082d 100644 (file)
@@ -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
index e724dd8..0fdb236 100644 (file)
@@ -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