diff options
author | wm4 <wm4@nowhere> | 2018-02-12 19:06:40 +0100 |
---|---|---|
committer | Kevin Mitchell <kevmitch@gmail.com> | 2018-02-13 17:45:29 -0800 |
commit | 251f4e5d77af12672e058effd6e3047e9e50e8ac (patch) | |
tree | 0c0fdf3cd8a822d633e7c93bfb48e6df5fba1ee9 /waftools/deps_parser.py | |
parent | 0ec0c147ed32dd328489d3dc2833b13aa1fcd773 (diff) | |
download | mpv-251f4e5d77af12672e058effd6e3047e9e50e8ac.tar.bz2 mpv-251f4e5d77af12672e058effd6e3047e9e50e8ac.tar.xz |
filter: simplify/fix external filter graph usage
There was the following problem: if a filter graph had asynchronous
filters, and the filter graph user did not call mp_filter_run() (and
only accessed the mp_pins), then filtering could stall, because using
mp_pin_out_request_data() only recursively invoked filtering if the
data_requested flag wasn't already set. The latter can happen if a
request was tried earlier but failed, and then an asynchronous filter
actually produced output that would satisfy the request. Obviously, it
has to invoke filtering again to get the requested frame.
Fix this by organizing the code differently, and making sure to invoke
mp_filter_run() on every request (if there's nothing to do, it doesn't
do anything anyway). Simplify it a bit by removing things which are not
needed, like connecting filter graphs with different root filters.
Diffstat (limited to 'waftools/deps_parser.py')
0 files changed, 0 insertions, 0 deletions