diff options
author | Philip Langdale <philipl@overt.org> | 2022-03-12 11:24:51 -0800 |
---|---|---|
committer | Philip Langdale <github.philipl@overt.org> | 2022-09-21 09:39:34 -0700 |
commit | 989d873d6ec57171a55f432d6f87a9e5a61a706c (patch) | |
tree | 0077fcefc7be591eea5d6ad2e4e2373c8d59b49d /filters/f_lavfi.h | |
parent | 5629ed81eed90f95a04bb3d8ff64f135bd186651 (diff) | |
download | mpv-989d873d6ec57171a55f432d6f87a9e5a61a706c.tar.bz2 mpv-989d873d6ec57171a55f432d6f87a9e5a61a706c.tar.xz |
filters: lavfi: allow hwdec_interop selection for filters
Today, lavfi filters are provided a hw_device from the first
hwdec_interop that was loaded, regardless of whether it's the right one
or not. In most situations where a hardware based filter is used, we
need more control over the device.
In this change, a `hwdec_interop` option is added to the lavfi wrapper
filter configuration and this is used to pick the correct hw_device to
inject into the filter or graph (in the case of a graph, all filters
get the same device).
Note that this requires the use of the explicit lavfi syntax to allow
for the extra configuration.
eg:
```
mpv --vf=hwupload
```
becomes
```
mpv --vf=lavfi=[hwupload]:hwdec_interop=cuda-nvdec
```
or
```
mpv --vf=lavfi-bridge=[hwupload]:hwdec_interop=cuda-nvdec
```
Diffstat (limited to 'filters/f_lavfi.h')
-rw-r--r-- | filters/f_lavfi.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/filters/f_lavfi.h b/filters/f_lavfi.h index c6cf86f500..ec6990f68a 100644 --- a/filters/f_lavfi.h +++ b/filters/f_lavfi.h @@ -18,6 +18,7 @@ struct mp_lavfi { // graph: a libavfilter graph specification struct mp_lavfi *mp_lavfi_create_graph(struct mp_filter *parent, enum mp_frame_type type, bool bidir, + char *hwdec_interop, char **graph_opts, const char *graph); // Unlike mp_lavfi_create_graph(), this creates a single filter, using explicit @@ -26,6 +27,7 @@ struct mp_lavfi *mp_lavfi_create_graph(struct mp_filter *parent, // (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 *hwdec_interop, char **graph_opts, const char *filter, char **filter_opts); |