diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2009-06-01 14:56:28 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2009-06-01 14:56:28 +0200 |
commit | e639e3a76ad6c8d721ab3f827bd7b3847e351c05 (patch) | |
tree | 38ea5b358c89084d581071a189692b8b26c3283f /dvbdevice.c | |
parent | 78d2fd3d0e2a69c27581afe710f5598862a750be (diff) | |
download | vdr-e639e3a76ad6c8d721ab3f827bd7b3847e351c05.tar.gz vdr-e639e3a76ad6c8d721ab3f827bd7b3847e351c05.tar.bz2 |
Improved cDvbDevice::GetOsdSize()
Diffstat (limited to 'dvbdevice.c')
-rw-r--r-- | dvbdevice.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/dvbdevice.c b/dvbdevice.c index a57693e4..4f37117e 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 2.19 2009/06/01 11:42:06 kls Exp $ + * $Id: dvbdevice.c 2.20 2009/06/01 14:44:54 kls Exp $ */ #include "dvbdevice.h" @@ -748,14 +748,19 @@ eVideoSystem cDvbDevice::GetVideoSystem(void) return VideoSystem; } -void cDvbDevice::GetVideoSize(int &Width, int &Height, eVideoAspect &Aspect) +void cDvbDevice::GetVideoSize(int &Width, int &Height, double &Aspect) { if (fd_video >= 0) { video_size_t vs; if (ioctl(fd_video, VIDEO_GET_SIZE, &vs) == 0) { Width = vs.w; Height = vs.h; - Aspect = eVideoAspect(vs.aspect_ratio); + switch (vs.aspect_ratio) { + default: + case VIDEO_FORMAT_4_3: Aspect = 4.0 / 3.0; break; + case VIDEO_FORMAT_16_9: Aspect = 16.0 / 9.0; break; + case VIDEO_FORMAT_221_1: Aspect = 2.21; break; + } return; } else @@ -774,7 +779,13 @@ void cDvbDevice::GetOsdSize(int &Width, int &Height, double &Aspect) Height = 576; // PAL else Height = 480; // NTSC - Aspect = 1.0; + switch (Setup.VideoFormat ? vs.aspect_ratio : VIDEO_FORMAT_4_3) { + default: + case VIDEO_FORMAT_4_3: Aspect = 4.0 / 3.0; break; + case VIDEO_FORMAT_221_1: // FF DVB cards only distinguish between 4:3 and 16:9 + case VIDEO_FORMAT_16_9: Aspect = 16.0 / 9.0; break; + } + Aspect /= double(Width) / Height; return; } else |