[vdr] ScaleVideo Discussion: API extension or custom service?

Lucian Muresan lucianm at users.sourceforge.net
Wed Nov 28 10:41:32 CET 2012

Hi there,

let me start with the background of this, in the last few weeks, a very 
promising new true color skin raised some attention on the german 
speaking VDR-Portal, namely "nOpacity" ([1] and [2]). The layout of some 
of the screens quickly brought up the idea that it would be nice to have 
the video properly scaled to the available size (smaller than the actual 
screen), which I tried to already patch with some (but only some) 
success ([3]). The patch is based on an old hack, called "YaEPG patch", 
which introduces a member of type tArea in cOsd, which then can be 
filled with geometry information, whose "bpp" member is abused as a hint 
weather or not to scale by some skin or plugin which wants to scale down 
the video material, and you got it, it's as ugly as can be. The problems 
which we encountered where that the output plugin (in this case 
softhddevice) knows much more about the video material (like if it is 
for example 4:3 letterboxed, if the user selected some zooming, some 
cropping, and so on) than a skin or any other plugin can cope with, in 
order to get the video scaled right, and there are cases where the 
scaling is simply wrong. It is and should remain the job of the output 
plugin to do this right with all the information it has access to, other 
plugins should only have to ask them to "properly" scale inside an 
available rectangle, possibly with the hint to just scale (back) 
full-size of the output device (which could also be an X window).
Now, my question, is this issue worth an API extension in cDevice, for 
example something like

bool ScaleVideo(tArea availableRectangle);
bool ScaleVideoFullScreen();

which could return true only if the output plugin is capable of doing 
this, or should plugin developers rather agree upon a custom service 
which output plugins may provide and skins or other plugins may ask for?





More information about the vdr mailing list