GNOME Bugzilla – Bug 604138
assrender should make use of the scale factor functions of libass
Last modified: 2018-05-04 11:25:13 UTC
Created attachment 149401 [details] Reference image I'm really not sure how to best describe this, but basically the idea is that the subtitle resolution is scaled to maintain sharpness, even when in full screen mode.
Created attachment 149402 [details] Rendering in MPlayer with gl output
Well, the problem here is a bit different, like Tim said on IRC. This can only work if all scaling is done before assrender. If the scaling is done in xvimagesink for example there's no way to get around this. This will be fixed once everything uses gst-cairo :)
The scale factor functionality is something completely different. :) What you want is to render subtitles at screen resolution instead of video resolution. What gstreamer needs for this is some way to have native screen resolution overlays on top of the video. As it stands, only MPC-HC, XBMC and MPlayer are capable of that and it only works with select video outputs. It will probably never work with Xv...
Couldn't the whole video be software-scaled? When this is done in MPlayer, the subtitle overlay is scaled to the screen resolution, even when using Xv. Granted the result isn't as sharp text-wise when compared to using other outputs like gl, but it's quite noticeable when viewing sub-HD content in fullscreen. Does xvimagesink allow this?
One could render the subtitles into the colorkey. Unfortunately many drivers stopped offering managed colorkeying (that is the still use a colorkey, but the always autopaint it and don't tell the color). Besides those things would not be easy to be added. It would need e.g. sending new subtitle images at native resolution as sync'ed events to the sink. It also needs querying if the sink can support that. So for now, I can't see a sensible way to do it.
AFAIK most current Xv implementations do not support colorkeying at all anymore because they do not use hardware overlay functionality. The right way to do it nowadays is compositing through XRender, I guess.
*** This bug has been marked as a duplicate of bug 753824 ***