Commit c048bb07 authored by Vincent Povirk's avatar Vincent Povirk Committed by Alexandre Julliard

windowscodecs: Implement GetFrameCount for the TIFF decoder.

parent 0d285eac
...@@ -57,6 +57,8 @@ static void *libtiff_handle; ...@@ -57,6 +57,8 @@ static void *libtiff_handle;
#define MAKE_FUNCPTR(f) static typeof(f) * p##f #define MAKE_FUNCPTR(f) static typeof(f) * p##f
MAKE_FUNCPTR(TIFFClientOpen); MAKE_FUNCPTR(TIFFClientOpen);
MAKE_FUNCPTR(TIFFClose); MAKE_FUNCPTR(TIFFClose);
MAKE_FUNCPTR(TIFFCurrentDirectory);
MAKE_FUNCPTR(TIFFReadDirectory);
#undef MAKE_FUNCPTR #undef MAKE_FUNCPTR
static void *load_libtiff(void) static void *load_libtiff(void)
...@@ -78,6 +80,8 @@ static void *load_libtiff(void) ...@@ -78,6 +80,8 @@ static void *load_libtiff(void)
} }
LOAD_FUNCPTR(TIFFClientOpen); LOAD_FUNCPTR(TIFFClientOpen);
LOAD_FUNCPTR(TIFFClose); LOAD_FUNCPTR(TIFFClose);
LOAD_FUNCPTR(TIFFCurrentDirectory);
LOAD_FUNCPTR(TIFFReadDirectory);
#undef LOAD_FUNCPTR #undef LOAD_FUNCPTR
} }
...@@ -330,8 +334,22 @@ static HRESULT WINAPI TiffDecoder_GetThumbnail(IWICBitmapDecoder *iface, ...@@ -330,8 +334,22 @@ static HRESULT WINAPI TiffDecoder_GetThumbnail(IWICBitmapDecoder *iface,
static HRESULT WINAPI TiffDecoder_GetFrameCount(IWICBitmapDecoder *iface, static HRESULT WINAPI TiffDecoder_GetFrameCount(IWICBitmapDecoder *iface,
UINT *pCount) UINT *pCount)
{ {
FIXME("(%p,%p)\n", iface, pCount); TiffDecoder *This = (TiffDecoder*)iface;
return E_NOTIMPL;
if (!This->tiff)
{
WARN("(%p) <-- WINCODEC_ERR_WRONGSTATE\n", iface);
return WINCODEC_ERR_WRONGSTATE;
}
EnterCriticalSection(&This->lock);
while (pTIFFReadDirectory(This->tiff)) { }
*pCount = pTIFFCurrentDirectory(This->tiff)+1;
LeaveCriticalSection(&This->lock);
TRACE("(%p) <-- %i\n", iface, *pCount);
return S_OK;
} }
static HRESULT WINAPI TiffDecoder_GetFrame(IWICBitmapDecoder *iface, static HRESULT WINAPI TiffDecoder_GetFrame(IWICBitmapDecoder *iface,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment