[vdr] [ANNOUNCE] VDR developer version 1.7.21

Klaus Schmidinger Klaus.Schmidinger at tvdr.de
Fri Sep 9 16:54:40 CEST 2011


On 05.09.2011 19:43, Luca Olivetti wrote:
> Al 05/09/11 18:15, En/na Klaus Schmidinger ha escrit:
>> On 05.09.2011 00:08, Luca Olivetti wrote:
>>> Al 04/09/11 23:53, En/na Luca Olivetti ha escrit:
>>>> Al 04/09/11 23:05, En/na Klaus Schmidinger ha escrit:
>>>>
>>>>>> Ok, I couldn't resist and I tried. I don't know if it solves the issue
>>>>>> because now the subtitles are "whacky": they only appear from time to
>>>>>> time and they're in the middle of the screen, both with my trusty dxr3 and
>>>>>> with the xine plugin (in the latter case it happens both with sd and hd
>>>>>> channels).
>>>>>> Oh well, back to vdr-1.7.16 until I can investigate what's wrong :-(
>>>>>
>>>>> I tested this with several old recordings and also live (in HD)
>>>>> and the subtitles always worked just fine.
>>>>> I'm using a TT-S2 6400 as output device, if that matters.
>>>>
>>>> Well, I disabled the scaling/offset (in cDvbSubtitleConverter::SetOsdData)
>>>
>>> It still works better with the above "fix", but maybe there's a typo in there:
>>>
>>> shouldn't
>>>
>>> osdFactorX = VideoAspect * OsdHeight / displayWidth;
>>>
>>> be instead
>>>
>>> osdFactorX = VideoAspect * OsdHeight / displayHeight;
>>
>> I don't think so.
>>
>> 'VideoAspect * OsdHeight' is the width of a full screen subtitle display,
>> using the entire OSD height, according to the aspect ratio of the video
>> material. Dividing this by displayWidth (i.e. the actual width of the
>> subtitle display) results in the osdFactorX, which is used to convert
>> coordinates in the subtitle display to the OSD coordinate system.
>
> Ok, I got confused, but why do you use VideoAspect * OsdHeight instead of OsdWidth?

Assume the OSD aspect is 16:9 and the currently displayed video material
is 4:3. To properly map the subtitles on the 16:9 OSD you need to do
VideoAspect * OsdHeight to get the proper width, assuming that the full
height shall be used.

> Most probably the problem is caused because the dxr3 plugin doesn't implement
> the GetOsdSize and GetVideoSize method, but the xine plugin does implement them.
> Anyway, since the cDevice::GetVideoSize returns 0 if not overridden, I put a check
> VideoWidth == 0 in SetOsdData.
>
>
>> Can you provide me with some sample recording that demonstrates the
>> problem you are seeing?
>
> I think you can check by yourself: I tested with the bbc channels at 28.2E.

Since you're saying that the problem is related to the dxr3 plugin I guess
I won't see any error with my TT-S2 6400.

Klaus



More information about the vdr mailing list