diff options
Diffstat (limited to 'dvbdevice.c')
-rw-r--r-- | dvbdevice.c | 31 |
1 files changed, 2 insertions, 29 deletions
diff --git a/dvbdevice.c b/dvbdevice.c index 8a25adb..ccd9a98 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.131 2005/06/19 11:00:43 kls Exp $ + * $Id: dvbdevice.c 1.134 2005/08/15 14:05:23 kls Exp $ */ #include "dvbdevice.h" @@ -76,7 +76,6 @@ private: cCiHandler *ciHandler; cChannel channel; const char *diseqcCommands; - bool active; bool useCa; time_t startTime; eTunerStatus tunerStatus; @@ -101,7 +100,6 @@ cDvbTuner::cDvbTuner(int Fd_Frontend, int CardIndex, fe_type_t FrontendType, cCi frontendType = FrontendType; ciHandler = CiHandler; diseqcCommands = NULL; - active = false; useCa = false; tunerStatus = tsIdle; startTime = time(NULL); @@ -113,7 +111,6 @@ cDvbTuner::cDvbTuner(int Fd_Frontend, int CardIndex, fe_type_t FrontendType, cCi cDvbTuner::~cDvbTuner() { - active = false; tunerStatus = tsIdle; newSet.Signal(); Cancel(3); @@ -294,8 +291,7 @@ bool cDvbTuner::SetFrontend(void) void cDvbTuner::Action(void) { dvb_frontend_event event; - active = true; - while (active) { + while (Running()) { Lock(); if (tunerStatus == tsSet) { while (GetFrontendEvent(event)) @@ -1056,22 +1052,6 @@ void cDvbDevice::Mute(void) void cDvbDevice::StillPicture(const uchar *Data, int Length) { -/* Using the VIDEO_STILLPICTURE ioctl call would be the - correct way to display a still frame, but unfortunately this - doesn't work with frames from VDR. So let's do pretty much the - same here as in DVB/driver/dvb.c's play_iframe() - I have absolutely - no idea why it works this way, but doesn't work with VIDEO_STILLPICTURE. - If anybody ever finds out what could be changed so that VIDEO_STILLPICTURE - could be used, please let me know! - kls 2002-03-23 - 2003-08-30: apparently the driver can't handle PES data, so Oliver Endriss - <o.endriss@gmx.de> has changed this to strip all PES headers - and send pure ES data to the driver. Seems to work just fine! - Let's drop the VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES stuff - once this has proven to work in all cases. -*/ -#define VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES -#ifdef VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES if (Data[0] == 0x00 && Data[1] == 0x00 && Data[2] == 0x01 && (Data[3] & 0xF0) == 0xE0) { // PES data char *buf = MALLOC(char, Length); @@ -1143,13 +1123,6 @@ void cDvbDevice::StillPicture(const uchar *Data, int Length) video_still_picture sp = { (char *)Data, Length }; CHECK(ioctl(fd_video, VIDEO_STILLPICTURE, &sp)); } -#else -#define MIN_IFRAME 400000 - for (int i = MIN_IFRAME / Length + 1; i > 0; i--) { - safe_write(fd_video, Data, Length); - cCondWait::SleepMs(3); // allows the buffer to be displayed in case the progress display is active - } -#endif } bool cDvbDevice::Poll(cPoller &Poller, int TimeoutMs) |