diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2009-01-16 14:27:22 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2009-01-16 14:27:22 +0100 |
commit | 970622ccf294ce3ce34f230b163bf3ef9464019d (patch) | |
tree | fbe7b7d4c527966028a56f6b908c924643be033a /dvbdevice.c | |
parent | 60c5248a3688eddaab8d1aaebd28c917016c5ad9 (diff) | |
download | vdr-970622ccf294ce3ce34f230b163bf3ef9464019d.tar.gz vdr-970622ccf294ce3ce34f230b163bf3ef9464019d.tar.bz2 |
The full-featured DVB cards are now given the TS data directly for replay
Diffstat (limited to 'dvbdevice.c')
-rw-r--r-- | dvbdevice.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/dvbdevice.c b/dvbdevice.c index 3d4fddc9..56001917 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.11 2009/01/06 16:54:52 kls Exp $ + * $Id: dvbdevice.c 2.12 2009/01/10 10:07:33 kls Exp $ */ #include "dvbdevice.h" @@ -1297,39 +1297,22 @@ bool cDvbDevice::Flush(int TimeoutMs) int cDvbDevice::PlayVideo(const uchar *Data, int Length) { - int w; - do { - w = WriteAllOrNothing(fd_video, Data, Length, 1000, 10); - if (w < 0 && errno == EAGAIN) { - cPoller Poller(fd_video, true); - Poller.Poll(200); - } - } while (w != Length); - return w; + return WriteAllOrNothing(fd_video, Data, Length, 1000, 10); } int cDvbDevice::PlayAudio(const uchar *Data, int Length, uchar Id) { - int w; - do { - w = WriteAllOrNothing(fd_audio, Data, Length, 1000, 10); - if (w < 0 && errno == EAGAIN) { - cPoller Poller(fd_audio, true); - Poller.Poll(200); - } - } while (w != Length); - return w; + return WriteAllOrNothing(fd_audio, Data, Length, 1000, 10); } int cDvbDevice::PlayTsVideo(const uchar *Data, int Length) { - return cDevice::PlayTsVideo(Data, Length); + return WriteAllOrNothing(fd_video, Data, Length, 1000, 10); } int cDvbDevice::PlayTsAudio(const uchar *Data, int Length) { - int w = PlayAudio(Data, TsGetPayload(&Data), 0); - return w >= 0 ? Length : w; + return WriteAllOrNothing(fd_audio, Data, Length, 1000, 10); } bool cDvbDevice::OpenDvr(void) |