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
[email protected]
http://lists.slimdevices.com/mailman/listinfo/unix