Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3325)

Unified Diff: core/fxcodec/codec/fx_codec_tiff.cpp

Issue 2053573003: Clean up fx_codec_tiff.cpp. (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: Move code into anonymous namespace. Remove dead code. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/fxcodec/codec/fx_codec_tiff.cpp
diff --git a/core/fxcodec/codec/fx_codec_tiff.cpp b/core/fxcodec/codec/fx_codec_tiff.cpp
index c8c94dbcdbb69bb0bf0bfa686a057b876a17a1db..a80b15b08d7fbd04388ef10f4193b25bbbb7c248 100644
--- a/core/fxcodec/codec/fx_codec_tiff.cpp
+++ b/core/fxcodec/codec/fx_codec_tiff.cpp
@@ -22,6 +22,7 @@ void IccLib_TranslateImage(void* pTransform,
const unsigned char* pSrc,
int pixels);
void IccLib_DestroyTransform(void* pTransform);
+
class CCodec_TiffContext {
public:
CCodec_TiffContext();
@@ -69,25 +70,37 @@ class CCodec_TiffContext {
uint16_t bps,
uint16_t spp);
};
-CCodec_TiffContext::CCodec_TiffContext() {
- offset = 0;
- frame_num = 0;
- frame_cur = 0;
- io.in = nullptr;
- tif_ctx = nullptr;
- icc_ctx = nullptr;
- isDecoder = TRUE;
+
+void* _TIFFmalloc(tmsize_t size) {
Tom Sepez 2016/06/09 17:53:16 nit: _CAPS is reserved for the pre-processor. Fix
Lei Zhang 2016/06/09 22:00:38 We'll have to argue with libtiff on these. See ext
+ return FXMEM_DefaultAlloc(size, 0);
}
-CCodec_TiffContext::~CCodec_TiffContext() {
- if (icc_ctx) {
- IccLib_DestroyTransform(icc_ctx);
- icc_ctx = nullptr;
- }
- if (tif_ctx) {
- TIFFClose(tif_ctx);
- }
+
+void _TIFFfree(void* ptr) {
+ FXMEM_DefaultFree(ptr, 0);
}
-static tsize_t _tiff_read(thandle_t context, tdata_t buf, tsize_t length) {
+
+void* _TIFFrealloc(void* ptr, tmsize_t size) {
+ return FXMEM_DefaultRealloc(ptr, size, 0);
+}
+
+void _TIFFmemset(void* ptr, int val, tmsize_t size) {
+ FXSYS_memset(ptr, val, (size_t)size);
+}
+
+void _TIFFmemcpy(void* des, const void* src, tmsize_t size) {
+ FXSYS_memcpy(des, src, (size_t)size);
+}
+
+int _TIFFmemcmp(const void* ptr1, const void* ptr2, tmsize_t size) {
+ return FXSYS_memcmp(ptr1, ptr2, (size_t)size);
+}
+
+TIFFErrorHandler _TIFFwarningHandler = nullptr;
+TIFFErrorHandler _TIFFerrorHandler = nullptr;
+
+namespace {
+
+tsize_t tiff_read(thandle_t context, tdata_t buf, tsize_t length) {
CCodec_TiffContext* pTiffContext = (CCodec_TiffContext*)context;
FX_BOOL ret = FALSE;
if (pTiffContext->isDecoder) {
@@ -101,7 +114,8 @@ static tsize_t _tiff_read(thandle_t context, tdata_t buf, tsize_t length) {
pTiffContext->offset += (uint32_t)length;
return length;
}
-static tsize_t _tiff_write(thandle_t context, tdata_t buf, tsize_t length) {
+
+tsize_t tiff_write(thandle_t context, tdata_t buf, tsize_t length) {
CCodec_TiffContext* pTiffContext = (CCodec_TiffContext*)context;
ASSERT(!pTiffContext->isDecoder);
if (!pTiffContext->io.out->WriteBlock(buf, pTiffContext->offset, length)) {
@@ -110,7 +124,8 @@ static tsize_t _tiff_write(thandle_t context, tdata_t buf, tsize_t length) {
pTiffContext->offset += (uint32_t)length;
return length;
}
-static toff_t _tiff_seek(thandle_t context, toff_t offset, int whence) {
+
+toff_t tiff_seek(thandle_t context, toff_t offset, int whence) {
CCodec_TiffContext* pTiffContext = (CCodec_TiffContext*)context;
switch (whence) {
case 0:
@@ -142,108 +157,32 @@ static toff_t _tiff_seek(thandle_t context, toff_t offset, int whence) {
: TRUE);
return pTiffContext->offset;
}
-static int _tiff_close(thandle_t context) {
+
+int tiff_close(thandle_t context) {
return 0;
}
-static toff_t _tiff_get_size(thandle_t context) {
+
+toff_t tiff_get_size(thandle_t context) {
CCodec_TiffContext* pTiffContext = (CCodec_TiffContext*)context;
return pTiffContext->isDecoder ? (toff_t)pTiffContext->io.in->GetSize()
: (toff_t)pTiffContext->io.out->GetSize();
}
-static int _tiff_map(thandle_t context, tdata_t*, toff_t*) {
+
+int tiff_map(thandle_t context, tdata_t*, toff_t*) {
return 0;
}
-static void _tiff_unmap(thandle_t context, tdata_t, toff_t) {}
-TIFF* _tiff_open(void* context, const char* mode) {
- TIFF* tif = TIFFClientOpen("Tiff Image", mode, (thandle_t)context, _tiff_read,
- _tiff_write, _tiff_seek, _tiff_close,
- _tiff_get_size, _tiff_map, _tiff_unmap);
+
+void tiff_unmap(thandle_t context, tdata_t, toff_t) {}
+
+TIFF* tiff_open(void* context, const char* mode) {
+ TIFF* tif = TIFFClientOpen("Tiff Image", mode, (thandle_t)context, tiff_read,
+ tiff_write, tiff_seek, tiff_close, tiff_get_size,
+ tiff_map, tiff_unmap);
if (tif) {
tif->tif_fd = (int)(intptr_t)context;
}
return tif;
}
-void* _TIFFmalloc(tmsize_t size) {
- return FXMEM_DefaultAlloc(size, 0);
-}
-void _TIFFfree(void* ptr) {
- FXMEM_DefaultFree(ptr, 0);
-}
-void* _TIFFrealloc(void* ptr, tmsize_t size) {
- return FXMEM_DefaultRealloc(ptr, size, 0);
-}
-void _TIFFmemset(void* ptr, int val, tmsize_t size) {
- FXSYS_memset(ptr, val, (size_t)size);
-}
-void _TIFFmemcpy(void* des, const void* src, tmsize_t size) {
- FXSYS_memcpy(des, src, (size_t)size);
-}
-int _TIFFmemcmp(const void* ptr1, const void* ptr2, tmsize_t size) {
- return FXSYS_memcmp(ptr1, ptr2, (size_t)size);
-}
-
-TIFFErrorHandler _TIFFwarningHandler = nullptr;
-TIFFErrorHandler _TIFFerrorHandler = nullptr;
-
-int TIFFCmyk2Rgb(thandle_t context,
- uint8 c,
- uint8 m,
- uint8 y,
- uint8 k,
- uint8* r,
- uint8* g,
- uint8* b) {
- if (!context)
- return 0;
-
- CCodec_TiffContext* p = (CCodec_TiffContext*)context;
- if (p->icc_ctx) {
- unsigned char cmyk[4], bgr[3];
- cmyk[0] = c, cmyk[1] = m, cmyk[2] = y, cmyk[3] = k;
- IccLib_TranslateImage(p->icc_ctx, bgr, cmyk, 1);
- *r = bgr[2], *g = bgr[1], *b = bgr[0];
- } else {
- AdobeCMYK_to_sRGB1(c, m, y, k, *r, *g, *b);
- }
- return 1;
-}
-FX_BOOL CCodec_TiffContext::InitDecoder(IFX_FileRead* file_ptr) {
- io.in = file_ptr;
- return !!_tiff_open(this, "r");
-}
-void CCodec_TiffContext::GetFrames(int32_t& frames) {
- frames = frame_num = TIFFNumberOfDirectories(tif_ctx);
-}
-#define TIFF_EXIF_GETINFO(key, T, tag) \
- { \
- T val = (T)0; \
- TIFFGetField(tif_ctx, tag, &val); \
- if (val) { \
- (key) = FX_Alloc(uint8_t, sizeof(T)); \
- if ((key)) { \
- T* ptr = (T*)(key); \
- *ptr = val; \
- pExif->m_TagVal.SetAt(tag, (key)); \
- } \
- } \
- } \
- (key) = nullptr;
-#define TIFF_EXIF_GETSTRINGINFO(key, tag) \
- { \
- uint32_t size = 0; \
- uint8_t* buf = nullptr; \
- TIFFGetField(tif_ctx, tag, &size, &buf); \
- if (size && buf) { \
- (key) = FX_Alloc(uint8_t, size); \
- if ((key)) { \
- FXSYS_memcpy((key), buf, size); \
- pExif->m_TagVal.SetAt(tag, (key)); \
- } \
- } \
- } \
- (key) = nullptr;
-
-namespace {
template <class T>
FX_BOOL Tiff_Exif_GetInfo(TIFF* tif_ctx, ttag_t tag, CFX_DIBAttribute* pAttr) {
@@ -256,6 +195,7 @@ FX_BOOL Tiff_Exif_GetInfo(TIFF* tif_ctx, ttag_t tag, CFX_DIBAttribute* pAttr) {
pAttr->m_Exif[tag] = (void*)ptr;
return TRUE;
}
+
void Tiff_Exif_GetStringInfo(TIFF* tif_ctx,
ttag_t tag,
CFX_DIBAttribute* pAttr) {
@@ -270,8 +210,45 @@ void Tiff_Exif_GetStringInfo(TIFF* tif_ctx,
pAttr->m_Exif[tag] = ptr;
}
+void TiffBGRA2RGBA(uint8_t* pBuf, int32_t pixel, int32_t spp) {
+ for (int32_t n = 0; n < pixel; n++) {
+ uint8_t tmp = pBuf[0];
+ pBuf[0] = pBuf[2];
+ pBuf[2] = tmp;
+ pBuf += spp;
+ }
+}
+
} // namespace
+CCodec_TiffContext::CCodec_TiffContext()
+ : offset(0),
+ tif_ctx(nullptr),
+ icc_ctx(nullptr),
+ frame_num(0),
+ frame_cur(0),
+ isDecoder(TRUE) {
+ io.in = nullptr;
+}
+
+CCodec_TiffContext::~CCodec_TiffContext() {
+ if (icc_ctx) {
+ IccLib_DestroyTransform(icc_ctx);
+ icc_ctx = nullptr;
+ }
+ if (tif_ctx) {
+ TIFFClose(tif_ctx);
+ }
+}
+
+FX_BOOL CCodec_TiffContext::InitDecoder(IFX_FileRead* file_ptr) {
+ io.in = file_ptr;
+ return !!tiff_open(this, "r");
+}
+void CCodec_TiffContext::GetFrames(int32_t& frames) {
+ frames = frame_num = TIFFNumberOfDirectories(tif_ctx);
+}
+
FX_BOOL CCodec_TiffContext::LoadFrameInfo(int32_t frame,
uint32_t& width,
uint32_t& height,
@@ -323,14 +300,7 @@ FX_BOOL CCodec_TiffContext::LoadFrameInfo(int32_t frame,
}
return TRUE;
}
-void _TiffBGRA2RGBA(uint8_t* pBuf, int32_t pixel, int32_t spp) {
- for (int32_t n = 0; n < pixel; n++) {
- uint8_t tmp = pBuf[0];
- pBuf[0] = pBuf[2];
- pBuf[2] = tmp;
- pBuf += spp;
- }
-}
+
FX_BOOL CCodec_TiffContext::isSupport(CFX_DIBitmap* pDIBitmap) {
if (TIFFIsTiled(tif_ctx)) {
return FALSE;
@@ -363,6 +333,7 @@ FX_BOOL CCodec_TiffContext::isSupport(CFX_DIBitmap* pDIBitmap) {
}
return TRUE;
}
+
void CCodec_TiffContext::SetPalette(CFX_DIBitmap* pDIBitmap, uint16_t bps) {
uint16_t *red_orig, *green_orig, *blue_orig;
TIFFGetField(tif_ctx, TIFFTAG_COLORMAP, &red_orig, &green_orig, &blue_orig);
@@ -383,6 +354,7 @@ void CCodec_TiffContext::SetPalette(CFX_DIBitmap* pDIBitmap, uint16_t bps) {
pDIBitmap->SetPaletteEntry(index, color);
}
}
+
FX_BOOL CCodec_TiffContext::Decode1bppRGB(CFX_DIBitmap* pDIBitmap,
int32_t height,
int32_t width,
@@ -410,6 +382,7 @@ FX_BOOL CCodec_TiffContext::Decode1bppRGB(CFX_DIBitmap* pDIBitmap,
_TIFFfree(buf);
return TRUE;
}
+
FX_BOOL CCodec_TiffContext::Decode8bppRGB(CFX_DIBitmap* pDIBitmap,
int32_t height,
int32_t width,
@@ -445,6 +418,7 @@ FX_BOOL CCodec_TiffContext::Decode8bppRGB(CFX_DIBitmap* pDIBitmap,
_TIFFfree(buf);
return TRUE;
}
+
FX_BOOL CCodec_TiffContext::Decode24bppRGB(CFX_DIBitmap* pDIBitmap,
int32_t height,
int32_t width,
@@ -472,6 +446,7 @@ FX_BOOL CCodec_TiffContext::Decode24bppRGB(CFX_DIBitmap* pDIBitmap,
_TIFFfree(buf);
return TRUE;
}
+
FX_BOOL CCodec_TiffContext::Decode(CFX_DIBitmap* pDIBitmap) {
uint32_t img_wid = pDIBitmap->GetWidth();
uint32_t img_hei = pDIBitmap->GetHeight();
@@ -490,7 +465,7 @@ FX_BOOL CCodec_TiffContext::Decode(CFX_DIBitmap* pDIBitmap) {
1)) {
for (uint32_t row = 0; row < img_hei; row++) {
uint8_t* row_buf = (uint8_t*)pDIBitmap->GetScanline(row);
- _TiffBGRA2RGBA(row_buf, img_wid, 4);
+ TiffBGRA2RGBA(row_buf, img_wid, 4);
}
return TRUE;
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698