Inherits DD::Image::Reader.
Public Member Functions | |
FileReader (Read *, int fd, const unsigned char *buffer, FILE_OFFSET buflength) | |
~FileReader () | |
int | lock (FILE_OFFSET offset, int min_length, int length) |
int | lock (FILE_OFFSET offset, int l) |
int | lock (FILE_OFFSET offset, unsigned l) |
const unsigned char & | byte (FILE_OFFSET n) const |
const unsigned char * | at (FILE_OFFSET n) const |
void | unlock () |
int | read (void *p, FILE_OFFSET offset, int min_, int max_) |
int | read (void *p, FILE_OFFSET offset, int l) |
int | read (void *p, FILE_OFFSET offset, unsigned l) |
bool | readAllLinesRequested () const |
Public Member Functions inherited from DD::Image::Reader | |
Reader (Read *iop) | |
virtual | ~Reader () |
virtual bool | supports_stereo () const |
virtual bool | fileStereo () const |
virtual bool | videosequence () const |
bool | aborted () const |
Allows a reader to check directly if its op has been aborted. | |
const Iop::Info & | info () const |
int | x () const |
int | y () const |
int | r () const |
int | t () const |
int | w () const |
int | h () const |
bool | is_constant () const |
int | clampx (int x) const |
int | clampy (int y) const |
const Format & | format () const |
const Format & | full_size_format () const |
int | ydirection () const |
ChannelMask | channels () const |
int | first_frame () const |
int | last_frame () const |
int | width () const |
int | height () const |
const char * | filename () const |
int | frame () const |
bool | premult () const |
Channel | channel (const char *name) |
const char * | channel_name (Channel c) |
void | format (const Format &f) |
void | full_size_format (const Format &f) |
virtual void | setLUT (LUT *lut) |
virtual LUT * | lut () |
virtual std::string | getDefaultColorspace () const |
ReaderImpl * | getImpl () |
Get private implementation. | |
ReaderImpl * | getImpl () const |
Related Functions | |
(Note that these are not member functions.) | |
typedef unsigned long | FILE_OFFSET |
Additional Inherited Members | |
Static Public Member Functions inherited from DD::Image::Reader | |
static U32 | lsb32 (const unsigned char *p) |
static U32 | msb32 (const unsigned char *p) |
static U16 | lsb16 (const unsigned char *p) |
static U16 | msb16 (const unsigned char *p) |
static void | flip (U16 *p, unsigned n) |
static void | flip (U32 *p, unsigned n) |
static void | fromlsb (U32 *p, unsigned n) |
static void | frommsb (U32 *p, unsigned n) |
static void | fromlsb (U16 *p, unsigned n) |
static void | frommsb (U16 *p, unsigned n) |
static void | setInPreviewMode (bool preview) |
static bool | inPreviewMode () |
Protected Types inherited from DD::Image::Reader | |
enum | PlanarPreference { ePlanarNever, ePlanarAllow, ePlanarAlways } |
Protected Member Functions inherited from DD::Image::Reader | |
virtual void | prefetchMetaData () |
virtual const MetaData::Bundle & | fetchMetaData (const char *key) |
virtual PlanarPreference | planarPreference () const |
virtual bool | useStripes () const |
virtual size_t | stripeHeight () const |
virtual PlanarI::PlaneID | getPlaneFromChannel (Channel chan) |
virtual void | open () |
virtual void | engine (int y, int x, int r, ChannelMask, Row &) |
virtual void | fetchPlane (ImagePlane &imagePlane) |
void | from_byte (Channel z, float *, const uchar *, const uchar *, int W, int delta=1) |
void | from_short (Channel z, float *, const U16 *, const U16 *, int W, int bits, int delta=1) |
void | from_float (Channel z, float *, const float *, const float *, int W, int delta=1) |
void | set_info (int width, int height, int depth, double aspect=0) |
Protected Attributes inherited from DD::Image::Reader | |
Read * | iop |
LUT * | lut_ |
Iop::Info | info_ |
Reader subclass to read Unix files. This Reader subclass will read Unix files as blocks of memory and tries to be somewhat multi-threaded and have as little overhead as possible. This is used by most of the file formats.
FileReader::FileReader | ( | Read * | i, |
int | fd, | ||
const unsigned char * | buffer, | ||
FILE_OFFSET | buflength | ||
) |
The constructor takes the block of memory already read by Read and preserves it.
FileReader::~FileReader | ( | ) |
The destructor closes the file.
int FileReader::lock | ( | FILE_OFFSET | offset, |
int | min_length, | ||
int | length | ||
) |
lock() makes byte(n) work for any value between offset and offset+length. All bytes between the last one in the file and length are set to zero. If less than min_length bytes are available it produces an error. You must call unlock exactly once to free the block (and cannot call lock() again until then).
References DD::Image::end(), DD::Image::Reader::filename(), DD::Image::Lock::lock(), DD::Image::Lock::unlock(), and DD::Image::SignalLock::wait().
|
inline |
|
inline |
|
inline |
After calling lock() you can access any byte in the locked range by calling this fast inline function. Attempts to access bytes outside the currently lock()'ed range will return garbage.
To get 16-bit unsigned quantities, use msb16(at(n)) or lsb16(at(n)). To get 32-bit unsigned quantities use msb32(at(n)) or lsb32(at(n)).
|
inline |
Return a pointer to an object in the locked region. This will work as long as you know the object does not cross a "page boundary", in the current version these pages are 32K in size.
void FileReader::unlock | ( | ) |
Call this when you are done using byte() to call a locked region of the file. This will allow this or other threads to lock a different region.
References DD::Image::Lock::lock(), DD::Image::SignalLock::signal(), and DD::Image::Lock::unlock().
int FileReader::read | ( | void * | p, |
FILE_OFFSET | offset, | ||
int | min_, | ||
int | max_ | ||
) |
Read directly from the file into some memory of your own. If less than length bytes are available the block is padded with zero. The number of bytes read (0 if there is an error) is returned. If less than min_length are available it produces an error.
References DD::Image::Lock::lock(), and DD::Image::Lock::unlock().
|
inline |
|
inline |
bool FileReader::readAllLinesRequested | ( | ) | const |
Whether reading all lines (as opposed to reading individual scanlines) has been requested. For performance reasons, it is sometimes preferable to read from the input file in larger chunks. When this function returns true, the user has indicated that they would prefer to read all of the requested lines from the file in one go. It's then up to the individual FileReader whether it chooses to obey this request or not.
References DD::Image::Op::eOpGraph, DD::Image::Op::nodeContext(), and DD::Image::Op::outputContext().
|
related |
This type may need to be replaced on 64-bit file systems.
©2019 The Foundry Visionmongers, Ltd. All Rights Reserved. |