mirror of https://github.com/mpv-player/mpv
17f5019b46
Before this commit, vf_vo.c and vf_ass.c were manually calling the subtitle decoder to retrieve images to render. In particular, this circumvented the sub-bitmap conversion & caching layer in sub.c. Change this so that subtitle decoding isn't special anymore, and draws all subtitles with the normal OSD drawing API. This is also a step towards removing the need for vf_ass auto-insertion. In fact, if auto-insertion would be disabled now, VOs with "old" OSD rendering could still render ASS subtitles in monochrome, because there is still ASS -> old-OSD bitmap conversion in the sub.c mechanism. The code is written with the assumption that the subtitle rendering filter (vf_ass) can render all subtitle formats. Since vf_ass knows the ASS format only, rendering image subs (i.e. RGBA subs) with it simply fails. This means that with vo_xv (vf_ass auto-inserted), image subs wouldn't be rendered. Use a dumb hack to disable rendering subs with a filter, if we detect that the subs are not in ASS format. (Trying to render the subs first would probably result in purging the conversion cache on every frame.) |
||
---|---|---|
.. | ||
ass_mp.c | ||
ass_mp.h | ||
dec_sub.c | ||
dec_sub.h | ||
find_sub.c | ||
find_subfiles.c | ||
find_subfiles.h | ||
img_convert.c | ||
img_convert.h | ||
osd_dummy.c | ||
osd_font.pfb | ||
osd_libass.c | ||
sd.h | ||
sd_ass.c | ||
sd_lavc.c | ||
spudec.c | ||
spudec.h | ||
sub.c | ||
sub.h | ||
subassconvert.c | ||
subassconvert.h | ||
subreader.c | ||
subreader.h | ||
vobsub.c | ||
vobsub.h |