From 7dd81a36e609b04a38fa7251536fe0f1dc31acdf Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Sun, 6 Mar 2011 15:51:14 +0000 Subject: [PATCH] sectionsd: close / reopen demux device explicitely on TD The Tripledragon drivers need explicit close/open to recover from buffer overruns (or similar). Observed problem was, that when starting on a channel that does send TDT only every 30 seconds (ZDF), the demux would not work anymore and never recover. git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@1258 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/1f84bf9a1b5ae0b53e9cb03964ed8a045ef27f2b Author: Stefan Seyfried Date: 2011-03-06 (Sun, 06 Mar 2011) ------------------ This commit was generated by Migit --- src/sectionsd/dmx.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/sectionsd/dmx.cpp b/src/sectionsd/dmx.cpp index 7741d053a..45335e283 100644 --- a/src/sectionsd/dmx.cpp +++ b/src/sectionsd/dmx.cpp @@ -105,7 +105,11 @@ void DMX::closefd(void) if (isOpen()) { //close(fd); +#if HAVE_TRIPLEDRAGON + dmx->Close(); +#else dmx->Stop(); +#endif fd = -1; } } @@ -495,8 +499,13 @@ xprintf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>DMX::imediate_start: isOpen()<<<<<<<<<<<< #endif if(dmx == NULL) { dmx = new cDemux(dmx_num); +#if !HAVE_TRIPLEDRAGON dmx->Open(DMX_PSI_CHANNEL, NULL, dmxBufferSizeInKB*1024UL); +#endif } +#if HAVE_TRIPLEDRAGON + dmx->Open(DMX_PSI_CHANNEL, NULL, dmxBufferSizeInKB*1024UL); +#endif fd = 1; /* setfilter() only if this is no dummy filter... */