FastLED 3.10.8
Loading...
Searching...
No Matches
fl::third_party::SoftwareGifDecoder Class Reference

Detailed Description

Software GIF decoder implementation using libnsgif.

This decoder provides full animated GIF support through the FastLED IDecoder interface, enabling streaming decode of GIF animations with proper frame timing and disposal method handling.

Definition at line 42 of file software_decoder.h.

#include <software_decoder.h>

+ Inheritance diagram for fl::third_party::SoftwareGifDecoder:
+ Collaboration diagram for fl::third_party::SoftwareGifDecoder:

Public Member Functions

 SoftwareGifDecoder (fl::PixelFormat format=fl::PixelFormat::RGB888) FL_NO_EXCEPT
 
 ~SoftwareGifDecoder ()
 
bool begin (fl::filebuf_ptr stream) FL_NO_EXCEPT override
 
fl::DecodeResult decode () FL_NO_EXCEPT override
 
void end () FL_NO_EXCEPT override
 
fl::Frame getCurrentFrame () FL_NO_EXCEPT override
 
fl::u32 getCurrentFrameIndex () const FL_NO_EXCEPT override
 
fl::u32 getFrameCount () const FL_NO_EXCEPT override
 
fl::u16 getHeight () const FL_NO_EXCEPT
 
fl::u32 getLoopCount () const FL_NO_EXCEPT
 
fl::u16 getWidth () const FL_NO_EXCEPT
 
bool hasError (fl::string *msg=nullptr) const FL_NO_EXCEPT override
 
bool hasMoreFrames () const FL_NO_EXCEPT override
 
bool isAnimated () const FL_NO_EXCEPT
 
bool isReady () const FL_NO_EXCEPT override
 
bool seek (fl::u32 frameIndex) FL_NO_EXCEPT override
 
- Public Member Functions inherited from fl::IDecoder
virtual ~IDecoder () FL_NO_EXCEPT=default
 
virtual int getAudioSampleRate () const FL_NO_EXCEPT
 
virtual bool hasAudio () const FL_NO_EXCEPT
 
virtual void setAudioCallback (AudioFrameCallback callback) FL_NO_EXCEPT
 

Private Member Functions

void cleanupDecoder () FL_NO_EXCEPT
 
fl::shared_ptr< fl::Frame > convertBitmapToFrame (nsgif_bitmap_t *bitmap) FL_NO_EXCEPT
 
bool initializeDecoder () FL_NO_EXCEPT
 
bool loadMoreData () FL_NO_EXCEPT
 
void setError (const fl::string &message) FL_NO_EXCEPT
 

Static Private Member Functions

static nsgif_bitmap_t * bitmapCreate (int width, int height) FL_NO_EXCEPT
 
static void bitmapDestroy (nsgif_bitmap_t *bitmap) FL_NO_EXCEPT
 
static fl::u8 * bitmapGetBuffer (nsgif_bitmap_t *bitmap) FL_NO_EXCEPT
 

Private Attributes

fl::shared_ptr< fl::Frame > currentFrame_
 
fl::u32 currentFrameIndex_
 
fl::vector< fl::u8 > dataBuffer_
 
bool dataComplete_
 
bool endOfStream_
 
fl::string errorMessage_
 
nsgif_t * gif_
 
bool hasError_
 
bool ready_
 
fl::filebuf_ptr stream_
 

Static Private Attributes

static nsgif_bitmap_cb_vt bitmapCallbacks_
 

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