FastLED 3.10.8
Loading...
Searching...
No Matches

◆ openMpeg1Video()

Video fl::FileSystem::openMpeg1Video ( const char * path,
fl::size pixelsPerFrame,
float fps = 30.0f,
fl::size nFrameHistory = 0 )

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

83 {
84 Video video(pixelsPerFrame, fps, nFrameHistory);
85 fl::ifstream file = openRead(path);
86 if (!file.is_open()) { video.setError(fl::string("Could not open MPEG1 file: ").append(path)); return video; }
87 Mpeg1Config config;
89 config.targetFps = static_cast<fl::u16>(fps);
90 config.looping = false;
91 config.skipAudio = true;
92 fl::string error_message;
93 IDecoderPtr decoder = Mpeg1::createDecoder(config, &error_message);
94 if (!decoder) { video.setError(fl::string("Failed to create MPEG1 decoder: ").append(error_message)); return video; }
95 if (!decoder->begin(file.rdbuf())) {
96 fl::string decoder_error; decoder->hasError(&decoder_error);
97 video.setError(fl::string("Failed to initialize MPEG1 decoder: ").append(decoder_error)); return video;
98 }
99 fl::shared_ptr<Mpeg1FileHandle> mpeg1Stream = fl::make_shared<Mpeg1FileHandle>(decoder, pixelsPerFrame, path);
100 if (!video.begin(mpeg1Stream)) { video.setError(fl::string("Failed to initialize video with MPEG1 stream")); return video; }
101 return video;
102}
fl::Video video(NUM_LEDS, 2.0f)
fl::ifstream openRead(const char *path) FL_NO_EXCEPT
Definition fs.cpp.hpp:170
static IDecoderPtr createDecoder(const Mpeg1Config &config, fl::string *error_message=nullptr) FL_NO_EXCEPT
Definition mpeg1.cpp.hpp:9
void setError(const string &error) FL_NO_EXCEPT
Definition video.h:82
bool begin(fl::filebuf_ptr h) FL_NO_EXCEPT
Definition video.cpp.hpp:40
bool is_open() const FL_NO_EXCEPT
Definition fstream.h:111
filebuf_ptr rdbuf() const FL_NO_EXCEPT
Definition fstream.h:143
shared_ptr< T > make_shared(Args &&... args) FL_NO_EXCEPT
Definition shared_ptr.h:423
third_party::Mpeg1Config Mpeg1Config
Definition mpeg1.h:29

References fl::Mpeg1::createDecoder(), fl::FL_NO_EXCEPT, fl::ifstream::is_open(), fl::third_party::Mpeg1Config::looping, fl::adl_barrier::make_shared(), fl::third_party::Mpeg1Config::mode, openRead(), fl::ifstream::rdbuf(), fl::third_party::Mpeg1Config::skipAudio, fl::third_party::Mpeg1Config::Streaming, and fl::third_party::Mpeg1Config::targetFps.

+ Here is the call graph for this function: