diff options
-rw-r--r-- | p2pvr/lib/tuner.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/p2pvr/lib/tuner.cpp b/p2pvr/lib/tuner.cpp index f4263ee..bb19a3c 100644 --- a/p2pvr/lib/tuner.cpp +++ b/p2pvr/lib/tuner.cpp @@ -264,7 +264,7 @@ Tuner::StartSendingSection(int pid, const P2PVR::RawDataClientPrx & client, cons std::lock_guard<std::mutex> g(lock); int demux = backgroundClients.insert(BackgroundClients::value_type(OpenDemux(), - BackgroundClient(client, &Tuner::IsValidSection))).first->first; + BackgroundClient(client->ice_collocationOptimized(false), &Tuner::IsValidSection))).first->first; RequestPID(pid, demux); startSenderThread(); return demux; @@ -412,6 +412,13 @@ Tuner::senderThread() } return false; } + catch (const std::exception & ex) { + Logger()->messagebf(LOG_DEBUG, "%s: Client transmit error (%s)", __PRETTY_FUNCTION__, ex.what()); + close(a.get<2>()); + std::lock_guard<std::mutex> g(lock); + backgroundClients.erase(a.get<2>()); + return true; + } catch (...) { Logger()->messagebf(LOG_DEBUG, "%s: Client transmit error", __PRETTY_FUNCTION__); close(a.get<2>()); |