Bug 13814 - Implement synchronized unpause
: Implement synchronized unpause
Status: RESOLVED FIXED
Product: Logitech Media Server
Classification: Unclassified
Component: Streaming From SlimServer
: unspecified
: All All
: P2 enhancement (vote)
: 7.6.x
Assigned To: Alan Young
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-09-02 06:31 UTC by Alan Young
Modified: 2011-09-09 02:19 UTC (History)
2 users (show)

See Also:
Category: Feature


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alan Young 2009-09-02 06:31:40 UTC
Currently, track start is synchronized (for mulyiple, synchronized players) but unpause is not.

See also bug 13813 the work for which should be cordinated with this.
Comment 1 Alan Young 2009-09-29 03:07:53 UTC
Update hours
Comment 2 SVN Bot 2011-09-08 08:27:33 UTC
 == Auto-comment from SVN commit #9503 to the jive repo by ayoung ==
 == http://svn.slimdevices.com/jive?view=revision&revision=9503 ==

bug 13814: Implement synchronized unpause 
Improve accuracy of timed start and resume by delaying evaluation of delay interval until where it is used in the output thread/process.
Comment 3 SVN Bot 2011-09-09 01:59:06 UTC
 == Auto-comment from SVN commit #33374 to the slim repo by ayoung ==
 == http://svn.slimdevices.com/slim?view=revision&revision=33374 ==

Fixed bug 13814: Implement synchronized unpause 
Refactor Player classes resume() method out of Squeezebox.pm and make it take a start-at-time parameter.
Implement enhanced resume() method for Squeezebox2 (covers all SB2 and later players), SqueezeSlave and Squeezebox1 classes. This is still only best-effort for SqueezeSlave and Squeezebox1.
Calculate start-at-time parameter for each player in StreamingController::_Resume() based on the latest status which should indicate exactly when the player actually paused (which will likely be different for each player).

Note that SqueezePlay (Radio, Touch) revision r9503 or above is required for these players to obey these timed resume instructions sufficiently accurately.

Increase default syncStartDelay to 200ms as 100ms really was not sufficient in most cases. Probably should be larger for SN.

Ensure any resync will not happen until at least 2s after resume to ensure that up-to-date status has been received. This would need to be increased if the player STAT interval was increased above 1s (see below).

Calculate Squeezebox2::songElapsedSeconds()  & SqueezeSlave::songElapsedSeconds() using status data, and adjusting for the time of the report if playing. This means that the paused-at time (resumeTime) is more accurate. Note that Client::songElapsedSeconds() is no longer maintained as a state variable. This would allow the STAT interval for a playing player to be increased above its current 1s. PLAYPOINT_RECENT_THRESHOLD and manipulation of nextCheckSyncTime might need to be adjusted in this case.
Comment 4 SVN Bot 2011-09-09 02:19:42 UTC
 == Auto-comment from SVN commit #33376 to the slim repo by ayoung ==
 == http://svn.slimdevices.com/slim?view=revision&revision=33376 ==

bug 13814: Implement synchronized unpause 
Remove debug trace.