mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-23 23:46:16 +02:00
fixes bug that causes mp3 stream to hang is server is not fast enough
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8754 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
358266a940
commit
c53b157b0e
@ -173,15 +173,15 @@ int mp3_stream_setup(unsigned char *url, unsigned int type, unsigned char *ip,
|
||||
ip);
|
||||
printf("Sending request :\n%s\n", icy_request);
|
||||
send(mp3_stream.sockfd, icy_request, strlen(icy_request), 0);
|
||||
//wait 200 ms ??!? some icecast servers seem to not push data to us fast enough ?!?!?
|
||||
poll(0,0,200);
|
||||
if ((mp3_stream.numbytes=recv(mp3_stream.sockfd, mp3_stream.buf, MAX_PACKET_SIZE-1, 0)) == -1) {
|
||||
perror("recv");
|
||||
return MP3_ERROR;
|
||||
mp3_stream.numbytes = 0;
|
||||
while(mp3_stream.numbytes < MAX_PACKET_SIZE-1) {
|
||||
if ((mp3_stream.numbytes += recv(mp3_stream.sockfd, &mp3_stream.buf[mp3_stream.numbytes], MAX_PACKET_SIZE - 1 - mp3_stream.numbytes, 0)) == -1) {
|
||||
perror("recv");
|
||||
return MP3_ERROR;
|
||||
}
|
||||
}
|
||||
mp3_stream.buf[mp3_stream.numbytes] = '\0';
|
||||
printf("numbytes = %d\n", mp3_stream.numbytes);
|
||||
printf("------\n%s\n---------\n", mp3_stream.buf);
|
||||
unsigned char *p = strstr(mp3_stream.buf, "\r\n\r\n");
|
||||
if(p) {
|
||||
*p = '\0';
|
||||
|
Loading…
Reference in New Issue
Block a user