Details
-
Bug
-
Resolution: Fixed
-
Major
-
1.1.0 RC 2
-
None
-
-
Server-Client
Description
If you enable Reinitialize TVService in PowerScheduler, RTSP streaming does not work after the server resumes from sleep/hibernation. Reinitialize TVService is necessary for some TV cards that do not handle power states very well and fail after resume if not fully reinitialized.
h4. Steps to Reproduce
1. Configure PowerScheduler in SetupTV to reinitialize TVService on resume.
2. Use a client to connect to the server and stream some content (live or recorded TV) to verify RTSP Streaming works.
3. Let the server go to sleep.
4. Wake server up and try again to stream content to the client. The streaming will fail and a line like the following will be logged in TsReader.log:
<i>Failed to get a SDP description from URL rtsp://192.168.0.7:554/stream2.0 Failed to read response: No error</i>
h4. Additional Information
When "reinitialize TVService" is enabled, StreamingServer is stopped before going to sleep and restarted on resume. However only running steams are stopped while the rest of the live555 resources (the scheduler, the environment and the streamer) are left intact. As a result, on resume a new scheduler, environment and streamer are created that conflict the existing ones. Also this leads to leaking memory and socket handles.
h4. Steps to Reproduce
1. Configure PowerScheduler in SetupTV to reinitialize TVService on resume.
2. Use a client to connect to the server and stream some content (live or recorded TV) to verify RTSP Streaming works.
3. Let the server go to sleep.
4. Wake server up and try again to stream content to the client. The streaming will fail and a line like the following will be logged in TsReader.log:
<i>Failed to get a SDP description from URL rtsp://192.168.0.7:554/stream2.0 Failed to read response: No error</i>
h4. Additional Information
When "reinitialize TVService" is enabled, StreamingServer is stopped before going to sleep and restarted on resume. However only running steams are stopped while the rest of the live555 resources (the scheduler, the environment and the streamer) are left intact. As a result, on resume a new scheduler, environment and streamer are created that conflict the existing ones. Also this leads to leaking memory and socket handles.