171#define PLM_PACKET_INVALID_TS -1
223#define PLM_AUDIO_SAMPLES_PER_FRAME 1152
228 #ifdef PLM_AUDIO_SEPARATE_CHANNELS
474#ifndef PLM_BUFFER_DEFAULT_SIZE
475#define PLM_BUFFER_DEFAULT_SIZE (128U * 1024U)
fl::UISlider length("Length", 1.0f, 0.0f, 1.0f, 0.01f)
fl::UISlider offset("Offset", 0.0f, 0.0f, 1.0f, 0.01f)
void plm_frame_to_bgra(plm_frame_t *frame, uint8_t *dest, int stride) FL_NOEXCEPT
void plm_set_video_decode_callback(plm_t *self, plm_video_decode_callback fp, void *user) FL_NOEXCEPT
void(* plm_buffer_load_callback)(plm_buffer_t *self, void *user)
int plm_video_has_ended(plm_video_t *self) FL_NOEXCEPT
static const int PLM_DEMUX_PACKET_AUDIO_2
plm_buffer_t * plm_buffer_create_with_callbacks(plm_buffer_load_callback load_callback, plm_buffer_seek_callback seek_callback, plm_buffer_tell_callback tell_callback, size_t length, void *user) FL_NOEXCEPT
int plm_demux_get_num_audio_streams(plm_demux_t *self) FL_NOEXCEPT
int plm_probe(plm_t *self, size_t probesize) FL_NOEXCEPT
int plm_get_num_video_streams(plm_t *self) FL_NOEXCEPT
static const int PLM_DEMUX_PACKET_PRIVATE
void plm_decode(plm_t *self, double seconds) FL_NOEXCEPT
plm_packet_t * plm_demux_decode(plm_demux_t *self) FL_NOEXCEPT
double plm_audio_get_time(plm_audio_t *self) FL_NOEXCEPT
plm_video_t * plm_video_create_with_buffer(plm_buffer_t *buffer, int destroy_when_done) FL_NOEXCEPT
static const int PLM_DEMUX_PACKET_AUDIO_1
int plm_seek(plm_t *self, double time, int seek_exact) FL_NOEXCEPT
plm_buffer_t * plm_buffer_create_with_memory(uint8_t *bytes, size_t length, int free_when_done) FL_NOEXCEPT
plm_t * plm_create_with_buffer(plm_buffer_t *buffer, int destroy_when_done) FL_NOEXCEPT
int plm_get_samplerate(plm_t *self) FL_NOEXCEPT
void plm_frame_to_bgr(plm_frame_t *frame, uint8_t *dest, int stride) FL_NOEXCEPT
int plm_audio_get_samplerate(plm_audio_t *self) FL_NOEXCEPT
void plm_audio_destroy(plm_audio_t *self) FL_NOEXCEPT
int plm_audio_has_header(plm_audio_t *self) FL_NOEXCEPT
size_t plm_buffer_get_size(plm_buffer_t *self) FL_NOEXCEPT
int plm_get_video_enabled(plm_t *self) FL_NOEXCEPT
int plm_get_audio_enabled(plm_t *self) FL_NOEXCEPT
void plm_buffer_set_load_callback(plm_buffer_t *self, plm_buffer_load_callback fp, void *user) FL_NOEXCEPT
plm_samples_t * plm_audio_decode(plm_audio_t *self) FL_NOEXCEPT
void plm_audio_rewind(plm_audio_t *self) FL_NOEXCEPT
double plm_get_audio_lead_time(plm_t *self) FL_NOEXCEPT
int plm_demux_get_num_video_streams(plm_demux_t *self) FL_NOEXCEPT
plm_packet_t * plm_demux_seek(plm_demux_t *self, double time, int type, int force_intra) FL_NOEXCEPT
void plm_video_destroy(plm_video_t *self) FL_NOEXCEPT
void plm_rewind(plm_t *self) FL_NOEXCEPT
plm_demux_t * plm_demux_create(plm_buffer_t *buffer, int destroy_when_done) FL_NOEXCEPT
static const int PLM_DEMUX_PACKET_VIDEO_1
void plm_video_rewind(plm_video_t *self) FL_NOEXCEPT
void plm_buffer_signal_end(plm_buffer_t *self) FL_NOEXCEPT
double plm_demux_get_duration(plm_demux_t *self, int type) FL_NOEXCEPT
void plm_frame_to_abgr(plm_frame_t *frame, uint8_t *dest, int stride) FL_NOEXCEPT
int plm_get_width(plm_t *self) FL_NOEXCEPT
void plm_buffer_destroy(plm_buffer_t *self) FL_NOEXCEPT
void plm_video_set_no_delay(plm_video_t *self, int no_delay) FL_NOEXCEPT
void(* plm_audio_decode_callback)(plm_t *self, plm_samples_t *samples, void *user)
int plm_get_height(plm_t *self) FL_NOEXCEPT
double plm_demux_get_start_time(plm_demux_t *self, int type) FL_NOEXCEPT
plm_frame_t * plm_decode_video(plm_t *self) FL_NOEXCEPT
int plm_buffer_has_ended(plm_buffer_t *self) FL_NOEXCEPT
size_t plm_buffer_get_remaining(plm_buffer_t *self) FL_NOEXCEPT
plm_t * plm_create_with_memory(uint8_t *bytes, size_t length, int free_when_done) FL_NOEXCEPT
void plm_set_audio_enabled(plm_t *self, int enabled) FL_NOEXCEPT
int plm_get_num_audio_streams(plm_t *self) FL_NOEXCEPT
void plm_frame_to_rgb(plm_frame_t *frame, uint8_t *dest, int stride) FL_NOEXCEPT
void(* plm_buffer_seek_callback)(plm_buffer_t *self, size_t offset, void *user)
static const int PLM_DEMUX_PACKET_AUDIO_3
int plm_video_get_height(plm_video_t *self) FL_NOEXCEPT
struct plm_buffer_t plm_buffer_t
void plm_frame_to_argb(plm_frame_t *frame, uint8_t *dest, int stride) FL_NOEXCEPT
void plm_set_loop(plm_t *self, int loop) FL_NOEXCEPT
void plm_buffer_rewind(plm_buffer_t *self) FL_NOEXCEPT
plm_buffer_t * plm_buffer_create_with_capacity(size_t capacity) FL_NOEXCEPT
plm_buffer_t * plm_buffer_create_for_appending(size_t initial_capacity) FL_NOEXCEPT
double plm_video_get_pixel_aspect_ratio(plm_video_t *self) FL_NOEXCEPT
void plm_video_set_time(plm_video_t *self, double time) FL_NOEXCEPT
void plm_set_audio_decode_callback(plm_t *self, plm_audio_decode_callback fp, void *user) FL_NOEXCEPT
void plm_demux_rewind(plm_demux_t *self) FL_NOEXCEPT
int plm_video_get_width(plm_video_t *self) FL_NOEXCEPT
plm_samples_t * plm_decode_audio(plm_t *self) FL_NOEXCEPT
void plm_frame_to_rgba(plm_frame_t *frame, uint8_t *dest, int stride) FL_NOEXCEPT
int plm_audio_has_ended(plm_audio_t *self) FL_NOEXCEPT
double plm_video_get_framerate(plm_video_t *self) FL_NOEXCEPT
void plm_set_audio_lead_time(plm_t *self, double lead_time) FL_NOEXCEPT
double plm_get_framerate(plm_t *self) FL_NOEXCEPT
void plm_demux_destroy(plm_demux_t *self) FL_NOEXCEPT
double plm_get_time(plm_t *self) FL_NOEXCEPT
double plm_get_pixel_aspect_ratio(plm_t *self) FL_NOEXCEPT
int plm_get_loop(plm_t *self) FL_NOEXCEPT
plm_audio_t * plm_audio_create_with_buffer(plm_buffer_t *buffer, int destroy_when_done) FL_NOEXCEPT
void plm_destroy(plm_t *self) FL_NOEXCEPT
int plm_demux_has_headers(plm_demux_t *self) FL_NOEXCEPT
double plm_get_duration(plm_t *self) FL_NOEXCEPT
void(* plm_video_decode_callback)(plm_t *self, plm_frame_t *frame, void *user)
size_t plm_buffer_write(plm_buffer_t *self, uint8_t *bytes, size_t length) FL_NOEXCEPT
double plm_video_get_time(plm_video_t *self) FL_NOEXCEPT
plm_frame_t * plm_video_decode(plm_video_t *self) FL_NOEXCEPT
void plm_audio_set_time(plm_audio_t *self, double time) FL_NOEXCEPT
size_t(* plm_buffer_tell_callback)(plm_buffer_t *self, void *user)
void plm_set_video_enabled(plm_t *self, int enabled) FL_NOEXCEPT
void plm_set_audio_stream(plm_t *self, int stream_index) FL_NOEXCEPT
int plm_has_headers(plm_t *self) FL_NOEXCEPT
int plm_demux_has_ended(plm_demux_t *self) FL_NOEXCEPT
int plm_demux_probe(plm_demux_t *self, size_t probesize) FL_NOEXCEPT
int plm_video_has_header(plm_video_t *self) FL_NOEXCEPT
int plm_has_ended(plm_t *self) FL_NOEXCEPT
static const int PLM_DEMUX_PACKET_AUDIO_4
plm_frame_t * plm_seek_frame(plm_t *self, double time, int seek_exact) FL_NOEXCEPT
float interleaved[PLM_AUDIO_SAMPLES_PER_FRAME *2]
fl::u64 time() FL_NOEXCEPT
Alias for millis64() - returns 64-bit millisecond time.
Base definition for an LED controller.
#define PLM_AUDIO_SAMPLES_PER_FRAME