57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
|
#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
|