From e912e48282b5937f88c4a51cc89aa4247d849084 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 23 May 2004 10:12:44 +0200 Subject: [PATCH] Added play mode pmVideoOnly --- CONTRIBUTORS | 1 + HISTORY | 1 + device.h | 3 ++- dvbdevice.c | 12 +++++++++++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e0b92d02..2fb3a29d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -675,6 +675,7 @@ Marcel Wiesweg for his help in fixing some issues with gcc 3.4 for fixing a memory leak in NIT processing for adding a few missing initializations + for adding play mode pmVideoOnly Torsten Herz for fixing a possible deadlock when using the "Blue" button in the "Schedules" menu diff --git a/HISTORY b/HISTORY index f8da9863..da39e8e0 100644 --- a/HISTORY +++ b/HISTORY @@ -2830,3 +2830,4 @@ Video Disk Recorder Revision History - Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins. It now also has a SetText() function that can be used to dynamically set the text in an already existing cMenuText (both suggested by Stefan Huelswitt). +- Added play mode pmVideoOnly (thanks to Marcel Wiesweg). diff --git a/device.h b/device.h index a725e4d4..6f0f70a7 100644 --- a/device.h +++ b/device.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: device.h 1.42 2004/04/17 10:15:25 kls Exp $ + * $Id: device.h 1.43 2004/05/23 10:10:08 kls Exp $ */ #ifndef __DEVICE_H @@ -36,6 +36,7 @@ enum ePlayMode { pmNone, // audio/video from decoder pmAudioVideo, // audio/video from player pmAudioOnly, // audio only from player, video from decoder pmAudioOnlyBlack, // audio only from player, no video (black screen) + pmVideoOnly, // video only from player, audio from decoder pmExtern_THIS_SHOULD_BE_AVOIDED // external player (e.g. MPlayer), release the device // WARNING: USE THIS MODE ONLY AS A LAST RESORT, IF YOU diff --git a/dvbdevice.c b/dvbdevice.c index 9d659e6b..cb143a6d 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.85 2004/05/22 15:11:48 kls Exp $ + * $Id: dvbdevice.c 1.86 2004/05/23 10:11:42 kls Exp $ */ #include "dvbdevice.h" @@ -873,6 +873,16 @@ bool cDvbDevice::SetPlayMode(ePlayMode PlayMode) CHECK(ioctl(fd_audio, AUDIO_PLAY)); CHECK(ioctl(fd_video, VIDEO_SET_BLANK, false)); break; + case pmVideoOnly: + CHECK(ioctl(fd_video, VIDEO_SET_BLANK, true)); + CHECK(ioctl(fd_video, VIDEO_STOP, true)); + CHECK(ioctl(fd_audio, AUDIO_SELECT_SOURCE, AUDIO_SOURCE_DEMUX)); + CHECK(ioctl(fd_audio, AUDIO_SET_AV_SYNC, false)); + CHECK(ioctl(fd_audio, AUDIO_PLAY)); + CHECK(ioctl(fd_video, VIDEO_CLEAR_BUFFER)); + CHECK(ioctl(fd_video, VIDEO_SELECT_SOURCE, VIDEO_SOURCE_MEMORY)); + CHECK(ioctl(fd_video, VIDEO_PLAY)); + break; case pmExtern_THIS_SHOULD_BE_AVOIDED: close(fd_video); close(fd_audio);