| 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 "JBig2_GeneralDecoder.h" | 7 #include "JBig2_GeneralDecoder.h" |
| 8 #include "JBig2_ArithDecoder.h" | 8 #include "JBig2_ArithDecoder.h" |
| 9 #include "JBig2_ArithIntDecoder.h" | 9 #include "JBig2_ArithIntDecoder.h" |
| 10 #include "JBig2_HuffmanDecoder.h" | 10 #include "JBig2_HuffmanDecoder.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 } | 143 } |
| 144 } | 144 } |
| 145 return GBREG; | 145 return GBREG; |
| 146 } | 146 } |
| 147 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template0_opt2(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) | 147 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template0_opt2(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) |
| 148 { | 148 { |
| 149 FX_BOOL LTP, SLTP, bVal; | 149 FX_BOOL LTP, SLTP, bVal; |
| 150 FX_DWORD CONTEXT; | 150 FX_DWORD CONTEXT; |
| 151 CJBig2_Image *GBREG; | 151 CJBig2_Image *GBREG; |
| 152 FX_DWORD line1, line2; | 152 FX_DWORD line1, line2; |
| 153 FX_BYTE *pLine, cVal; | 153 uint8_t *pLine, cVal; |
| 154 FX_INTPTR nStride, nStride2; | 154 intptr_t nStride, nStride2; |
| 155 FX_INT32 nBits, k; | 155 int32_t nBits, k; |
| 156 LTP = 0; | 156 LTP = 0; |
| 157 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); | 157 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); |
| 158 if (GBREG->m_pData == NULL) { | 158 if (GBREG->m_pData == NULL) { |
| 159 delete GBREG; | 159 delete GBREG; |
| 160 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); | 160 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); |
| 161 return NULL; | 161 return NULL; |
| 162 } | 162 } |
| 163 pLine = GBREG->m_pData; | 163 pLine = GBREG->m_pData; |
| 164 nStride = GBREG->m_nStride; | 164 nStride = GBREG->m_nStride; |
| 165 nStride2 = nStride << 1; | 165 nStride2 = nStride << 1; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 pLine += nStride; | 210 pLine += nStride; |
| 211 } | 211 } |
| 212 return GBREG; | 212 return GBREG; |
| 213 } | 213 } |
| 214 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template0_opt3(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) | 214 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template0_opt3(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) |
| 215 { | 215 { |
| 216 FX_BOOL LTP, SLTP, bVal; | 216 FX_BOOL LTP, SLTP, bVal; |
| 217 FX_DWORD CONTEXT; | 217 FX_DWORD CONTEXT; |
| 218 CJBig2_Image *GBREG; | 218 CJBig2_Image *GBREG; |
| 219 FX_DWORD line1, line2; | 219 FX_DWORD line1, line2; |
| 220 FX_BYTE *pLine, *pLine1, *pLine2, cVal; | 220 uint8_t *pLine, *pLine1, *pLine2, cVal; |
| 221 FX_INT32 nStride, nStride2, k; | 221 int32_t nStride, nStride2, k; |
| 222 FX_INT32 nLineBytes, nBitsLeft, cc; | 222 int32_t nLineBytes, nBitsLeft, cc; |
| 223 LTP = 0; | 223 LTP = 0; |
| 224 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); | 224 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); |
| 225 if (GBREG->m_pData == NULL) { | 225 if (GBREG->m_pData == NULL) { |
| 226 delete GBREG; | 226 delete GBREG; |
| 227 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); | 227 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); |
| 228 return NULL; | 228 return NULL; |
| 229 } | 229 } |
| 230 pLine = GBREG->m_pData; | 230 pLine = GBREG->m_pData; |
| 231 nStride = GBREG->m_nStride; | 231 nStride = GBREG->m_nStride; |
| 232 nStride2 = nStride << 1; | 232 nStride2 = nStride << 1; |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 } | 394 } |
| 395 } | 395 } |
| 396 return GBREG; | 396 return GBREG; |
| 397 } | 397 } |
| 398 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template1_opt2(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) | 398 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template1_opt2(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) |
| 399 { | 399 { |
| 400 FX_BOOL LTP, SLTP, bVal; | 400 FX_BOOL LTP, SLTP, bVal; |
| 401 FX_DWORD CONTEXT; | 401 FX_DWORD CONTEXT; |
| 402 CJBig2_Image *GBREG; | 402 CJBig2_Image *GBREG; |
| 403 FX_DWORD line1, line2; | 403 FX_DWORD line1, line2; |
| 404 FX_BYTE *pLine, cVal; | 404 uint8_t *pLine, cVal; |
| 405 FX_INTPTR nStride, nStride2; | 405 intptr_t nStride, nStride2; |
| 406 FX_INT32 nBits, k; | 406 int32_t nBits, k; |
| 407 LTP = 0; | 407 LTP = 0; |
| 408 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); | 408 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); |
| 409 if (GBREG->m_pData == NULL) { | 409 if (GBREG->m_pData == NULL) { |
| 410 delete GBREG; | 410 delete GBREG; |
| 411 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); | 411 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); |
| 412 return NULL; | 412 return NULL; |
| 413 } | 413 } |
| 414 pLine = GBREG->m_pData; | 414 pLine = GBREG->m_pData; |
| 415 nStride = GBREG->m_nStride; | 415 nStride = GBREG->m_nStride; |
| 416 nStride2 = nStride << 1; | 416 nStride2 = nStride << 1; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 pLine += nStride; | 461 pLine += nStride; |
| 462 } | 462 } |
| 463 return GBREG; | 463 return GBREG; |
| 464 } | 464 } |
| 465 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template1_opt3(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) | 465 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template1_opt3(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) |
| 466 { | 466 { |
| 467 FX_BOOL LTP, SLTP, bVal; | 467 FX_BOOL LTP, SLTP, bVal; |
| 468 FX_DWORD CONTEXT; | 468 FX_DWORD CONTEXT; |
| 469 CJBig2_Image *GBREG; | 469 CJBig2_Image *GBREG; |
| 470 FX_DWORD line1, line2; | 470 FX_DWORD line1, line2; |
| 471 FX_BYTE *pLine, *pLine1, *pLine2, cVal; | 471 uint8_t *pLine, *pLine1, *pLine2, cVal; |
| 472 FX_INT32 nStride, nStride2, k; | 472 int32_t nStride, nStride2, k; |
| 473 FX_INT32 nLineBytes, nBitsLeft, cc; | 473 int32_t nLineBytes, nBitsLeft, cc; |
| 474 LTP = 0; | 474 LTP = 0; |
| 475 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); | 475 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); |
| 476 if (GBREG->m_pData == NULL) { | 476 if (GBREG->m_pData == NULL) { |
| 477 delete GBREG; | 477 delete GBREG; |
| 478 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); | 478 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); |
| 479 return NULL; | 479 return NULL; |
| 480 } | 480 } |
| 481 pLine = GBREG->m_pData; | 481 pLine = GBREG->m_pData; |
| 482 nStride = GBREG->m_nStride; | 482 nStride = GBREG->m_nStride; |
| 483 nStride2 = nStride << 1; | 483 nStride2 = nStride << 1; |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 } | 640 } |
| 641 } | 641 } |
| 642 return GBREG; | 642 return GBREG; |
| 643 } | 643 } |
| 644 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template2_opt2(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) | 644 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template2_opt2(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) |
| 645 { | 645 { |
| 646 FX_BOOL LTP, SLTP, bVal; | 646 FX_BOOL LTP, SLTP, bVal; |
| 647 FX_DWORD CONTEXT; | 647 FX_DWORD CONTEXT; |
| 648 CJBig2_Image *GBREG; | 648 CJBig2_Image *GBREG; |
| 649 FX_DWORD line1, line2; | 649 FX_DWORD line1, line2; |
| 650 FX_BYTE *pLine, cVal; | 650 uint8_t *pLine, cVal; |
| 651 FX_INTPTR nStride, nStride2; | 651 intptr_t nStride, nStride2; |
| 652 FX_INT32 nBits, k; | 652 int32_t nBits, k; |
| 653 LTP = 0; | 653 LTP = 0; |
| 654 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); | 654 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); |
| 655 if (GBREG->m_pData == NULL) { | 655 if (GBREG->m_pData == NULL) { |
| 656 delete GBREG; | 656 delete GBREG; |
| 657 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); | 657 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); |
| 658 return NULL; | 658 return NULL; |
| 659 } | 659 } |
| 660 pLine = GBREG->m_pData; | 660 pLine = GBREG->m_pData; |
| 661 nStride = GBREG->m_nStride; | 661 nStride = GBREG->m_nStride; |
| 662 nStride2 = nStride << 1; | 662 nStride2 = nStride << 1; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 707 pLine += nStride; | 707 pLine += nStride; |
| 708 } | 708 } |
| 709 return GBREG; | 709 return GBREG; |
| 710 } | 710 } |
| 711 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template2_opt3(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) | 711 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template2_opt3(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) |
| 712 { | 712 { |
| 713 FX_BOOL LTP, SLTP, bVal; | 713 FX_BOOL LTP, SLTP, bVal; |
| 714 FX_DWORD CONTEXT; | 714 FX_DWORD CONTEXT; |
| 715 CJBig2_Image *GBREG; | 715 CJBig2_Image *GBREG; |
| 716 FX_DWORD line1, line2; | 716 FX_DWORD line1, line2; |
| 717 FX_BYTE *pLine, *pLine1, *pLine2, cVal; | 717 uint8_t *pLine, *pLine1, *pLine2, cVal; |
| 718 FX_INT32 nStride, nStride2, k; | 718 int32_t nStride, nStride2, k; |
| 719 FX_INT32 nLineBytes, nBitsLeft, cc; | 719 int32_t nLineBytes, nBitsLeft, cc; |
| 720 LTP = 0; | 720 LTP = 0; |
| 721 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); | 721 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); |
| 722 if (GBREG->m_pData == NULL) { | 722 if (GBREG->m_pData == NULL) { |
| 723 delete GBREG; | 723 delete GBREG; |
| 724 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); | 724 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); |
| 725 return NULL; | 725 return NULL; |
| 726 } | 726 } |
| 727 pLine = GBREG->m_pData; | 727 pLine = GBREG->m_pData; |
| 728 nStride = GBREG->m_nStride; | 728 nStride = GBREG->m_nStride; |
| 729 nStride2 = nStride << 1; | 729 nStride2 = nStride << 1; |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 880 } | 880 } |
| 881 } | 881 } |
| 882 return GBREG; | 882 return GBREG; |
| 883 } | 883 } |
| 884 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template3_opt2(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) | 884 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template3_opt2(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) |
| 885 { | 885 { |
| 886 FX_BOOL LTP, SLTP, bVal; | 886 FX_BOOL LTP, SLTP, bVal; |
| 887 FX_DWORD CONTEXT; | 887 FX_DWORD CONTEXT; |
| 888 CJBig2_Image *GBREG; | 888 CJBig2_Image *GBREG; |
| 889 FX_DWORD line1; | 889 FX_DWORD line1; |
| 890 FX_BYTE *pLine, cVal; | 890 uint8_t *pLine, cVal; |
| 891 FX_INTPTR nStride; | 891 intptr_t nStride; |
| 892 FX_INT32 nBits, k; | 892 int32_t nBits, k; |
| 893 LTP = 0; | 893 LTP = 0; |
| 894 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); | 894 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); |
| 895 if (GBREG->m_pData == NULL) { | 895 if (GBREG->m_pData == NULL) { |
| 896 delete GBREG; | 896 delete GBREG; |
| 897 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); | 897 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); |
| 898 return NULL; | 898 return NULL; |
| 899 } | 899 } |
| 900 pLine = GBREG->m_pData; | 900 pLine = GBREG->m_pData; |
| 901 nStride = GBREG->m_nStride; | 901 nStride = GBREG->m_nStride; |
| 902 for(FX_DWORD h = 0; h < GBH; h++) { | 902 for(FX_DWORD h = 0; h < GBH; h++) { |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 938 pLine += nStride; | 938 pLine += nStride; |
| 939 } | 939 } |
| 940 return GBREG; | 940 return GBREG; |
| 941 } | 941 } |
| 942 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template3_opt3(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) | 942 CJBig2_Image *CJBig2_GRDProc::decode_Arith_Template3_opt3(CJBig2_ArithDecoder *p
ArithDecoder, JBig2ArithCtx *gbContext) |
| 943 { | 943 { |
| 944 FX_BOOL LTP, SLTP, bVal; | 944 FX_BOOL LTP, SLTP, bVal; |
| 945 FX_DWORD CONTEXT; | 945 FX_DWORD CONTEXT; |
| 946 CJBig2_Image *GBREG; | 946 CJBig2_Image *GBREG; |
| 947 FX_DWORD line1; | 947 FX_DWORD line1; |
| 948 FX_BYTE *pLine, *pLine1, cVal; | 948 uint8_t *pLine, *pLine1, cVal; |
| 949 FX_INT32 nStride, k; | 949 int32_t nStride, k; |
| 950 FX_INT32 nLineBytes, nBitsLeft, cc; | 950 int32_t nLineBytes, nBitsLeft, cc; |
| 951 LTP = 0; | 951 LTP = 0; |
| 952 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); | 952 JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH)); |
| 953 if (GBREG->m_pData == NULL) { | 953 if (GBREG->m_pData == NULL) { |
| 954 delete GBREG; | 954 delete GBREG; |
| 955 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); | 955 m_pModule->JBig2_Error("Generic region decoding procedure: Create Image
Failed with width = %d, height = %d\n", GBW, GBH); |
| 956 return NULL; | 956 return NULL; |
| 957 } | 957 } |
| 958 pLine = GBREG->m_pData; | 958 pLine = GBREG->m_pData; |
| 959 nStride = GBREG->m_nStride; | 959 nStride = GBREG->m_nStride; |
| 960 nLineBytes = ((GBW + 7) >> 3) - 1; | 960 nLineBytes = ((GBW + 7) >> 3) - 1; |
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1421 } | 1421 } |
| 1422 } | 1422 } |
| 1423 return GRREG; | 1423 return GRREG; |
| 1424 } | 1424 } |
| 1425 CJBig2_Image *CJBig2_GRRDProc::decode_Template0_opt(CJBig2_ArithDecoder *pArithD
ecoder, JBig2ArithCtx *grContext) | 1425 CJBig2_Image *CJBig2_GRRDProc::decode_Template0_opt(CJBig2_ArithDecoder *pArithD
ecoder, JBig2ArithCtx *grContext) |
| 1426 { | 1426 { |
| 1427 FX_BOOL LTP, SLTP, bVal; | 1427 FX_BOOL LTP, SLTP, bVal; |
| 1428 FX_DWORD CONTEXT; | 1428 FX_DWORD CONTEXT; |
| 1429 CJBig2_Image *GRREG; | 1429 CJBig2_Image *GRREG; |
| 1430 FX_DWORD line1, line1_r, line2_r, line3_r; | 1430 FX_DWORD line1, line1_r, line2_r, line3_r; |
| 1431 FX_BYTE *pLine, *pLineR, cVal; | 1431 uint8_t *pLine, *pLineR, cVal; |
| 1432 FX_INTPTR nStride, nStrideR, nOffset; | 1432 intptr_t nStride, nStrideR, nOffset; |
| 1433 FX_INT32 k, nBits; | 1433 int32_t k, nBits; |
| 1434 FX_INT32 GRWR, GRHR; | 1434 int32_t GRWR, GRHR; |
| 1435 FX_INT32 GRW, GRH; | 1435 int32_t GRW, GRH; |
| 1436 GRW = (FX_INT32)CJBig2_GRRDProc::GRW; | 1436 GRW = (int32_t)CJBig2_GRRDProc::GRW; |
| 1437 GRH = (FX_INT32)CJBig2_GRRDProc::GRH; | 1437 GRH = (int32_t)CJBig2_GRRDProc::GRH; |
| 1438 LTP = 0; | 1438 LTP = 0; |
| 1439 JBIG2_ALLOC(GRREG, CJBig2_Image(GRW, GRH)); | 1439 JBIG2_ALLOC(GRREG, CJBig2_Image(GRW, GRH)); |
| 1440 if (GRREG->m_pData == NULL) { | 1440 if (GRREG->m_pData == NULL) { |
| 1441 delete GRREG; | 1441 delete GRREG; |
| 1442 m_pModule->JBig2_Error("Generic refinement region decoding procedure: Cr
eate Image Failed with width = %d, height = %d\n", GRW, GRH); | 1442 m_pModule->JBig2_Error("Generic refinement region decoding procedure: Cr
eate Image Failed with width = %d, height = %d\n", GRW, GRH); |
| 1443 return NULL; | 1443 return NULL; |
| 1444 } | 1444 } |
| 1445 pLine = GRREG->m_pData; | 1445 pLine = GRREG->m_pData; |
| 1446 pLineR = GRREFERENCE->m_pData; | 1446 pLineR = GRREFERENCE->m_pData; |
| 1447 nStride = GRREG->m_nStride; | 1447 nStride = GRREG->m_nStride; |
| 1448 nStrideR = GRREFERENCE->m_nStride; | 1448 nStrideR = GRREFERENCE->m_nStride; |
| 1449 GRWR = (FX_INT32)GRREFERENCE->m_nWidth; | 1449 GRWR = (int32_t)GRREFERENCE->m_nWidth; |
| 1450 GRHR = (FX_INT32)GRREFERENCE->m_nHeight; | 1450 GRHR = (int32_t)GRREFERENCE->m_nHeight; |
| 1451 if (GRREFERENCEDY < -GRHR + 1 || GRREFERENCEDY > GRHR - 1) { | 1451 if (GRREFERENCEDY < -GRHR + 1 || GRREFERENCEDY > GRHR - 1) { |
| 1452 GRREFERENCEDY = 0; | 1452 GRREFERENCEDY = 0; |
| 1453 } | 1453 } |
| 1454 nOffset = -GRREFERENCEDY * nStrideR; | 1454 nOffset = -GRREFERENCEDY * nStrideR; |
| 1455 for (FX_INT32 h = 0; h < GRH; h++) { | 1455 for (int32_t h = 0; h < GRH; h++) { |
| 1456 if(TPGRON) { | 1456 if(TPGRON) { |
| 1457 SLTP = pArithDecoder->DECODE(&grContext[0x0010]); | 1457 SLTP = pArithDecoder->DECODE(&grContext[0x0010]); |
| 1458 LTP = LTP ^ SLTP; | 1458 LTP = LTP ^ SLTP; |
| 1459 } | 1459 } |
| 1460 line1 = (h > 0) ? pLine[-nStride] << 4 : 0; | 1460 line1 = (h > 0) ? pLine[-nStride] << 4 : 0; |
| 1461 FX_INT32 reference_h = h - GRREFERENCEDY; | 1461 int32_t reference_h = h - GRREFERENCEDY; |
| 1462 FX_BOOL line1_r_ok = (reference_h > 0 && reference_h < GRHR + 1); | 1462 FX_BOOL line1_r_ok = (reference_h > 0 && reference_h < GRHR + 1); |
| 1463 FX_BOOL line2_r_ok = (reference_h > -1 && reference_h < GRHR); | 1463 FX_BOOL line2_r_ok = (reference_h > -1 && reference_h < GRHR); |
| 1464 FX_BOOL line3_r_ok = (reference_h > -2 && reference_h < GRHR - 1); | 1464 FX_BOOL line3_r_ok = (reference_h > -2 && reference_h < GRHR - 1); |
| 1465 line1_r = line1_r_ok ? pLineR[nOffset - nStrideR] : 0; | 1465 line1_r = line1_r_ok ? pLineR[nOffset - nStrideR] : 0; |
| 1466 line2_r = line2_r_ok ? pLineR[nOffset] : 0; | 1466 line2_r = line2_r_ok ? pLineR[nOffset] : 0; |
| 1467 line3_r = line3_r_ok ? pLineR[nOffset + nStrideR] : 0; | 1467 line3_r = line3_r_ok ? pLineR[nOffset + nStrideR] : 0; |
| 1468 if(LTP == 0) { | 1468 if(LTP == 0) { |
| 1469 CONTEXT = (line1 & 0x1c00) | (line1_r & 0x01c0) | 1469 CONTEXT = (line1 & 0x1c00) | (line1_r & 0x01c0) |
| 1470 | ((line2_r >> 3) & 0x0038) | ((line3_r >> 6) & 0x0007); | 1470 | ((line2_r >> 3) & 0x0038) | ((line3_r >> 6) & 0x0007); |
| 1471 for (FX_INT32 w = 0; w < GRW; w += 8) { | 1471 for (int32_t w = 0; w < GRW; w += 8) { |
| 1472 nBits = GRW - w > 8 ? 8 : GRW - w; | 1472 nBits = GRW - w > 8 ? 8 : GRW - w; |
| 1473 if (h > 0) | 1473 if (h > 0) |
| 1474 line1 = (line1 << 8) | | 1474 line1 = (line1 << 8) | |
| 1475 (w + 8 < GRW ? pLine[-nStride + (w >> 3) + 1] << 4 :
0); | 1475 (w + 8 < GRW ? pLine[-nStride + (w >> 3) + 1] << 4 :
0); |
| 1476 if (h > GRHR + GRREFERENCEDY + 1) { | 1476 if (h > GRHR + GRREFERENCEDY + 1) { |
| 1477 line1_r = 0; | 1477 line1_r = 0; |
| 1478 line2_r = 0; | 1478 line2_r = 0; |
| 1479 line3_r = 0; | 1479 line3_r = 0; |
| 1480 } else { | 1480 } else { |
| 1481 if(line1_r_ok) | 1481 if(line1_r_ok) |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1499 ((line1 >> (7 - k)) & 0x0400) | | 1499 ((line1 >> (7 - k)) & 0x0400) | |
| 1500 ((line1_r >> (7 - k)) & 0x0040) | | 1500 ((line1_r >> (7 - k)) & 0x0040) | |
| 1501 ((line2_r >> (10 - k)) & 0x0008) | | 1501 ((line2_r >> (10 - k)) & 0x0008) | |
| 1502 ((line3_r >> (13 - k)) & 0x0001); | 1502 ((line3_r >> (13 - k)) & 0x0001); |
| 1503 } | 1503 } |
| 1504 pLine[w >> 3] = cVal; | 1504 pLine[w >> 3] = cVal; |
| 1505 } | 1505 } |
| 1506 } else { | 1506 } else { |
| 1507 CONTEXT = (line1 & 0x1c00) | (line1_r & 0x01c0) | 1507 CONTEXT = (line1 & 0x1c00) | (line1_r & 0x01c0) |
| 1508 | ((line2_r >> 3) & 0x0038) | ((line3_r >> 6) & 0x0007); | 1508 | ((line2_r >> 3) & 0x0038) | ((line3_r >> 6) & 0x0007); |
| 1509 for (FX_INT32 w = 0; w < GRW; w += 8) { | 1509 for (int32_t w = 0; w < GRW; w += 8) { |
| 1510 nBits = GRW - w > 8 ? 8 : GRW - w; | 1510 nBits = GRW - w > 8 ? 8 : GRW - w; |
| 1511 if (h > 0) | 1511 if (h > 0) |
| 1512 line1 = (line1 << 8) | | 1512 line1 = (line1 << 8) | |
| 1513 (w + 8 < GRW ? pLine[-nStride + (w >> 3) + 1] << 4 :
0); | 1513 (w + 8 < GRW ? pLine[-nStride + (w >> 3) + 1] << 4 :
0); |
| 1514 if(line1_r_ok) | 1514 if(line1_r_ok) |
| 1515 line1_r = (line1_r << 8) | | 1515 line1_r = (line1_r << 8) | |
| 1516 (w + 8 < GRWR ? pLineR[nOffset - nStrideR + (w >>
3) + 1] : 0); | 1516 (w + 8 < GRWR ? pLineR[nOffset - nStrideR + (w >>
3) + 1] : 0); |
| 1517 if(line2_r_ok) | 1517 if(line2_r_ok) |
| 1518 line2_r = (line2_r << 8) | | 1518 line2_r = (line2_r << 8) | |
| 1519 (w + 8 < GRWR ? pLineR[nOffset + (w >> 3) + 1] : 0
); | 1519 (w + 8 < GRWR ? pLineR[nOffset + (w >> 3) + 1] : 0
); |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1630 } | 1630 } |
| 1631 } | 1631 } |
| 1632 return GRREG; | 1632 return GRREG; |
| 1633 } | 1633 } |
| 1634 CJBig2_Image *CJBig2_GRRDProc::decode_Template1_opt(CJBig2_ArithDecoder *pArithD
ecoder, JBig2ArithCtx *grContext) | 1634 CJBig2_Image *CJBig2_GRRDProc::decode_Template1_opt(CJBig2_ArithDecoder *pArithD
ecoder, JBig2ArithCtx *grContext) |
| 1635 { | 1635 { |
| 1636 FX_BOOL LTP, SLTP, bVal; | 1636 FX_BOOL LTP, SLTP, bVal; |
| 1637 FX_DWORD CONTEXT; | 1637 FX_DWORD CONTEXT; |
| 1638 CJBig2_Image *GRREG; | 1638 CJBig2_Image *GRREG; |
| 1639 FX_DWORD line1, line1_r, line2_r, line3_r; | 1639 FX_DWORD line1, line1_r, line2_r, line3_r; |
| 1640 FX_BYTE *pLine, *pLineR, cVal; | 1640 uint8_t *pLine, *pLineR, cVal; |
| 1641 FX_INTPTR nStride, nStrideR, nOffset; | 1641 intptr_t nStride, nStrideR, nOffset; |
| 1642 FX_INT32 k, nBits; | 1642 int32_t k, nBits; |
| 1643 FX_INT32 GRWR, GRHR; | 1643 int32_t GRWR, GRHR; |
| 1644 FX_INT32 GRW, GRH; | 1644 int32_t GRW, GRH; |
| 1645 GRW = (FX_INT32)CJBig2_GRRDProc::GRW; | 1645 GRW = (int32_t)CJBig2_GRRDProc::GRW; |
| 1646 GRH = (FX_INT32)CJBig2_GRRDProc::GRH; | 1646 GRH = (int32_t)CJBig2_GRRDProc::GRH; |
| 1647 LTP = 0; | 1647 LTP = 0; |
| 1648 JBIG2_ALLOC(GRREG, CJBig2_Image(GRW, GRH)); | 1648 JBIG2_ALLOC(GRREG, CJBig2_Image(GRW, GRH)); |
| 1649 if (GRREG->m_pData == NULL) { | 1649 if (GRREG->m_pData == NULL) { |
| 1650 delete GRREG; | 1650 delete GRREG; |
| 1651 m_pModule->JBig2_Error("Generic refinement region decoding procedure: Cr
eate Image Failed with width = %d, height = %d\n", GRW, GRH); | 1651 m_pModule->JBig2_Error("Generic refinement region decoding procedure: Cr
eate Image Failed with width = %d, height = %d\n", GRW, GRH); |
| 1652 return NULL; | 1652 return NULL; |
| 1653 } | 1653 } |
| 1654 pLine = GRREG->m_pData; | 1654 pLine = GRREG->m_pData; |
| 1655 pLineR = GRREFERENCE->m_pData; | 1655 pLineR = GRREFERENCE->m_pData; |
| 1656 nStride = GRREG->m_nStride; | 1656 nStride = GRREG->m_nStride; |
| 1657 nStrideR = GRREFERENCE->m_nStride; | 1657 nStrideR = GRREFERENCE->m_nStride; |
| 1658 GRWR = (FX_INT32)GRREFERENCE->m_nWidth; | 1658 GRWR = (int32_t)GRREFERENCE->m_nWidth; |
| 1659 GRHR = (FX_INT32)GRREFERENCE->m_nHeight; | 1659 GRHR = (int32_t)GRREFERENCE->m_nHeight; |
| 1660 if (GRREFERENCEDY < -GRHR + 1 || GRREFERENCEDY > GRHR - 1) { | 1660 if (GRREFERENCEDY < -GRHR + 1 || GRREFERENCEDY > GRHR - 1) { |
| 1661 GRREFERENCEDY = 0; | 1661 GRREFERENCEDY = 0; |
| 1662 } | 1662 } |
| 1663 nOffset = -GRREFERENCEDY * nStrideR; | 1663 nOffset = -GRREFERENCEDY * nStrideR; |
| 1664 for (FX_INT32 h = 0; h < GRH; h++) { | 1664 for (int32_t h = 0; h < GRH; h++) { |
| 1665 if(TPGRON) { | 1665 if(TPGRON) { |
| 1666 SLTP = pArithDecoder->DECODE(&grContext[0x0008]); | 1666 SLTP = pArithDecoder->DECODE(&grContext[0x0008]); |
| 1667 LTP = LTP ^ SLTP; | 1667 LTP = LTP ^ SLTP; |
| 1668 } | 1668 } |
| 1669 line1 = (h > 0) ? pLine[-nStride] << 1 : 0; | 1669 line1 = (h > 0) ? pLine[-nStride] << 1 : 0; |
| 1670 FX_INT32 reference_h = h - GRREFERENCEDY; | 1670 int32_t reference_h = h - GRREFERENCEDY; |
| 1671 FX_BOOL line1_r_ok = (reference_h > 0 && reference_h < GRHR + 1); | 1671 FX_BOOL line1_r_ok = (reference_h > 0 && reference_h < GRHR + 1); |
| 1672 FX_BOOL line2_r_ok = (reference_h > -1 && reference_h < GRHR); | 1672 FX_BOOL line2_r_ok = (reference_h > -1 && reference_h < GRHR); |
| 1673 FX_BOOL line3_r_ok = (reference_h > -2 && reference_h < GRHR - 1); | 1673 FX_BOOL line3_r_ok = (reference_h > -2 && reference_h < GRHR - 1); |
| 1674 line1_r = line1_r_ok ? pLineR[nOffset - nStrideR] : 0; | 1674 line1_r = line1_r_ok ? pLineR[nOffset - nStrideR] : 0; |
| 1675 line2_r = line2_r_ok ? pLineR[nOffset] : 0; | 1675 line2_r = line2_r_ok ? pLineR[nOffset] : 0; |
| 1676 line3_r = line3_r_ok ? pLineR[nOffset + nStrideR] : 0; | 1676 line3_r = line3_r_ok ? pLineR[nOffset + nStrideR] : 0; |
| 1677 if(LTP == 0) { | 1677 if(LTP == 0) { |
| 1678 CONTEXT = (line1 & 0x0380) | ((line1_r >> 2) & 0x0020) | 1678 CONTEXT = (line1 & 0x0380) | ((line1_r >> 2) & 0x0020) |
| 1679 | ((line2_r >> 4) & 0x001c) | ((line3_r >> 6) & 0x0003); | 1679 | ((line2_r >> 4) & 0x001c) | ((line3_r >> 6) & 0x0003); |
| 1680 for (FX_INT32 w = 0; w < GRW; w += 8) { | 1680 for (int32_t w = 0; w < GRW; w += 8) { |
| 1681 nBits = GRW - w > 8 ? 8 : GRW - w; | 1681 nBits = GRW - w > 8 ? 8 : GRW - w; |
| 1682 if (h > 0) | 1682 if (h > 0) |
| 1683 line1 = (line1 << 8) | | 1683 line1 = (line1 << 8) | |
| 1684 (w + 8 < GRW ? pLine[-nStride + (w >> 3) + 1] << 1 :
0); | 1684 (w + 8 < GRW ? pLine[-nStride + (w >> 3) + 1] << 1 :
0); |
| 1685 if(line1_r_ok) | 1685 if(line1_r_ok) |
| 1686 line1_r = (line1_r << 8) | | 1686 line1_r = (line1_r << 8) | |
| 1687 (w + 8 < GRWR ? pLineR[nOffset - nStrideR + (w >>
3) + 1] : 0); | 1687 (w + 8 < GRWR ? pLineR[nOffset - nStrideR + (w >>
3) + 1] : 0); |
| 1688 if(line2_r_ok) | 1688 if(line2_r_ok) |
| 1689 line2_r = (line2_r << 8) | | 1689 line2_r = (line2_r << 8) | |
| 1690 (w + 8 < GRWR ? pLineR[nOffset + (w >> 3) + 1] : 0
); | 1690 (w + 8 < GRWR ? pLineR[nOffset + (w >> 3) + 1] : 0
); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1702 ((line1 >> (7 - k)) & 0x0080) | | 1702 ((line1 >> (7 - k)) & 0x0080) | |
| 1703 ((line1_r >> (9 - k)) & 0x0020) | | 1703 ((line1_r >> (9 - k)) & 0x0020) | |
| 1704 ((line2_r >> (11 - k)) & 0x0004) | | 1704 ((line2_r >> (11 - k)) & 0x0004) | |
| 1705 ((line3_r >> (13 - k)) & 0x0001); | 1705 ((line3_r >> (13 - k)) & 0x0001); |
| 1706 } | 1706 } |
| 1707 pLine[w >> 3] = cVal; | 1707 pLine[w >> 3] = cVal; |
| 1708 } | 1708 } |
| 1709 } else { | 1709 } else { |
| 1710 CONTEXT = (line1 & 0x0380) | ((line1_r >> 2) & 0x0020) | 1710 CONTEXT = (line1 & 0x0380) | ((line1_r >> 2) & 0x0020) |
| 1711 | ((line2_r >> 4) & 0x001c) | ((line3_r >> 6) & 0x0003); | 1711 | ((line2_r >> 4) & 0x001c) | ((line3_r >> 6) & 0x0003); |
| 1712 for (FX_INT32 w = 0; w < GRW; w += 8) { | 1712 for (int32_t w = 0; w < GRW; w += 8) { |
| 1713 nBits = GRW - w > 8 ? 8 : GRW - w; | 1713 nBits = GRW - w > 8 ? 8 : GRW - w; |
| 1714 if (h > 0) | 1714 if (h > 0) |
| 1715 line1 = (line1 << 8) | | 1715 line1 = (line1 << 8) | |
| 1716 (w + 8 < GRW ? pLine[-nStride + (w >> 3) + 1] << 1 :
0); | 1716 (w + 8 < GRW ? pLine[-nStride + (w >> 3) + 1] << 1 :
0); |
| 1717 if(line1_r_ok) | 1717 if(line1_r_ok) |
| 1718 line1_r = (line1_r << 8) | | 1718 line1_r = (line1_r << 8) | |
| 1719 (w + 8 < GRWR ? pLineR[nOffset - nStrideR + (w >>
3) + 1] : 0); | 1719 (w + 8 < GRWR ? pLineR[nOffset - nStrideR + (w >>
3) + 1] : 0); |
| 1720 if(line2_r_ok) | 1720 if(line2_r_ok) |
| 1721 line2_r = (line2_r << 8) | | 1721 line2_r = (line2_r << 8) | |
| 1722 (w + 8 < GRWR ? pLineR[nOffset + (w >> 3) + 1] : 0
); | 1722 (w + 8 < GRWR ? pLineR[nOffset + (w >> 3) + 1] : 0
); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1865 bVal = pArithDecoder->DECODE(&grContext[CONTEXT]); | 1865 bVal = pArithDecoder->DECODE(&grContext[CONTEXT]); |
| 1866 GRREG->setPixel(w, h, bVal); | 1866 GRREG->setPixel(w, h, bVal); |
| 1867 } | 1867 } |
| 1868 } | 1868 } |
| 1869 } | 1869 } |
| 1870 } | 1870 } |
| 1871 return GRREG; | 1871 return GRREG; |
| 1872 } | 1872 } |
| 1873 CJBig2_Image *CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream *pStream, JBig2Ari
thCtx *grContext) | 1873 CJBig2_Image *CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream *pStream, JBig2Ari
thCtx *grContext) |
| 1874 { | 1874 { |
| 1875 FX_INT32 STRIPT, FIRSTS; | 1875 int32_t STRIPT, FIRSTS; |
| 1876 FX_DWORD NINSTANCES; | 1876 FX_DWORD NINSTANCES; |
| 1877 FX_INT32 DT, DFS, CURS; | 1877 int32_t DT, DFS, CURS; |
| 1878 FX_BYTE CURT; | 1878 uint8_t CURT; |
| 1879 FX_INT32 SI, TI; | 1879 int32_t SI, TI; |
| 1880 FX_DWORD IDI; | 1880 FX_DWORD IDI; |
| 1881 CJBig2_Image *IBI; | 1881 CJBig2_Image *IBI; |
| 1882 FX_DWORD WI, HI; | 1882 FX_DWORD WI, HI; |
| 1883 FX_INT32 IDS; | 1883 int32_t IDS; |
| 1884 FX_BOOL RI; | 1884 FX_BOOL RI; |
| 1885 FX_INT32 RDWI, RDHI, RDXI, RDYI; | 1885 int32_t RDWI, RDHI, RDXI, RDYI; |
| 1886 CJBig2_Image *IBOI; | 1886 CJBig2_Image *IBOI; |
| 1887 FX_DWORD WOI, HOI; | 1887 FX_DWORD WOI, HOI; |
| 1888 CJBig2_Image *SBREG; | 1888 CJBig2_Image *SBREG; |
| 1889 FX_BOOL bFirst; | 1889 FX_BOOL bFirst; |
| 1890 FX_DWORD nTmp; | 1890 FX_DWORD nTmp; |
| 1891 FX_INT32 nVal, nBits; | 1891 int32_t nVal, nBits; |
| 1892 CJBig2_HuffmanDecoder *pHuffmanDecoder; | 1892 CJBig2_HuffmanDecoder *pHuffmanDecoder; |
| 1893 CJBig2_GRRDProc *pGRRD; | 1893 CJBig2_GRRDProc *pGRRD; |
| 1894 CJBig2_ArithDecoder *pArithDecoder; | 1894 CJBig2_ArithDecoder *pArithDecoder; |
| 1895 JBIG2_ALLOC(pHuffmanDecoder, CJBig2_HuffmanDecoder(pStream)); | 1895 JBIG2_ALLOC(pHuffmanDecoder, CJBig2_HuffmanDecoder(pStream)); |
| 1896 JBIG2_ALLOC(SBREG, CJBig2_Image(SBW, SBH)); | 1896 JBIG2_ALLOC(SBREG, CJBig2_Image(SBW, SBH)); |
| 1897 SBREG->fill(SBDEFPIXEL); | 1897 SBREG->fill(SBDEFPIXEL); |
| 1898 if(pHuffmanDecoder->decodeAValue(SBHUFFDT, &STRIPT) != 0) { | 1898 if(pHuffmanDecoder->decodeAValue(SBHUFFDT, &STRIPT) != 0) { |
| 1899 m_pModule->JBig2_Error("text region decoding procedure (huffman): too sh
ort."); | 1899 m_pModule->JBig2_Error("text region decoding procedure (huffman): too sh
ort."); |
| 1900 goto failed; | 1900 goto failed; |
| 1901 } | 1901 } |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2085 delete pHuffmanDecoder; | 2085 delete pHuffmanDecoder; |
| 2086 return SBREG; | 2086 return SBREG; |
| 2087 failed: | 2087 failed: |
| 2088 delete pHuffmanDecoder; | 2088 delete pHuffmanDecoder; |
| 2089 delete SBREG; | 2089 delete SBREG; |
| 2090 return NULL; | 2090 return NULL; |
| 2091 } | 2091 } |
| 2092 CJBig2_Image *CJBig2_TRDProc::decode_Arith(CJBig2_ArithDecoder *pArithDecoder, J
Big2ArithCtx *grContext, | 2092 CJBig2_Image *CJBig2_TRDProc::decode_Arith(CJBig2_ArithDecoder *pArithDecoder, J
Big2ArithCtx *grContext, |
| 2093 JBig2IntDecoderState *pIDS) | 2093 JBig2IntDecoderState *pIDS) |
| 2094 { | 2094 { |
| 2095 FX_INT32 STRIPT, FIRSTS; | 2095 int32_t STRIPT, FIRSTS; |
| 2096 FX_DWORD NINSTANCES; | 2096 FX_DWORD NINSTANCES; |
| 2097 FX_INT32 DT, DFS, CURS; | 2097 int32_t DT, DFS, CURS; |
| 2098 FX_INT32 CURT; | 2098 int32_t CURT; |
| 2099 FX_INT32 SI, TI; | 2099 int32_t SI, TI; |
| 2100 FX_DWORD IDI; | 2100 FX_DWORD IDI; |
| 2101 CJBig2_Image *IBI; | 2101 CJBig2_Image *IBI; |
| 2102 FX_DWORD WI, HI; | 2102 FX_DWORD WI, HI; |
| 2103 FX_INT32 IDS; | 2103 int32_t IDS; |
| 2104 FX_BOOL RI; | 2104 FX_BOOL RI; |
| 2105 FX_INT32 RDWI, RDHI, RDXI, RDYI; | 2105 int32_t RDWI, RDHI, RDXI, RDYI; |
| 2106 CJBig2_Image *IBOI; | 2106 CJBig2_Image *IBOI; |
| 2107 FX_DWORD WOI, HOI; | 2107 FX_DWORD WOI, HOI; |
| 2108 CJBig2_Image *SBREG; | 2108 CJBig2_Image *SBREG; |
| 2109 FX_BOOL bFirst; | 2109 FX_BOOL bFirst; |
| 2110 FX_INT32 nRet, nVal; | 2110 int32_t nRet, nVal; |
| 2111 FX_INT32 bRetained; | 2111 int32_t bRetained; |
| 2112 CJBig2_ArithIntDecoder *IADT, *IAFS, *IADS, *IAIT, *IARI, *IARDW, *IARDH, *I
ARDX, *IARDY; | 2112 CJBig2_ArithIntDecoder *IADT, *IAFS, *IADS, *IAIT, *IARI, *IARDW, *IARDH, *I
ARDX, *IARDY; |
| 2113 CJBig2_ArithIaidDecoder *IAID; | 2113 CJBig2_ArithIaidDecoder *IAID; |
| 2114 CJBig2_GRRDProc *pGRRD; | 2114 CJBig2_GRRDProc *pGRRD; |
| 2115 if(pIDS) { | 2115 if(pIDS) { |
| 2116 IADT = pIDS->IADT; | 2116 IADT = pIDS->IADT; |
| 2117 IAFS = pIDS->IAFS; | 2117 IAFS = pIDS->IAFS; |
| 2118 IADS = pIDS->IADS; | 2118 IADS = pIDS->IADS; |
| 2119 IAIT = pIDS->IAIT; | 2119 IAIT = pIDS->IAIT; |
| 2120 IARI = pIDS->IARI; | 2120 IARI = pIDS->IARI; |
| 2121 IARDW = pIDS->IARDW; | 2121 IARDW = pIDS->IARDW; |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2326 delete IAID; | 2326 delete IAID; |
| 2327 } | 2327 } |
| 2328 delete SBREG; | 2328 delete SBREG; |
| 2329 return NULL; | 2329 return NULL; |
| 2330 } | 2330 } |
| 2331 CJBig2_SymbolDict *CJBig2_SDDProc::decode_Arith(CJBig2_ArithDecoder *pArithDecod
er, | 2331 CJBig2_SymbolDict *CJBig2_SDDProc::decode_Arith(CJBig2_ArithDecoder *pArithDecod
er, |
| 2332 JBig2ArithCtx *gbContext, JBig2ArithCtx *grContext) | 2332 JBig2ArithCtx *gbContext, JBig2ArithCtx *grContext) |
| 2333 { | 2333 { |
| 2334 CJBig2_Image **SDNEWSYMS; | 2334 CJBig2_Image **SDNEWSYMS; |
| 2335 FX_DWORD HCHEIGHT, NSYMSDECODED; | 2335 FX_DWORD HCHEIGHT, NSYMSDECODED; |
| 2336 FX_INT32 HCDH; | 2336 int32_t HCDH; |
| 2337 FX_DWORD SYMWIDTH, TOTWIDTH; | 2337 FX_DWORD SYMWIDTH, TOTWIDTH; |
| 2338 FX_INT32 DW; | 2338 int32_t DW; |
| 2339 CJBig2_Image *BS; | 2339 CJBig2_Image *BS; |
| 2340 FX_DWORD I, J, REFAGGNINST; | 2340 FX_DWORD I, J, REFAGGNINST; |
| 2341 FX_BOOL *EXFLAGS; | 2341 FX_BOOL *EXFLAGS; |
| 2342 FX_DWORD EXINDEX; | 2342 FX_DWORD EXINDEX; |
| 2343 FX_BOOL CUREXFLAG; | 2343 FX_BOOL CUREXFLAG; |
| 2344 FX_DWORD EXRUNLENGTH; | 2344 FX_DWORD EXRUNLENGTH; |
| 2345 FX_INT32 nVal; | 2345 int32_t nVal; |
| 2346 FX_DWORD nTmp; | 2346 FX_DWORD nTmp; |
| 2347 FX_DWORD SBNUMSYMS; | 2347 FX_DWORD SBNUMSYMS; |
| 2348 FX_BYTE SBSYMCODELEN; | 2348 uint8_t SBSYMCODELEN; |
| 2349 FX_DWORD IDI; | 2349 FX_DWORD IDI; |
| 2350 FX_INT32 RDXI, RDYI; | 2350 int32_t RDXI, RDYI; |
| 2351 CJBig2_Image **SBSYMS; | 2351 CJBig2_Image **SBSYMS; |
| 2352 CJBig2_HuffmanTable *SBHUFFFS, *SBHUFFDS, *SBHUFFDT, *SBHUFFRDW, *SBHUFFRDH,
*SBHUFFRDX, *SBHUFFRDY, | 2352 CJBig2_HuffmanTable *SBHUFFFS, *SBHUFFDS, *SBHUFFDT, *SBHUFFRDW, *SBHUFFRDH,
*SBHUFFRDX, *SBHUFFRDY, |
| 2353 *SBHUFFRSIZE; | 2353 *SBHUFFRSIZE; |
| 2354 CJBig2_GRRDProc *pGRRD; | 2354 CJBig2_GRRDProc *pGRRD; |
| 2355 CJBig2_GRDProc *pGRD; | 2355 CJBig2_GRDProc *pGRD; |
| 2356 CJBig2_ArithIntDecoder *IADH, *IADW, *IAAI, *IARDX, *IARDY, *IAEX, | 2356 CJBig2_ArithIntDecoder *IADH, *IADW, *IAAI, *IARDX, *IARDY, *IAEX, |
| 2357 *IADT, *IAFS, *IADS, *IAIT, *IARI, *IARDW, *IARDH; | 2357 *IADT, *IAFS, *IADS, *IAIT, *IARI, *IARDW, *IARDH; |
| 2358 CJBig2_ArithIaidDecoder *IAID; | 2358 CJBig2_ArithIaidDecoder *IAID; |
| 2359 CJBig2_SymbolDict *pDict; | 2359 CJBig2_SymbolDict *pDict; |
| 2360 JBIG2_ALLOC(IADH, CJBig2_ArithIntDecoder()); | 2360 JBIG2_ALLOC(IADH, CJBig2_ArithIntDecoder()); |
| 2361 JBIG2_ALLOC(IADW, CJBig2_ArithIntDecoder()); | 2361 JBIG2_ALLOC(IADW, CJBig2_ArithIntDecoder()); |
| 2362 JBIG2_ALLOC(IAAI, CJBig2_ArithIntDecoder()); | 2362 JBIG2_ALLOC(IAAI, CJBig2_ArithIntDecoder()); |
| 2363 JBIG2_ALLOC(IARDX, CJBig2_ArithIntDecoder()); | 2363 JBIG2_ALLOC(IARDX, CJBig2_ArithIntDecoder()); |
| 2364 JBIG2_ALLOC(IARDY, CJBig2_ArithIntDecoder()); | 2364 JBIG2_ALLOC(IARDY, CJBig2_ArithIntDecoder()); |
| 2365 JBIG2_ALLOC(IAEX, CJBig2_ArithIntDecoder()); | 2365 JBIG2_ALLOC(IAEX, CJBig2_ArithIntDecoder()); |
| 2366 JBIG2_ALLOC(IADT, CJBig2_ArithIntDecoder()); | 2366 JBIG2_ALLOC(IADT, CJBig2_ArithIntDecoder()); |
| 2367 JBIG2_ALLOC(IAFS, CJBig2_ArithIntDecoder()); | 2367 JBIG2_ALLOC(IAFS, CJBig2_ArithIntDecoder()); |
| 2368 JBIG2_ALLOC(IADS, CJBig2_ArithIntDecoder()); | 2368 JBIG2_ALLOC(IADS, CJBig2_ArithIntDecoder()); |
| 2369 JBIG2_ALLOC(IAIT, CJBig2_ArithIntDecoder()); | 2369 JBIG2_ALLOC(IAIT, CJBig2_ArithIntDecoder()); |
| 2370 JBIG2_ALLOC(IARI, CJBig2_ArithIntDecoder()); | 2370 JBIG2_ALLOC(IARI, CJBig2_ArithIntDecoder()); |
| 2371 JBIG2_ALLOC(IARDW, CJBig2_ArithIntDecoder()); | 2371 JBIG2_ALLOC(IARDW, CJBig2_ArithIntDecoder()); |
| 2372 JBIG2_ALLOC(IARDH, CJBig2_ArithIntDecoder()); | 2372 JBIG2_ALLOC(IARDH, CJBig2_ArithIntDecoder()); |
| 2373 nTmp = 0; | 2373 nTmp = 0; |
| 2374 while((FX_DWORD)(1 << nTmp) < (SDNUMINSYMS + SDNUMNEWSYMS)) { | 2374 while((FX_DWORD)(1 << nTmp) < (SDNUMINSYMS + SDNUMNEWSYMS)) { |
| 2375 nTmp ++; | 2375 nTmp ++; |
| 2376 } | 2376 } |
| 2377 JBIG2_ALLOC(IAID, CJBig2_ArithIaidDecoder((FX_BYTE)nTmp)); | 2377 JBIG2_ALLOC(IAID, CJBig2_ArithIaidDecoder((uint8_t)nTmp)); |
| 2378 SDNEWSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(SDNUMNEWSYMS, sizeof(CJ
Big2_Image*)); | 2378 SDNEWSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(SDNUMNEWSYMS, sizeof(CJ
Big2_Image*)); |
| 2379 FXSYS_memset32(SDNEWSYMS, 0 , SDNUMNEWSYMS * sizeof(CJBig2_Image*)); | 2379 FXSYS_memset32(SDNEWSYMS, 0 , SDNUMNEWSYMS * sizeof(CJBig2_Image*)); |
| 2380 HCHEIGHT = 0; | 2380 HCHEIGHT = 0; |
| 2381 NSYMSDECODED = 0; | 2381 NSYMSDECODED = 0; |
| 2382 while(NSYMSDECODED < SDNUMNEWSYMS) { | 2382 while(NSYMSDECODED < SDNUMNEWSYMS) { |
| 2383 BS = NULL; | 2383 BS = NULL; |
| 2384 if(IADH->decode(pArithDecoder, &HCDH) == -1) { | 2384 if(IADH->decode(pArithDecoder, &HCDH) == -1) { |
| 2385 m_pModule->JBig2_Error("symbol dictionary decoding procedure (arith)
: too short."); | 2385 m_pModule->JBig2_Error("symbol dictionary decoding procedure (arith)
: too short."); |
| 2386 goto failed; | 2386 goto failed; |
| 2387 } | 2387 } |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2451 pDecoder->SBW = SYMWIDTH; | 2451 pDecoder->SBW = SYMWIDTH; |
| 2452 pDecoder->SBH = HCHEIGHT; | 2452 pDecoder->SBH = HCHEIGHT; |
| 2453 pDecoder->SBNUMINSTANCES = REFAGGNINST; | 2453 pDecoder->SBNUMINSTANCES = REFAGGNINST; |
| 2454 pDecoder->SBSTRIPS = 1; | 2454 pDecoder->SBSTRIPS = 1; |
| 2455 pDecoder->SBNUMSYMS = SDNUMINSYMS + NSYMSDECODED; | 2455 pDecoder->SBNUMSYMS = SDNUMINSYMS + NSYMSDECODED; |
| 2456 SBNUMSYMS = pDecoder->SBNUMSYMS; | 2456 SBNUMSYMS = pDecoder->SBNUMSYMS; |
| 2457 nTmp = 0; | 2457 nTmp = 0; |
| 2458 while((FX_DWORD)(1 << nTmp) < SBNUMSYMS) { | 2458 while((FX_DWORD)(1 << nTmp) < SBNUMSYMS) { |
| 2459 nTmp ++; | 2459 nTmp ++; |
| 2460 } | 2460 } |
| 2461 SBSYMCODELEN = (FX_BYTE)nTmp; | 2461 SBSYMCODELEN = (uint8_t)nTmp; |
| 2462 pDecoder->SBSYMCODELEN = SBSYMCODELEN; | 2462 pDecoder->SBSYMCODELEN = SBSYMCODELEN; |
| 2463 SBSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(SBNUMSYMS,
sizeof(CJBig2_Image*)); | 2463 SBSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(SBNUMSYMS,
sizeof(CJBig2_Image*)); |
| 2464 JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_I
mage*)); | 2464 JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_I
mage*)); |
| 2465 JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS, NSYMSDECODED *
sizeof(CJBig2_Image*)); | 2465 JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS, NSYMSDECODED *
sizeof(CJBig2_Image*)); |
| 2466 pDecoder->SBSYMS = SBSYMS; | 2466 pDecoder->SBSYMS = SBSYMS; |
| 2467 pDecoder->SBDEFPIXEL = 0; | 2467 pDecoder->SBDEFPIXEL = 0; |
| 2468 pDecoder->SBCOMBOP = JBIG2_COMPOSE_OR; | 2468 pDecoder->SBCOMBOP = JBIG2_COMPOSE_OR; |
| 2469 pDecoder->TRANSPOSED = 0; | 2469 pDecoder->TRANSPOSED = 0; |
| 2470 pDecoder->REFCORNER = JBIG2_CORNER_TOPLEFT; | 2470 pDecoder->REFCORNER = JBIG2_CORNER_TOPLEFT; |
| 2471 pDecoder->SBDSOFFSET = 0; | 2471 pDecoder->SBDSOFFSET = 0; |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2664 delete IARDW; | 2664 delete IARDW; |
| 2665 delete IARDH; | 2665 delete IARDH; |
| 2666 return NULL; | 2666 return NULL; |
| 2667 } | 2667 } |
| 2668 CJBig2_SymbolDict *CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream *pStream, | 2668 CJBig2_SymbolDict *CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream *pStream, |
| 2669 JBig2ArithCtx *gbContext, JBig2ArithCtx *grContext, IFX_Pause* pPause) | 2669 JBig2ArithCtx *gbContext, JBig2ArithCtx *grContext, IFX_Pause* pPause) |
| 2670 { | 2670 { |
| 2671 CJBig2_Image **SDNEWSYMS; | 2671 CJBig2_Image **SDNEWSYMS; |
| 2672 FX_DWORD *SDNEWSYMWIDTHS; | 2672 FX_DWORD *SDNEWSYMWIDTHS; |
| 2673 FX_DWORD HCHEIGHT, NSYMSDECODED; | 2673 FX_DWORD HCHEIGHT, NSYMSDECODED; |
| 2674 FX_INT32 HCDH; | 2674 int32_t HCDH; |
| 2675 FX_DWORD SYMWIDTH, TOTWIDTH, HCFIRSTSYM; | 2675 FX_DWORD SYMWIDTH, TOTWIDTH, HCFIRSTSYM; |
| 2676 FX_INT32 DW; | 2676 int32_t DW; |
| 2677 CJBig2_Image *BS, *BHC; | 2677 CJBig2_Image *BS, *BHC; |
| 2678 FX_DWORD I, J, REFAGGNINST; | 2678 FX_DWORD I, J, REFAGGNINST; |
| 2679 FX_BOOL *EXFLAGS; | 2679 FX_BOOL *EXFLAGS; |
| 2680 FX_DWORD EXINDEX; | 2680 FX_DWORD EXINDEX; |
| 2681 FX_BOOL CUREXFLAG; | 2681 FX_BOOL CUREXFLAG; |
| 2682 FX_DWORD EXRUNLENGTH; | 2682 FX_DWORD EXRUNLENGTH; |
| 2683 FX_INT32 nVal, nBits; | 2683 int32_t nVal, nBits; |
| 2684 FX_DWORD nTmp; | 2684 FX_DWORD nTmp; |
| 2685 FX_DWORD SBNUMSYMS; | 2685 FX_DWORD SBNUMSYMS; |
| 2686 FX_BYTE SBSYMCODELEN; | 2686 uint8_t SBSYMCODELEN; |
| 2687 JBig2HuffmanCode *SBSYMCODES; | 2687 JBig2HuffmanCode *SBSYMCODES; |
| 2688 FX_DWORD IDI; | 2688 FX_DWORD IDI; |
| 2689 FX_INT32 RDXI, RDYI; | 2689 int32_t RDXI, RDYI; |
| 2690 FX_DWORD BMSIZE; | 2690 FX_DWORD BMSIZE; |
| 2691 FX_DWORD stride; | 2691 FX_DWORD stride; |
| 2692 CJBig2_Image **SBSYMS; | 2692 CJBig2_Image **SBSYMS; |
| 2693 CJBig2_HuffmanTable *SBHUFFFS, *SBHUFFDS, *SBHUFFDT, *SBHUFFRDW, *SBHUFFRDH,
*SBHUFFRDX, *SBHUFFRDY, | 2693 CJBig2_HuffmanTable *SBHUFFFS, *SBHUFFDS, *SBHUFFDT, *SBHUFFRDW, *SBHUFFRDH,
*SBHUFFRDX, *SBHUFFRDY, |
| 2694 *SBHUFFRSIZE, *pTable; | 2694 *SBHUFFRSIZE, *pTable; |
| 2695 CJBig2_HuffmanDecoder *pHuffmanDecoder; | 2695 CJBig2_HuffmanDecoder *pHuffmanDecoder; |
| 2696 CJBig2_GRRDProc *pGRRD; | 2696 CJBig2_GRRDProc *pGRRD; |
| 2697 CJBig2_ArithDecoder *pArithDecoder; | 2697 CJBig2_ArithDecoder *pArithDecoder; |
| 2698 CJBig2_GRDProc *pGRD; | 2698 CJBig2_GRDProc *pGRD; |
| 2699 CJBig2_SymbolDict *pDict; | 2699 CJBig2_SymbolDict *pDict; |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2836 delete SBHUFFRDX; | 2836 delete SBHUFFRDX; |
| 2837 delete SBHUFFRDY; | 2837 delete SBHUFFRDY; |
| 2838 delete SBHUFFRSIZE; | 2838 delete SBHUFFRSIZE; |
| 2839 delete pDecoder; | 2839 delete pDecoder; |
| 2840 } else if(REFAGGNINST == 1) { | 2840 } else if(REFAGGNINST == 1) { |
| 2841 SBNUMSYMS = SDNUMINSYMS + SDNUMNEWSYMS; | 2841 SBNUMSYMS = SDNUMINSYMS + SDNUMNEWSYMS; |
| 2842 nTmp = 1; | 2842 nTmp = 1; |
| 2843 while((FX_DWORD)(1 << nTmp) < SBNUMSYMS) { | 2843 while((FX_DWORD)(1 << nTmp) < SBNUMSYMS) { |
| 2844 nTmp ++; | 2844 nTmp ++; |
| 2845 } | 2845 } |
| 2846 SBSYMCODELEN = (FX_BYTE)nTmp; | 2846 SBSYMCODELEN = (uint8_t)nTmp; |
| 2847 SBSYMCODES = (JBig2HuffmanCode*)m_pModule->JBig2_Malloc2(SBN
UMSYMS, sizeof(JBig2HuffmanCode)); | 2847 SBSYMCODES = (JBig2HuffmanCode*)m_pModule->JBig2_Malloc2(SBN
UMSYMS, sizeof(JBig2HuffmanCode)); |
| 2848 for(I = 0; I < SBNUMSYMS; I++) { | 2848 for(I = 0; I < SBNUMSYMS; I++) { |
| 2849 SBSYMCODES[I].codelen = SBSYMCODELEN; | 2849 SBSYMCODES[I].codelen = SBSYMCODELEN; |
| 2850 SBSYMCODES[I].code = I; | 2850 SBSYMCODES[I].code = I; |
| 2851 } | 2851 } |
| 2852 nVal = 0; | 2852 nVal = 0; |
| 2853 nBits = 0; | 2853 nBits = 0; |
| 2854 for(;;) { | 2854 for(;;) { |
| 2855 if(pStream->read1Bit(&nTmp) != 0) { | 2855 if(pStream->read1Bit(&nTmp) != 0) { |
| 2856 m_pModule->JBig2_Free(SBSYMCODES); | 2856 m_pModule->JBig2_Free(SBSYMCODES); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2924 delete pArithDecoder; | 2924 delete pArithDecoder; |
| 2925 } | 2925 } |
| 2926 SDNEWSYMS[NSYMSDECODED] = BS; | 2926 SDNEWSYMS[NSYMSDECODED] = BS; |
| 2927 } | 2927 } |
| 2928 if(SDREFAGG == 0) { | 2928 if(SDREFAGG == 0) { |
| 2929 SDNEWSYMWIDTHS[NSYMSDECODED] = SYMWIDTH; | 2929 SDNEWSYMWIDTHS[NSYMSDECODED] = SYMWIDTH; |
| 2930 } | 2930 } |
| 2931 NSYMSDECODED = NSYMSDECODED + 1; | 2931 NSYMSDECODED = NSYMSDECODED + 1; |
| 2932 } | 2932 } |
| 2933 if(SDREFAGG == 0) { | 2933 if(SDREFAGG == 0) { |
| 2934 if(pHuffmanDecoder->decodeAValue(SDHUFFBMSIZE, (FX_INT32*)&BMSIZE) !
= 0) { | 2934 if(pHuffmanDecoder->decodeAValue(SDHUFFBMSIZE, (int32_t*)&BMSIZE) !=
0) { |
| 2935 m_pModule->JBig2_Error("symbol dictionary decoding procedure (hu
ffman): too short."); | 2935 m_pModule->JBig2_Error("symbol dictionary decoding procedure (hu
ffman): too short."); |
| 2936 goto failed; | 2936 goto failed; |
| 2937 } | 2937 } |
| 2938 pStream->alignByte(); | 2938 pStream->alignByte(); |
| 2939 if(BMSIZE == 0) { | 2939 if(BMSIZE == 0) { |
| 2940 stride = (TOTWIDTH + 7) >> 3; | 2940 stride = (TOTWIDTH + 7) >> 3; |
| 2941 if(pStream->getByteLeft() >= stride * HCHEIGHT) { | 2941 if(pStream->getByteLeft() >= stride * HCHEIGHT) { |
| 2942 JBIG2_ALLOC(BHC, CJBig2_Image(TOTWIDTH, HCHEIGHT)); | 2942 JBIG2_ALLOC(BHC, CJBig2_Image(TOTWIDTH, HCHEIGHT)); |
| 2943 for(I = 0; I < HCHEIGHT; I ++) { | 2943 for(I = 0; I < HCHEIGHT; I ++) { |
| 2944 JBIG2_memcpy(BHC->m_pData + I * BHC->m_nStride, pStream-
>getPointer(), stride); | 2944 JBIG2_memcpy(BHC->m_pData + I * BHC->m_nStride, pStream-
>getPointer(), stride); |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3035 if(SDREFAGG == 0) { | 3035 if(SDREFAGG == 0) { |
| 3036 m_pModule->JBig2_Free(SDNEWSYMWIDTHS); | 3036 m_pModule->JBig2_Free(SDNEWSYMWIDTHS); |
| 3037 } | 3037 } |
| 3038 delete pHuffmanDecoder; | 3038 delete pHuffmanDecoder; |
| 3039 return NULL; | 3039 return NULL; |
| 3040 } | 3040 } |
| 3041 CJBig2_Image *CJBig2_HTRDProc::decode_Arith(CJBig2_ArithDecoder *pArithDecoder, | 3041 CJBig2_Image *CJBig2_HTRDProc::decode_Arith(CJBig2_ArithDecoder *pArithDecoder, |
| 3042 JBig2ArithCtx *gbContext, IFX_Pause* pPause) | 3042 JBig2ArithCtx *gbContext, IFX_Pause* pPause) |
| 3043 { | 3043 { |
| 3044 FX_DWORD ng, mg; | 3044 FX_DWORD ng, mg; |
| 3045 FX_INT32 x, y; | 3045 int32_t x, y; |
| 3046 CJBig2_Image *HSKIP; | 3046 CJBig2_Image *HSKIP; |
| 3047 FX_DWORD HBPP; | 3047 FX_DWORD HBPP; |
| 3048 FX_DWORD *GI; | 3048 FX_DWORD *GI; |
| 3049 CJBig2_Image *HTREG; | 3049 CJBig2_Image *HTREG; |
| 3050 CJBig2_GSIDProc *pGID; | 3050 CJBig2_GSIDProc *pGID; |
| 3051 JBIG2_ALLOC(HTREG, CJBig2_Image(HBW, HBH)); | 3051 JBIG2_ALLOC(HTREG, CJBig2_Image(HBW, HBH)); |
| 3052 HTREG->fill(HDEFPIXEL); | 3052 HTREG->fill(HDEFPIXEL); |
| 3053 HSKIP = NULL; | 3053 HSKIP = NULL; |
| 3054 if(HENABLESKIP == 1) { | 3054 if(HENABLESKIP == 1) { |
| 3055 JBIG2_ALLOC(HSKIP, CJBig2_Image(HGW, HGH)); | 3055 JBIG2_ALLOC(HSKIP, CJBig2_Image(HGW, HGH)); |
| 3056 for(mg = 0; mg < HGH; mg++) { | 3056 for(mg = 0; mg < HGH; mg++) { |
| 3057 for(ng = 0; ng < HGW; ng++) { | 3057 for(ng = 0; ng < HGW; ng++) { |
| 3058 x = (HGX + mg * HRY + ng * HRX) >> 8; | 3058 x = (HGX + mg * HRY + ng * HRX) >> 8; |
| 3059 y = (HGY + mg * HRX - ng * HRY) >> 8; | 3059 y = (HGY + mg * HRX - ng * HRY) >> 8; |
| 3060 if((x + HPW <= 0) | (x >= (FX_INT32)HBW) | 3060 if((x + HPW <= 0) | (x >= (int32_t)HBW) |
| 3061 | (y + HPH <= 0) | (y >= (FX_INT32)HPH)) { | 3061 | (y + HPH <= 0) | (y >= (int32_t)HPH)) { |
| 3062 HSKIP->setPixel(ng, mg, 1); | 3062 HSKIP->setPixel(ng, mg, 1); |
| 3063 } else { | 3063 } else { |
| 3064 HSKIP->setPixel(ng, mg, 0); | 3064 HSKIP->setPixel(ng, mg, 0); |
| 3065 } | 3065 } |
| 3066 } | 3066 } |
| 3067 } | 3067 } |
| 3068 } | 3068 } |
| 3069 HBPP = 1; | 3069 HBPP = 1; |
| 3070 while((FX_DWORD)(1 << HBPP) < HNUMPATS) { | 3070 while((FX_DWORD)(1 << HBPP) < HNUMPATS) { |
| 3071 HBPP ++; | 3071 HBPP ++; |
| 3072 } | 3072 } |
| 3073 JBIG2_ALLOC(pGID, CJBig2_GSIDProc()); | 3073 JBIG2_ALLOC(pGID, CJBig2_GSIDProc()); |
| 3074 pGID->GSMMR = HMMR; | 3074 pGID->GSMMR = HMMR; |
| 3075 pGID->GSW = HGW; | 3075 pGID->GSW = HGW; |
| 3076 pGID->GSH = HGH; | 3076 pGID->GSH = HGH; |
| 3077 pGID->GSBPP = (FX_BYTE)HBPP; | 3077 pGID->GSBPP = (uint8_t)HBPP; |
| 3078 pGID->GSUSESKIP = HENABLESKIP; | 3078 pGID->GSUSESKIP = HENABLESKIP; |
| 3079 pGID->GSKIP = HSKIP; | 3079 pGID->GSKIP = HSKIP; |
| 3080 pGID->GSTEMPLATE = HTEMPLATE; | 3080 pGID->GSTEMPLATE = HTEMPLATE; |
| 3081 GI = pGID->decode_Arith(pArithDecoder, gbContext, pPause); | 3081 GI = pGID->decode_Arith(pArithDecoder, gbContext, pPause); |
| 3082 if(GI == NULL) { | 3082 if(GI == NULL) { |
| 3083 goto failed; | 3083 goto failed; |
| 3084 } | 3084 } |
| 3085 for(mg = 0; mg < HGH; mg++) { | 3085 for(mg = 0; mg < HGH; mg++) { |
| 3086 for(ng = 0; ng < HGW; ng++) { | 3086 for(ng = 0; ng < HGW; ng++) { |
| 3087 x = (HGX + mg * HRY + ng * HRX) >> 8; | 3087 x = (HGX + mg * HRY + ng * HRX) >> 8; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3103 if(HSKIP) { | 3103 if(HSKIP) { |
| 3104 delete HSKIP; | 3104 delete HSKIP; |
| 3105 } | 3105 } |
| 3106 delete pGID; | 3106 delete pGID; |
| 3107 delete HTREG; | 3107 delete HTREG; |
| 3108 return NULL; | 3108 return NULL; |
| 3109 } | 3109 } |
| 3110 CJBig2_Image *CJBig2_HTRDProc::decode_MMR(CJBig2_BitStream *pStream, IFX_Pause*
pPause) | 3110 CJBig2_Image *CJBig2_HTRDProc::decode_MMR(CJBig2_BitStream *pStream, IFX_Pause*
pPause) |
| 3111 { | 3111 { |
| 3112 FX_DWORD ng, mg; | 3112 FX_DWORD ng, mg; |
| 3113 FX_INT32 x, y; | 3113 int32_t x, y; |
| 3114 FX_DWORD HBPP; | 3114 FX_DWORD HBPP; |
| 3115 FX_DWORD *GI; | 3115 FX_DWORD *GI; |
| 3116 CJBig2_Image *HTREG; | 3116 CJBig2_Image *HTREG; |
| 3117 CJBig2_GSIDProc *pGID; | 3117 CJBig2_GSIDProc *pGID; |
| 3118 JBIG2_ALLOC(HTREG, CJBig2_Image(HBW, HBH)); | 3118 JBIG2_ALLOC(HTREG, CJBig2_Image(HBW, HBH)); |
| 3119 HTREG->fill(HDEFPIXEL); | 3119 HTREG->fill(HDEFPIXEL); |
| 3120 HBPP = 1; | 3120 HBPP = 1; |
| 3121 while((FX_DWORD)(1 << HBPP) < HNUMPATS) { | 3121 while((FX_DWORD)(1 << HBPP) < HNUMPATS) { |
| 3122 HBPP ++; | 3122 HBPP ++; |
| 3123 } | 3123 } |
| 3124 JBIG2_ALLOC(pGID, CJBig2_GSIDProc()); | 3124 JBIG2_ALLOC(pGID, CJBig2_GSIDProc()); |
| 3125 pGID->GSMMR = HMMR; | 3125 pGID->GSMMR = HMMR; |
| 3126 pGID->GSW = HGW; | 3126 pGID->GSW = HGW; |
| 3127 pGID->GSH = HGH; | 3127 pGID->GSH = HGH; |
| 3128 pGID->GSBPP = (FX_BYTE)HBPP; | 3128 pGID->GSBPP = (uint8_t)HBPP; |
| 3129 pGID->GSUSESKIP = 0; | 3129 pGID->GSUSESKIP = 0; |
| 3130 GI = pGID->decode_MMR(pStream, pPause); | 3130 GI = pGID->decode_MMR(pStream, pPause); |
| 3131 if(GI == NULL) { | 3131 if(GI == NULL) { |
| 3132 goto failed; | 3132 goto failed; |
| 3133 } | 3133 } |
| 3134 for(mg = 0; mg < HGH; mg++) { | 3134 for(mg = 0; mg < HGH; mg++) { |
| 3135 for(ng = 0; ng < HGW; ng++) { | 3135 for(ng = 0; ng < HGW; ng++) { |
| 3136 x = (HGX + mg * HRY + ng * HRX) >> 8; | 3136 x = (HGX + mg * HRY + ng * HRX) >> 8; |
| 3137 y = (HGY + mg * HRX - ng * HRY) >> 8; | 3137 y = (HGY + mg * HRX - ng * HRY) >> 8; |
| 3138 FX_DWORD pat_index = GI[mg * HGW + ng]; | 3138 FX_DWORD pat_index = GI[mg * HGW + ng]; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 3161 pDict->NUMPATS = GRAYMAX + 1; | 3161 pDict->NUMPATS = GRAYMAX + 1; |
| 3162 pDict->HDPATS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(sizeof(CJBig2_Image
*), pDict->NUMPATS); | 3162 pDict->HDPATS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(sizeof(CJBig2_Image
*), pDict->NUMPATS); |
| 3163 JBIG2_memset(pDict->HDPATS, 0, sizeof(CJBig2_Image*)*pDict->NUMPATS); | 3163 JBIG2_memset(pDict->HDPATS, 0, sizeof(CJBig2_Image*)*pDict->NUMPATS); |
| 3164 JBIG2_ALLOC(pGRD, CJBig2_GRDProc()); | 3164 JBIG2_ALLOC(pGRD, CJBig2_GRDProc()); |
| 3165 pGRD->MMR = HDMMR; | 3165 pGRD->MMR = HDMMR; |
| 3166 pGRD->GBW = (GRAYMAX + 1) * HDPW; | 3166 pGRD->GBW = (GRAYMAX + 1) * HDPW; |
| 3167 pGRD->GBH = HDPH; | 3167 pGRD->GBH = HDPH; |
| 3168 pGRD->GBTEMPLATE = HDTEMPLATE; | 3168 pGRD->GBTEMPLATE = HDTEMPLATE; |
| 3169 pGRD->TPGDON = 0; | 3169 pGRD->TPGDON = 0; |
| 3170 pGRD->USESKIP = 0; | 3170 pGRD->USESKIP = 0; |
| 3171 pGRD->GBAT[0] = -(FX_INT32)HDPW; | 3171 pGRD->GBAT[0] = -(int32_t)HDPW; |
| 3172 pGRD->GBAT[1] = 0; | 3172 pGRD->GBAT[1] = 0; |
| 3173 if(pGRD->GBTEMPLATE == 0) { | 3173 if(pGRD->GBTEMPLATE == 0) { |
| 3174 pGRD->GBAT[2] = -3; | 3174 pGRD->GBAT[2] = -3; |
| 3175 pGRD->GBAT[3] = -1; | 3175 pGRD->GBAT[3] = -1; |
| 3176 pGRD->GBAT[4] = 2; | 3176 pGRD->GBAT[4] = 2; |
| 3177 pGRD->GBAT[5] = -2; | 3177 pGRD->GBAT[5] = -2; |
| 3178 pGRD->GBAT[6] = -2; | 3178 pGRD->GBAT[6] = -2; |
| 3179 pGRD->GBAT[7] = -2; | 3179 pGRD->GBAT[7] = -2; |
| 3180 } | 3180 } |
| 3181 FXCODEC_STATUS status = pGRD->Start_decode_Arith(&BHDC, pArithDecoder, gbCon
text); | 3181 FXCODEC_STATUS status = pGRD->Start_decode_Arith(&BHDC, pArithDecoder, gbCon
text); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3230 delete BHDC; | 3230 delete BHDC; |
| 3231 return pDict; | 3231 return pDict; |
| 3232 failed: | 3232 failed: |
| 3233 delete pDict; | 3233 delete pDict; |
| 3234 return NULL; | 3234 return NULL; |
| 3235 } | 3235 } |
| 3236 FX_DWORD *CJBig2_GSIDProc::decode_Arith(CJBig2_ArithDecoder *pArithDecoder, | 3236 FX_DWORD *CJBig2_GSIDProc::decode_Arith(CJBig2_ArithDecoder *pArithDecoder, |
| 3237 JBig2ArithCtx *gbContext, IFX_Pause* pPa
use) | 3237 JBig2ArithCtx *gbContext, IFX_Pause* pPa
use) |
| 3238 { | 3238 { |
| 3239 CJBig2_Image **GSPLANES; | 3239 CJBig2_Image **GSPLANES; |
| 3240 FX_INT32 J, K; | 3240 int32_t J, K; |
| 3241 FX_DWORD x, y; | 3241 FX_DWORD x, y; |
| 3242 FX_DWORD *GSVALS; | 3242 FX_DWORD *GSVALS; |
| 3243 CJBig2_GRDProc *pGRD; | 3243 CJBig2_GRDProc *pGRD; |
| 3244 GSPLANES = (CJBig2_Image **)m_pModule->JBig2_Malloc2(sizeof(CJBig2_Image*),
GSBPP); | 3244 GSPLANES = (CJBig2_Image **)m_pModule->JBig2_Malloc2(sizeof(CJBig2_Image*),
GSBPP); |
| 3245 if (!GSPLANES) { | 3245 if (!GSPLANES) { |
| 3246 return NULL; | 3246 return NULL; |
| 3247 } | 3247 } |
| 3248 GSVALS = (FX_DWORD*)m_pModule->JBig2_Malloc3(sizeof(FX_DWORD), GSW, GSH); | 3248 GSVALS = (FX_DWORD*)m_pModule->JBig2_Malloc3(sizeof(FX_DWORD), GSW, GSH); |
| 3249 if (!GSVALS) { | 3249 if (!GSVALS) { |
| 3250 m_pModule->JBig2_Free(GSPLANES); | 3250 m_pModule->JBig2_Free(GSPLANES); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3311 return GSVALS; | 3311 return GSVALS; |
| 3312 failed: | 3312 failed: |
| 3313 m_pModule->JBig2_Free(GSPLANES); | 3313 m_pModule->JBig2_Free(GSPLANES); |
| 3314 delete pGRD; | 3314 delete pGRD; |
| 3315 m_pModule->JBig2_Free(GSVALS); | 3315 m_pModule->JBig2_Free(GSVALS); |
| 3316 return NULL; | 3316 return NULL; |
| 3317 } | 3317 } |
| 3318 FX_DWORD *CJBig2_GSIDProc::decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPau
se) | 3318 FX_DWORD *CJBig2_GSIDProc::decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPau
se) |
| 3319 { | 3319 { |
| 3320 CJBig2_Image **GSPLANES; | 3320 CJBig2_Image **GSPLANES; |
| 3321 FX_INT32 J, K; | 3321 int32_t J, K; |
| 3322 FX_DWORD x, y; | 3322 FX_DWORD x, y; |
| 3323 FX_DWORD *GSVALS; | 3323 FX_DWORD *GSVALS; |
| 3324 CJBig2_GRDProc *pGRD; | 3324 CJBig2_GRDProc *pGRD; |
| 3325 GSPLANES = (CJBig2_Image **)m_pModule->JBig2_Malloc2(sizeof(CJBig2_Image*),
GSBPP); | 3325 GSPLANES = (CJBig2_Image **)m_pModule->JBig2_Malloc2(sizeof(CJBig2_Image*),
GSBPP); |
| 3326 if (!GSPLANES) { | 3326 if (!GSPLANES) { |
| 3327 return NULL; | 3327 return NULL; |
| 3328 } | 3328 } |
| 3329 GSVALS = (FX_DWORD*)m_pModule->JBig2_Malloc3(sizeof(FX_DWORD), GSW, GSH); | 3329 GSVALS = (FX_DWORD*)m_pModule->JBig2_Malloc3(sizeof(FX_DWORD), GSW, GSH); |
| 3330 if (!GSVALS) { | 3330 if (!GSVALS) { |
| 3331 if (GSPLANES) { | 3331 if (GSPLANES) { |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3801 return decode_MMR(); | 3801 return decode_MMR(); |
| 3802 } | 3802 } |
| 3803 m_ProssiveStatus = FXCODEC_STATUS_ERROR; | 3803 m_ProssiveStatus = FXCODEC_STATUS_ERROR; |
| 3804 return m_ProssiveStatus; | 3804 return m_ProssiveStatus; |
| 3805 } | 3805 } |
| 3806 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_Template0_opt3(CJBig2_Image *pImage,
CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause
) | 3806 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_Template0_opt3(CJBig2_Image *pImage,
CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause
) |
| 3807 { | 3807 { |
| 3808 FX_BOOL SLTP, bVal; | 3808 FX_BOOL SLTP, bVal; |
| 3809 FX_DWORD CONTEXT; | 3809 FX_DWORD CONTEXT; |
| 3810 FX_DWORD line1, line2; | 3810 FX_DWORD line1, line2; |
| 3811 FX_BYTE *pLine1, *pLine2, cVal; | 3811 uint8_t *pLine1, *pLine2, cVal; |
| 3812 FX_INT32 nStride, nStride2, k; | 3812 int32_t nStride, nStride2, k; |
| 3813 FX_INT32 nLineBytes, nBitsLeft, cc; | 3813 int32_t nLineBytes, nBitsLeft, cc; |
| 3814 if(m_pLine == NULL) { | 3814 if(m_pLine == NULL) { |
| 3815 m_pLine = pImage->m_pData; | 3815 m_pLine = pImage->m_pData; |
| 3816 } | 3816 } |
| 3817 nStride = pImage->m_nStride; | 3817 nStride = pImage->m_nStride; |
| 3818 nStride2 = nStride << 1; | 3818 nStride2 = nStride << 1; |
| 3819 nLineBytes = ((GBW + 7) >> 3) - 1; | 3819 nLineBytes = ((GBW + 7) >> 3) - 1; |
| 3820 nBitsLeft = GBW - (nLineBytes << 3); | 3820 nBitsLeft = GBW - (nLineBytes << 3); |
| 3821 FX_DWORD height = GBH & 0x7fffffff; | 3821 FX_DWORD height = GBH & 0x7fffffff; |
| 3822 for(; m_loopIndex < height; m_loopIndex++) { | 3822 for(; m_loopIndex < height; m_loopIndex++) { |
| 3823 if(TPGDON) { | 3823 if(TPGDON) { |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3942 } | 3942 } |
| 3943 } | 3943 } |
| 3944 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; | 3944 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; |
| 3945 return FXCODEC_STATUS_DECODE_FINISH; | 3945 return FXCODEC_STATUS_DECODE_FINISH; |
| 3946 } | 3946 } |
| 3947 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_Template1_opt3(CJBig2_Image *pImage,
CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause
) | 3947 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_Template1_opt3(CJBig2_Image *pImage,
CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause
) |
| 3948 { | 3948 { |
| 3949 FX_BOOL SLTP, bVal; | 3949 FX_BOOL SLTP, bVal; |
| 3950 FX_DWORD CONTEXT; | 3950 FX_DWORD CONTEXT; |
| 3951 FX_DWORD line1, line2; | 3951 FX_DWORD line1, line2; |
| 3952 FX_BYTE *pLine1, *pLine2, cVal; | 3952 uint8_t *pLine1, *pLine2, cVal; |
| 3953 FX_INT32 nStride, nStride2, k; | 3953 int32_t nStride, nStride2, k; |
| 3954 FX_INT32 nLineBytes, nBitsLeft, cc; | 3954 int32_t nLineBytes, nBitsLeft, cc; |
| 3955 if (!m_pLine) { | 3955 if (!m_pLine) { |
| 3956 m_pLine = pImage->m_pData; | 3956 m_pLine = pImage->m_pData; |
| 3957 } | 3957 } |
| 3958 nStride = pImage->m_nStride; | 3958 nStride = pImage->m_nStride; |
| 3959 nStride2 = nStride << 1; | 3959 nStride2 = nStride << 1; |
| 3960 nLineBytes = ((GBW + 7) >> 3) - 1; | 3960 nLineBytes = ((GBW + 7) >> 3) - 1; |
| 3961 nBitsLeft = GBW - (nLineBytes << 3); | 3961 nBitsLeft = GBW - (nLineBytes << 3); |
| 3962 for(; m_loopIndex < GBH; m_loopIndex++) { | 3962 for(; m_loopIndex < GBH; m_loopIndex++) { |
| 3963 if(TPGDON) { | 3963 if(TPGDON) { |
| 3964 SLTP = pArithDecoder->DECODE(&gbContext[0x0795]); | 3964 SLTP = pArithDecoder->DECODE(&gbContext[0x0795]); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4080 } | 4080 } |
| 4081 } | 4081 } |
| 4082 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; | 4082 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; |
| 4083 return FXCODEC_STATUS_DECODE_FINISH; | 4083 return FXCODEC_STATUS_DECODE_FINISH; |
| 4084 } | 4084 } |
| 4085 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_Template2_opt3(CJBig2_Image *pImage,
CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause
) | 4085 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_Template2_opt3(CJBig2_Image *pImage,
CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause
) |
| 4086 { | 4086 { |
| 4087 FX_BOOL SLTP, bVal; | 4087 FX_BOOL SLTP, bVal; |
| 4088 FX_DWORD CONTEXT; | 4088 FX_DWORD CONTEXT; |
| 4089 FX_DWORD line1, line2; | 4089 FX_DWORD line1, line2; |
| 4090 FX_BYTE *pLine1, *pLine2, cVal; | 4090 uint8_t *pLine1, *pLine2, cVal; |
| 4091 FX_INT32 nStride, nStride2, k; | 4091 int32_t nStride, nStride2, k; |
| 4092 FX_INT32 nLineBytes, nBitsLeft, cc; | 4092 int32_t nLineBytes, nBitsLeft, cc; |
| 4093 if(!m_pLine) { | 4093 if(!m_pLine) { |
| 4094 m_pLine = pImage->m_pData; | 4094 m_pLine = pImage->m_pData; |
| 4095 } | 4095 } |
| 4096 nStride = pImage->m_nStride; | 4096 nStride = pImage->m_nStride; |
| 4097 nStride2 = nStride << 1; | 4097 nStride2 = nStride << 1; |
| 4098 nLineBytes = ((GBW + 7) >> 3) - 1; | 4098 nLineBytes = ((GBW + 7) >> 3) - 1; |
| 4099 nBitsLeft = GBW - (nLineBytes << 3); | 4099 nBitsLeft = GBW - (nLineBytes << 3); |
| 4100 for(; m_loopIndex < GBH; m_loopIndex++) { | 4100 for(; m_loopIndex < GBH; m_loopIndex++) { |
| 4101 if(TPGDON) { | 4101 if(TPGDON) { |
| 4102 SLTP = pArithDecoder->DECODE(&gbContext[0x00e5]); | 4102 SLTP = pArithDecoder->DECODE(&gbContext[0x00e5]); |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4216 } | 4216 } |
| 4217 } | 4217 } |
| 4218 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; | 4218 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; |
| 4219 return FXCODEC_STATUS_DECODE_FINISH; | 4219 return FXCODEC_STATUS_DECODE_FINISH; |
| 4220 } | 4220 } |
| 4221 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_Template3_opt3(CJBig2_Image *pImage,
CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause
) | 4221 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_Template3_opt3(CJBig2_Image *pImage,
CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause
) |
| 4222 { | 4222 { |
| 4223 FX_BOOL SLTP, bVal; | 4223 FX_BOOL SLTP, bVal; |
| 4224 FX_DWORD CONTEXT; | 4224 FX_DWORD CONTEXT; |
| 4225 FX_DWORD line1; | 4225 FX_DWORD line1; |
| 4226 FX_BYTE *pLine1, cVal; | 4226 uint8_t *pLine1, cVal; |
| 4227 FX_INT32 nStride, k; | 4227 int32_t nStride, k; |
| 4228 FX_INT32 nLineBytes, nBitsLeft, cc; | 4228 int32_t nLineBytes, nBitsLeft, cc; |
| 4229 if (!m_pLine) { | 4229 if (!m_pLine) { |
| 4230 m_pLine = pImage->m_pData; | 4230 m_pLine = pImage->m_pData; |
| 4231 } | 4231 } |
| 4232 nStride = pImage->m_nStride; | 4232 nStride = pImage->m_nStride; |
| 4233 nLineBytes = ((GBW + 7) >> 3) - 1; | 4233 nLineBytes = ((GBW + 7) >> 3) - 1; |
| 4234 nBitsLeft = GBW - (nLineBytes << 3); | 4234 nBitsLeft = GBW - (nLineBytes << 3); |
| 4235 for(; m_loopIndex < GBH; m_loopIndex++) { | 4235 for(; m_loopIndex < GBH; m_loopIndex++) { |
| 4236 if(TPGDON) { | 4236 if(TPGDON) { |
| 4237 SLTP = pArithDecoder->DECODE(&gbContext[0x0195]); | 4237 SLTP = pArithDecoder->DECODE(&gbContext[0x0195]); |
| 4238 LTP = LTP ^ SLTP; | 4238 LTP = LTP ^ SLTP; |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4328 } | 4328 } |
| 4329 if(pPause && pPause->NeedToPauseNow()) { | 4329 if(pPause && pPause->NeedToPauseNow()) { |
| 4330 m_loopIndex++; | 4330 m_loopIndex++; |
| 4331 m_ProssiveStatus = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 4331 m_ProssiveStatus = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
| 4332 return FXCODEC_STATUS_DECODE_TOBECONTINUE; | 4332 return FXCODEC_STATUS_DECODE_TOBECONTINUE; |
| 4333 } | 4333 } |
| 4334 } | 4334 } |
| 4335 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; | 4335 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; |
| 4336 return FXCODEC_STATUS_DECODE_FINISH; | 4336 return FXCODEC_STATUS_DECODE_FINISH; |
| 4337 } | 4337 } |
| OLD | NEW |