summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/fpdf_parser_decode.h
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2016-10-04 11:55:50 -0700
committerCommit bot <commit-bot@chromium.org>2016-10-04 11:55:51 -0700
commit488b7ad845d6de212d89cd957303b294ecfa5922 (patch)
treeadfdd2327724bd3597a1a7614bbe29a01a0c8dc0 /core/fpdfapi/parser/fpdf_parser_decode.h
parent41872fa5ac7448a50f66ad56d7bde8d1aa77db4b (diff)
downloadpdfium-488b7ad845d6de212d89cd957303b294ecfa5922.tar.xz
Move core/fpdfapi/fpdf_parser to core/fpdfapi/parser
BUG=pdfium:603 Review-Url: https://codereview.chromium.org/2392603004
Diffstat (limited to 'core/fpdfapi/parser/fpdf_parser_decode.h')
-rw-r--r--core/fpdfapi/parser/fpdf_parser_decode.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/core/fpdfapi/parser/fpdf_parser_decode.h b/core/fpdfapi/parser/fpdf_parser_decode.h
new file mode 100644
index 0000000000..3a5d532831
--- /dev/null
+++ b/core/fpdfapi/parser/fpdf_parser_decode.h
@@ -0,0 +1,77 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef CORE_FPDFAPI_PARSER_FPDF_PARSER_DECODE_H_
+#define CORE_FPDFAPI_PARSER_FPDF_PARSER_DECODE_H_
+
+#include "core/fxcrt/fx_basic.h"
+
+class CPDF_Dictionary;
+
+// Indexed by 8-bit char code, contains unicode code points.
+extern const uint16_t PDFDocEncoding[256];
+
+CFX_ByteString PDF_NameDecode(const CFX_ByteStringC& orig);
+CFX_ByteString PDF_NameDecode(const CFX_ByteString& orig);
+CFX_ByteString PDF_NameEncode(const CFX_ByteString& orig);
+CFX_ByteString PDF_EncodeString(const CFX_ByteString& src,
+ FX_BOOL bHex = FALSE);
+CFX_WideString PDF_DecodeText(const uint8_t* pData, uint32_t size);
+CFX_WideString PDF_DecodeText(const CFX_ByteString& bstr);
+CFX_ByteString PDF_EncodeText(const FX_WCHAR* pString, int len = -1);
+CFX_ByteString PDF_EncodeText(const CFX_WideString& str);
+
+bool FlateEncode(const uint8_t* src_buf,
+ uint32_t src_size,
+ uint8_t** dest_buf,
+ uint32_t* dest_size);
+
+// This used to have more parameters like the predictor and bpc, but there was
+// only one caller, so the interface has been simplified, the values are hard
+// coded, and dead code has been removed.
+bool PngEncode(const uint8_t* src_buf,
+ uint32_t src_size,
+ uint8_t** dest_buf,
+ uint32_t* dest_size);
+
+uint32_t FlateDecode(const uint8_t* src_buf,
+ uint32_t src_size,
+ uint8_t*& dest_buf,
+ uint32_t& dest_size);
+uint32_t RunLengthDecode(const uint8_t* src_buf,
+ uint32_t src_size,
+ uint8_t*& dest_buf,
+ uint32_t& dest_size);
+
+// Public for testing.
+uint32_t A85Decode(const uint8_t* src_buf,
+ uint32_t src_size,
+ uint8_t*& dest_buf,
+ uint32_t& dest_size);
+// Public for testing.
+uint32_t HexDecode(const uint8_t* src_buf,
+ uint32_t src_size,
+ uint8_t*& dest_buf,
+ uint32_t& dest_size);
+// Public for testing.
+uint32_t FPDFAPI_FlateOrLZWDecode(FX_BOOL bLZW,
+ const uint8_t* src_buf,
+ uint32_t src_size,
+ CPDF_Dictionary* pParams,
+ uint32_t estimated_size,
+ uint8_t*& dest_buf,
+ uint32_t& dest_size);
+FX_BOOL PDF_DataDecode(const uint8_t* src_buf,
+ uint32_t src_size,
+ const CPDF_Dictionary* pDict,
+ uint8_t*& dest_buf,
+ uint32_t& dest_size,
+ CFX_ByteString& ImageEncoding,
+ CPDF_Dictionary*& pImageParms,
+ uint32_t estimated_size,
+ FX_BOOL bImageAcc);
+
+#endif // CORE_FPDFAPI_PARSER_FPDF_PARSER_DECODE_H_