Merge "wicdec: silence some warnings"

This commit is contained in:
James Zern 2013-02-06 23:21:26 -08:00 committed by Gerrit Code Review
commit 1262f81e37
2 changed files with 31 additions and 21 deletions

View File

@ -70,10 +70,10 @@ typedef enum {
#define IFS(fn) \
do { \
if (SUCCEEDED(hr)) { \
hr = (fn); \
if (FAILED(hr)) fprintf(stderr, #fn " failed %08x\n", hr); \
} \
if (SUCCEEDED(hr)) { \
hr = (fn); \
if (FAILED(hr)) fprintf(stderr, #fn " failed %08lx\n", hr); \
} \
} while (0)
#ifdef __cplusplus
@ -86,8 +86,10 @@ static HRESULT CreateOutputStream(const char* out_file_name,
IStream** ppStream) {
HRESULT hr = S_OK;
IFS(SHCreateStreamOnFileA(out_file_name, STGM_WRITE | STGM_CREATE, ppStream));
if (FAILED(hr))
fprintf(stderr, "Error opening output file %s (%08x)\n", out_file_name, hr);
if (FAILED(hr)) {
fprintf(stderr, "Error opening output file %s (%08lx)\n",
out_file_name, hr);
}
return hr;
}

View File

@ -32,10 +32,10 @@
#define IFS(fn) \
do { \
if (SUCCEEDED(hr)) { \
hr = (fn); \
if (FAILED(hr)) fprintf(stderr, #fn " failed %08x\n", hr); \
} \
if (SUCCEEDED(hr)) { \
hr = (fn); \
if (FAILED(hr)) fprintf(stderr, #fn " failed %08lx\n", hr); \
} \
} while (0)
// modified version of DEFINE_GUID from guiddef.h.
@ -57,11 +57,15 @@ typedef struct WICFormatImporter {
static HRESULT OpenInputStream(const char* filename, IStream** ppStream) {
HRESULT hr = S_OK;
IFS(SHCreateStreamOnFileA(filename, STGM_READ, ppStream));
if (FAILED(hr))
fprintf(stderr, "Error opening input file %s (%08x)\n", filename, hr);
if (FAILED(hr)) {
fprintf(stderr, "Error opening input file %s (%08lx)\n", filename, hr);
}
return hr;
}
// -----------------------------------------------------------------------------
// Metadata processing
// Stores the first non-zero sized color profile from 'pFrame' to 'iccp'.
// Returns an HRESULT to indicate success or failure. The caller is responsible
// for freeing 'iccp->bytes' in either case.
@ -129,9 +133,14 @@ static HRESULT ExtractMetadata(IWICImagingFactory* const pFactory,
return hr;
}
// -----------------------------------------------------------------------------
int ReadPictureWithWIC(const char* const filename,
WebPPicture* const pic, int keep_alpha,
Metadata* const metadata) {
// From Microsoft SDK 6.0a -- ks.h
// Define a local copy to avoid link errors under mingw.
WEBP_DEFINE_GUID(GUID_NULL_, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
// From Microsoft SDK 7.0a -- wincodec.h
// Create local copies for compatibility when building against earlier
// versions of the SDK.
@ -166,16 +175,17 @@ int ReadPictureWithWIC(const char* const filename,
UINT frameCount = 0;
UINT width = 0, height = 0;
BYTE* rgb = NULL;
WICPixelFormatGUID srcPixelFormat = { 0 };
WICPixelFormatGUID srcPixelFormat = GUID_WICPixelFormatUndefined;
const WICFormatImporter* importer = NULL;
GUID srcContainerFormat = { 0 };
GUID srcContainerFormat = GUID_NULL_;
const GUID* alphaContainers[] = {
&GUID_ContainerFormatBmp,
&GUID_ContainerFormatPng,
&GUID_ContainerFormatTiff
&GUID_ContainerFormatTiff,
NULL
};
int has_alpha = 0;
int i, stride;
int stride;
IFS(CoInitialize(NULL));
IFS(CoCreateInstance(MAKE_REFGUID(CLSID_WICImagingFactory), NULL,
@ -201,11 +211,9 @@ int ReadPictureWithWIC(const char* const filename,
IFS(IWICBitmapDecoder_GetContainerFormat(pDecoder, &srcContainerFormat));
if (keep_alpha) {
for (i = 0;
i < sizeof(alphaContainers) / sizeof(alphaContainers[0]);
++i) {
if (IsEqualGUID(MAKE_REFGUID(srcContainerFormat),
MAKE_REFGUID(*alphaContainers[i]))) {
const GUID** guid;
for (guid = alphaContainers; *guid != NULL; ++guid) {
if (IsEqualGUID(MAKE_REFGUID(srcContainerFormat), MAKE_REFGUID(**guid))) {
has_alpha =
IsEqualGUID(MAKE_REFGUID(srcPixelFormat),
MAKE_REFGUID(GUID_WICPixelFormat32bppRGBA_)) ||