The debug log definitely shows that the SB2 seems stalled from sometime after 22:40:16 till 22:46:39. The former time is when we finish streaming the FLAC track to the player, though it may be many seconds before the SB2 actually finishes playing the track. The latter time is when SlimServer receives a decoder underrun event from the SB2, implying that the input buffer of the device is empty and it's ready for the next track. Again, there should be a delta between the first time and the point where we get the decoder underrun event - this represents the audio in the SB2's input buffer which can be several seconds to minutes long, depending on the bitrate of the audio and the bandwidth of the network. However, that delta definitely shouldn't be over 6 minutes.


A question - were these two players synchronized and then unsynchronized anytime prior to grabbing the debug log? I've attached a small source code patch that provides a bit more debug output. If you need help applying the patch, feel free to contact me off-list at vidur | at | slimdevices.com.

Greg, the log you posted to bug 1289 isn't as clear about what's going on. If you're able to recreate with the attached patch, I'd appreciate it.

Thanks for your help!
--Vidur


Index: Slim/Player/Source.pm
===================================================================
--- Slim/Player/Source.pm       (revision 3007)
+++ Slim/Player/Source.pm       (working copy)
@@ -583,6 +583,7 @@
                # A zero length chunk is a marker for the end of the stream.
                # If we see one, close the outgoing connection.
                if (!$len) {
+                       $::d_source && msg("Found an empty chunk on the queue - 
this means we should drop the streaming connection.\n");
                        Slim::Web::HTTP::forgetClient($client);
                        $chunk = undef;
                }
@@ -873,9 +874,11 @@
        my $client = shift;
 
        if (!scalar(@{$client->chunks})) {
+               $::d_source && msg("No pending chunks - we're dropping the 
streaming connection\n");
                Slim::Web::HTTP::forgetClient($client);
        }
        else {
+               $::d_source && msg("There are pending chunks - queue an empty 
chunk and wait till the chunk queue is empty before dropping the 
connection.\n");
                push @{$client->chunks}, \'';
        }
        foreach my $buddy (Slim::Player::Sync::syncedWith($client)) {
_______________________________________________
Discuss mailing list
[email protected]
http://lists.slimdevices.com/lists/listinfo/discuss

Reply via email to