windowscodecs: Reimplement TiffDecoder_GetFrameCount using TIFFNumberOfDirectories.

This commit is contained in:
Dmitry Timoshkov 2012-06-12 15:22:27 +09:00 committed by Alexandre Julliard
parent 7fbf5c239e
commit 4f16c2f791
1 changed files with 3 additions and 4 deletions

View File

@ -58,7 +58,7 @@ 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(TIFFNumberOfDirectories);
MAKE_FUNCPTR(TIFFGetField); MAKE_FUNCPTR(TIFFGetField);
MAKE_FUNCPTR(TIFFIsByteSwapped); MAKE_FUNCPTR(TIFFIsByteSwapped);
MAKE_FUNCPTR(TIFFReadDirectory); MAKE_FUNCPTR(TIFFReadDirectory);
@ -89,7 +89,7 @@ static void *load_libtiff(void)
} }
LOAD_FUNCPTR(TIFFClientOpen); LOAD_FUNCPTR(TIFFClientOpen);
LOAD_FUNCPTR(TIFFClose); LOAD_FUNCPTR(TIFFClose);
LOAD_FUNCPTR(TIFFCurrentDirectory); LOAD_FUNCPTR(TIFFNumberOfDirectories);
LOAD_FUNCPTR(TIFFGetField); LOAD_FUNCPTR(TIFFGetField);
LOAD_FUNCPTR(TIFFIsByteSwapped); LOAD_FUNCPTR(TIFFIsByteSwapped);
LOAD_FUNCPTR(TIFFReadDirectory); LOAD_FUNCPTR(TIFFReadDirectory);
@ -662,8 +662,7 @@ static HRESULT WINAPI TiffDecoder_GetFrameCount(IWICBitmapDecoder *iface,
} }
EnterCriticalSection(&This->lock); EnterCriticalSection(&This->lock);
while (pTIFFReadDirectory(This->tiff)) { } *pCount = pTIFFNumberOfDirectories(This->tiff);
*pCount = pTIFFCurrentDirectory(This->tiff)+1;
LeaveCriticalSection(&This->lock); LeaveCriticalSection(&This->lock);
TRACE("(%p) <-- %i\n", iface, *pCount); TRACE("(%p) <-- %i\n", iface, *pCount);