57 lines
1.3 KiB
C
Raw Permalink Normal View History

2025-01-22 16:18:30 +01:00
#pragma once
#include <objc/runtime.h>
#include <kinc/graphics4/texture.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
double start;
double videoStart;
double next;
// double audioTime;
unsigned long long audioTime;
bool playing;
bool loop;
void *sound;
bool image_initialized;
kinc_g4_texture_t image;
double lastTime;
float duration;
bool finished;
int myWidth;
int myHeight;
id videoAsset;
id assetReader;
id videoTrackOutput;
id audioTrackOutput;
id url;
} kinc_video_impl_t;
typedef struct kinc_internal_video_sound_stream {
float *buffer;
int bufferSize;
int bufferWritePosition;
int bufferReadPosition;
uint64_t read;
uint64_t written;
} kinc_internal_video_sound_stream_t;
void kinc_internal_video_sound_stream_init(kinc_internal_video_sound_stream_t *stream, int channel_count, int frequency);
void kinc_internal_video_sound_stream_destroy(kinc_internal_video_sound_stream_t *stream);
void kinc_internal_video_sound_stream_insert_data(kinc_internal_video_sound_stream_t *stream, float *data, int sample_count);
float *kinc_internal_video_sound_stream_next_frame(kinc_internal_video_sound_stream_t *stream);
bool kinc_internal_video_sound_stream_ended(kinc_internal_video_sound_stream_t *stream);
#ifdef __cplusplus
}
#endif