FastLED 3.9.15
Loading...
Searching...
No Matches

◆ read() [1/3]

fl::size_t fl::Mpeg1FileHandle::read ( char * dst,
fl::size_t bytesToRead )
inlineoverridevirtual

Implements fl::filebuf.

Definition at line 48 of file file_system_codecs.cpp.hpp.

48 {
49 if (!mDecoder || !mHasValidFrame) return 0;
50 fl::size totalRead = 0;
51 while (bytesToRead > 0 && mHasValidFrame) {
52 fl::size rem = mFrameSize - mCurrentPos;
53 if (rem == 0) { if (!decodeNextFrameIfNeeded()) break; rem = mFrameSize - mCurrentPos; }
54 fl::size toRead = fl::min(bytesToRead, rem);
55 if (toRead > 0 && mCurrentFrame && mCurrentFrame->rgb().data()) {
56 fl::memcpy(dst + totalRead, (fl::u8*)mCurrentFrame->rgb().data() + mCurrentPos, toRead);
57 mCurrentPos += toRead; totalRead += toRead; bytesToRead -= toRead;
58 } else break;
59 }
60 return totalRead;
61 }
fl::shared_ptr< Frame > mCurrentFrame
unsigned char u8
Definition s16x16x4.h:132
FL_DISABLE_WARNING_PUSH U constexpr common_type_t< T, U > min(T a, U b) FL_NOEXCEPT
Definition math.h:71
void * memcpy(void *dest, const void *src, size_t n) FL_NOEXCEPT

References decodeNextFrameIfNeeded(), mCurrentFrame, mCurrentPos, mDecoder, fl::memcpy(), mFrameSize, mHasValidFrame, and fl::min().

+ Here is the call graph for this function: