Grok 10.0.5
|
#include <BufferedStream.h>
Public Member Functions | |
BufferedStream (uint8_t *buffer, size_t buffer_size, bool l_is_input) | |
grk_stream * | getWrapper (void) |
void | setUserData (void *data, grk_stream_free_user_data_fn freeUserDataFun) |
void * | getUserData (void) |
void | setUserDataLength (uint64_t len) |
uint32_t | getStatus (void) |
void | setReadFunction (grk_stream_read_fn fn) |
void | setZeroCopyReadFunction (grk_stream_zero_copy_read_fn fn) |
void | setWriteFunction (grk_stream_write_fn fn) |
void | setSeekFunction (grk_stream_seek_fn fn) |
size_t | read (uint8_t *buffer, size_t p_size) |
Reads some bytes from the stream. More... | |
bool | writeShort (uint16_t value) |
bool | write24 (uint32_t value) |
bool | writeInt (uint32_t value) |
bool | write64 (uint64_t value) |
bool | writeByte (uint8_t value) |
size_t | writeBytes (const uint8_t *buffer, size_t p_size) |
Write bytes to stream (no correction for endian!). More... | |
bool | flush () |
Flush stream to disk. More... | |
bool | skip (int64_t p_size) |
Skip bytes in stream. More... | |
uint64_t | tell (void) |
Tells byte offset of stream (similar to ftell). More... | |
uint64_t | numBytesLeft (void) |
Get the number of bytes left before end of stream. More... | |
bool | seek (uint64_t offset) |
Seek bytes from the stream (absolute) More... | |
bool | hasSeek () |
Check if stream is seekable. More... | |
bool | supportsZeroCopy () |
uint8_t * | getZeroCopyPtr () |
void | setFormat (GRK_CODEC_FORMAT format) |
GRK_CODEC_FORMAT | getFormat (void) |
Static Public Member Functions | |
static BufferedStream * | getImpl (grk_stream *stream) |
Public Attributes | |
friend | GrkObjectWrapperImpl< BufferedStream > |
Private Member Functions | |
~BufferedStream () | |
bool | write_skip (int64_t p_size) |
Skip bytes in write stream. More... | |
bool | read_skip (int64_t p_size) |
Skip bytes in read stream. More... | |
bool | read_seek (uint64_t offset) |
Absolute seek in read stream. More... | |
bool | write_seek (uint64_t offset) |
Absolute seek in write stream. More... | |
void | writeIncrement (size_t p_size) |
template<typename TYPE > | |
bool | write (TYPE value, uint8_t numBytes) |
void | invalidate_buffer () |
bool | isMemStream () |
Private Attributes | |
grk_object | obj |
void * | user_data_ |
user data More... | |
grk_stream_free_user_data_fn | free_user_data_fn_ |
Pointer to function to free user_data_ (nullptr at initialization) when destroying the stream. More... | |
uint64_t | user_data_length_ |
User data length. More... | |
grk_stream_read_fn | read_fn_ |
Pointer to actual read function (nullptr at initialization). More... | |
grk_stream_zero_copy_read_fn | zero_copy_read_fn_ |
Pointer to actual zero copy read function (nullptr at initialization). More... | |
grk_stream_write_fn | write_fn_ |
Pointer to actual write function (nullptr at initialization). More... | |
grk_stream_seek_fn | seek_fn_ |
Pointer to actual seek function (if available). More... | |
uint32_t | status_ |
Stream status flags. More... | |
grk_buf8 * | buf_ |
size_t | buffered_bytes_ |
size_t | read_bytes_seekable_ |
uint64_t | stream_offset_ |
GRK_CODEC_FORMAT | format_ |
grk::BufferedStream::BufferedStream | ( | uint8_t * | buffer, |
size_t | buffer_size, | ||
bool | l_is_input | ||
) |
References buf_, obj, and _grk_object::wrapper.
|
private |
References buf_, free_user_data_fn_, and user_data_.
bool grk::BufferedStream::flush | ( | void | ) |
Flush stream to disk.
References grk::grk_buf< T, A >::buf, buf_, buffered_bytes_, grk::grk_buf< T, A >::currPtr(), grk::GRK_ERROR(), GROK_STREAM_STATUS_ERROR, grk::grk_buf< T, A >::incrementOffset(), isMemStream(), grk::grk_buf< T, A >::offset, read_bytes_seekable_, status_, user_data_, and write_fn_.
Referenced by write(), grk::CodeStreamCompress::write_eoc(), write_seek(), and writeBytes().
GRK_CODEC_FORMAT grk::BufferedStream::getFormat | ( | void | ) |
References format_.
|
static |
References _grk_object::wrapper.
Referenced by grk::get_mem_stream_offset(), and grk::grk_stream_set_zero_copy_read_function().
uint32_t grk::BufferedStream::getStatus | ( | void | ) |
References status_.
void * grk::BufferedStream::getUserData | ( | void | ) |
References user_data_.
grk_stream * grk::BufferedStream::getWrapper | ( | void | ) |
References obj.
uint8_t * grk::BufferedStream::getZeroCopyPtr | ( | ) |
References buf_, and grk::grk_buf< T, A >::currPtr().
Referenced by grk::TileProcessor::cacheTilePartPackets().
bool grk::BufferedStream::hasSeek | ( | void | ) |
Check if stream is seekable.
References seek_fn_.
|
private |
References buf_, buffered_bytes_, GROK_STREAM_STATUS_INPUT, grk::grk_buf< T, A >::offset, read_bytes_seekable_, and status_.
Referenced by read(), read_seek(), and write_seek().
|
private |
References buf_, and grk::grk_buf< T, A >::owns_data.
Referenced by flush(), supportsZeroCopy(), write(), write_seek(), writeBytes(), and writeIncrement().
uint64_t grk::BufferedStream::numBytesLeft | ( | void | ) |
Get the number of bytes left before end of stream.
References stream_offset_, and user_data_length_.
Referenced by grk::TileProcessor::cacheTilePartPackets(), grk::CodeStreamDecompress::endOfCodeStream(), grk::CodeStreamDecompress::parseTileParts(), grk::CodeStreamDecompress::process_marker(), grk::FileFormatDecompress::read_box_hdr(), and grk::TileProcessor::setTilePartDataLength().
size_t grk::BufferedStream::read | ( | uint8_t * | buffer, |
size_t | p_size | ||
) |
Reads some bytes from the stream.
buffer | pointer to the data buffer that will receive the data. |
p_size | number of bytes to read. |
References grk::grk_buf< T, A >::buf, buf_, buffered_bytes_, grk::grk_buf< T, A >::currPtr(), grk::GRK_ERROR(), GROK_STREAM_STATUS_END, grk::grk_buf< T, A >::incrementOffset(), invalidate_buffer(), grk::grk_buf< T, A >::len, read_bytes_seekable_, read_fn_, status_, stream_offset_, supportsZeroCopy(), user_data_, and user_data_length_.
Referenced by grk::TileProcessor::cacheTilePartPackets(), grk::CodeStreamDecompress::process_marker(), grk::FileFormatDecompress::read_box_hdr(), grk::CodeStreamDecompress::read_short(), and grk::CodeStreamDecompress::read_soc().
|
private |
Absolute seek in read stream.
offset | absolute offset |
References grk::grk_buf< T, A >::buf, buf_, buffered_bytes_, grk::grk_buf< T, A >::currPtr(), GROK_STREAM_STATUS_END, GROK_STREAM_STATUS_ERROR, grk::grk_buf< T, A >::incrementOffset(), invalidate_buffer(), read_bytes_seekable_, seek_fn_, status_, stream_offset_, user_data_, and user_data_length_.
Referenced by read_skip(), and seek().
|
private |
Skip bytes in read stream.
p_size | the number of bytes to skip. |
References read_seek(), and stream_offset_.
Referenced by skip().
bool grk::BufferedStream::seek | ( | uint64_t | offset | ) |
Seek bytes from the stream (absolute)
offset | the number of bytes to skip. |
References GROK_STREAM_STATUS_INPUT, read_seek(), status_, and write_seek().
Referenced by grk::TileLengthMarkers::seek(), grk::CodeStreamInfo::seekFirstTilePart(), grk::SOTMarker::write_psot(), and grk::TileLengthMarkers::writeEnd().
void grk::BufferedStream::setFormat | ( | GRK_CODEC_FORMAT | format | ) |
References hwy::format, and format_.
void grk::BufferedStream::setReadFunction | ( | grk_stream_read_fn | fn | ) |
References read_fn_.
void grk::BufferedStream::setSeekFunction | ( | grk_stream_seek_fn | fn | ) |
References seek_fn_.
void grk::BufferedStream::setUserData | ( | void * | data, |
grk_stream_free_user_data_fn | freeUserDataFun | ||
) |
References free_user_data_fn_, and user_data_.
void grk::BufferedStream::setUserDataLength | ( | uint64_t | len | ) |
References user_data_length_.
void grk::BufferedStream::setWriteFunction | ( | grk_stream_write_fn | fn | ) |
References write_fn_.
void grk::BufferedStream::setZeroCopyReadFunction | ( | grk_stream_zero_copy_read_fn | fn | ) |
References zero_copy_read_fn_.
bool grk::BufferedStream::skip | ( | int64_t | p_size | ) |
Skip bytes in stream.
p_size | the number of bytes to skip. |
References GROK_STREAM_STATUS_INPUT, read_skip(), status_, and write_skip().
Referenced by grk::CodeStreamDecompress::parseTileParts(), and grk::TileLengthMarkers::writeBegin().
bool grk::BufferedStream::supportsZeroCopy | ( | ) |
References GROK_STREAM_STATUS_INPUT, isMemStream(), and status_.
Referenced by grk::TileProcessor::cacheTilePartPackets(), and read().
uint64_t grk::BufferedStream::tell | ( | void | ) |
Tells byte offset of stream (similar to ftell).
References stream_offset_.
Referenced by grk::CodeStreamCompress::cacheEndOfHeader(), grk::TileProcessor::cacheTilePartPackets(), grk::T2Compress::compressPacket(), grk::CodeStreamDecompress::nextTLM(), grk::CodeStreamDecompress::parseTileParts(), grk::CodeStreamDecompress::read_soc(), grk::CodeStreamDecompress::read_unk(), grk::CodeStreamDecompress::readHeaderProcedureImpl(), grk::TileLengthMarkers::seek(), grk::CodeStreamCompress::updateRates(), grk::SOTMarker::write_psot(), grk::TileLengthMarkers::writeBegin(), grk::TileLengthMarkers::writeEnd(), and grk::CodeStreamCompress::writeTilePart().
|
private |
bool grk::BufferedStream::write24 | ( | uint32_t | value | ) |
Referenced by grk::CodeStreamCompress::write_mcc_record().
bool grk::BufferedStream::write64 | ( | uint64_t | value | ) |
|
private |
Absolute seek in write stream.
offset | absolute offset |
References buf_, flush(), GROK_STREAM_STATUS_ERROR, invalidate_buffer(), isMemStream(), grk::grk_buf< T, A >::offset, seek_fn_, status_, stream_offset_, and user_data_.
Referenced by seek(), and write_skip().
|
private |
Skip bytes in write stream.
p_size | the number of bytes to skip. |
References stream_offset_, and write_seek().
Referenced by skip().
bool grk::BufferedStream::writeByte | ( | uint8_t | value | ) |
References writeBytes().
Referenced by grk::T2Compress::compressPacket(), grk::SIZMarker::write(), grk::CodeStreamCompress::write_cbd(), grk::CodeStreamCompress::write_coc(), grk::CodeStreamCompress::write_cod(), grk::CodeStreamCompress::write_mcc_record(), grk::CodeStreamCompress::write_mco(), grk::CodeStreamCompress::write_qcc(), grk::CodeStreamCompress::write_rgn(), grk::CodeStreamCompress::write_SPCod_SPCoc(), grk::CodeStreamCompress::write_SQcd_SQcc(), grk::TileLengthMarkers::writeBegin(), grk::BitIO::writeByte(), and grk::CodeStreamCompress::writePoc().
size_t grk::BufferedStream::writeBytes | ( | const uint8_t * | buffer, |
size_t | p_size | ||
) |
Write bytes to stream (no correction for endian!).
buffer | pointer to the data buffer holds the data to be written. |
p_size | number of bytes to write. |
References buf_, buffered_bytes_, grk::grk_buf< T, A >::currPtr(), flush(), GROK_STREAM_STATUS_ERROR, isMemStream(), grk::grk_buf< T, A >::len, grk::grk_buf< T, A >::offset, status_, stream_offset_, user_data_, write_fn_, and writeIncrement().
Referenced by grk::T2Compress::compressPacket(), grk::PLMarkerMgr::write(), grk::CodeStreamCompress::write_com(), grk::CodeStreamCompress::write_mct_record(), and writeByte().
|
private |
References buf_, buffered_bytes_, grk::grk_buf< T, A >::incrementOffset(), isMemStream(), and stream_offset_.
Referenced by write(), and writeBytes().
bool grk::BufferedStream::writeInt | ( | uint32_t | value | ) |
bool grk::BufferedStream::writeShort | ( | uint16_t | value | ) |
Referenced by grk::SIZMarker::write(), ojph::QuantizerOJPH::write(), openhtj2k::QuantizerOpenHTJ2K::write(), grk::PLMarkerMgr::write(), grk::CodeStreamCompress::write_cbd(), grk::CodeStreamCompress::write_coc(), grk::CodeStreamCompress::write_cod(), grk::CodeStreamCompress::write_com(), grk::CodeStreamCompress::write_eoc(), grk::CodeStreamCompress::write_mcc_record(), grk::CodeStreamCompress::write_mco(), grk::CodeStreamCompress::write_mct_record(), grk::CodeStreamCompress::write_qcc(), grk::CodeStreamCompress::write_qcd(), grk::CodeStreamCompress::write_rgn(), grk::CodeStreamCompress::write_soc(), grk::CodeStreamCompress::write_SQcd_SQcc(), grk::TileLengthMarkers::writeBegin(), grk::TileLengthMarkers::writeEnd(), grk::CodeStreamCompress::writePoc(), and grk::TileProcessor::writeTilePartT2().
|
private |
Referenced by BufferedStream(), flush(), getZeroCopyPtr(), invalidate_buffer(), isMemStream(), read(), read_seek(), write(), write_seek(), writeBytes(), writeIncrement(), and ~BufferedStream().
|
private |
Referenced by flush(), invalidate_buffer(), read(), read_seek(), write(), writeBytes(), and writeIncrement().
|
private |
Referenced by getFormat(), and setFormat().
|
private |
Pointer to function to free user_data_ (nullptr at initialization) when destroying the stream.
If pointer is nullptr the function is not called and the user_data_ is not freed (even if it isn't nullptr).
Referenced by setUserData(), and ~BufferedStream().
friend grk::BufferedStream::GrkObjectWrapperImpl< BufferedStream > |
|
private |
Referenced by BufferedStream(), and getWrapper().
|
private |
Referenced by flush(), invalidate_buffer(), read(), and read_seek().
|
private |
Pointer to actual read function (nullptr at initialization).
Referenced by read(), and setReadFunction().
|
private |
Pointer to actual seek function (if available).
Referenced by hasSeek(), read_seek(), setSeekFunction(), write(), and write_seek().
|
private |
Stream status flags.
Referenced by flush(), getStatus(), invalidate_buffer(), read(), read_seek(), seek(), skip(), supportsZeroCopy(), write(), write_seek(), and writeBytes().
|
private |
Referenced by numBytesLeft(), read(), read_seek(), read_skip(), tell(), write(), write_seek(), write_skip(), writeBytes(), and writeIncrement().
|
private |
user data
Referenced by flush(), getUserData(), read(), read_seek(), setUserData(), write(), write_seek(), writeBytes(), and ~BufferedStream().
|
private |
User data length.
Currently set to size of file for file read stream, and size of buffer for buffer read/write stream
Referenced by numBytesLeft(), read(), read_seek(), and setUserDataLength().
|
private |
Pointer to actual write function (nullptr at initialization).
Referenced by flush(), setWriteFunction(), and writeBytes().
|
private |
Pointer to actual zero copy read function (nullptr at initialization).
Referenced by setZeroCopyReadFunction().