MCPcopy Create free account
hub / github.com/FastLED/FastLED / readFrameAt

Method readFrameAt

src/fl/video/pixel_stream.cpp.hpp:143–165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141}
142
143bool PixelStream::readFrameAt(fl::u32 frameNumber, Frame *frame) {
144 if (mType == kStreaming) {
145 // Streaming handle doesn't support seeking
146 FL_DBG("Streaming handle doesn't support seeking");
147 return false;
148 }
149 fl::size_t frameBytes = static_cast<fl::size_t>(frameNumber)
150 * static_cast<fl::size_t>(mbytesPerFrame);
151 mHandle->seek(mPayloadOffset + frameBytes);
152 if (mHandle->bytesLeft() == 0) {
153 return false;
154 }
155 size_t read =
156 mHandle->readRGB8(frame->rgb()) * 3;
157
158 bool ok = int(read) == mbytesPerFrame;
159 if (!ok) {
160 DBG("readFrameAt failed - read: "
161 << read << ", mbytesPerFrame: " << mbytesPerFrame << ", frame:"
162 << frameNumber << ", left: " << mHandle->bytesLeft());
163 }
164 return ok;
165}
166
167i32 PixelStream::framesRemaining() const {
168 if (mbytesPerFrame == 0)

Callers 2

updateBufferFromFileMethod · 0.80

Calls 4

seekMethod · 0.45
bytesLeftMethod · 0.45
readRGB8Method · 0.45
rgbMethod · 0.45

Tested by

no test coverage detected