#ifndef __FFEMU_H #define __FFEMU_H #include #include #ifdef __cplusplus extern "C" { #endif // Parameters passed to ffemu_new() struct ffemu_params { // FPS of input video. double fps; // Sample rate of input audio. double samplerate; // Desired output resolution. unsigned out_width; unsigned out_height; // Total size of framebuffer used in input. unsigned fb_width; unsigned fb_height; // Aspect ratio of input video. Parameters are passed to the muxer, // the video itself is not scaled. float aspect_ratio; // Audio channels. unsigned channels; // If input is ARGB or XRGB1555. bool rgb32; // Filename to dump to. const char *filename; }; struct ffemu_video_data { const void *data; unsigned width; unsigned height; unsigned pitch; bool is_dupe; }; struct ffemu_audio_data { const int16_t *data; size_t frames; }; typedef struct ffemu ffemu_t; ffemu_t *ffemu_new(const struct ffemu_params *params); void ffemu_free(ffemu_t* handle); bool ffemu_push_video(ffemu_t *handle, const struct ffemu_video_data *data); bool ffemu_push_audio(ffemu_t *handle, const struct ffemu_audio_data *data); bool ffemu_finalize(ffemu_t *handle); #ifdef __cplusplus } #endif #endif