mpv/filters
Philip Langdale 2852691587 f_hwtransfer: allow hw uploads to implicitly convert formats
vaapi allows for implicit conversion on upload, which has some
relevance as the set of supported source formats is larger than the
set of displayable formats. In theory, this allows for offloading the
conversion to the GPU - if you have any confidence in the hardware
and/or driver's ability to do the conversion.

Today, we actually track the 'input' and 'output' upload formats
separately all the way up until the point we do a check as to whether
the original source format is an accepted 'output' format and then
reject it if it is not.

This means that we're essentially ignoring all the work we did to track
those 'input' formats in the first place. But it also means that it's a
simple change to compare against the 'input' format instead. The logic
is already in place to do best format selection on both sides.

I imagine that if I read through the history here, wm4 tried to
implement all of this properly and then gave up in disgust after seeing
vaapi mangle various conversions.

This is particularly interesting for vo-dmabuf-wayland where it is only
possible to display the subset of valid vaapi formats that are
supported by the compositor, yet all playback has to go through vaapi.
Users will then be able to take advantage of all possible vaapi formats
to avoid having to do software format conversion.
2022-10-15 09:57:09 -07:00
..
f_async_queue.c f_async_queue: add various helper functions 2020-08-28 20:08:32 +02:00
f_async_queue.h f_async_queue: add various helper functions 2020-08-28 20:08:32 +02:00
f_auto_filters.c filters: Re-add vavpp deinterlacing auto-filter 2022-03-02 16:21:04 -08:00
f_auto_filters.h filters/auto_filters: switch from scaletempo to scaletempo2 2021-02-15 00:13:03 +02:00
f_autoconvert.c f_autoconvert: f_hwtransfer: support HW -> HW uploads 2022-09-21 09:39:34 -07:00
f_autoconvert.h vf_format: add gross mechanism for forcing scaler for testing 2020-04-13 15:56:27 +02:00
f_decoder_wrapper.c mp_image, f_decoder_wrapper: implement AV_FRAME_DATA_DISPLAYMATRIX 2021-12-15 16:39:45 +01:00
f_decoder_wrapper.h player: let frontend decide whether to use cover-art mode 2020-09-28 00:04:21 +02:00
f_demux_in.c f_demux_in: log EOF "recovery" 2020-08-27 18:40:57 +02:00
f_demux_in.h
f_hwtransfer.c f_hwtransfer: allow hw uploads to implicitly convert formats 2022-10-15 09:57:09 -07:00
f_hwtransfer.h f_hwtransfer: move format fields to private struct 2020-01-12 01:47:42 +01:00
f_lavfi.c f_hwtransfer: mp_image_pool: support HW -> HW mapping 2022-09-21 09:39:34 -07:00
f_lavfi.h filters: lavfi: allow hwdec_interop selection for filters 2022-09-21 09:39:34 -07:00
f_output_chain.c filters: support loading new hwdec_interops from filters 2022-09-21 09:39:34 -07:00
f_output_chain.h audio: redo video-sync=display-adrop 2020-05-23 04:04:46 +02:00
f_swresample.c swresample: don't forcibly clip on every conversion 2022-06-23 23:52:35 +02:00
f_swresample.h
f_swscale.c f_swscale: let common code guess color levels when RGB->YUV 2020-04-23 13:26:04 +02:00
f_swscale.h vf_format: add gross mechanism for forcing scaler for testing 2020-04-13 15:56:27 +02:00
f_utils.c osdep: rename MP_UNREACHABLE 2021-11-03 15:15:20 +01:00
f_utils.h various: fix typos 2022-04-25 09:07:18 -04:00
filter.c filters: lavfi: allow hwdec_interop selection for filters 2022-09-21 09:39:34 -07:00
filter.h filters: lavfi: allow hwdec_interop selection for filters 2022-09-21 09:39:34 -07:00
filter_internal.h filter: add a helper 2020-08-27 11:55:20 +02:00
frame.c Implement backwards playback 2019-09-19 20:37:04 +02:00
frame.h Implement backwards playback 2019-09-19 20:37:04 +02:00
user_filters.c filters: lavfi: allow hwdec_interop selection for filters 2022-09-21 09:39:34 -07:00
user_filters.h audio: add scaletempo2 filter based on chromium 2020-07-27 00:57:22 +02:00