mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Checking fd_video in cDvbDevice::GetVideoSize() to avoid error messages on systems with no real primary replay device
This commit is contained in:
parent
74646c0487
commit
ac3db05853
@ -2450,3 +2450,7 @@ Marcel Unbehaun <frostworks@gmx.de>
|
|||||||
|
|
||||||
Günter Niedermeier <linuxtv@ncs-online.de>
|
Günter Niedermeier <linuxtv@ncs-online.de>
|
||||||
for reporting a problem with file I/O overhead during recording in TS format
|
for reporting a problem with file I/O overhead during recording in TS format
|
||||||
|
|
||||||
|
Martin Neuditschko <yosuke.tomoe@gmx.net>
|
||||||
|
for reporting a problem with error messages from cDvbDevice::GetVideoSize()
|
||||||
|
on systems with no real primary replay device
|
||||||
|
4
HISTORY
4
HISTORY
@ -6075,7 +6075,7 @@ Video Disk Recorder Revision History
|
|||||||
- cFrameDetector::Analyze() now syncs on the TS packet sync bytes (thanks to
|
- cFrameDetector::Analyze() now syncs on the TS packet sync bytes (thanks to
|
||||||
Oliver Endriss for reporting broken index generation after a buffer overflow).
|
Oliver Endriss for reporting broken index generation after a buffer overflow).
|
||||||
|
|
||||||
2009-05-08: Version 1.7.8
|
2009-05-10: Version 1.7.8
|
||||||
|
|
||||||
- Fixed a typo in aspect ratio 2.21:1 (reported by Reinhard Nissl).
|
- Fixed a typo in aspect ratio 2.21:1 (reported by Reinhard Nissl).
|
||||||
- The name of the function cDevice::GetVideoSize() wasn't very well chosen
|
- The name of the function cDevice::GetVideoSize() wasn't very well chosen
|
||||||
@ -6089,3 +6089,5 @@ Video Disk Recorder Revision History
|
|||||||
to Oliver Endriss).
|
to Oliver Endriss).
|
||||||
- Increased MAXOSDHEIGHT to 1200 (suggested by Nicolas Huillard).
|
- Increased MAXOSDHEIGHT to 1200 (suggested by Nicolas Huillard).
|
||||||
- Removed limitation to PAL resolution from SPU handling.
|
- Removed limitation to PAL resolution from SPU handling.
|
||||||
|
- Checking fd_video in cDvbDevice::GetVideoSize() to avoid error messages on
|
||||||
|
systems with no real primary replay device (reported by Martin Neuditschko).
|
||||||
|
58
dvbdevice.c
58
dvbdevice.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: dvbdevice.c 2.16 2009/05/08 14:54:27 kls Exp $
|
* $Id: dvbdevice.c 2.17 2009/05/10 13:13:04 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "dvbdevice.h"
|
#include "dvbdevice.h"
|
||||||
@ -736,45 +736,51 @@ void cDvbDevice::SetVideoFormat(bool VideoFormat16_9)
|
|||||||
eVideoSystem cDvbDevice::GetVideoSystem(void)
|
eVideoSystem cDvbDevice::GetVideoSystem(void)
|
||||||
{
|
{
|
||||||
eVideoSystem VideoSystem = vsPAL;
|
eVideoSystem VideoSystem = vsPAL;
|
||||||
video_size_t vs;
|
if (fd_video >= 0) {
|
||||||
if (ioctl(fd_video, VIDEO_GET_SIZE, &vs) == 0) {
|
video_size_t vs;
|
||||||
if (vs.h == 480 || vs.h == 240)
|
if (ioctl(fd_video, VIDEO_GET_SIZE, &vs) == 0) {
|
||||||
VideoSystem = vsNTSC;
|
if (vs.h == 480 || vs.h == 240)
|
||||||
|
VideoSystem = vsNTSC;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
LOG_ERROR;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
LOG_ERROR;
|
|
||||||
return VideoSystem;
|
return VideoSystem;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cDvbDevice::GetVideoSize(int &Width, int &Height, eVideoAspect &Aspect)
|
void cDvbDevice::GetVideoSize(int &Width, int &Height, eVideoAspect &Aspect)
|
||||||
{
|
{
|
||||||
video_size_t vs;
|
if (fd_video >= 0) {
|
||||||
if (ioctl(fd_video, VIDEO_GET_SIZE, &vs) == 0) {
|
video_size_t vs;
|
||||||
Width = vs.w;
|
if (ioctl(fd_video, VIDEO_GET_SIZE, &vs) == 0) {
|
||||||
Height = vs.h;
|
Width = vs.w;
|
||||||
Aspect = eVideoAspect(vs.aspect_ratio);
|
Height = vs.h;
|
||||||
return;
|
Aspect = eVideoAspect(vs.aspect_ratio);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
LOG_ERROR;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
LOG_ERROR;
|
|
||||||
cDevice::GetVideoSize(Width, Height, Aspect);
|
cDevice::GetVideoSize(Width, Height, Aspect);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cDvbDevice::GetOsdSize(int &Width, int &Height, double &Aspect)
|
void cDvbDevice::GetOsdSize(int &Width, int &Height, double &Aspect)
|
||||||
{
|
{
|
||||||
video_size_t vs;
|
if (fd_video >= 0) {
|
||||||
if (ioctl(fd_video, VIDEO_GET_SIZE, &vs) == 0) {
|
video_size_t vs;
|
||||||
Width = 720;
|
if (ioctl(fd_video, VIDEO_GET_SIZE, &vs) == 0) {
|
||||||
if (vs.h != 480 && vs.h != 240)
|
Width = 720;
|
||||||
Height = 576; // PAL
|
if (vs.h != 480 && vs.h != 240)
|
||||||
|
Height = 576; // PAL
|
||||||
|
else
|
||||||
|
Height = 480; // NTSC
|
||||||
|
Aspect = 1.0;
|
||||||
|
if (Width >= MINOSDWIDTH && Width <= MAXOSDWIDTH && Height >= MINOSDHEIGHT && Height <= MAXOSDHEIGHT)
|
||||||
|
return;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
Height = 480; // NTSC
|
LOG_ERROR;
|
||||||
Aspect = 1.0;
|
|
||||||
if (Width >= MINOSDWIDTH && Width <= MAXOSDWIDTH && Height >= MINOSDHEIGHT && Height <= MAXOSDHEIGHT)
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
LOG_ERROR;
|
|
||||||
cDevice::GetOsdSize(Width, Height, Aspect);
|
cDevice::GetOsdSize(Width, Height, Aspect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user