Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(682)

Side by Side Diff: xfa/src/fxbarcode/pdf417/BC_PDF417ScanningDecoder.h

Issue 1803723002: Move xfa/src up to xfa/. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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_
OLDNEW
« no previous file with comments | « xfa/src/fxbarcode/pdf417/BC_PDF417ResultMetadata.cpp ('k') | xfa/src/fxbarcode/pdf417/BC_PDF417ScanningDecoder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698