diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-02-27 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-02-27 18:00:00 +0100 |
commit | 05402c740765e6e0ca2aaf1760c77d9e3d3ed5a5 (patch) | |
tree | 366d8a8c2a637d83c406fa0debd41b8a701fada5 /dvbdevice.c | |
parent | dbacda8274e2d76b0ea42f90b94353b672fa9343 (diff) | |
download | vdr-patch-lnbsharing-05402c740765e6e0ca2aaf1760c77d9e3d3ed5a5.tar.gz vdr-patch-lnbsharing-05402c740765e6e0ca2aaf1760c77d9e3d3ed5a5.tar.bz2 |
Version 1.3.22vdr-1.3.22
- Removed some unneeded code and fixed access to unallocated memory in
cEvent::FixEpgBugs() (thanks to Wolfgang Rohdewald).
- Avoiding unnecessary calls to SetPid() in cDvbDevice::SetAudioTrackDevice()
(thanks to Marco Schlüßler).
- No longer calling EnsureAudioTrack() in cDevice::SetChannel() if a Transfer Mode is
started, to avoid setting the audio PID on the primary device (thanks to Marco
Schlüßler for pointing this out).
- Replaced the call to system("sync") in SpinUpDisk() with fdatasync(f) to avoid
problems on NPTL systems (thanks to Chris Warren for pointing this out).
- Increased POLLTIMEOUTS_BEFORE_DEVICECLEAR in transfer.c to 6 to avoid problems
with the larger buffer reserve (thanks to Marco Schlüßler).
- Fixed the call to SetVideoFormat() in cDvbDevice::cDvbDevice() (parameter is _bool_).
- Added support for setting the video display mode (thanks to Marco Schlüßler).
- The new setup option "DVB/Video display format" can be used to define which display
format to use for playing wide screen video on a 4:3 tv set.
- Changed MAXDPIDS to 16 (8xAC3 + 8xDTS) (thanks to Werner Fink for pointing this out).
- Completed Dutch language texts (thanks to Hans Dingemans).
- Added 'smi' to the Finnish language codes (thanks to Rolf Ahrenberg).
- Fixed ensuring there is a current audio track in case there is only one track
(thanks to Werner Fink for reporting this one).
- Improved automatic audio track selection.
- Keeping the track language codes and descriptions in Transfer Mode (thanks to
Luca Olivetti).
- Fixed handling repeated kAudio keys.
- Improved displaying the the current audio track in the ST:TNG channel display.
Diffstat (limited to 'dvbdevice.c')
-rw-r--r-- | dvbdevice.c | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/dvbdevice.c b/dvbdevice.c index 741848a..c231122 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 1.120 2005/02/13 14:26:37 kls Exp $ + * $Id: dvbdevice.c 1.124 2005/02/20 13:35:28 kls Exp $ */ #include "dvbdevice.h" @@ -402,7 +402,7 @@ cDvbDevice::cDvbDevice(int n) // Video format: - SetVideoFormat(Setup.VideoFormat ? VIDEO_FORMAT_16_9 : VIDEO_FORMAT_4_3); + SetVideoFormat(Setup.VideoFormat); // We only check the devices that must be present - the others will be checked before accessing them://XXX @@ -599,10 +599,35 @@ bool cDvbDevice::GrabImage(const char *FileName, bool Jpeg, int Quality, int Siz return false; } +void cDvbDevice::SetVideoDisplayFormat(eVideoDisplayFormat VideoDisplayFormat) +{ + cDevice::SetVideoDisplayFormat(VideoDisplayFormat); + if (HasDecoder()) { + if (Setup.VideoFormat) { + CHECK(ioctl(fd_video, VIDEO_SET_DISPLAY_FORMAT, VIDEO_CENTER_CUT_OUT)); + } + else { + switch (VideoDisplayFormat) { + case vdfPanAndScan: + CHECK(ioctl(fd_video, VIDEO_SET_DISPLAY_FORMAT, VIDEO_PAN_SCAN)); + break; + case vdfLetterBox: + CHECK(ioctl(fd_video, VIDEO_SET_DISPLAY_FORMAT, VIDEO_LETTER_BOX)); + break; + case vdfCenterCutOut: + CHECK(ioctl(fd_video, VIDEO_SET_DISPLAY_FORMAT, VIDEO_CENTER_CUT_OUT)); + break; + } + } + } +} + void cDvbDevice::SetVideoFormat(bool VideoFormat16_9) { - if (HasDecoder()) + if (HasDecoder()) { CHECK(ioctl(fd_video, VIDEO_SET_FORMAT, VideoFormat16_9 ? VIDEO_FORMAT_16_9 : VIDEO_FORMAT_4_3)); + SetVideoDisplayFormat(eVideoDisplayFormat(Setup.VideoDisplayFormat)); + } } eVideoSystem cDvbDevice::GetVideoSystem(void) @@ -872,7 +897,7 @@ void cDvbDevice::SetAudioTrackDevice(eTrackType Type) const tTrackId *TrackId = GetTrack(Type); if (TrackId && TrackId->id) { if (IS_AUDIO_TRACK(Type)) { - if (pidHandles[ptAudio].pid) { + if (pidHandles[ptAudio].pid && pidHandles[ptAudio].pid != TrackId->id) { pidHandles[ptAudio].pid = TrackId->id; SetPid(&pidHandles[ptAudio], ptAudio, true); } |