Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 PDFium Authors. All rights reserved. | 1 // Copyright 2015 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/jbig2/JBig2_GrdProc.h" | 7 #include "core/fxcodec/jbig2/JBig2_GrdProc.h" |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| 11 #include "core/fxcodec/include/fx_codec.h" | 11 #include "core/fxcodec/include/fx_codec.h" |
| 12 #include "core/fxcodec/jbig2/JBig2_ArithDecoder.h" | 12 #include "core/fxcodec/jbig2/JBig2_ArithDecoder.h" |
| 13 #include "core/fxcodec/jbig2/JBig2_BitStream.h" | 13 #include "core/fxcodec/jbig2/JBig2_BitStream.h" |
| 14 #include "core/fxcodec/jbig2/JBig2_Image.h" | 14 #include "core/fxcodec/jbig2/JBig2_Image.h" |
| 15 | 15 |
| 16 CJBig2_GRDProc::CJBig2_GRDProc() | 16 CJBig2_GRDProc::CJBig2_GRDProc() |
| 17 : m_loopIndex(0), | 17 : m_loopIndex(0), |
| 18 m_pLine(nullptr), | 18 m_pLine(nullptr), |
| 19 m_pPause(nullptr), | 19 m_pPause(nullptr), |
| 20 m_DecodeType(0), | 20 m_DecodeType(0), |
| 21 LTP(0) { | 21 m_LTP(0) { |
|
dsinclair
2016/06/06 12:50:11
nit: FALSE
Wei Li
2016/06/07 17:33:53
Done.
| |
| 22 m_ReplaceRect.left = 0; | 22 m_ReplaceRect.left = 0; |
| 23 m_ReplaceRect.bottom = 0; | 23 m_ReplaceRect.bottom = 0; |
| 24 m_ReplaceRect.top = 0; | 24 m_ReplaceRect.top = 0; |
| 25 m_ReplaceRect.right = 0; | 25 m_ReplaceRect.right = 0; |
| 26 } | 26 } |
| 27 | 27 |
| 28 bool CJBig2_GRDProc::UseTemplate0Opt3() const { | 28 bool CJBig2_GRDProc::UseTemplate0Opt3() const { |
| 29 return (GBAT[0] == 3) && (GBAT[1] == -1) && (GBAT[2] == -3) && | 29 return (GBAT[0] == 3) && (GBAT[1] == -1) && (GBAT[2] == -3) && |
| 30 (GBAT[3] == -1) && (GBAT[4] == 2) && (GBAT[5] == -2) && | 30 (GBAT[3] == -1) && (GBAT[4] == 2) && (GBAT[5] == -2) && |
| 31 (GBAT[6] == -2) && (GBAT[7] == -2); | 31 (GBAT[6] == -2) && (GBAT[7] == -2); |
| (...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 599 delete *pImage; | 599 delete *pImage; |
| 600 *pImage = nullptr; | 600 *pImage = nullptr; |
| 601 m_ProssiveStatus = FXCODEC_STATUS_ERROR; | 601 m_ProssiveStatus = FXCODEC_STATUS_ERROR; |
| 602 return FXCODEC_STATUS_ERROR; | 602 return FXCODEC_STATUS_ERROR; |
| 603 } | 603 } |
| 604 m_DecodeType = 1; | 604 m_DecodeType = 1; |
| 605 m_pImage = pImage; | 605 m_pImage = pImage; |
| 606 (*m_pImage)->fill(0); | 606 (*m_pImage)->fill(0); |
| 607 m_pArithDecoder = pArithDecoder; | 607 m_pArithDecoder = pArithDecoder; |
| 608 m_gbContext = gbContext; | 608 m_gbContext = gbContext; |
| 609 LTP = 0; | 609 m_LTP = 0; |
|
dsinclair
2016/06/06 12:50:10
nit: FALSE
Wei Li
2016/06/07 17:33:52
Done.
| |
| 610 m_pLine = nullptr; | 610 m_pLine = nullptr; |
| 611 m_loopIndex = 0; | 611 m_loopIndex = 0; |
| 612 return decode_Arith(pPause); | 612 return decode_Arith(pPause); |
| 613 } | 613 } |
| 614 | 614 |
| 615 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith(IFX_Pause* pPause) { | 615 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith(IFX_Pause* pPause) { |
| 616 int iline = m_loopIndex; | 616 int iline = m_loopIndex; |
| 617 CJBig2_Image* pImage = *m_pImage; | 617 CJBig2_Image* pImage = *m_pImage; |
| 618 if (GBTEMPLATE == 0) { | 618 if (GBTEMPLATE == 0) { |
| 619 if (UseTemplate0Opt3()) { | 619 if (UseTemplate0Opt3()) { |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 707 m_pLine = pImage->m_pData; | 707 m_pLine = pImage->m_pData; |
| 708 } | 708 } |
| 709 nStride = pImage->m_nStride; | 709 nStride = pImage->m_nStride; |
| 710 nStride2 = nStride << 1; | 710 nStride2 = nStride << 1; |
| 711 nLineBytes = ((GBW + 7) >> 3) - 1; | 711 nLineBytes = ((GBW + 7) >> 3) - 1; |
| 712 nBitsLeft = GBW - (nLineBytes << 3); | 712 nBitsLeft = GBW - (nLineBytes << 3); |
| 713 uint32_t height = GBH & 0x7fffffff; | 713 uint32_t height = GBH & 0x7fffffff; |
| 714 for (; m_loopIndex < height; m_loopIndex++) { | 714 for (; m_loopIndex < height; m_loopIndex++) { |
| 715 if (TPGDON) { | 715 if (TPGDON) { |
| 716 SLTP = pArithDecoder->DECODE(&gbContext[0x9b25]); | 716 SLTP = pArithDecoder->DECODE(&gbContext[0x9b25]); |
| 717 LTP = LTP ^ SLTP; | 717 m_LTP = m_LTP ^ SLTP; |
| 718 } | 718 } |
| 719 if (LTP == 1) { | 719 if (m_LTP == 1) { |
|
dsinclair
2016/06/06 12:50:10
nit: TRUE (and others below)
Tom Sepez
2016/06/06 16:43:33
just if (m_LTP) {
Wei Li
2016/06/07 17:33:53
Done.
| |
| 720 pImage->copyLine(m_loopIndex, m_loopIndex - 1); | 720 pImage->copyLine(m_loopIndex, m_loopIndex - 1); |
| 721 } else { | 721 } else { |
| 722 if (m_loopIndex > 1) { | 722 if (m_loopIndex > 1) { |
| 723 pLine1 = m_pLine - nStride2; | 723 pLine1 = m_pLine - nStride2; |
| 724 pLine2 = m_pLine - nStride; | 724 pLine2 = m_pLine - nStride; |
| 725 line1 = (*pLine1++) << 6; | 725 line1 = (*pLine1++) << 6; |
| 726 line2 = *pLine2++; | 726 line2 = *pLine2++; |
| 727 CONTEXT = ((line1 & 0xf800) | (line2 & 0x07f0)); | 727 CONTEXT = ((line1 & 0xf800) | (line2 & 0x07f0)); |
| 728 for (cc = 0; cc < nLineBytes; cc++) { | 728 for (cc = 0; cc < nLineBytes; cc++) { |
| 729 line1 = (line1 << 8) | ((*pLine1++) << 6); | 729 line1 = (line1 << 8) | ((*pLine1++) << 6); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 791 CJBig2_Image* pImage, | 791 CJBig2_Image* pImage, |
| 792 CJBig2_ArithDecoder* pArithDecoder, | 792 CJBig2_ArithDecoder* pArithDecoder, |
| 793 JBig2ArithCtx* gbContext, | 793 JBig2ArithCtx* gbContext, |
| 794 IFX_Pause* pPause) { | 794 IFX_Pause* pPause) { |
| 795 FX_BOOL SLTP, bVal; | 795 FX_BOOL SLTP, bVal; |
| 796 uint32_t CONTEXT; | 796 uint32_t CONTEXT; |
| 797 uint32_t line1, line2, line3; | 797 uint32_t line1, line2, line3; |
| 798 for (; m_loopIndex < GBH; m_loopIndex++) { | 798 for (; m_loopIndex < GBH; m_loopIndex++) { |
| 799 if (TPGDON) { | 799 if (TPGDON) { |
| 800 SLTP = pArithDecoder->DECODE(&gbContext[0x9b25]); | 800 SLTP = pArithDecoder->DECODE(&gbContext[0x9b25]); |
| 801 LTP = LTP ^ SLTP; | 801 m_LTP = m_LTP ^ SLTP; |
| 802 } | 802 } |
| 803 if (LTP == 1) { | 803 if (m_LTP == 1) { |
| 804 pImage->copyLine(m_loopIndex, m_loopIndex - 1); | 804 pImage->copyLine(m_loopIndex, m_loopIndex - 1); |
| 805 } else { | 805 } else { |
| 806 line1 = pImage->getPixel(1, m_loopIndex - 2); | 806 line1 = pImage->getPixel(1, m_loopIndex - 2); |
| 807 line1 |= pImage->getPixel(0, m_loopIndex - 2) << 1; | 807 line1 |= pImage->getPixel(0, m_loopIndex - 2) << 1; |
| 808 line2 = pImage->getPixel(2, m_loopIndex - 1); | 808 line2 = pImage->getPixel(2, m_loopIndex - 1); |
| 809 line2 |= pImage->getPixel(1, m_loopIndex - 1) << 1; | 809 line2 |= pImage->getPixel(1, m_loopIndex - 1) << 1; |
| 810 line2 |= pImage->getPixel(0, m_loopIndex - 1) << 2; | 810 line2 |= pImage->getPixel(0, m_loopIndex - 1) << 2; |
| 811 line3 = 0; | 811 line3 = 0; |
| 812 for (uint32_t w = 0; w < GBW; w++) { | 812 for (uint32_t w = 0; w < GBW; w++) { |
| 813 if (USESKIP && SKIP->getPixel(w, m_loopIndex)) { | 813 if (USESKIP && SKIP->getPixel(w, m_loopIndex)) { |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 856 if (!m_pLine) { | 856 if (!m_pLine) { |
| 857 m_pLine = pImage->m_pData; | 857 m_pLine = pImage->m_pData; |
| 858 } | 858 } |
| 859 nStride = pImage->m_nStride; | 859 nStride = pImage->m_nStride; |
| 860 nStride2 = nStride << 1; | 860 nStride2 = nStride << 1; |
| 861 nLineBytes = ((GBW + 7) >> 3) - 1; | 861 nLineBytes = ((GBW + 7) >> 3) - 1; |
| 862 nBitsLeft = GBW - (nLineBytes << 3); | 862 nBitsLeft = GBW - (nLineBytes << 3); |
| 863 for (; m_loopIndex < GBH; m_loopIndex++) { | 863 for (; m_loopIndex < GBH; m_loopIndex++) { |
| 864 if (TPGDON) { | 864 if (TPGDON) { |
| 865 SLTP = pArithDecoder->DECODE(&gbContext[0x0795]); | 865 SLTP = pArithDecoder->DECODE(&gbContext[0x0795]); |
| 866 LTP = LTP ^ SLTP; | 866 m_LTP = m_LTP ^ SLTP; |
| 867 } | 867 } |
| 868 if (LTP == 1) { | 868 if (m_LTP == 1) { |
| 869 pImage->copyLine(m_loopIndex, m_loopIndex - 1); | 869 pImage->copyLine(m_loopIndex, m_loopIndex - 1); |
| 870 } else { | 870 } else { |
| 871 if (m_loopIndex > 1) { | 871 if (m_loopIndex > 1) { |
| 872 pLine1 = m_pLine - nStride2; | 872 pLine1 = m_pLine - nStride2; |
| 873 pLine2 = m_pLine - nStride; | 873 pLine2 = m_pLine - nStride; |
| 874 line1 = (*pLine1++) << 4; | 874 line1 = (*pLine1++) << 4; |
| 875 line2 = *pLine2++; | 875 line2 = *pLine2++; |
| 876 CONTEXT = (line1 & 0x1e00) | ((line2 >> 1) & 0x01f8); | 876 CONTEXT = (line1 & 0x1e00) | ((line2 >> 1) & 0x01f8); |
| 877 for (cc = 0; cc < nLineBytes; cc++) { | 877 for (cc = 0; cc < nLineBytes; cc++) { |
| 878 line1 = (line1 << 8) | ((*pLine1++) << 4); | 878 line1 = (line1 << 8) | ((*pLine1++) << 4); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 940 CJBig2_Image* pImage, | 940 CJBig2_Image* pImage, |
| 941 CJBig2_ArithDecoder* pArithDecoder, | 941 CJBig2_ArithDecoder* pArithDecoder, |
| 942 JBig2ArithCtx* gbContext, | 942 JBig2ArithCtx* gbContext, |
| 943 IFX_Pause* pPause) { | 943 IFX_Pause* pPause) { |
| 944 FX_BOOL SLTP, bVal; | 944 FX_BOOL SLTP, bVal; |
| 945 uint32_t CONTEXT; | 945 uint32_t CONTEXT; |
| 946 uint32_t line1, line2, line3; | 946 uint32_t line1, line2, line3; |
| 947 for (uint32_t h = 0; h < GBH; h++) { | 947 for (uint32_t h = 0; h < GBH; h++) { |
| 948 if (TPGDON) { | 948 if (TPGDON) { |
| 949 SLTP = pArithDecoder->DECODE(&gbContext[0x0795]); | 949 SLTP = pArithDecoder->DECODE(&gbContext[0x0795]); |
| 950 LTP = LTP ^ SLTP; | 950 m_LTP = m_LTP ^ SLTP; |
| 951 } | 951 } |
| 952 if (LTP == 1) { | 952 if (m_LTP == 1) { |
| 953 pImage->copyLine(h, h - 1); | 953 pImage->copyLine(h, h - 1); |
| 954 } else { | 954 } else { |
| 955 line1 = pImage->getPixel(2, h - 2); | 955 line1 = pImage->getPixel(2, h - 2); |
| 956 line1 |= pImage->getPixel(1, h - 2) << 1; | 956 line1 |= pImage->getPixel(1, h - 2) << 1; |
| 957 line1 |= pImage->getPixel(0, h - 2) << 2; | 957 line1 |= pImage->getPixel(0, h - 2) << 2; |
| 958 line2 = pImage->getPixel(2, h - 1); | 958 line2 = pImage->getPixel(2, h - 1); |
| 959 line2 |= pImage->getPixel(1, h - 1) << 1; | 959 line2 |= pImage->getPixel(1, h - 1) << 1; |
| 960 line2 |= pImage->getPixel(0, h - 1) << 2; | 960 line2 |= pImage->getPixel(0, h - 1) << 2; |
| 961 line3 = 0; | 961 line3 = 0; |
| 962 for (uint32_t w = 0; w < GBW; w++) { | 962 for (uint32_t w = 0; w < GBW; w++) { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1001 if (!m_pLine) { | 1001 if (!m_pLine) { |
| 1002 m_pLine = pImage->m_pData; | 1002 m_pLine = pImage->m_pData; |
| 1003 } | 1003 } |
| 1004 nStride = pImage->m_nStride; | 1004 nStride = pImage->m_nStride; |
| 1005 nStride2 = nStride << 1; | 1005 nStride2 = nStride << 1; |
| 1006 nLineBytes = ((GBW + 7) >> 3) - 1; | 1006 nLineBytes = ((GBW + 7) >> 3) - 1; |
| 1007 nBitsLeft = GBW - (nLineBytes << 3); | 1007 nBitsLeft = GBW - (nLineBytes << 3); |
| 1008 for (; m_loopIndex < GBH; m_loopIndex++) { | 1008 for (; m_loopIndex < GBH; m_loopIndex++) { |
| 1009 if (TPGDON) { | 1009 if (TPGDON) { |
| 1010 SLTP = pArithDecoder->DECODE(&gbContext[0x00e5]); | 1010 SLTP = pArithDecoder->DECODE(&gbContext[0x00e5]); |
| 1011 LTP = LTP ^ SLTP; | 1011 m_LTP = m_LTP ^ SLTP; |
| 1012 } | 1012 } |
| 1013 if (LTP == 1) { | 1013 if (m_LTP == 1) { |
| 1014 pImage->copyLine(m_loopIndex, m_loopIndex - 1); | 1014 pImage->copyLine(m_loopIndex, m_loopIndex - 1); |
| 1015 } else { | 1015 } else { |
| 1016 if (m_loopIndex > 1) { | 1016 if (m_loopIndex > 1) { |
| 1017 pLine1 = m_pLine - nStride2; | 1017 pLine1 = m_pLine - nStride2; |
| 1018 pLine2 = m_pLine - nStride; | 1018 pLine2 = m_pLine - nStride; |
| 1019 line1 = (*pLine1++) << 1; | 1019 line1 = (*pLine1++) << 1; |
| 1020 line2 = *pLine2++; | 1020 line2 = *pLine2++; |
| 1021 CONTEXT = (line1 & 0x0380) | ((line2 >> 3) & 0x007c); | 1021 CONTEXT = (line1 & 0x0380) | ((line2 >> 3) & 0x007c); |
| 1022 for (cc = 0; cc < nLineBytes; cc++) { | 1022 for (cc = 0; cc < nLineBytes; cc++) { |
| 1023 line1 = (line1 << 8) | ((*pLine1++) << 1); | 1023 line1 = (line1 << 8) | ((*pLine1++) << 1); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1085 CJBig2_Image* pImage, | 1085 CJBig2_Image* pImage, |
| 1086 CJBig2_ArithDecoder* pArithDecoder, | 1086 CJBig2_ArithDecoder* pArithDecoder, |
| 1087 JBig2ArithCtx* gbContext, | 1087 JBig2ArithCtx* gbContext, |
| 1088 IFX_Pause* pPause) { | 1088 IFX_Pause* pPause) { |
| 1089 FX_BOOL SLTP, bVal; | 1089 FX_BOOL SLTP, bVal; |
| 1090 uint32_t CONTEXT; | 1090 uint32_t CONTEXT; |
| 1091 uint32_t line1, line2, line3; | 1091 uint32_t line1, line2, line3; |
| 1092 for (; m_loopIndex < GBH; m_loopIndex++) { | 1092 for (; m_loopIndex < GBH; m_loopIndex++) { |
| 1093 if (TPGDON) { | 1093 if (TPGDON) { |
| 1094 SLTP = pArithDecoder->DECODE(&gbContext[0x00e5]); | 1094 SLTP = pArithDecoder->DECODE(&gbContext[0x00e5]); |
| 1095 LTP = LTP ^ SLTP; | 1095 m_LTP = m_LTP ^ SLTP; |
| 1096 } | 1096 } |
| 1097 if (LTP == 1) { | 1097 if (m_LTP == 1) { |
| 1098 pImage->copyLine(m_loopIndex, m_loopIndex - 1); | 1098 pImage->copyLine(m_loopIndex, m_loopIndex - 1); |
| 1099 } else { | 1099 } else { |
| 1100 line1 = pImage->getPixel(1, m_loopIndex - 2); | 1100 line1 = pImage->getPixel(1, m_loopIndex - 2); |
| 1101 line1 |= pImage->getPixel(0, m_loopIndex - 2) << 1; | 1101 line1 |= pImage->getPixel(0, m_loopIndex - 2) << 1; |
| 1102 line2 = pImage->getPixel(1, m_loopIndex - 1); | 1102 line2 = pImage->getPixel(1, m_loopIndex - 1); |
| 1103 line2 |= pImage->getPixel(0, m_loopIndex - 1) << 1; | 1103 line2 |= pImage->getPixel(0, m_loopIndex - 1) << 1; |
| 1104 line3 = 0; | 1104 line3 = 0; |
| 1105 for (uint32_t w = 0; w < GBW; w++) { | 1105 for (uint32_t w = 0; w < GBW; w++) { |
| 1106 if (USESKIP && SKIP->getPixel(w, m_loopIndex)) { | 1106 if (USESKIP && SKIP->getPixel(w, m_loopIndex)) { |
| 1107 bVal = 0; | 1107 bVal = 0; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1145 int32_t nLineBytes, nBitsLeft, cc; | 1145 int32_t nLineBytes, nBitsLeft, cc; |
| 1146 if (!m_pLine) { | 1146 if (!m_pLine) { |
| 1147 m_pLine = pImage->m_pData; | 1147 m_pLine = pImage->m_pData; |
| 1148 } | 1148 } |
| 1149 nStride = pImage->m_nStride; | 1149 nStride = pImage->m_nStride; |
| 1150 nLineBytes = ((GBW + 7) >> 3) - 1; | 1150 nLineBytes = ((GBW + 7) >> 3) - 1; |
| 1151 nBitsLeft = GBW - (nLineBytes << 3); | 1151 nBitsLeft = GBW - (nLineBytes << 3); |
| 1152 for (; m_loopIndex < GBH; m_loopIndex++) { | 1152 for (; m_loopIndex < GBH; m_loopIndex++) { |
| 1153 if (TPGDON) { | 1153 if (TPGDON) { |
| 1154 SLTP = pArithDecoder->DECODE(&gbContext[0x0195]); | 1154 SLTP = pArithDecoder->DECODE(&gbContext[0x0195]); |
| 1155 LTP = LTP ^ SLTP; | 1155 m_LTP = m_LTP ^ SLTP; |
| 1156 } | 1156 } |
| 1157 if (LTP == 1) { | 1157 if (m_LTP == 1) { |
| 1158 pImage->copyLine(m_loopIndex, m_loopIndex - 1); | 1158 pImage->copyLine(m_loopIndex, m_loopIndex - 1); |
| 1159 } else { | 1159 } else { |
| 1160 if (m_loopIndex > 0) { | 1160 if (m_loopIndex > 0) { |
| 1161 pLine1 = m_pLine - nStride; | 1161 pLine1 = m_pLine - nStride; |
| 1162 line1 = *pLine1++; | 1162 line1 = *pLine1++; |
| 1163 CONTEXT = (line1 >> 1) & 0x03f0; | 1163 CONTEXT = (line1 >> 1) & 0x03f0; |
| 1164 for (cc = 0; cc < nLineBytes; cc++) { | 1164 for (cc = 0; cc < nLineBytes; cc++) { |
| 1165 line1 = (line1 << 8) | (*pLine1++); | 1165 line1 = (line1 << 8) | (*pLine1++); |
| 1166 cVal = 0; | 1166 cVal = 0; |
| 1167 for (k = 7; k >= 0; k--) { | 1167 for (k = 7; k >= 0; k--) { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1216 CJBig2_Image* pImage, | 1216 CJBig2_Image* pImage, |
| 1217 CJBig2_ArithDecoder* pArithDecoder, | 1217 CJBig2_ArithDecoder* pArithDecoder, |
| 1218 JBig2ArithCtx* gbContext, | 1218 JBig2ArithCtx* gbContext, |
| 1219 IFX_Pause* pPause) { | 1219 IFX_Pause* pPause) { |
| 1220 FX_BOOL SLTP, bVal; | 1220 FX_BOOL SLTP, bVal; |
| 1221 uint32_t CONTEXT; | 1221 uint32_t CONTEXT; |
| 1222 uint32_t line1, line2; | 1222 uint32_t line1, line2; |
| 1223 for (; m_loopIndex < GBH; m_loopIndex++) { | 1223 for (; m_loopIndex < GBH; m_loopIndex++) { |
| 1224 if (TPGDON) { | 1224 if (TPGDON) { |
| 1225 SLTP = pArithDecoder->DECODE(&gbContext[0x0195]); | 1225 SLTP = pArithDecoder->DECODE(&gbContext[0x0195]); |
| 1226 LTP = LTP ^ SLTP; | 1226 m_LTP = m_LTP ^ SLTP; |
| 1227 } | 1227 } |
| 1228 if (LTP == 1) { | 1228 if (m_LTP == 1) { |
| 1229 pImage->copyLine(m_loopIndex, m_loopIndex - 1); | 1229 pImage->copyLine(m_loopIndex, m_loopIndex - 1); |
| 1230 } else { | 1230 } else { |
| 1231 line1 = pImage->getPixel(1, m_loopIndex - 1); | 1231 line1 = pImage->getPixel(1, m_loopIndex - 1); |
| 1232 line1 |= pImage->getPixel(0, m_loopIndex - 1) << 1; | 1232 line1 |= pImage->getPixel(0, m_loopIndex - 1) << 1; |
| 1233 line2 = 0; | 1233 line2 = 0; |
| 1234 for (uint32_t w = 0; w < GBW; w++) { | 1234 for (uint32_t w = 0; w < GBW; w++) { |
| 1235 if (USESKIP && SKIP->getPixel(w, m_loopIndex)) { | 1235 if (USESKIP && SKIP->getPixel(w, m_loopIndex)) { |
| 1236 bVal = 0; | 1236 bVal = 0; |
| 1237 } else { | 1237 } else { |
| 1238 CONTEXT = line2; | 1238 CONTEXT = line2; |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 1250 } | 1250 } |
| 1251 if (pPause && pPause->NeedToPauseNow()) { | 1251 if (pPause && pPause->NeedToPauseNow()) { |
| 1252 m_loopIndex++; | 1252 m_loopIndex++; |
| 1253 m_ProssiveStatus = FXCODEC_STATUS_DECODE_TOBECONTINUE; | 1253 m_ProssiveStatus = FXCODEC_STATUS_DECODE_TOBECONTINUE; |
| 1254 return FXCODEC_STATUS_DECODE_TOBECONTINUE; | 1254 return FXCODEC_STATUS_DECODE_TOBECONTINUE; |
| 1255 } | 1255 } |
| 1256 } | 1256 } |
| 1257 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; | 1257 m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH; |
| 1258 return FXCODEC_STATUS_DECODE_FINISH; | 1258 return FXCODEC_STATUS_DECODE_FINISH; |
| 1259 } | 1259 } |
| OLD | NEW |