mirror of
https://github.com/mpv-player/mpv
synced 2024-12-26 17:12:36 +00:00
c0de087ba1
See --lavfi-complex option. This is still quite rough. There's no support for dynamic configuration of any kind. There are probably corner cases where playback might freeze or burn 100% CPU (due to dataflow problems when interaction with libavfilter). Future possible plans might include: - freely switch tracks by providing some sort of default track graph label - automatically enabling audio visualization - automatically mix audio or stack video when multiple tracks are selected at once (similar to how multiple sub tracks can be selected)
33 lines
1.1 KiB
C
33 lines
1.1 KiB
C
#ifndef MP_LAVFI
|
|
#define MP_LAVFI
|
|
|
|
struct mp_log;
|
|
struct lavfi;
|
|
struct lavfi_pad;
|
|
struct mp_image;
|
|
struct mp_audio;
|
|
|
|
enum lavfi_direction {
|
|
LAVFI_IN = 1,
|
|
LAVFI_OUT,
|
|
};
|
|
|
|
struct lavfi *lavfi_create(struct mp_log *log, char *graph_string);
|
|
void lavfi_destroy(struct lavfi *c);
|
|
struct lavfi_pad *lavfi_find_pad(struct lavfi *c, char *name);
|
|
enum lavfi_direction lavfi_pad_direction(struct lavfi_pad *pad);
|
|
enum stream_type lavfi_pad_type(struct lavfi_pad *pad);
|
|
void lavfi_set_connected(struct lavfi_pad *pad, bool connected);
|
|
bool lavfi_get_connected(struct lavfi_pad *pad);
|
|
bool lavfi_process(struct lavfi *c);
|
|
bool lavfi_has_failed(struct lavfi *c);
|
|
void lavfi_seek_reset(struct lavfi *c);
|
|
int lavfi_request_frame_a(struct lavfi_pad *pad, struct mp_audio **out_aframe);
|
|
int lavfi_request_frame_v(struct lavfi_pad *pad, struct mp_image **out_vframe);
|
|
bool lavfi_needs_input(struct lavfi_pad *pad);
|
|
void lavfi_send_status(struct lavfi_pad *pad, int status);
|
|
void lavfi_send_frame_a(struct lavfi_pad *pad, struct mp_audio *aframe);
|
|
void lavfi_send_frame_v(struct lavfi_pad *pad, struct mp_image *vframe);
|
|
|
|
#endif
|