1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-19 14:26:57 +00:00
mpv/sub
Dudemanguy 8f043de961 player/sub: avoid wasteful subtitle redraws
This only affects two special cases: printing subtitles to the terminal
and printing subtitles on a still picture. Previously, mpv was very dumb
here and spammed this logic on every single loop. For terminal
subtitles, this isn't as big of a deal, but for the image case this is
pretty bad. The entire VO constantly redrew even when there was no need
to which can be very expensive depending on user settings.

Instead, let's rework sub_read_packets so that it also tells us whether
or not the subtitle packets update in some way in addition to telling us
whether or not to read more. Since we cache all packets thanks to the
previous commit, we can leverage this information to make a guess
whether or not the current subtitle packet is supposed to be visible on
the screen. Because the redraw now only happens when it is needed, the
mp_set_timeout_hack can be removed.
2024-02-15 16:43:11 +00:00
..
ass_mp.c sub: add --sub-fonts-dir and --osd-fonts-dir options 2023-03-01 02:09:46 +00:00
ass_mp.h sub/ass_mp: filters/f_lavfi: forward declare mp_log 2023-09-21 14:40:11 +00:00
dec_sub.c player/sub: avoid wasteful subtitle redraws 2024-02-15 16:43:11 +00:00
dec_sub.h player/sub: avoid wasteful subtitle redraws 2024-02-15 16:43:11 +00:00
draw_bmp.c all: add missing repr assignments 2024-01-26 18:17:02 +02:00
draw_bmp.h csputils: replace mp_alpha_type with pl_alpha_mode 2024-01-22 14:54:55 +00:00
filter_jsre.c sub: jsre filter: abort init early on empty filter list 2022-06-09 14:38:24 +03:00
filter_regex.c sub: sub-filter-regex and jsre: support ass-to-plaintext 2021-08-05 21:32:22 +03:00
filter_sdh.c filter_sdh: optimize get_char_bytes 2024-01-15 16:05:17 +00:00
img_convert.c various: replace some OOM handling 2023-11-24 10:04:55 +01:00
img_convert.h sub: move RGBA scaling to vo_vaapi 2016-07-03 19:32:43 +02:00
lavc_conv.c sub/lavc_conv: properly fill avctx with codecpar values at init 2023-03-14 23:59:47 +02:00
meson.build build: remove outdated generated directory 2023-07-31 19:00:06 +00:00
osd_font.otf osc: use custom symbols for window controls 2019-12-11 13:53:10 -08:00
osd_libass.c options: add --osd-bar-border-size 2023-11-27 15:02:28 +00:00
osd_state.h ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
osd.c ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
osd.h sub: add --sub-fonts-dir and --osd-fonts-dir options 2023-03-01 02:09:46 +00:00
sd_ass.c player/sub: avoid wasteful subtitle redraws 2024-02-15 16:43:11 +00:00
sd_lavc.c player/sub: avoid wasteful subtitle redraws 2024-02-15 16:43:11 +00:00
sd.h options: add --secondary-sub-ass-override 2023-12-18 14:58:34 +00:00