diff options
author | Jane Liu <janeliulwq@google.com> | 2017-07-18 10:15:16 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-07-19 13:55:30 +0000 |
commit | 18ae06d9ae493276b3ddcd37eb19de7aeba1a0e8 (patch) | |
tree | cfe59580602328796f2931506a591f2cf655c479 /core/fpdfapi/page | |
parent | 0add284c1a2b3bee022bef34c7efddcb304f2e21 (diff) | |
download | pdfium-18ae06d9ae493276b3ddcd37eb19de7aeba1a0e8.tar.xz |
Basic APIs and tests for extracting attachments
1. Added API for extracting attachment properties and data.
* Expanded the embedder test to cover all the new APIs.
Bug=pdfium:174
Change-Id: I09bffd412410e9aea45faca442d2b72eefafef4e
Reviewed-on: https://pdfium-review.googlesource.com/7790
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fpdfapi/page')
-rw-r--r-- | core/fpdfapi/page/cpdf_streamparser.cpp | 35 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_streamparser.h | 9 |
2 files changed, 24 insertions, 20 deletions
diff --git a/core/fpdfapi/page/cpdf_streamparser.cpp b/core/fpdfapi/page/cpdf_streamparser.cpp index 37ab857816..964d600b3d 100644 --- a/core/fpdfapi/page/cpdf_streamparser.cpp +++ b/core/fpdfapi/page/cpdf_streamparser.cpp @@ -60,14 +60,17 @@ uint32_t DecodeAllScanlines(std::unique_ptr<CCodec_ScanlineDecoder> pDecoder, return pDecoder->GetSrcOffset(); } -uint32_t PDF_DecodeInlineStream(const uint8_t* src_buf, - uint32_t limit, - int width, - int height, - const CFX_ByteString& decoder, - CPDF_Dictionary* pParam, - uint8_t** dest_buf, - uint32_t* dest_size) { +} // namespace + +// Static +uint32_t CPDF_StreamParser::DecodeInlineStream(const uint8_t* src_buf, + uint32_t limit, + int width, + int height, + const CFX_ByteString& decoder, + CPDF_Dictionary* pParam, + uint8_t** dest_buf, + uint32_t* dest_size) { if (decoder == "CCITTFaxDecode" || decoder == "CCF") { std::unique_ptr<CCodec_ScanlineDecoder> pDecoder = FPDFAPI_CreateFaxDecoder(src_buf, limit, width, height, pParam); @@ -99,22 +102,14 @@ uint32_t PDF_DecodeInlineStream(const uint8_t* src_buf, return 0xFFFFFFFF; } -} // namespace - CPDF_StreamParser::CPDF_StreamParser(const uint8_t* pData, uint32_t dwSize) - : m_pBuf(pData), - m_Size(dwSize), - m_Pos(0), - m_pPool(nullptr) {} + : m_pBuf(pData), m_Size(dwSize), m_Pos(0), m_pPool(nullptr) {} CPDF_StreamParser::CPDF_StreamParser( const uint8_t* pData, uint32_t dwSize, const CFX_WeakPtr<CFX_ByteStringPool>& pPool) - : m_pBuf(pData), - m_Size(dwSize), - m_Pos(0), - m_pPool(pPool) {} + : m_pBuf(pData), m_Size(dwSize), m_Pos(0), m_pPool(pPool) {} CPDF_StreamParser::~CPDF_StreamParser() {} @@ -193,8 +188,8 @@ std::unique_ptr<CPDF_Stream> CPDF_StreamParser::ReadInlineStream( uint8_t* pIgnore = nullptr; uint32_t dwDestSize = OrigSize; dwStreamSize = - PDF_DecodeInlineStream(m_pBuf + m_Pos, m_Size - m_Pos, width, height, - Decoder, pParam, &pIgnore, &dwDestSize); + DecodeInlineStream(m_pBuf + m_Pos, m_Size - m_Pos, width, height, + Decoder, pParam, &pIgnore, &dwDestSize); FX_Free(pIgnore); if (static_cast<int>(dwStreamSize) < 0) return nullptr; diff --git a/core/fpdfapi/page/cpdf_streamparser.h b/core/fpdfapi/page/cpdf_streamparser.h index fdc418c634..9f9a8eaf12 100644 --- a/core/fpdfapi/page/cpdf_streamparser.h +++ b/core/fpdfapi/page/cpdf_streamparser.h @@ -21,6 +21,15 @@ class CPDF_StreamParser { public: enum SyntaxType { EndOfData, Number, Keyword, Name, Others }; + static uint32_t DecodeInlineStream(const uint8_t* src_buf, + uint32_t limit, + int width, + int height, + const CFX_ByteString& decoder, + CPDF_Dictionary* pParam, + uint8_t** dest_buf, + uint32_t* dest_size); + CPDF_StreamParser(const uint8_t* pData, uint32_t dwSize); CPDF_StreamParser(const uint8_t* pData, uint32_t dwSize, |