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 "../../../include/fxge/fx_dib.h" | 7 #include "../../../include/fxge/fx_dib.h" |
8 #include "../../../include/fxcodec/fx_codec.h" | 8 #include "../../../include/fxcodec/fx_codec.h" |
9 #include "fx_codec_progress.h" | 9 #include "fx_codec_progress.h" |
10 void CFXCODEC_WeightTable::Calc(int dest_len, | 10 void CFXCODEC_WeightTable::Calc(int dest_len, |
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
634 if (pCodec->m_pSrcPalette == NULL) { | 634 if (pCodec->m_pSrcPalette == NULL) { |
635 pCodec->m_pSrcPalette = FX_Alloc(FX_ARGB, pal_num); | 635 pCodec->m_pSrcPalette = FX_Alloc(FX_ARGB, pal_num); |
636 } else if (pal_num > pCodec->m_SrcPaletteNumber) { | 636 } else if (pal_num > pCodec->m_SrcPaletteNumber) { |
637 pCodec->m_pSrcPalette = FX_Realloc(FX_ARGB, pCodec->m_pSrcPalette, pal_num); | 637 pCodec->m_pSrcPalette = FX_Realloc(FX_ARGB, pCodec->m_pSrcPalette, pal_num); |
638 } | 638 } |
639 if (pCodec->m_pSrcPalette == NULL) { | 639 if (pCodec->m_pSrcPalette == NULL) { |
640 return FALSE; | 640 return FALSE; |
641 } | 641 } |
642 pCodec->m_SrcPaletteNumber = pal_num; | 642 pCodec->m_SrcPaletteNumber = pal_num; |
643 for (int i = 0; i < pal_num; i++) { | 643 for (int i = 0; i < pal_num; i++) { |
644 register FX_DWORD j = i * 3; | 644 FX_DWORD j = i * 3; |
645 pCodec->m_pSrcPalette[i] = | 645 pCodec->m_pSrcPalette[i] = |
646 ArgbEncode(0xff, pPalette[j], pPalette[j + 1], pPalette[j + 2]); | 646 ArgbEncode(0xff, pPalette[j], pPalette[j + 1], pPalette[j + 2]); |
647 } | 647 } |
648 pCodec->m_GifTransIndex = trans_index; | 648 pCodec->m_GifTransIndex = trans_index; |
649 pCodec->m_GifFrameRect = img_rc; | 649 pCodec->m_GifFrameRect = img_rc; |
650 pCodec->m_SrcPassNumber = interlace ? 4 : 1; | 650 pCodec->m_SrcPassNumber = interlace ? 4 : 1; |
651 int32_t pal_index = pCodec->m_GifBgIndex; | 651 int32_t pal_index = pCodec->m_GifBgIndex; |
652 CFX_DIBitmap* pDevice = pCodec->m_pDeviceBitmap; | 652 CFX_DIBitmap* pDevice = pCodec->m_pDeviceBitmap; |
653 if (trans_index >= pal_num) { | 653 if (trans_index >= pal_num) { |
654 trans_index = -1; | 654 trans_index = -1; |
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1208 FX_BOOL bResult = m_pFile->ReadBlock(m_pSrcBuf, 0, size); | 1208 FX_BOOL bResult = m_pFile->ReadBlock(m_pSrcBuf, 0, size); |
1209 if (!bResult) { | 1209 if (!bResult) { |
1210 m_status = FXCODEC_STATUS_ERR_READ; | 1210 m_status = FXCODEC_STATUS_ERR_READ; |
1211 return FALSE; | 1211 return FALSE; |
1212 } | 1212 } |
1213 m_offSet += size; | 1213 m_offSet += size; |
1214 pGifModule->Input(m_pGifContext, m_pSrcBuf, size); | 1214 pGifModule->Input(m_pGifContext, m_pSrcBuf, size); |
1215 m_SrcComponents = 1; | 1215 m_SrcComponents = 1; |
1216 int32_t readResult = pGifModule->ReadHeader( | 1216 int32_t readResult = pGifModule->ReadHeader( |
1217 m_pGifContext, &m_SrcWidth, &m_SrcHeight, &m_GifPltNumber, | 1217 m_pGifContext, &m_SrcWidth, &m_SrcHeight, &m_GifPltNumber, |
1218 (void**)&m_pGifPalette, &m_GifBgIndex); | 1218 (void**)&m_pGifPalette, &m_GifBgIndex, nullptr); |
1219 while (readResult == 2) { | 1219 while (readResult == 2) { |
1220 FXCODEC_STATUS error_status = FXCODEC_STATUS_ERR_FORMAT; | 1220 FXCODEC_STATUS error_status = FXCODEC_STATUS_ERR_FORMAT; |
1221 if (!GifReadMoreData(pGifModule, error_status)) { | 1221 if (!GifReadMoreData(pGifModule, error_status)) { |
1222 m_status = error_status; | 1222 m_status = error_status; |
1223 return FALSE; | 1223 return FALSE; |
1224 } | 1224 } |
1225 readResult = pGifModule->ReadHeader( | 1225 readResult = pGifModule->ReadHeader( |
1226 m_pGifContext, &m_SrcWidth, &m_SrcHeight, &m_GifPltNumber, | 1226 m_pGifContext, &m_SrcWidth, &m_SrcHeight, &m_GifPltNumber, |
1227 (void**)&m_pGifPalette, &m_GifBgIndex); | 1227 (void**)&m_pGifPalette, &m_GifBgIndex, nullptr); |
1228 } | 1228 } |
1229 if (readResult == 1) { | 1229 if (readResult == 1) { |
1230 m_SrcBPC = 8; | 1230 m_SrcBPC = 8; |
1231 m_clipBox = FX_RECT(0, 0, m_SrcWidth, m_SrcHeight); | 1231 m_clipBox = FX_RECT(0, 0, m_SrcWidth, m_SrcHeight); |
1232 return TRUE; | 1232 return TRUE; |
1233 } | 1233 } |
1234 if (m_pGifContext != NULL) { | 1234 if (m_pGifContext != NULL) { |
1235 pGifModule->Finish(m_pGifContext); | 1235 pGifModule->Finish(m_pGifContext); |
1236 m_pGifContext = NULL; | 1236 m_pGifContext = NULL; |
1237 } | 1237 } |
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2136 FXSYS_memset(m_pSrcBuf, 0, input_size); | 2136 FXSYS_memset(m_pSrcBuf, 0, input_size); |
2137 m_SrcSize = input_size; | 2137 m_SrcSize = input_size; |
2138 } | 2138 } |
2139 FX_BOOL bResult = m_pFile->ReadBlock(m_pSrcBuf, m_offSet, input_size); | 2139 FX_BOOL bResult = m_pFile->ReadBlock(m_pSrcBuf, m_offSet, input_size); |
2140 if (!bResult) { | 2140 if (!bResult) { |
2141 m_pDeviceBitmap = NULL; | 2141 m_pDeviceBitmap = NULL; |
2142 m_pFile = NULL; | 2142 m_pFile = NULL; |
2143 return m_status = FXCODEC_STATUS_ERR_READ; | 2143 return m_status = FXCODEC_STATUS_ERR_READ; |
2144 } | 2144 } |
2145 m_offSet += input_size; | 2145 m_offSet += input_size; |
2146 bResult = pPngModule->Input(m_pPngContext, m_pSrcBuf, input_size); | 2146 bResult = |
| 2147 pPngModule->Input(m_pPngContext, m_pSrcBuf, input_size, nullptr); |
2147 if (!bResult) { | 2148 if (!bResult) { |
2148 m_pDeviceBitmap = NULL; | 2149 m_pDeviceBitmap = NULL; |
2149 m_pFile = NULL; | 2150 m_pFile = NULL; |
2150 return m_status = FXCODEC_STATUS_ERROR; | 2151 return m_status = FXCODEC_STATUS_ERROR; |
2151 } | 2152 } |
2152 if (pPause && pPause->NeedToPauseNow()) { | 2153 if (pPause && pPause->NeedToPauseNow()) { |
2153 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 2154 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
2154 } | 2155 } |
2155 } | 2156 } |
2156 } break; | 2157 } break; |
2157 case FXCODEC_IMAGE_GIF: { | 2158 case FXCODEC_IMAGE_GIF: { |
2158 ICodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); | 2159 ICodec_GifModule* pGifModule = m_pCodecMgr->GetGifModule(); |
2159 while (TRUE) { | 2160 while (TRUE) { |
2160 int32_t readRes = pGifModule->LoadFrame(m_pGifContext, m_FrameCur); | 2161 int32_t readRes = |
| 2162 pGifModule->LoadFrame(m_pGifContext, m_FrameCur, nullptr); |
2161 while (readRes == 2) { | 2163 while (readRes == 2) { |
2162 FXCODEC_STATUS error_status = FXCODEC_STATUS_DECODE_FINISH; | 2164 FXCODEC_STATUS error_status = FXCODEC_STATUS_DECODE_FINISH; |
2163 if (!GifReadMoreData(pGifModule, error_status)) { | 2165 if (!GifReadMoreData(pGifModule, error_status)) { |
2164 m_pDeviceBitmap = NULL; | 2166 m_pDeviceBitmap = NULL; |
2165 m_pFile = NULL; | 2167 m_pFile = NULL; |
2166 return m_status = error_status; | 2168 return m_status = error_status; |
2167 } | 2169 } |
2168 if (pPause && pPause->NeedToPauseNow()) { | 2170 if (pPause && pPause->NeedToPauseNow()) { |
2169 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 2171 return m_status = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
2170 } | 2172 } |
2171 readRes = pGifModule->LoadFrame(m_pGifContext, m_FrameCur); | 2173 readRes = pGifModule->LoadFrame(m_pGifContext, m_FrameCur, nullptr); |
2172 } | 2174 } |
2173 if (readRes == 1) { | 2175 if (readRes == 1) { |
2174 m_pDeviceBitmap = NULL; | 2176 m_pDeviceBitmap = NULL; |
2175 m_pFile = NULL; | 2177 m_pFile = NULL; |
2176 return m_status = FXCODEC_STATUS_DECODE_FINISH; | 2178 return m_status = FXCODEC_STATUS_DECODE_FINISH; |
2177 } | 2179 } |
2178 m_pDeviceBitmap = NULL; | 2180 m_pDeviceBitmap = NULL; |
2179 m_pFile = NULL; | 2181 m_pFile = NULL; |
2180 return m_status = FXCODEC_STATUS_ERROR; | 2182 return m_status = FXCODEC_STATUS_ERROR; |
2181 } | 2183 } |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2343 } | 2345 } |
2344 } break; | 2346 } break; |
2345 default: | 2347 default: |
2346 break; | 2348 break; |
2347 } | 2349 } |
2348 return FXCODEC_STATUS_ERROR; | 2350 return FXCODEC_STATUS_ERROR; |
2349 } | 2351 } |
2350 ICodec_ProgressiveDecoder* CCodec_ModuleMgr::CreateProgressiveDecoder() { | 2352 ICodec_ProgressiveDecoder* CCodec_ModuleMgr::CreateProgressiveDecoder() { |
2351 return new CCodec_ProgressiveDecoder(this); | 2353 return new CCodec_ProgressiveDecoder(this); |
2352 } | 2354 } |
OLD | NEW |