OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "core/fxcodec/codec/fx_codec_progress.h" | 7 #include "core/fxcodec/codec/include/ccodec_progressivedecoder.h" |
8 | 8 |
9 #include "core/fxcodec/include/fx_codec.h" | 9 #include "core/fxcodec/include/fx_codec.h" |
10 #include "core/fxge/include/fx_dib.h" | 10 #include "core/fxge/include/fx_dib.h" |
11 | 11 |
12 void CFXCODEC_WeightTable::Calc(int dest_len, | 12 #define FXCODEC_BLOCK_SIZE 4096 |
13 int dest_min, | 13 #define FXCODEC_PNG_GAMMA 2.2 |
14 int dest_max, | 14 |
15 int src_len, | 15 #if _FX_OS_ == _FX_MACOSX_ || _FX_OS_ == _FX_IOS_ |
16 int src_min, | 16 #undef FXCODEC_PNG_GAMMA |
17 int src_max, | 17 #define FXCODEC_PNG_GAMMA 1.7 |
18 FX_BOOL bInterpol) { | 18 #endif |
| 19 |
| 20 void CCodec_ProgressiveDecoder::CFXCODEC_WeightTable::Calc(int dest_len, |
| 21 int dest_min, |
| 22 int dest_max, |
| 23 int src_len, |
| 24 int src_min, |
| 25 int src_max, |
| 26 FX_BOOL bInterpol) { |
19 if (m_pWeightTables) { | 27 if (m_pWeightTables) { |
20 FX_Free(m_pWeightTables); | 28 FX_Free(m_pWeightTables); |
21 } | 29 } |
22 double scale, base; | 30 double scale, base; |
23 scale = (FX_FLOAT)src_len / (FX_FLOAT)dest_len; | 31 scale = (FX_FLOAT)src_len / (FX_FLOAT)dest_len; |
24 if (dest_len < 0) { | 32 if (dest_len < 0) { |
25 base = (FX_FLOAT)(src_len); | 33 base = (FX_FLOAT)(src_len); |
26 } else { | 34 } else { |
27 base = 0.0f; | 35 base = 0.0f; |
28 } | 36 } |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 double weight = area_start >= area_end ? 0.0f : area_end - area_start; | 114 double weight = area_start >= area_end ? 0.0f : area_end - area_start; |
107 if (weight == 0 && j == end_i) { | 115 if (weight == 0 && j == end_i) { |
108 pixel_weights.m_SrcEnd--; | 116 pixel_weights.m_SrcEnd--; |
109 break; | 117 break; |
110 } | 118 } |
111 pixel_weights.m_Weights[j - start_i] = | 119 pixel_weights.m_Weights[j - start_i] = |
112 FXSYS_round((FX_FLOAT)(weight * 65536)); | 120 FXSYS_round((FX_FLOAT)(weight * 65536)); |
113 } | 121 } |
114 } | 122 } |
115 } | 123 } |
116 void CFXCODEC_HorzTable::Calc(int dest_len, int src_len, FX_BOOL bInterpol) { | 124 void CCodec_ProgressiveDecoder::CFXCODEC_HorzTable::Calc(int dest_len, |
| 125 int src_len, |
| 126 FX_BOOL bInterpol) { |
117 if (m_pWeightTables) { | 127 if (m_pWeightTables) { |
118 FX_Free(m_pWeightTables); | 128 FX_Free(m_pWeightTables); |
119 } | 129 } |
120 double scale = (double)dest_len / (double)src_len; | 130 double scale = (double)dest_len / (double)src_len; |
121 m_ItemSize = sizeof(int) * 4; | 131 m_ItemSize = sizeof(int) * 4; |
122 int size = dest_len * m_ItemSize + 4; | 132 int size = dest_len * m_ItemSize + 4; |
123 m_pWeightTables = FX_Alloc(uint8_t, size); | 133 m_pWeightTables = FX_Alloc(uint8_t, size); |
124 if (m_pWeightTables == NULL) { | 134 if (m_pWeightTables == NULL) { |
125 return; | 135 return; |
126 } | 136 } |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 for (int des_col = 0; des_col < dest_len; des_col++) { | 176 for (int des_col = 0; des_col < dest_len; des_col++) { |
167 double src_col_f = des_col / scale; | 177 double src_col_f = des_col / scale; |
168 int src_col = FXSYS_round((FX_FLOAT)src_col_f); | 178 int src_col = FXSYS_round((FX_FLOAT)src_col_f); |
169 PixelWeight* pWeight = | 179 PixelWeight* pWeight = |
170 (PixelWeight*)(m_pWeightTables + des_col * m_ItemSize); | 180 (PixelWeight*)(m_pWeightTables + des_col * m_ItemSize); |
171 pWeight->m_SrcStart = pWeight->m_SrcEnd = src_col; | 181 pWeight->m_SrcStart = pWeight->m_SrcEnd = src_col; |
172 pWeight->m_Weights[0] = 65536; | 182 pWeight->m_Weights[0] = 65536; |
173 pWeight->m_Weights[1] = 0; | 183 pWeight->m_Weights[1] = 0; |
174 } | 184 } |
175 } | 185 } |
176 void CFXCODEC_VertTable::Calc(int dest_len, int src_len) { | 186 void CCodec_ProgressiveDecoder::CFXCODEC_VertTable::Calc(int dest_len, |
| 187 int src_len) { |
177 if (m_pWeightTables) { | 188 if (m_pWeightTables) { |
178 FX_Free(m_pWeightTables); | 189 FX_Free(m_pWeightTables); |
179 } | 190 } |
180 double scale = (double)dest_len / (double)src_len; | 191 double scale = (double)dest_len / (double)src_len; |
181 m_ItemSize = sizeof(int) * 4; | 192 m_ItemSize = sizeof(int) * 4; |
182 int size = dest_len * m_ItemSize + 4; | 193 int size = dest_len * m_ItemSize + 4; |
183 m_pWeightTables = FX_Alloc(uint8_t, size); | 194 m_pWeightTables = FX_Alloc(uint8_t, size); |
184 if (m_pWeightTables == NULL) { | 195 if (m_pWeightTables == NULL) { |
185 return; | 196 return; |
186 } | 197 } |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 m_pCodecMgr->GetBmpModule()->Finish(m_pBmpContext); | 298 m_pCodecMgr->GetBmpModule()->Finish(m_pBmpContext); |
288 } | 299 } |
289 if (m_pTiffContext) { | 300 if (m_pTiffContext) { |
290 m_pCodecMgr->GetTiffModule()->DestroyDecoder(m_pTiffContext); | 301 m_pCodecMgr->GetTiffModule()->DestroyDecoder(m_pTiffContext); |
291 } | 302 } |
292 FX_Free(m_pSrcBuf); | 303 FX_Free(m_pSrcBuf); |
293 FX_Free(m_pDecodeBuf); | 304 FX_Free(m_pDecodeBuf); |
294 FX_Free(m_pSrcPalette); | 305 FX_Free(m_pSrcPalette); |
295 } | 306 } |
296 FX_BOOL CCodec_ProgressiveDecoder::JpegReadMoreData( | 307 FX_BOOL CCodec_ProgressiveDecoder::JpegReadMoreData( |
297 ICodec_JpegModule* pJpegModule, | 308 CCodec_JpegModule* pJpegModule, |
298 FXCODEC_STATUS& err_status) { | 309 FXCODEC_STATUS& err_status) { |
299 uint32_t dwSize = (uint32_t)m_pFile->GetSize(); | 310 uint32_t dwSize = (uint32_t)m_pFile->GetSize(); |
300 if (dwSize <= m_offSet) { | 311 if (dwSize <= m_offSet) { |
301 return FALSE; | 312 return FALSE; |
302 } | 313 } |
303 dwSize = dwSize - m_offSet; | 314 dwSize = dwSize - m_offSet; |
304 uint32_t dwAvail = pJpegModule->GetAvailInput(m_pJpegContext, NULL); | 315 uint32_t dwAvail = pJpegModule->GetAvailInput(m_pJpegContext, NULL); |
305 if (dwAvail == m_SrcSize) { | 316 if (dwAvail == m_SrcSize) { |
306 if (dwSize > FXCODEC_BLOCK_SIZE) { | 317 if (dwSize > FXCODEC_BLOCK_SIZE) { |
307 dwSize = FXCODEC_BLOCK_SIZE; | 318 dwSize = FXCODEC_BLOCK_SIZE; |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 pCodec->m_SrcFormat); | 556 pCodec->m_SrcFormat); |
546 if (pCodec->m_SrcPassNumber == 1 && scale_y > 1.0) { | 557 if (pCodec->m_SrcPassNumber == 1 && scale_y > 1.0) { |
547 pCodec->ResampleVert(pDIBitmap, scale_y, des_row); | 558 pCodec->ResampleVert(pDIBitmap, scale_y, des_row); |
548 return; | 559 return; |
549 } | 560 } |
550 if (pass == 6 && scale_y > 1.0) { | 561 if (pass == 6 && scale_y > 1.0) { |
551 pCodec->ResampleVert(pDIBitmap, scale_y, des_row); | 562 pCodec->ResampleVert(pDIBitmap, scale_y, des_row); |
552 } | 563 } |
553 } | 564 } |
554 } | 565 } |
555 FX_BOOL CCodec_ProgressiveDecoder::GifReadMoreData(ICodec_GifModule* pGifModule, | 566 FX_BOOL CCodec_ProgressiveDecoder::GifReadMoreData(CCodec_GifModule* pGifModule, |
556 FXCODEC_STATUS& err_status) { | 567 FXCODEC_STATUS& err_status) { |
557 uint32_t dwSize = (uint32_t)m_pFile->GetSize(); | 568 uint32_t dwSize = (uint32_t)m_pFile->GetSize(); |
558 if (dwSize <= m_offSet) { | 569 if (dwSize <= m_offSet) { |
559 return FALSE; | 570 return FALSE; |
560 } | 571 } |
561 dwSize = dwSize - m_offSet; | 572 dwSize = dwSize - m_offSet; |
562 uint32_t dwAvail = pGifModule->GetAvailInput(m_pGifContext, NULL); | 573 uint32_t dwAvail = pGifModule->GetAvailInput(m_pGifContext, NULL); |
563 if (dwAvail == m_SrcSize) { | 574 if (dwAvail == m_SrcSize) { |
564 if (dwSize > FXCODEC_BLOCK_SIZE) { | 575 if (dwSize > FXCODEC_BLOCK_SIZE) { |
565 dwSize = FXCODEC_BLOCK_SIZE; | 576 dwSize = FXCODEC_BLOCK_SIZE; |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 return; | 838 return; |
828 } | 839 } |
829 } | 840 } |
830 } | 841 } |
831 int des_bottom = des_top + m_sizeY - 1; | 842 int des_bottom = des_top + m_sizeY - 1; |
832 if (des_row + (int)(2 * scale_y) >= des_bottom && | 843 if (des_row + (int)(2 * scale_y) >= des_bottom && |
833 des_row + (int)scale_y < des_bottom) { | 844 des_row + (int)scale_y < des_bottom) { |
834 GifDoubleLineResampleVert(pDeviceBitmap, scale_y, des_row + (int)scale_y); | 845 GifDoubleLineResampleVert(pDeviceBitmap, scale_y, des_row + (int)scale_y); |
835 } | 846 } |
836 } | 847 } |
837 FX_BOOL CCodec_ProgressiveDecoder::BmpReadMoreData(ICodec_BmpModule* pBmpModule, | 848 FX_BOOL CCodec_ProgressiveDecoder::BmpReadMoreData(CCodec_BmpModule* pBmpModule, |
838 FXCODEC_STATUS& err_status) { | 849 FXCODEC_STATUS& err_status) { |
839 uint32_t dwSize = (uint32_t)m_pFile->GetSize(); | 850 uint32_t dwSize = (uint32_t)m_pFile->GetSize(); |
840 if (dwSize <= m_offSet) { | 851 if (dwSize <= m_offSet) { |
841 return FALSE; | 852 return FALSE; |
842 } | 853 } |
843 dwSize = dwSize - m_offSet; | 854 dwSize = dwSize - m_offSet; |
844 uint32_t dwAvail = pBmpModule->GetAvailInput(m_pBmpContext, NULL); | 855 uint32_t dwAvail = pBmpModule->GetAvailInput(m_pBmpContext, NULL); |
845 if (dwAvail == m_SrcSize) { | 856 if (dwAvail == m_SrcSize) { |
846 if (dwSize > FXCODEC_BLOCK_SIZE) { | 857 if (dwSize > FXCODEC_BLOCK_SIZE) { |
847 dwSize = FXCODEC_BLOCK_SIZE; | 858 dwSize = FXCODEC_BLOCK_SIZE; |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1001 uint32_t size = (uint32_t)m_pFile->GetSize(); | 1012 uint32_t size = (uint32_t)m_pFile->GetSize(); |
1002 if (size > FXCODEC_BLOCK_SIZE) { | 1013 if (size > FXCODEC_BLOCK_SIZE) { |
1003 size = FXCODEC_BLOCK_SIZE; | 1014 size = FXCODEC_BLOCK_SIZE; |
1004 } | 1015 } |
1005 FX_Free(m_pSrcBuf); | 1016 FX_Free(m_pSrcBuf); |
1006 m_pSrcBuf = FX_Alloc(uint8_t, size); | 1017 m_pSrcBuf = FX_Alloc(uint8_t, size); |
1007 FXSYS_memset(m_pSrcBuf, 0, size); | 1018 FXSYS_memset(m_pSrcBuf, 0, size); |
1008 m_SrcSize = size; | 1019 m_SrcSize = size; |
1009 switch (imageType) { | 1020 switch (imageType) { |
1010 case FXCODEC_IMAGE_BMP: { | 1021 case FXCODEC_IMAGE_BMP: { |
1011 ICodec_BmpModule* pBmpModule = m_pCodecMgr->GetBmpModule(); | 1022 CCodec_BmpModule* pBmpModule = m_pCodecMgr->GetBmpModule(); |
1012 if (pBmpModule == NULL) { | 1023 if (pBmpModule == NULL) { |
1013 m_status = FXCODEC_STATUS_ERR_MEMORY; | 1024 m_status = FXCODEC_STATUS_ERR_MEMORY; |
1014 return FALSE; | 1025 return FALSE; |
1015 } | 1026 } |
1016 pBmpModule->InputImagePositionBufCallback = | 1027 pBmpModule->InputImagePositionBufCallback = |
1017 BmpInputImagePositionBufCallback; | 1028 BmpInputImagePositionBufCallback; |
1018 pBmpModule->ReadScanlineCallback = BmpReadScanlineCallback; | 1029 pBmpModule->ReadScanlineCallback = BmpReadScanlineCallback; |
1019 m_pBmpContext = pBmpModule->Start((void*)this); | 1030 m_pBmpContext = pBmpModule->Start((void*)this); |
1020 if (m_pBmpContext == NULL) { | 1031 if (m_pBmpContext == NULL) { |
1021 m_status = FXCODEC_STATUS_ERR_MEMORY; | 1032 m_status = FXCODEC_STATUS_ERR_MEMORY; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1056 return TRUE; | 1067 return TRUE; |
1057 } | 1068 } |
1058 if (m_pBmpContext) { | 1069 if (m_pBmpContext) { |
1059 pBmpModule->Finish(m_pBmpContext); | 1070 pBmpModule->Finish(m_pBmpContext); |
1060 m_pBmpContext = NULL; | 1071 m_pBmpContext = NULL; |
1061 } | 1072 } |
1062 m_status = FXCODEC_STATUS_ERR_FORMAT; | 1073 m_status = FXCODEC_STATUS_ERR_FORMAT; |
1063 return FALSE; | 1074 return FALSE; |
1064 } break; | 1075 } break; |
1065 case FXCODEC_IMAGE_JPG: { | 1076 case FXCODEC_IMAGE_JPG: { |
1066 ICodec_JpegModule* pJpegModule = m_pCodecMgr->GetJpegModule(); | 1077 CCodec_JpegModule* pJpegModule = m_pCodecMgr->GetJpegModule(); |
1067 if (pJpegModule == NULL) { | 1078 if (pJpegModule == NULL) { |
1068 m_status = FXCODEC_STATUS_ERR_MEMORY; | 1079 m_status = FXCODEC_STATUS_ERR_MEMORY; |
1069 return FALSE; | 1080 return FALSE; |
1070 } | 1081 } |
1071 m_pJpegContext = pJpegModule->Start(); | 1082 m_pJpegContext = pJpegModule->Start(); |
1072 if (m_pJpegContext == NULL) { | 1083 if (m_pJpegContext == NULL) { |
1073 m_status = FXCODEC_STATUS_ERR_MEMORY; | 1084 m_status = FXCODEC_STATUS_ERR_MEMORY; |
1074 return FALSE; | 1085 return FALSE; |
1075 } | 1086 } |
1076 FX_BOOL bResult = m_pFile->ReadBlock(m_pSrcBuf, 0, size); | 1087 FX_BOOL bResult = m_pFile->ReadBlock(m_pSrcBuf, 0, size); |
(...skipping 22 matching lines...) Expand all Loading... |
1099 return TRUE; | 1110 return TRUE; |
1100 } | 1111 } |
1101 if (m_pJpegContext) { | 1112 if (m_pJpegContext) { |
1102 pJpegModule->Finish(m_pJpegContext); | 1113 pJpegModule->Finish(m_pJpegContext); |
1103 m_pJpegContext = NULL; | 1114 m_pJpegContext = NULL; |
1104 } | 1115 } |
1105 m_status = FXCODEC_STATUS_ERR_FORMAT; | 1116 m_status = FXCODEC_STATUS_ERR_FORMAT; |
1106 return FALSE; | 1117 return FALSE; |
1107 } break; | 1118 } break; |
1108 case FXCODEC_IMAGE_PNG: { | 1119 case FXCODEC_IMAGE_PNG: { |
1109 ICodec_PngModule* pPngModule = m_pCodecMgr->GetPngModule(); | 1120 CCodec_PngModule* pPngModule = m_pCodecMgr->GetPngModule(); |
1110 if (pPngModule == NULL) { | 1121 if (pPngModule == NULL) { |
1111 m_status = FXCODEC_STATUS_ERR_MEMORY; | 1122 m_status = FXCODEC_STATUS_ERR_MEMORY; |
1112 return FALSE; | 1123 return FALSE; |
1113 } | 1124 } |
1114 pPngModule->ReadHeaderCallback = | 1125 pPngModule->ReadHeaderCallback = |
1115 CCodec_ProgressiveDecoder::PngReadHeaderFunc; | 1126 CCodec_ProgressiveDecoder::PngReadHeaderFunc; |
1116 pPngModule->AskScanlineBufCallback = | 1127 pPngModule->AskScanlineBufCallback = |
1117 CCodec_ProgressiveDecoder::PngAskScanlineBufFunc; | 1128 CCodec_ProgressiveDecoder::PngAskScanlineBufFunc; |
1118 pPngModule->FillScanlineBufCompletedCallback = | 1129 pPngModule->FillScanlineBufCompletedCallback = |
1119 CCodec_ProgressiveDecoder::PngFillScanlineBufCompletedFunc; | 1130 CCodec_ProgressiveDecoder::PngFillScanlineBufCompletedFunc; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1160 if (m_pPngContext) { | 1171 if (m_pPngContext) { |
1161 pPngModule->Finish(m_pPngContext); | 1172 pPngModule->Finish(m_pPngContext); |
1162 m_pPngContext = NULL; | 1173 m_pPngContext = NULL; |
1163 } | 1174 } |
1164 if (m_SrcPassNumber == 0) { | 1175 if (m_SrcPassNumber == 0) { |
1165 m_status = FXCODEC_STATUS_ERR_FORMAT; | 1176 m_status = FXCODEC_STATUS_ERR_FORMAT; |
1166 return FALSE; | 1177 return FALSE; |
1167 } | 1178 } |
1168 } break; | 1179 } break; |
1169 case FXCODEC_IMAGE_GIF: { | 1180 case FXCODEC_IMAGE_GIF: { |
1170 ICodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); | 1181 CCodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); |
1171 if (pGifModule == NULL) { | 1182 if (pGifModule == NULL) { |
1172 m_status = FXCODEC_STATUS_ERR_MEMORY; | 1183 m_status = FXCODEC_STATUS_ERR_MEMORY; |
1173 return FALSE; | 1184 return FALSE; |
1174 } | 1185 } |
1175 pGifModule->RecordCurrentPositionCallback = | 1186 pGifModule->RecordCurrentPositionCallback = |
1176 CCodec_ProgressiveDecoder::GifRecordCurrentPositionCallback; | 1187 CCodec_ProgressiveDecoder::GifRecordCurrentPositionCallback; |
1177 pGifModule->AskLocalPaletteBufCallback = | 1188 pGifModule->AskLocalPaletteBufCallback = |
1178 CCodec_ProgressiveDecoder::GifAskLocalPaletteBufCallback; | 1189 CCodec_ProgressiveDecoder::GifAskLocalPaletteBufCallback; |
1179 pGifModule->InputRecordPositionBufCallback = | 1190 pGifModule->InputRecordPositionBufCallback = |
1180 CCodec_ProgressiveDecoder::GifInputRecordPositionBufCallback; | 1191 CCodec_ProgressiveDecoder::GifInputRecordPositionBufCallback; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1212 return TRUE; | 1223 return TRUE; |
1213 } | 1224 } |
1214 if (m_pGifContext) { | 1225 if (m_pGifContext) { |
1215 pGifModule->Finish(m_pGifContext); | 1226 pGifModule->Finish(m_pGifContext); |
1216 m_pGifContext = NULL; | 1227 m_pGifContext = NULL; |
1217 } | 1228 } |
1218 m_status = FXCODEC_STATUS_ERR_FORMAT; | 1229 m_status = FXCODEC_STATUS_ERR_FORMAT; |
1219 return FALSE; | 1230 return FALSE; |
1220 } break; | 1231 } break; |
1221 case FXCODEC_IMAGE_TIF: { | 1232 case FXCODEC_IMAGE_TIF: { |
1222 ICodec_TiffModule* pTiffModule = m_pCodecMgr->GetTiffModule(); | 1233 CCodec_TiffModule* pTiffModule = m_pCodecMgr->GetTiffModule(); |
1223 if (pTiffModule == NULL) { | 1234 if (pTiffModule == NULL) { |
1224 m_status = FXCODEC_STATUS_ERR_FORMAT; | 1235 m_status = FXCODEC_STATUS_ERR_FORMAT; |
1225 return FALSE; | 1236 return FALSE; |
1226 } | 1237 } |
1227 m_pTiffContext = pTiffModule->CreateDecoder(m_pFile); | 1238 m_pTiffContext = pTiffModule->CreateDecoder(m_pFile); |
1228 if (m_pTiffContext == NULL) { | 1239 if (m_pTiffContext == NULL) { |
1229 m_status = FXCODEC_STATUS_ERR_FORMAT; | 1240 m_status = FXCODEC_STATUS_ERR_FORMAT; |
1230 return FALSE; | 1241 return FALSE; |
1231 } | 1242 } |
1232 int32_t frames = 0; | 1243 int32_t frames = 0; |
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1792 return FXCODEC_STATUS_ERROR; | 1803 return FXCODEC_STATUS_ERROR; |
1793 } | 1804 } |
1794 switch (m_imagType) { | 1805 switch (m_imagType) { |
1795 case FXCODEC_IMAGE_BMP: | 1806 case FXCODEC_IMAGE_BMP: |
1796 case FXCODEC_IMAGE_JPG: | 1807 case FXCODEC_IMAGE_JPG: |
1797 case FXCODEC_IMAGE_PNG: | 1808 case FXCODEC_IMAGE_PNG: |
1798 case FXCODEC_IMAGE_TIF: | 1809 case FXCODEC_IMAGE_TIF: |
1799 frames = m_FrameNumber = 1; | 1810 frames = m_FrameNumber = 1; |
1800 return m_status = FXCODEC_STATUS_DECODE_READY; | 1811 return m_status = FXCODEC_STATUS_DECODE_READY; |
1801 case FXCODEC_IMAGE_GIF: { | 1812 case FXCODEC_IMAGE_GIF: { |
1802 ICodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); | 1813 CCodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); |
1803 while (TRUE) { | 1814 while (TRUE) { |
1804 int32_t readResult = | 1815 int32_t readResult = |
1805 pGifModule->LoadFrameInfo(m_pGifContext, &m_FrameNumber); | 1816 pGifModule->LoadFrameInfo(m_pGifContext, &m_FrameNumber); |
1806 while (readResult == 2) { | 1817 while (readResult == 2) { |
1807 FXCODEC_STATUS error_status = FXCODEC_STATUS_ERR_READ; | 1818 FXCODEC_STATUS error_status = FXCODEC_STATUS_ERR_READ; |
1808 if (!GifReadMoreData(pGifModule, error_status)) { | 1819 if (!GifReadMoreData(pGifModule, error_status)) { |
1809 return error_status; | 1820 return error_status; |
1810 } | 1821 } |
1811 if (pPause && pPause->NeedToPauseNow()) { | 1822 if (pPause && pPause->NeedToPauseNow()) { |
1812 return m_status = FXCODEC_STATUS_FRAME_TOBECONTINUE; | 1823 return m_status = FXCODEC_STATUS_FRAME_TOBECONTINUE; |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1881 } | 1892 } |
1882 if (out_range_y > 0) { | 1893 if (out_range_y > 0) { |
1883 m_clipBox.bottom -= (int32_t)FXSYS_floor((FX_FLOAT)out_range_y * scaleY); | 1894 m_clipBox.bottom -= (int32_t)FXSYS_floor((FX_FLOAT)out_range_y * scaleY); |
1884 } | 1895 } |
1885 } | 1896 } |
1886 if (m_clipBox.IsEmpty()) { | 1897 if (m_clipBox.IsEmpty()) { |
1887 return FXCODEC_STATUS_ERR_PARAMS; | 1898 return FXCODEC_STATUS_ERR_PARAMS; |
1888 } | 1899 } |
1889 switch (m_imagType) { | 1900 switch (m_imagType) { |
1890 case FXCODEC_IMAGE_JPG: { | 1901 case FXCODEC_IMAGE_JPG: { |
1891 ICodec_JpegModule* pJpegModule = m_pCodecMgr->GetJpegModule(); | 1902 CCodec_JpegModule* pJpegModule = m_pCodecMgr->GetJpegModule(); |
1892 int down_scale = 1; | 1903 int down_scale = 1; |
1893 GetDownScale(down_scale); | 1904 GetDownScale(down_scale); |
1894 FX_BOOL bStart = pJpegModule->StartScanline(m_pJpegContext, down_scale); | 1905 FX_BOOL bStart = pJpegModule->StartScanline(m_pJpegContext, down_scale); |
1895 while (!bStart) { | 1906 while (!bStart) { |
1896 FXCODEC_STATUS error_status = FXCODEC_STATUS_ERROR; | 1907 FXCODEC_STATUS error_status = FXCODEC_STATUS_ERROR; |
1897 if (!JpegReadMoreData(pJpegModule, error_status)) { | 1908 if (!JpegReadMoreData(pJpegModule, error_status)) { |
1898 m_pDeviceBitmap = NULL; | 1909 m_pDeviceBitmap = NULL; |
1899 m_pFile = NULL; | 1910 m_pFile = NULL; |
1900 return m_status = error_status; | 1911 return m_status = error_status; |
1901 } | 1912 } |
(...skipping 15 matching lines...) Expand all Loading... |
1917 m_SrcFormat = FXCodec_Rgb; | 1928 m_SrcFormat = FXCodec_Rgb; |
1918 break; | 1929 break; |
1919 case 4: | 1930 case 4: |
1920 m_SrcFormat = FXCodec_Cmyk; | 1931 m_SrcFormat = FXCodec_Cmyk; |
1921 break; | 1932 break; |
1922 } | 1933 } |
1923 GetTransMethod(pDIBitmap->GetFormat(), m_SrcFormat); | 1934 GetTransMethod(pDIBitmap->GetFormat(), m_SrcFormat); |
1924 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 1935 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
1925 } break; | 1936 } break; |
1926 case FXCODEC_IMAGE_PNG: { | 1937 case FXCODEC_IMAGE_PNG: { |
1927 ICodec_PngModule* pPngModule = m_pCodecMgr->GetPngModule(); | 1938 CCodec_PngModule* pPngModule = m_pCodecMgr->GetPngModule(); |
1928 if (pPngModule == NULL) { | 1939 if (pPngModule == NULL) { |
1929 m_pDeviceBitmap = NULL; | 1940 m_pDeviceBitmap = NULL; |
1930 m_pFile = NULL; | 1941 m_pFile = NULL; |
1931 return m_status = FXCODEC_STATUS_ERR_MEMORY; | 1942 return m_status = FXCODEC_STATUS_ERR_MEMORY; |
1932 } | 1943 } |
1933 if (m_pPngContext) { | 1944 if (m_pPngContext) { |
1934 pPngModule->Finish(m_pPngContext); | 1945 pPngModule->Finish(m_pPngContext); |
1935 m_pPngContext = NULL; | 1946 m_pPngContext = NULL; |
1936 } | 1947 } |
1937 m_pPngContext = pPngModule->Start((void*)this); | 1948 m_pPngContext = pPngModule->Start((void*)this); |
(...skipping 27 matching lines...) Expand all Loading... |
1965 GetTransMethod(m_pDeviceBitmap->GetFormat(), m_SrcFormat); | 1976 GetTransMethod(m_pDeviceBitmap->GetFormat(), m_SrcFormat); |
1966 int scanline_size = (m_SrcWidth * m_SrcComponents + 3) / 4 * 4; | 1977 int scanline_size = (m_SrcWidth * m_SrcComponents + 3) / 4 * 4; |
1967 FX_Free(m_pDecodeBuf); | 1978 FX_Free(m_pDecodeBuf); |
1968 m_pDecodeBuf = FX_Alloc(uint8_t, scanline_size); | 1979 m_pDecodeBuf = FX_Alloc(uint8_t, scanline_size); |
1969 FXSYS_memset(m_pDecodeBuf, 0, scanline_size); | 1980 FXSYS_memset(m_pDecodeBuf, 0, scanline_size); |
1970 m_WeightHorzOO.Calc(m_sizeX, m_clipBox.Width(), m_bInterpol); | 1981 m_WeightHorzOO.Calc(m_sizeX, m_clipBox.Width(), m_bInterpol); |
1971 m_WeightVert.Calc(m_sizeY, m_clipBox.Height()); | 1982 m_WeightVert.Calc(m_sizeY, m_clipBox.Height()); |
1972 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 1983 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
1973 } break; | 1984 } break; |
1974 case FXCODEC_IMAGE_GIF: { | 1985 case FXCODEC_IMAGE_GIF: { |
1975 ICodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); | 1986 CCodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); |
1976 if (pGifModule == NULL) { | 1987 if (pGifModule == NULL) { |
1977 m_pDeviceBitmap = NULL; | 1988 m_pDeviceBitmap = NULL; |
1978 m_pFile = NULL; | 1989 m_pFile = NULL; |
1979 return m_status = FXCODEC_STATUS_ERR_MEMORY; | 1990 return m_status = FXCODEC_STATUS_ERR_MEMORY; |
1980 } | 1991 } |
1981 m_SrcFormat = FXCodec_8bppRgb; | 1992 m_SrcFormat = FXCodec_8bppRgb; |
1982 GetTransMethod(m_pDeviceBitmap->GetFormat(), m_SrcFormat); | 1993 GetTransMethod(m_pDeviceBitmap->GetFormat(), m_SrcFormat); |
1983 int scanline_size = (m_SrcWidth + 3) / 4 * 4; | 1994 int scanline_size = (m_SrcWidth + 3) / 4 * 4; |
1984 FX_Free(m_pDecodeBuf); | 1995 FX_Free(m_pDecodeBuf); |
1985 m_pDecodeBuf = FX_Alloc(uint8_t, scanline_size); | 1996 m_pDecodeBuf = FX_Alloc(uint8_t, scanline_size); |
1986 FXSYS_memset(m_pDecodeBuf, 0, scanline_size); | 1997 FXSYS_memset(m_pDecodeBuf, 0, scanline_size); |
1987 m_WeightHorz.Calc(m_sizeX, 0, m_sizeX, m_clipBox.Width(), 0, | 1998 m_WeightHorz.Calc(m_sizeX, 0, m_sizeX, m_clipBox.Width(), 0, |
1988 m_clipBox.Width(), m_bInterpol); | 1999 m_clipBox.Width(), m_bInterpol); |
1989 m_WeightVert.Calc(m_sizeY, m_clipBox.Height()); | 2000 m_WeightVert.Calc(m_sizeY, m_clipBox.Height()); |
1990 m_FrameCur = frames; | 2001 m_FrameCur = frames; |
1991 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 2002 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
1992 } break; | 2003 } break; |
1993 case FXCODEC_IMAGE_BMP: { | 2004 case FXCODEC_IMAGE_BMP: { |
1994 ICodec_BmpModule* pBmpModule = m_pCodecMgr->GetBmpModule(); | 2005 CCodec_BmpModule* pBmpModule = m_pCodecMgr->GetBmpModule(); |
1995 if (pBmpModule == NULL) { | 2006 if (pBmpModule == NULL) { |
1996 m_pDeviceBitmap = NULL; | 2007 m_pDeviceBitmap = NULL; |
1997 m_pFile = NULL; | 2008 m_pFile = NULL; |
1998 return m_status = FXCODEC_STATUS_ERR_MEMORY; | 2009 return m_status = FXCODEC_STATUS_ERR_MEMORY; |
1999 } | 2010 } |
2000 switch (m_SrcComponents) { | 2011 switch (m_SrcComponents) { |
2001 case 1: | 2012 case 1: |
2002 m_SrcFormat = FXCodec_8bppRgb; | 2013 m_SrcFormat = FXCodec_8bppRgb; |
2003 break; | 2014 break; |
2004 case 3: | 2015 case 3: |
(...skipping 19 matching lines...) Expand all Loading... |
2024 break; | 2035 break; |
2025 } | 2036 } |
2026 return FXCODEC_STATUS_ERROR; | 2037 return FXCODEC_STATUS_ERROR; |
2027 } | 2038 } |
2028 FXCODEC_STATUS CCodec_ProgressiveDecoder::ContinueDecode(IFX_Pause* pPause) { | 2039 FXCODEC_STATUS CCodec_ProgressiveDecoder::ContinueDecode(IFX_Pause* pPause) { |
2029 if (m_status != FXCODEC_STATUS_DECODE_TOBECONTINUE) { | 2040 if (m_status != FXCODEC_STATUS_DECODE_TOBECONTINUE) { |
2030 return FXCODEC_STATUS_ERROR; | 2041 return FXCODEC_STATUS_ERROR; |
2031 } | 2042 } |
2032 switch (m_imagType) { | 2043 switch (m_imagType) { |
2033 case FXCODEC_IMAGE_JPG: { | 2044 case FXCODEC_IMAGE_JPG: { |
2034 ICodec_JpegModule* pJpegModule = m_pCodecMgr->GetJpegModule(); | 2045 CCodec_JpegModule* pJpegModule = m_pCodecMgr->GetJpegModule(); |
2035 while (TRUE) { | 2046 while (TRUE) { |
2036 FX_BOOL readRes = | 2047 FX_BOOL readRes = |
2037 pJpegModule->ReadScanline(m_pJpegContext, m_pDecodeBuf); | 2048 pJpegModule->ReadScanline(m_pJpegContext, m_pDecodeBuf); |
2038 while (!readRes) { | 2049 while (!readRes) { |
2039 FXCODEC_STATUS error_status = FXCODEC_STATUS_DECODE_FINISH; | 2050 FXCODEC_STATUS error_status = FXCODEC_STATUS_DECODE_FINISH; |
2040 if (!JpegReadMoreData(pJpegModule, error_status)) { | 2051 if (!JpegReadMoreData(pJpegModule, error_status)) { |
2041 m_pDeviceBitmap = NULL; | 2052 m_pDeviceBitmap = NULL; |
2042 m_pFile = NULL; | 2053 m_pFile = NULL; |
2043 return m_status = error_status; | 2054 return m_status = error_status; |
2044 } | 2055 } |
2045 readRes = pJpegModule->ReadScanline(m_pJpegContext, m_pDecodeBuf); | 2056 readRes = pJpegModule->ReadScanline(m_pJpegContext, m_pDecodeBuf); |
2046 } | 2057 } |
2047 if (m_SrcFormat == FXCodec_Rgb) { | 2058 if (m_SrcFormat == FXCodec_Rgb) { |
2048 int src_Bpp = (m_SrcFormat & 0xff) >> 3; | 2059 int src_Bpp = (m_SrcFormat & 0xff) >> 3; |
2049 _RGB2BGR(m_pDecodeBuf + m_clipBox.left * src_Bpp, m_clipBox.Width()); | 2060 _RGB2BGR(m_pDecodeBuf + m_clipBox.left * src_Bpp, m_clipBox.Width()); |
2050 } | 2061 } |
2051 if (m_SrcRow >= m_clipBox.bottom) { | 2062 if (m_SrcRow >= m_clipBox.bottom) { |
2052 m_pDeviceBitmap = NULL; | 2063 m_pDeviceBitmap = NULL; |
2053 m_pFile = NULL; | 2064 m_pFile = NULL; |
2054 return m_status = FXCODEC_STATUS_DECODE_FINISH; | 2065 return m_status = FXCODEC_STATUS_DECODE_FINISH; |
2055 } | 2066 } |
2056 Resample(m_pDeviceBitmap, m_SrcRow, m_pDecodeBuf, m_SrcFormat); | 2067 Resample(m_pDeviceBitmap, m_SrcRow, m_pDecodeBuf, m_SrcFormat); |
2057 m_SrcRow++; | 2068 m_SrcRow++; |
2058 if (pPause && pPause->NeedToPauseNow()) { | 2069 if (pPause && pPause->NeedToPauseNow()) { |
2059 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 2070 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
2060 } | 2071 } |
2061 } | 2072 } |
2062 } break; | 2073 } break; |
2063 case FXCODEC_IMAGE_PNG: { | 2074 case FXCODEC_IMAGE_PNG: { |
2064 ICodec_PngModule* pPngModule = m_pCodecMgr->GetPngModule(); | 2075 CCodec_PngModule* pPngModule = m_pCodecMgr->GetPngModule(); |
2065 while (TRUE) { | 2076 while (TRUE) { |
2066 uint32_t remain_size = (uint32_t)m_pFile->GetSize() - m_offSet; | 2077 uint32_t remain_size = (uint32_t)m_pFile->GetSize() - m_offSet; |
2067 uint32_t input_size = | 2078 uint32_t input_size = |
2068 remain_size > FXCODEC_BLOCK_SIZE ? FXCODEC_BLOCK_SIZE : remain_size; | 2079 remain_size > FXCODEC_BLOCK_SIZE ? FXCODEC_BLOCK_SIZE : remain_size; |
2069 if (input_size == 0) { | 2080 if (input_size == 0) { |
2070 if (m_pPngContext) { | 2081 if (m_pPngContext) { |
2071 pPngModule->Finish(m_pPngContext); | 2082 pPngModule->Finish(m_pPngContext); |
2072 } | 2083 } |
2073 m_pPngContext = NULL; | 2084 m_pPngContext = NULL; |
2074 m_pDeviceBitmap = NULL; | 2085 m_pDeviceBitmap = NULL; |
(...skipping 19 matching lines...) Expand all Loading... |
2094 m_pDeviceBitmap = NULL; | 2105 m_pDeviceBitmap = NULL; |
2095 m_pFile = NULL; | 2106 m_pFile = NULL; |
2096 return m_status = FXCODEC_STATUS_ERROR; | 2107 return m_status = FXCODEC_STATUS_ERROR; |
2097 } | 2108 } |
2098 if (pPause && pPause->NeedToPauseNow()) { | 2109 if (pPause && pPause->NeedToPauseNow()) { |
2099 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 2110 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
2100 } | 2111 } |
2101 } | 2112 } |
2102 } break; | 2113 } break; |
2103 case FXCODEC_IMAGE_GIF: { | 2114 case FXCODEC_IMAGE_GIF: { |
2104 ICodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); | 2115 CCodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); |
2105 while (TRUE) { | 2116 while (TRUE) { |
2106 int32_t readRes = | 2117 int32_t readRes = |
2107 pGifModule->LoadFrame(m_pGifContext, m_FrameCur, nullptr); | 2118 pGifModule->LoadFrame(m_pGifContext, m_FrameCur, nullptr); |
2108 while (readRes == 2) { | 2119 while (readRes == 2) { |
2109 FXCODEC_STATUS error_status = FXCODEC_STATUS_DECODE_FINISH; | 2120 FXCODEC_STATUS error_status = FXCODEC_STATUS_DECODE_FINISH; |
2110 if (!GifReadMoreData(pGifModule, error_status)) { | 2121 if (!GifReadMoreData(pGifModule, error_status)) { |
2111 m_pDeviceBitmap = NULL; | 2122 m_pDeviceBitmap = NULL; |
2112 m_pFile = NULL; | 2123 m_pFile = NULL; |
2113 return m_status = error_status; | 2124 return m_status = error_status; |
2114 } | 2125 } |
2115 if (pPause && pPause->NeedToPauseNow()) { | 2126 if (pPause && pPause->NeedToPauseNow()) { |
2116 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 2127 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
2117 } | 2128 } |
2118 readRes = pGifModule->LoadFrame(m_pGifContext, m_FrameCur, nullptr); | 2129 readRes = pGifModule->LoadFrame(m_pGifContext, m_FrameCur, nullptr); |
2119 } | 2130 } |
2120 if (readRes == 1) { | 2131 if (readRes == 1) { |
2121 m_pDeviceBitmap = NULL; | 2132 m_pDeviceBitmap = NULL; |
2122 m_pFile = NULL; | 2133 m_pFile = NULL; |
2123 return m_status = FXCODEC_STATUS_DECODE_FINISH; | 2134 return m_status = FXCODEC_STATUS_DECODE_FINISH; |
2124 } | 2135 } |
2125 m_pDeviceBitmap = NULL; | 2136 m_pDeviceBitmap = NULL; |
2126 m_pFile = NULL; | 2137 m_pFile = NULL; |
2127 return m_status = FXCODEC_STATUS_ERROR; | 2138 return m_status = FXCODEC_STATUS_ERROR; |
2128 } | 2139 } |
2129 } break; | 2140 } break; |
2130 case FXCODEC_IMAGE_BMP: { | 2141 case FXCODEC_IMAGE_BMP: { |
2131 ICodec_BmpModule* pBmpModule = m_pCodecMgr->GetBmpModule(); | 2142 CCodec_BmpModule* pBmpModule = m_pCodecMgr->GetBmpModule(); |
2132 while (TRUE) { | 2143 while (TRUE) { |
2133 int32_t readRes = pBmpModule->LoadImage(m_pBmpContext); | 2144 int32_t readRes = pBmpModule->LoadImage(m_pBmpContext); |
2134 while (readRes == 2) { | 2145 while (readRes == 2) { |
2135 FXCODEC_STATUS error_status = FXCODEC_STATUS_DECODE_FINISH; | 2146 FXCODEC_STATUS error_status = FXCODEC_STATUS_DECODE_FINISH; |
2136 if (!BmpReadMoreData(pBmpModule, error_status)) { | 2147 if (!BmpReadMoreData(pBmpModule, error_status)) { |
2137 m_pDeviceBitmap = NULL; | 2148 m_pDeviceBitmap = NULL; |
2138 m_pFile = NULL; | 2149 m_pFile = NULL; |
2139 return m_status = error_status; | 2150 return m_status = error_status; |
2140 } | 2151 } |
2141 if (pPause && pPause->NeedToPauseNow()) { | 2152 if (pPause && pPause->NeedToPauseNow()) { |
2142 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 2153 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
2143 } | 2154 } |
2144 readRes = pBmpModule->LoadImage(m_pBmpContext); | 2155 readRes = pBmpModule->LoadImage(m_pBmpContext); |
2145 } | 2156 } |
2146 if (readRes == 1) { | 2157 if (readRes == 1) { |
2147 m_pDeviceBitmap = NULL; | 2158 m_pDeviceBitmap = NULL; |
2148 m_pFile = NULL; | 2159 m_pFile = NULL; |
2149 return m_status = FXCODEC_STATUS_DECODE_FINISH; | 2160 return m_status = FXCODEC_STATUS_DECODE_FINISH; |
2150 } | 2161 } |
2151 m_pDeviceBitmap = NULL; | 2162 m_pDeviceBitmap = NULL; |
2152 m_pFile = NULL; | 2163 m_pFile = NULL; |
2153 return m_status = FXCODEC_STATUS_ERROR; | 2164 return m_status = FXCODEC_STATUS_ERROR; |
2154 } | 2165 } |
2155 } break; | 2166 } break; |
2156 case FXCODEC_IMAGE_TIF: { | 2167 case FXCODEC_IMAGE_TIF: { |
2157 ICodec_TiffModule* pTiffModule = m_pCodecMgr->GetTiffModule(); | 2168 CCodec_TiffModule* pTiffModule = m_pCodecMgr->GetTiffModule(); |
2158 FX_BOOL ret = FALSE; | 2169 FX_BOOL ret = FALSE; |
2159 if (m_pDeviceBitmap->GetBPP() == 32 && | 2170 if (m_pDeviceBitmap->GetBPP() == 32 && |
2160 m_pDeviceBitmap->GetWidth() == m_SrcWidth && m_SrcWidth == m_sizeX && | 2171 m_pDeviceBitmap->GetWidth() == m_SrcWidth && m_SrcWidth == m_sizeX && |
2161 m_pDeviceBitmap->GetHeight() == m_SrcHeight && | 2172 m_pDeviceBitmap->GetHeight() == m_SrcHeight && |
2162 m_SrcHeight == m_sizeY && m_startX == 0 && m_startY == 0 && | 2173 m_SrcHeight == m_sizeY && m_startX == 0 && m_startY == 0 && |
2163 m_clipBox.left == 0 && m_clipBox.top == 0 && | 2174 m_clipBox.left == 0 && m_clipBox.top == 0 && |
2164 m_clipBox.right == m_SrcWidth && m_clipBox.bottom == m_SrcHeight) { | 2175 m_clipBox.right == m_SrcWidth && m_clipBox.bottom == m_SrcHeight) { |
2165 ret = pTiffModule->Decode(m_pTiffContext, m_pDeviceBitmap); | 2176 ret = pTiffModule->Decode(m_pTiffContext, m_pDeviceBitmap); |
2166 m_pDeviceBitmap = NULL; | 2177 m_pDeviceBitmap = NULL; |
2167 m_pFile = NULL; | 2178 m_pFile = NULL; |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2289 m_pDeviceBitmap = NULL; | 2300 m_pDeviceBitmap = NULL; |
2290 m_pFile = NULL; | 2301 m_pFile = NULL; |
2291 return m_status = FXCODEC_STATUS_DECODE_FINISH; | 2302 return m_status = FXCODEC_STATUS_DECODE_FINISH; |
2292 } | 2303 } |
2293 } break; | 2304 } break; |
2294 default: | 2305 default: |
2295 break; | 2306 break; |
2296 } | 2307 } |
2297 return FXCODEC_STATUS_ERROR; | 2308 return FXCODEC_STATUS_ERROR; |
2298 } | 2309 } |
2299 ICodec_ProgressiveDecoder* CCodec_ModuleMgr::CreateProgressiveDecoder() { | 2310 CCodec_ProgressiveDecoder* CCodec_ModuleMgr::CreateProgressiveDecoder() { |
2300 return new CCodec_ProgressiveDecoder(this); | 2311 return new CCodec_ProgressiveDecoder(this); |
2301 } | 2312 } |
OLD | NEW |