Bug 1675 - when screensaver is set to analog VU meter, sometimes display just ends up blank
: when screensaver is set to analog VU meter, sometimes display just ends up blank
Status: CLOSED FIXED
Product: Logitech Media Server
Classification: Unclassified
Component: Audio
: 6.1.0
: Macintosh MacOS X 10
: P2 normal (vote)
: ---
Assigned To: Vidur Apparao
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2005-06-14 13:23 UTC by Kevin Pearsall
Modified: 2011-03-16 04:18 UTC (History)
2 users (show)

See Also:
Category: ---


Attachments
Patch to send visu even if duplicat screen update is suppressed (543 bytes, patch)
2005-07-10 08:31 UTC, Adrian Smith
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Pearsall 2005-06-14 13:23:18 UTC
don't know of a surefire way to reproduce this other than just letting the
player sit there for a while...
Comment 1 Blackketter Dean 2005-06-18 15:05:20 UTC
I can't reproduce this.  Kevin: any more ideas? 
Comment 2 Paul Runyan 2005-06-26 21:18:33 UTC
The same thing happes with the spectrum analyser screensaver on version 13.
Comment 3 Blackketter Dean 2005-07-09 08:17:17 UTC
*** Bug 1787 has been marked as a duplicate of this bug. ***
Comment 4 Vidur Apparao 2005-07-10 07:59:50 UTC
Since the visualizer comes back after kicking the display, my suspicion is that
this is a server-side problem, not a firmware issue. The question is what could
cause the server to turn off the visualizer mid-play?
Comment 5 Blackketter Dean 2005-07-10 08:01:44 UTC
Paul Runyan wrote:
It happens when I'm playing audio files from my local SlimServer (which are 
Apple Lossless), in fact it is happening right now.  I believe I've also had 
the problem when connecting to internet radio through my local SlimServer, but 
I am not absolutely certain.

Once it goes blank, it stays blank (with the exception of the periodic 
scrolling "no playing" text) until I manually kick the display by using the 
remote to bring up the menu, "No Playing" or anything else.  This seems to 
reset it.

If there is any sort of action I can take to collect useful diagnostics when 
this happens please let me know.
Comment 6 Blackketter Dean 2005-07-10 08:03:15 UTC
Triode:  Any idea why we might be sending a turn-off-visualizer message to the player?
Paul: Can you confirm that you are running 6.1 beta 2 and it's still happening?
Comment 7 Adrian Smith 2005-07-10 08:31:33 UTC
Created attachment 623 [details]
Patch to send visu even if duplicat screen update is suppressed
Comment 8 Blackketter Dean 2005-07-10 08:40:36 UTC
Interesting, Triode.  What's the theory behind this fix?  
Comment 9 Adrian Smith 2005-07-10 08:45:22 UTC
[If only I could operate bugzilla properly - this would be part of the 
previous attachement!  Just had to type it in again.]

Having just reviewed the code, there is a case where a mode could turn off the 
visualiser by setting the 'visu' param to [0], doing a update and then turning 
it back on again.  The display code will suppress a new update including 
visualiser frames if the render result is the same as the previous one.  So 
conceptually there is a case where the visualiser is stuck in the 'off' state.

Patch above should resolve this.  However I am not convinced it is the cause 
of this problem.  Do we have any clear ways of reproducing this?

Comment 10 Adrian Smith 2005-07-10 09:11:35 UTC
Dean - Other thing I notice is that the lines for the screensaver function 
doesn't return anything [presumably this means it returns true from the if 
statement? My perl is not upto this!].  I am not sure what parseLines makes of 
this, but would suggest returning an empty parts hash?
Comment 11 Blackketter Dean 2005-07-10 09:47:25 UTC
Right, the mode has no content to display, except the periodic track transition stuff.  I wonder if there's 
a display update being triggered where the visualizer isn't being set properly.  Is that what your patch 
addresses?
Comment 12 Adrian Smith 2005-07-10 11:09:04 UTC
Having looked at this again I don't think the problem I addressed with the 
patch is likely to occur.  I've also verified that parseLines works fine with 
no return from the lines function - it sets all components to ''.

The patch was intended to cover the case where something like the volume 
control turns off the visualiser, calls update then turns on the visualiser 
and calls update again again.  If the thing it displays the second time is the 
same as the first both the display and visualiser frames would be suppressed.  
However the next time update or a push/bump is called, the correct visualiser 
mode would be involked - so not really a problem.  Also I can't see any cases 
where the two screens would be the same.

In the case raised, this is not happening and indeed _pushon _pushoff seem to 
be still working.  The server code should be checking the visualiser mode for 
each screen update and sending a visu frame *if* the paramref in 
Squeezebox2::visualizer() has changed.  [this is an attempt to suppress 
repeated visu frames.]

If line line:
 return if (defined($paramsref) && ($paramsref == $client->lastVisMode())); 

in visualizer() is commented out does it still occur?  If so could it be that 
the player is loosing state?  [I assume that there are no cases where 
paramsref would be the same, but the mode would be different as all parameters 
are in static arrays?]
Comment 13 Paul Runyan 2005-07-11 04:41:57 UTC
I'm using SlimServer 6.1b1.  I can update to beta 2. 

When I get the chance I'll comment out the line Triode suggested and let you 
know if the problem persists.  
  


Comment 14 Blackketter Dean 2005-07-11 11:43:52 UTC
Thanks, we really need a reproducible case here.
Comment 15 Adrian Smith 2005-07-13 11:44:25 UTC
I think it is the firmware...

I've managed to reproduce this twice now.  In both cases I set a playlist 
going on repeat and selected the spectrum analyser screensaver.  When it 
failed music is still playing, the periodic scrolling text is still seen, but 
otherwise the display is blank.

The first time it took 3 hours to get to this state.  I then added some 
debugging to log the visu frames sent to the player.  This time it took over 
48 hours to get into the problem state.  During this time, no visu frames were 
sent to the player.  Clearly the server is sending display updates for the 
pushes, but with the suppression of duplicate visu frames means none are sent.

Hence I think the firmware manages to loose state for some reason.  Clearly we 
could remove the visu frame suppression, but this would only help kick the 
firmware in the cases where text is displayed periodically.

Is there any debugging I can do for you on the player while it is in this 
state?  

[I'm running r3660 with the latest v14 firmware from this]

The last visu frame sent to the player in my case had the following params 
(Data::Dumper of params)
2005-07-11 00:30:24.7230 Sending Visu frame
$VAR1 = 0;
$VAR2 = 0;
$VAR3 = 65536;
$VAR4 = 0;
$VAR5 = 160;
$VAR6 = 0;
$VAR7 = 4;
$VAR8 = 1;
$VAR9 = 1;
$VAR10 = 1;
$VAR11 = 3;
$VAR12 = 160;
$VAR13 = 160;
$VAR14 = 1;
$VAR15 = 4;
$VAR16 = 1;
$VAR17 = 1;
$VAR18 = 1;
$VAR19 = 3;

It failed sometime between last night and when I got home this evening 2005-07-
13
Comment 16 Blackketter Dean 2005-07-13 12:16:16 UTC
Vidur: any thoughts on this?
Comment 17 Kevin Pearsall 2005-07-13 12:48:29 UTC
I've seen this a few times but unfortunately I don't really have anything to
add.  I usually leave this player on my desk playing all night, and have been
using the analog vu meter as the screensaver lately.  Every other morning or so
I'll come in and the screen will be blank...

What could I do to help here?
Comment 18 Vidur Apparao 2005-07-13 12:55:05 UTC
Well...the only thing that shuts off visualizers in the firmware state machine
(other than a 'visu' frame from the server) is going into setup. This could
happen if the connection to the server is temporarily lost. Since we now try to
do a seamless reconnect, the audio would keep on playing. I would assume that
the server sends a 'visu' frame on a reconnect, but maybe I'm wrong? Does this
theory work with what anyone else is seeing?
Comment 19 Adrian Smith 2005-07-13 13:08:28 UTC
We may be getting somewhere - I don't think you will get a visu frame on 
reconnect as it will call update with the current lines function which means 
that the visu frame will be suppressed.  

I'll try reproducing by killing the server connection.
Comment 20 Adrian Smith 2005-07-13 13:43:10 UTC
Ok - with simple case of killing the network, no visu frames are currently 
sent on reconnect.  I haven't been able to reproduce just killing the 
slimproto session.

As this is clearly not compatible with the firmware I will commit a fix that 
forces a visu frame to be sent on reconnect.
Comment 21 Adrian Smith 2005-07-13 13:59:38 UTC
Kevin (and others) could you try r3691.  If you find a way to kill just the 
slimproto session this may reproduce the bug and demonstrate this fixes it...  
It definately ensures the visu mode is updated on reconnect which did not 
happen before.
Comment 22 Vidur Apparao 2005-07-18 10:25:25 UTC
Marking this bug as fixed. Please reopen if you have a case that isn't addressed
by Triode's fixes.
Comment 23 Paul Runyan 2005-07-25 05:06:51 UTC
Yes, I haven't been able to reproduce this problem since I updated shortly 
after the last message.  Thanks Triode and Vidur.
Comment 24 Chris Owens 2008-03-11 11:28:21 UTC
This bug was marked resolved in Slimserver 6.1, which is several versions ago.  If you're still seeing this bug, please re-open it.  Thanks!