mirror of
https://github.com/mpv-player/mpv
synced 2024-10-30 04:46:41 +01:00
37 lines
1.7 KiB
C
37 lines
1.7 KiB
C
#pragma once
|
|
|
|
#include "frame.h"
|
|
|
|
// A wrapped libavfilter filter or filter graph.
|
|
// (to free this, free the filter itself, mp_lavfi.f)
|
|
struct mp_lavfi {
|
|
// This mirrors the libavfilter pads according to the user specification.
|
|
struct mp_filter *f;
|
|
};
|
|
|
|
// Create a filter with the given libavfilter graph string. The graph must
|
|
// have labels on all unconnected pads; these are exposed as pins.
|
|
// type: if not 0, require all pads to have a compatible media type (or error)
|
|
// bidir: if true, require exactly 2 pads, 1 input, 1 output (mp_lavfi.f will
|
|
// have the input as pin 0, and the output as pin 1)
|
|
// graph_opts: options for the filter graph, see mp_set_avopts() (NULL is OK)
|
|
// graph: a libavfilter graph specification
|
|
struct mp_lavfi *mp_lavfi_create_graph(struct mp_filter *parent,
|
|
enum mp_frame_type type, bool bidir,
|
|
char **graph_opts, const char *graph);
|
|
|
|
// Unlike mp_lavfi_create_graph(), this creates a single filter, using explicit
|
|
// options, and without involving the libavfilter graph parser. Instead of
|
|
// a graph, it takes a filter name, and a key-value list of filter options
|
|
// (which are applied with mp_set_avopts()).
|
|
struct mp_lavfi *mp_lavfi_create_filter(struct mp_filter *parent,
|
|
enum mp_frame_type type, bool bidir,
|
|
char **graph_opts,
|
|
const char *filter, char **filter_opts);
|
|
|
|
// Print libavfilter list for --vf/--af
|
|
void print_lavfi_help_list(struct mp_log *log, int media_type);
|
|
|
|
// Print libavfilter help for the given filter
|
|
void print_lavfi_help(struct mp_log *log, const char *name, int media_type);
|