| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 // Copyright 2014 PDFium Authors. All rights reserved. |  | 
| 2 // Use of this source code is governed by a BSD-style license that can be |  | 
| 3 // found in the LICENSE file. |  | 
| 4 |  | 
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |  | 
| 6 |  | 
| 7 #ifndef XFA_SRC_FXBARCODE_PDF417_BC_PDF417SCANNINGDECODER_H_ |  | 
| 8 #define XFA_SRC_FXBARCODE_PDF417_BC_PDF417SCANNINGDECODER_H_ |  | 
| 9 |  | 
| 10 class CBC_CommonDecoderResult; |  | 
| 11 class CBC_CommonBitMatrix; |  | 
| 12 class CBC_Codeword; |  | 
| 13 class CBC_BoundingBox; |  | 
| 14 class CBC_ResultPoint; |  | 
| 15 class CBC_BarcodeMetadata; |  | 
| 16 class CBC_DetectionResult; |  | 
| 17 class CBC_DetectionResultRowIndicatorColumn; |  | 
| 18 |  | 
| 19 class CBC_PDF417ScanningDecoder { |  | 
| 20  public: |  | 
| 21   CBC_PDF417ScanningDecoder(); |  | 
| 22   virtual ~CBC_PDF417ScanningDecoder(); |  | 
| 23   static void Initialize(); |  | 
| 24   static void Finalize(); |  | 
| 25   static CBC_CommonDecoderResult* decode(CBC_CommonBitMatrix* image, |  | 
| 26                                          CBC_ResultPoint* imageTopLeft, |  | 
| 27                                          CBC_ResultPoint* imageBottomLeft, |  | 
| 28                                          CBC_ResultPoint* imageTopRight, |  | 
| 29                                          CBC_ResultPoint* imageBottomRight, |  | 
| 30                                          int32_t minCodewordWidth, |  | 
| 31                                          int32_t maxCodewordWidth, |  | 
| 32                                          int32_t& e); |  | 
| 33   static CFX_ByteString toString(CFX_PtrArray* barcodeMatrix); |  | 
| 34 |  | 
| 35  private: |  | 
| 36   static int32_t CODEWORD_SKEW_SIZE; |  | 
| 37   static int32_t MAX_ERRORS; |  | 
| 38   static int32_t MAX_EC_CODEWORDS; |  | 
| 39   static CBC_PDF417ECErrorCorrection* errorCorrection; |  | 
| 40   static CBC_DetectionResult* merge( |  | 
| 41       CBC_DetectionResultRowIndicatorColumn* leftRowIndicatorColumn, |  | 
| 42       CBC_DetectionResultRowIndicatorColumn* rightRowIndicatorColumn, |  | 
| 43       int32_t& e); |  | 
| 44   static CBC_BoundingBox* adjustBoundingBox( |  | 
| 45       CBC_DetectionResultRowIndicatorColumn* rowIndicatorColumn, |  | 
| 46       int32_t& e); |  | 
| 47   static int32_t getMax(CFX_Int32Array& values); |  | 
| 48   static CBC_BarcodeMetadata* getBarcodeMetadata( |  | 
| 49       CBC_DetectionResultRowIndicatorColumn* leftRowIndicatorColumn, |  | 
| 50       CBC_DetectionResultRowIndicatorColumn* rightRowIndicatorColumn); |  | 
| 51   static CBC_DetectionResultRowIndicatorColumn* getRowIndicatorColumn( |  | 
| 52       CBC_CommonBitMatrix* image, |  | 
| 53       CBC_BoundingBox* boundingBox, |  | 
| 54       CBC_ResultPoint startPoint, |  | 
| 55       FX_BOOL leftToRight, |  | 
| 56       int32_t minCodewordWidth, |  | 
| 57       int32_t maxCodewordWidth); |  | 
| 58   static void adjustCodewordCount(CBC_DetectionResult* detectionResult, |  | 
| 59                                   CFX_PtrArray* barcodeMatrix, |  | 
| 60                                   int32_t& e); |  | 
| 61   static CBC_CommonDecoderResult* createDecoderResult( |  | 
| 62       CBC_DetectionResult* detectionResult, |  | 
| 63       int32_t& e); |  | 
| 64   static CBC_CommonDecoderResult* createDecoderResultFromAmbiguousValues( |  | 
| 65       int32_t ecLevel, |  | 
| 66       CFX_Int32Array& codewords, |  | 
| 67       CFX_Int32Array& erasureArray, |  | 
| 68       CFX_Int32Array& ambiguousIndexes, |  | 
| 69       CFX_PtrArray& ambiguousIndexValues, |  | 
| 70       int32_t& e); |  | 
| 71   static CFX_PtrArray* createBarcodeMatrix( |  | 
| 72       CBC_DetectionResult* detectionResult); |  | 
| 73   static FX_BOOL isValidBarcodeColumn(CBC_DetectionResult* detectionResult, |  | 
| 74                                       int32_t barcodeColumn); |  | 
| 75   static int32_t getStartColumn(CBC_DetectionResult* detectionResult, |  | 
| 76                                 int32_t barcodeColumn, |  | 
| 77                                 int32_t imageRow, |  | 
| 78                                 FX_BOOL leftToRight); |  | 
| 79   static CBC_Codeword* detectCodeword(CBC_CommonBitMatrix* image, |  | 
| 80                                       int32_t minColumn, |  | 
| 81                                       int32_t maxColumn, |  | 
| 82                                       FX_BOOL leftToRight, |  | 
| 83                                       int32_t startColumn, |  | 
| 84                                       int32_t imageRow, |  | 
| 85                                       int32_t minCodewordWidth, |  | 
| 86                                       int32_t maxCodewordWidth); |  | 
| 87   static CFX_Int32Array* getModuleBitCount(CBC_CommonBitMatrix* image, |  | 
| 88                                            int32_t minColumn, |  | 
| 89                                            int32_t maxColumn, |  | 
| 90                                            FX_BOOL leftToRight, |  | 
| 91                                            int32_t startColumn, |  | 
| 92                                            int32_t imageRow); |  | 
| 93   static int32_t getNumberOfECCodeWords(int32_t barcodeECLevel); |  | 
| 94   static int32_t adjustCodewordStartColumn(CBC_CommonBitMatrix* image, |  | 
| 95                                            int32_t minColumn, |  | 
| 96                                            int32_t maxColumn, |  | 
| 97                                            FX_BOOL leftToRight, |  | 
| 98                                            int32_t codewordStartColumn, |  | 
| 99                                            int32_t imageRow); |  | 
| 100   static FX_BOOL checkCodewordSkew(int32_t codewordSize, |  | 
| 101                                    int32_t minCodewordWidth, |  | 
| 102                                    int32_t maxCodewordWidth); |  | 
| 103   static CBC_CommonDecoderResult* decodeCodewords(CFX_Int32Array& codewords, |  | 
| 104                                                   int32_t ecLevel, |  | 
| 105                                                   CFX_Int32Array& erasures, |  | 
| 106                                                   int32_t& e); |  | 
| 107   static int32_t correctErrors(CFX_Int32Array& codewords, |  | 
| 108                                CFX_Int32Array& erasures, |  | 
| 109                                int32_t numECCodewords, |  | 
| 110                                int32_t& e); |  | 
| 111   static void verifyCodewordCount(CFX_Int32Array& codewords, |  | 
| 112                                   int32_t numECCodewords, |  | 
| 113                                   int32_t& e); |  | 
| 114   static CFX_Int32Array* getBitCountForCodeword(int32_t codeword); |  | 
| 115   static int32_t getCodewordBucketNumber(int32_t codeword); |  | 
| 116   static int32_t getCodewordBucketNumber(CFX_Int32Array& moduleBitCount); |  | 
| 117 }; |  | 
| 118 |  | 
| 119 #endif  // XFA_SRC_FXBARCODE_PDF417_BC_PDF417SCANNINGDECODER_H_ |  | 
| OLD | NEW | 
|---|