Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SkJpegBufferedSourceMgr Class Reference
Inheritance diagram for SkJpegBufferedSourceMgr:
SkJpegSourceMgr

Public Member Functions

 SkJpegBufferedSourceMgr (SkStream *stream, size_t bufferSize)
 
 ~SkJpegBufferedSourceMgr () override
 
void initSource (const uint8_t *&nextInputByte, size_t &bytesInBuffer) override
 
bool fillInputBuffer (const uint8_t *&nextInputByte, size_t &bytesInBuffer) override
 
bool skipInputBytes (size_t bytesToSkip, const uint8_t *&nextInputByte, size_t &bytesInBuffer) override
 
- Public Member Functions inherited from SkJpegSourceMgr
virtual ~SkJpegSourceMgr ()
 

Additional Inherited Members

- Static Public Member Functions inherited from SkJpegSourceMgr
static std::unique_ptr< SkJpegSourceMgrMake (SkStream *stream, size_t bufferSize=1024)
 
- Protected Member Functions inherited from SkJpegSourceMgr
 SkJpegSourceMgr (SkStream *stream)
 
- Protected Attributes inherited from SkJpegSourceMgr
SkStream *const fStream
 

Detailed Description

Definition at line 123 of file SkJpegSourceMgr.cpp.

Constructor & Destructor Documentation

◆ SkJpegBufferedSourceMgr()

SkJpegBufferedSourceMgr::SkJpegBufferedSourceMgr ( SkStream stream,
size_t  bufferSize 
)
inline

Definition at line 125 of file SkJpegSourceMgr.cpp.

125 : SkJpegSourceMgr(stream) {
126 fBuffer = SkData::MakeUninitialized(bufferSize);
127 }
static sk_sp< SkData > MakeUninitialized(size_t length)
Definition SkData.cpp:116

◆ ~SkJpegBufferedSourceMgr()

SkJpegBufferedSourceMgr::~SkJpegBufferedSourceMgr ( )
inlineoverride

Definition at line 128 of file SkJpegSourceMgr.cpp.

128{}

Member Function Documentation

◆ fillInputBuffer()

bool SkJpegBufferedSourceMgr::fillInputBuffer ( const uint8_t *&  nextInputByte,
size_t &  bytesInBuffer 
)
inlineoverridevirtual

Implements SkJpegSourceMgr.

Definition at line 134 of file SkJpegSourceMgr.cpp.

134 {
135 size_t bytesRead = fStream->read(fBuffer->writable_data(), fBuffer->size());
136 if (bytesRead == 0) {
137 // Fail if we read zero bytes (libjpeg will accept any non-zero number of bytes).
138 SkCodecPrintf("Hit end of file reading a buffered stream.\n");
139 return false;
140 }
141 nextInputByte = fBuffer->bytes();
142 bytesInBuffer = bytesRead;
143 return true;
144 }
#define SkCodecPrintf(...)
Definition SkCodecPriv.h:23
const uint8_t * bytes() const
Definition SkData.h:43
void * writable_data()
Definition SkData.h:52
size_t size() const
Definition SkData.h:30
SkStream *const fStream
virtual size_t read(void *buffer, size_t size)=0

◆ initSource()

void SkJpegBufferedSourceMgr::initSource ( const uint8_t *&  nextInputByte,
size_t &  bytesInBuffer 
)
inlineoverridevirtual

Implements SkJpegSourceMgr.

Definition at line 130 of file SkJpegSourceMgr.cpp.

130 {
131 nextInputByte = fBuffer->bytes();
132 bytesInBuffer = 0;
133 }

◆ skipInputBytes()

bool SkJpegBufferedSourceMgr::skipInputBytes ( size_t  bytesToSkip,
const uint8_t *&  nextInputByte,
size_t &  bytesInBuffer 
)
inlineoverridevirtual

Implements SkJpegSourceMgr.

Definition at line 145 of file SkJpegSourceMgr.cpp.

147 {
148 // Skip through the already-read (or already in memory) buffer.
149 if (bytesToSkip <= bytesInBuffer) {
150 nextInputByte += bytesToSkip;
151 bytesInBuffer -= bytesToSkip;
152 return true;
153 }
154 bytesToSkip -= bytesInBuffer;
155
156 // Fail if we skip past the end of the stream.
157 if (fStream->skip(bytesToSkip) != bytesToSkip) {
158 SkCodecPrintf("Failed to skip through buffered stream.\n");
159 return false;
160 }
161
162 bytesInBuffer = 0;
163 nextInputByte = fBuffer->bytes();
164 return true;
165 }
size_t skip(size_t size)
Definition SkStream.h:51

The documentation for this class was generated from the following file: