ralphy wrote: 
> Would you please post the exact change you made in a code block or patch
> file?
> 
> Thanks,

This is a snippet from my modified slimproto.c

Code:
--------------------
    
        case 'u':
                {
                        unsigned jiffies = unpackN(&strm->replay_gain);
                        LOCK_O;
                        output.state = jiffies ? OUTPUT_START_AT : 
OUTPUT_RUNNING;
                        output.start_at = jiffies;
                        status.frames_played = output.frames_played;
                        UNLOCK_O;
  #if GPIO
                        ampidle = 0;
  #endif
  LOCK_D;
  decode.state = DECODE_RUNNING;
  UNLOCK_D;
  
                        LOG_DEBUG("unpause at: %u now: %u", jiffies, 
gettime_ms());
                        sendSTAT("STMr", 0);
                }
  
--------------------


I added these three lines.

Code:
--------------------
    
  LOCK_D;
  decode.state = DECODE_RUNNING;
  UNLOCK_D;
  
  
--------------------


AGAIN, I DON'T MEAN TO SUGGEST THIS IS THE FIX.  I BARELY KNOW THE CODE,
AND I DID THIS SIMPLY TO FORCE THE DECODER TO RUN.

It looks like there was an assumption that this conditional block of
code in slimproto.c would be executed when autostart==1 and
status.stream_state==STREAMING_HTTP, and would set decode.state to
DECODE_RUNNING.  However, with a very small mp3 file, that doesn't
appear to be the case.  I'm not seeing status.stream_state equal to
STREAMING_HTTP.

Code:
--------------------
    
                        if ((status.stream_state == STREAMING_HTTP || 
status.stream_state == STREAMING_FILE) && !sentSTMl
                                && decode.state == DECODE_READY) {
                                if (autostart == 0) {
                                        decode.state = DECODE_RUNNING;
                                        _sendSTMl = true;
                                        sentSTMl = true;
                                } else if (autostart == 1) {
                                        decode.state = DECODE_RUNNING;
                                        _start_output = true;
                                }
                                decode.state = DECODE_RUNNING;
                                // autostart 2 and 3 require cont to be 
received first
                        }
  
--------------------


Thanks for looking into this!


------------------------------------------------------------------------
mhilbush's Profile: http://forums.slimdevices.com/member.php?userid=16832
View this thread: http://forums.slimdevices.com/showthread.php?t=97046

_______________________________________________
unix mailing list
unix@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/unix

Reply via email to