0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
mpv/filters
wm4 52536aaa7b f_decoder_wapper: trust frame return over error code
lavc_process() calls the receive/send callbacks, which mirror
libavcodec's send/receive API. The receive API in particular can return
both a status code and a frame. Normally, libavcodec is pretty explicit
that it can't return both a frame and an error. But the receive callback
does more stuff in addition (vd_lavc does hardware decoding fallbacks
etc.). The previous commit shows an instance where this happened, and
where it leaked a frame in this case.

For robustness, check whether the frame is set first, i.e. trust it over
the status code. Before this, it checked for an EOF status first.

Hopefully is of no consequence otherwise. I made this change after
testing everything (can someone implement a test suite which tests this
exhaustively).
2019-10-25 21:50:10 +02:00
..
f_auto_filters.c f_auto_filters: use f_autoconvert for hw download 2019-10-02 23:13:26 +02:00
f_auto_filters.h audio: rewrite filtering glue code 2018-01-30 03:10:27 -08:00
f_autoconvert.c filters: extend vf_format so that it can convert color parameters 2019-10-21 01:38:25 +02:00
f_autoconvert.h filters: extend vf_format so that it can convert color parameters 2019-10-21 01:38:25 +02:00
f_decoder_wrapper.c f_decoder_wapper: trust frame return over error code 2019-10-25 21:50:10 +02:00
f_decoder_wrapper.h ad_lavc, vd_lavc: return full error codes to shared decoder loop 2019-10-24 18:50:28 +02:00
f_demux_in.c f_demux_in: give it a slightly better filter name 2018-02-05 02:47:14 -08:00
f_demux_in.h video: make decoder wrapper a filter 2018-01-30 03:10:27 -08:00
f_hwtransfer.c f_hwtransfer: add a mp_hwdownload filter 2019-10-02 21:14:58 +02:00
f_hwtransfer.h f_hwtransfer: add a mp_hwdownload filter 2019-10-02 21:14:58 +02:00
f_lavfi.c f_lavfi: support setting common filter options like "threads" 2018-04-29 02:21:32 +03:00
f_lavfi.h f_lavfi: fix typo in comment 2018-02-13 17:45:29 -08:00
f_output_chain.c f_output_chain: remove a redundant variable 2018-04-29 02:21:32 +03:00
f_output_chain.h f_output_chain: fix typo 2018-04-15 23:11:33 +03:00
f_swresample.c audio: fix segfault caused by incorrect number of planes 2019-02-23 00:21:54 +02:00
f_swresample.h swresample: limit output size of audio frames 2018-02-03 05:01:29 -08:00
f_swscale.c filters: extend vf_format so that it can convert color parameters 2019-10-21 01:38:25 +02:00
f_swscale.h filters: extend vf_format so that it can convert color parameters 2019-10-21 01:38:25 +02:00
f_utils.c filters: add another dumb helper 2019-10-02 21:09:30 +02:00
f_utils.h filters: add another dumb helper 2019-10-02 21:09:30 +02:00
filter_internal.h video: rewrite filtering glue code 2018-01-30 03:10:27 -08:00
filter.c filter: hide warning when disconnecting pins drops frames 2018-04-29 02:21:32 +03:00
filter.h f_output_chain: log status of auto filters 2018-04-29 02:21:32 +03: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 video: add vf_fingerprint and a skip-logo script 2019-09-19 20:37:05 +02:00
user_filters.h video: add vf_fingerprint and a skip-logo script 2019-09-19 20:37:05 +02:00