[MPlayer-dev-eng] [PATCH] SSA/ASS subtitles support

Alexander Strange astrange at ithinksw.com
Mon Apr 3 05:24:41 CEST 2006


On Apr 1, 2006, at 1:59 PM, Evgeniy Stepanov wrote:
>
> The border width is probally smaller then in VSFilter. You can try  
> to increase
> it (either in subtitle script, or by adding a multiplier in the
> FT_Stroker_Set call) and see if it becomes better. There is a  
> problem though.
> With some combinations of font size and border width there appears  
> a strange
> gap in some glyph outlines. Maybe a bug in freetype ?

The current patch actually ignores the border width in the SSA and  
sets it to 1. If I change that, it looks better at large sizes but  
still looks funny at small ones. I suspect this is partially because  
VSFilter uses a better method for subsampling chroma in 4:2:0 (but  
macosx displays in 4:2:2 anyway, so if the renderer supports that it  
would improve). The rest might be freetype's imperfect hinting; I  
think you have to actually enable the auto-hinter manually?

Also, why does it scale the font size by .6?

> The kerning is a little incorrect because I'm using integer pixel  
> offsets when
> placing glyphs. Subpixel precision leads to poor bitmap cache  
> performance,
> because almost all the glyphs become different. Still, 1/4 or 1/8  
> pixel
> precision might be acceptable. I'll try it some day.

I disabled the cache and only had a noticeable performance loss in  
one movie, so having a correct-but-slower mode would be fine with me.  
It would also be useful in mencoder.

Some other things:
* I went and rebuilt mplayer with fontconfig on, and ass_fontconfig.c  
never matches any fonts, all of which fc-match worked with. I copied  
and pasted the fontconfig matching code from font_load_ft and it  
worked (if you add in an FC_INDEX query, since the old one ignored  
it). I can look into this further if you want.
* Japanese subtitles clip out the side because it doesn't  
automatically linebreak them, since they have no whitespace. I think  
fribidi might handle this sort of thing, but I'm not sure about that.
* This file asserts out: http://raspberryheaven.net/~adtrw/anime/ 
Makoto%20Shinkai%20-%20Other%20Worlds.mkv
ass_render.c:1200: failed assertion `frame_context.dmpi->stride[1] ==  
frame_context.dmpi->chroma_width'
(The mistimed subtitles are my fault, not yours.)




More information about the MPlayer-dev-eng mailing list