1 // Copyright 2016 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 CORE_FXCODEC_CODEC_CCODEC_SCANLINEDECODER_H_ 8 #define CORE_FXCODEC_CODEC_CCODEC_SCANLINEDECODER_H_ 9 10 #include "core/fxcrt/include/fx_system.h" 11 12 class IFX_Pause; 13 14 class CCodec_ScanlineDecoder { 15 public: 16 CCodec_ScanlineDecoder(); 17 virtual ~CCodec_ScanlineDecoder(); 18 19 const uint8_t* GetScanline(int line); 20 FX_BOOL SkipToScanline(int line, IFX_Pause* pPause); 21 GetWidth()22 int GetWidth() { return m_OutputWidth; } GetHeight()23 int GetHeight() { return m_OutputHeight; } CountComps()24 int CountComps() { return m_nComps; } GetBPC()25 int GetBPC() { return m_bpc; } 26 27 virtual uint32_t GetSrcOffset() = 0; 28 29 protected: 30 virtual FX_BOOL v_Rewind() = 0; 31 virtual uint8_t* v_GetNextLine() = 0; 32 33 uint8_t* ReadNextLine(); 34 35 int m_OrigWidth; 36 int m_OrigHeight; 37 int m_OutputWidth; 38 int m_OutputHeight; 39 int m_nComps; 40 int m_bpc; 41 uint32_t m_Pitch; 42 int m_NextLine; 43 uint8_t* m_pLastScanline; 44 }; 45 46 #endif // CORE_FXCODEC_CODEC_CCODEC_SCANLINEDECODER_H_ 47