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 <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "core/fxcodec/codec/codec_int.h" | 10 #include "core/fxcodec/codec/codec_int.h" |
11 #include "core/fxcodec/include/fx_codec.h" | 11 #include "core/fxcodec/fx_codec.h" |
12 | 12 |
13 namespace { | 13 namespace { |
14 | 14 |
15 const uint8_t OneLeadPos[256] = { | 15 const uint8_t OneLeadPos[256] = { |
16 8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, | 16 8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, |
17 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 17 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
18 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, | 18 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, |
19 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 19 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
20 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 20 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
21 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 21 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
602 return nullptr; | 602 return nullptr; |
603 | 603 |
604 // Reject unreasonable large input. | 604 // Reject unreasonable large input. |
605 if (actual_width > kMaxImageDimension || actual_height > kMaxImageDimension) | 605 if (actual_width > kMaxImageDimension || actual_height > kMaxImageDimension) |
606 return nullptr; | 606 return nullptr; |
607 | 607 |
608 uint32_t pitch = (static_cast<uint32_t>(actual_width) + 31) / 32 * 4; | 608 uint32_t pitch = (static_cast<uint32_t>(actual_width) + 31) / 32 * 4; |
609 return new CCodec_FaxDecoder(src_buf, src_size, actual_width, actual_height, | 609 return new CCodec_FaxDecoder(src_buf, src_size, actual_width, actual_height, |
610 pitch, K, EndOfLine, EncodedByteAlign, BlackIs1); | 610 pitch, K, EndOfLine, EncodedByteAlign, BlackIs1); |
611 } | 611 } |
OLD | NEW |