mirror of https://github.com/mpv-player/mpv
Some hwdecs (eg: dxva) have no frames constraints and no static supported_formats, which ends up segfaulting. This change fixes the segfault, but also includes additional changes to avoid concluding that direct output of hardware decoded video is impossible. In the case where there are no frame constraints and no supported_formats, we basically have no idea what the hardware actually supports. Previously, we just tried to display the frame, but all the work I did to detect incompatible formats causes this scenario to now conclude that no formats can be displayed, and forces a HW download to system memory. I have made a couple of small changes to assume that direct display is possible. If it's not, the VO will error out down the line, which is what happened previously. |
||
---|---|---|
.. | ||
f_async_queue.c | ||
f_async_queue.h | ||
f_auto_filters.c | ||
f_auto_filters.h | ||
f_autoconvert.c | ||
f_autoconvert.h | ||
f_decoder_wrapper.c | ||
f_decoder_wrapper.h | ||
f_demux_in.c | ||
f_demux_in.h | ||
f_hwtransfer.c | ||
f_hwtransfer.h | ||
f_lavfi.c | ||
f_lavfi.h | ||
f_output_chain.c | ||
f_output_chain.h | ||
f_swresample.c | ||
f_swresample.h | ||
f_swscale.c | ||
f_swscale.h | ||
f_utils.c | ||
f_utils.h | ||
filter.c | ||
filter.h | ||
filter_internal.h | ||
frame.c | ||
frame.h | ||
user_filters.c | ||
user_filters.h |