to compensate the loss of SetAvoidDevice() with streamdevs CheckConnection(),
ignoring the current live TV device. If a new device is returned it is just
switched to the new channel. Hopefully the main loop will pick it up later,
after streamdev switched aways live TV.
with the "red" key. The former main menu action of suspending live TV
moved to the "blue" key.
Squashed commit of the following:
commit 7175d7de91b637eb057831b5c27af78d3870f146
Author: Frank Schmirler <vdr@schmirler.de>
Date: Sun Nov 27 11:51:26 2011 +0100
Updated README
commit 94aef85adc9c2922205145550ff00e59c694e36d
Author: Frank Schmirler <vdr@schmirler.de>
Date: Sun Nov 27 11:32:16 2011 +0100
Moved "closing connection" log message to overload of cTBSocket::Close() in
cServerConnection.
commit 9b91301d943cfbec5208419704cfece84267223d
Author: Frank Schmirler <vdr@schmirler.de>
Date: Fri Nov 25 00:24:37 2011 +0100
Don't keep a pointer to the connection in components MulticastGroup
structure as the connection may now be deleted from outside via menu.
commit 7347e24123ec0b852091ec035cabce0e10278a72
Author: Frank Schmirler <vdr@schmirler.de>
Date: Thu Nov 24 23:45:59 2011 +0100
Fixed missing Display() call after disconnecting a client.
commit c652e8fa8141d7e323cbdbbc0a662244a5a84955
Author: Frank Schmirler <vdr@schmirler.de>
Date: Tue Nov 22 01:15:09 2011 +0100
Added server menu with list of clients. Connections can be terminated
with the "red" key. The former main menu action of suspending live TV
moved to the "blue" key.
deadlock in IGMP streaming server when switching live TV.
Previously cComponentIGMP::Accept did all the work including the channel
switch with the new cConnectionIGMP waiting for MainThreadHook. But as the
new connection is stored *after* Accept, MainThreadHook didn't see it and
so wasn't able to switch. The streamdev main thread waited forever.
Moved the main work into cComponentIGMP::Welcome.
Otherwise, if a client which is not livestreaming (e.g. watching a recording)
doesn't properly shutdown the port 2004 connection, the filter stream remains
open until TCP keepalive takes care of it. In the meantime, the log will show
ringbuffer overflows.
if the thread has been cancelled.
Delayed the streamdev main thread for up to 3 seconds. As the command timeou
of VTP connections is 1.5 seconds, one hanging connection could have caused
VTP connections to die.
- Avoid device allows more efficient code when trying to move live TV to different card
- Added some more dsyslog messages to help debugging channel switch issues