
Junior Member
Posts: 20
Location:
Joined Date: January 1, 2007 |
wiesl |
Song Metadata not sent at connect was posted on: 01-20-2007 01:09:16 |
|
Hello!
Oddcast is very cool and has better buffer management than shoutcast.
One thing I miss:
When you start winamp with a song and then you connect to icecast/oddcast then the song metadata are not sent immediatly. They are sent when the next song is selected.
Can this be change? I would do it when I have actual source code of oddcast 3.1.15 or 3.1.12.
Thnx.
Wiesl
IP: Hidden |
|
 |
 |
|

Junior Member
Posts: 20
Location:
Joined Date: January 1 2007, 15:18 |
wiesl |
Replying to Topic 'Song Metadata not sent at connect' was posted on: 05-05-2007 08:35:05 |
|
Quote:[i]Originally posted by wiesl[/i]
Hello!
Oddcast is very cool and has better buffer management than shoutcast.
One thing I miss:
When you start winamp with a song and then you connect to icecast/oddcast then the song metadata are not sent immediatly. They are sent when the next song is selected.
Can this be change? I would do it when I have actual source code of oddcast 3.1.15 or 3.1.12.
Thnx.
Wiesl |
|
|
OK, I think I found the problem:
Oddcast has the following problem:
When the title is set in the setCurrentSongTitle() method updateSongTitle() is called.
But when oddsock is currently not connected, it doesn't update the song title. But in setCurrentSongTitle() the song is already set and is not set any more until
the next song is played.
You can reproduce this bug the following way:
Set reconnect timeout to e.g. 60s
Startup Winamp with oddcast
Press Play (When still disconnected, when you are connected everything is fine).
Start a client on the icecast server. => It gets not updated until next song played.
I fixed the bug that I remember whether the song title could be set. When it was not successfull I set it back to an empty string.
I did not test it, can you please make a build with my patches and make that public available.
Thanx.
Wiesl
diff -ur Orig\oddcastv3_03112007\src\liboddcast\liboddcast.cpp GW\oddcastv3_03112007\src\liboddcast\liboddcast.cpp
--- Orig\oddcastv3_03112007\src\liboddcast\liboddcast.cpp Sun Mar 11 18:35:58 2007
+++ GW\oddcastv3_03112007\src\liboddcast\liboddcast.cpp Sat May 05 16:09:10 2007
@@ -1011,7 +1011,10 @@
if(strcmp(g->gSongTitle, pCurrent)) {
strcpy(g->gSongTitle, pCurrent);
- updateSongTitle(g, 0);
+ if (!updateSongTitle(g, 0))
+ {
+ strcpy(g->gSongTitle, "");
+ }
return 1;
}
@@ -1030,7 +1033,10 @@
if(strcmp(g->gSongTitle, pCurrent)) {
strcpy(g->gSongTitle, pCurrent);
- updateSongTitle(g, 1);
+ if (!updateSongTitle(g, 1))
+ {
+ strcpy(g->gSongTitle, "");
+ }
return 1;
}
@@ -1209,7 +1215,9 @@
else {
g->ice2songChange = true;
}
+ return 1;
}
+ return 0;
}
/*
diff -ur Orig\oddcastv3_03112007\src\liboddcast\liboddcast.h GW\oddcastv3_03112007\src\liboddcast\liboddcast.h
--- Orig\oddcastv3_03112007\src\liboddcast\liboddcast.h Sun Mar 11 18:35:58 2007
+++ GW\oddcastv3_03112007\src\liboddcast\liboddcast.h Sat May 05 16:12:09 2007
@@ -402,7 +402,7 @@
int disconnectFromServer(oddcastGlobals *g);
int do_encoding(oddcastGlobals *g, short int *samples, int numsamples, int nch);
void URLize(char_t *input, char_t *output, int inputlen, int outputlen);
-void updateSongTitle(oddcastGlobals *g, int forceURL);
+int updateSongTitle(oddcastGlobals *g, int forceURL);
int setCurrentSongTitleURL(oddcastGlobals *g, char_t *song);
void icecast2SendMetadata(oddcastGlobals *g);
int ogg_encode_dataout(oddcastGlobals *g);
IP: Hidden |
|
 |
 |
|

Junior Member
Posts: 20
Location:
Joined Date: January 1 2007, 15:18 |
wiesl |
Replying to Topic 'Song Metadata not sent at connect' was posted on: 05-13-2007 00:10:12 |
|
Quote:[i]Originally posted by wiesl[/i]
[quote][i]Originally posted by wiesl[/i]
Hello!
Oddcast is very cool and has better buffer management than shoutcast.
One thing I miss:
When you start winamp with a song and then you connect to icecast/oddcast then the song metadata are not sent immediatly. They are sent when the next song is selected.
Can this be change? I would do it when I have actual source code of oddcast 3.1.15 or 3.1.12.
Thnx.
Wiesl |
|
|
OK, I think I found the problem:
Oddcast has the following problem:
When the title is set in the setCurrentSongTitle() method updateSongTitle() is called.
But when oddsock is currently not connected, it doesn't update the song title. But in setCurrentSongTitle() the song is already set and is not set any more until
the next song is played.
You can reproduce this bug the following way:
Set reconnect timeout to e.g. 60s
Startup Winamp with oddcast
Press Play (When still disconnected, when you are connected everything is fine).
Start a client on the icecast server. => It gets not updated until next song played.
I fixed the bug that I remember whether the song title could be set. When it was not successfull I set it back to an empty string.
I did not test it, can you please make a build with my patches and make that public available.
Thanx.
Wiesl
[/quote]
Ok, I tried 3.1.17, but now it looks even worser. Can you add some debug code to track down the problem.
Thnx.
Wiesl
IP: Hidden |
|
 |
 |
|
|

Junior Member
Posts: 20
Location:
Joined Date: January 1 2007, 15:18 |
wiesl |
Replying to Topic 'Song Metadata not sent at connect' was posted on: 05-13-2007 13:04:48 |
|
Quote:[i]Originally posted by oddsock[/i]
[quote][i]Originally posted by wiesl[/i]
[quote][i]Originally posted by wiesl[/i]
[quote][i]Originally posted by wiesl[/i]
Hello!
Oddcast is very cool and has better buffer management than shoutcast.
One thing I miss:
When you start winamp with a song and then you connect to icecast/oddcast then the song metadata are not sent immediatly. They are sent when the next song is selected.
Can this be change? I would do it when I have actual source code of oddcast 3.1.15 or 3.1.12.
Thnx.
Wiesl |
|
|
OK, I think I found the problem:
Oddcast has the following problem:
When the title is set in the setCurrentSongTitle() method updateSongTitle() is called.
But when oddsock is currently not connected, it doesn't update the song title. But in setCurrentSongTitle() the song is already set and is not set any more until
the next song is played.
You can reproduce this bug the following way:
Set reconnect timeout to e.g. 60s
Startup Winamp with oddcast
Press Play (When still disconnected, when you are connected everything is fine).
Start a client on the icecast server. => It gets not updated until next song played.
I fixed the bug that I remember whether the song title could be set. When it was not successfull I set it back to an empty string.
I did not test it, can you please make a build with my patches and make that public available.
Thanx.
Wiesl
[/quote]
Ok, I tried 3.1.17, but now it looks even worser. Can you add some debug code to track down the problem.
Thnx.
Wiesl[/quote]
can you be more specific ? worser ?[/quote]
It looks like that the data isn't sent to the shoutcast server via the http request on my tests. Even after the second song. After another song it worked well. So it looks like that this is not really reproduceable.
Can you add some debug code into logs?
Maybe it is also some race condition that updateSongTitle() is never called.
Wiesl
IP: Hidden |
|
 |
 |
|
|

Junior Member
Posts: 20
Location:
Joined Date: January 1 2007, 15:18 |
wiesl |
Replying to Topic 'Song Metadata not sent at connect' was posted on: 05-19-2007 10:41:59 |
|
Quote:[i]Originally posted by oddsock[/i]
[quote][i]Originally posted by wiesl[/i]
It looks like that the data isn't sent to the shoutcast server via the http request on my tests. Even after the second song. After another song it worked well. So it looks like that this is not really reproduceable.
Can you add some debug code into logs?
Maybe it is also some race condition that updateSongTitle() is never called.
Wiesl
|
|
|
Give 3.1.18 a try... Looks like there were some cases where updateSongTitle() was not being called..
- oddsock[/quote]
Ok, i tried 3.1.18 but there is still a case when it doesn't work:
I have a autoconnect setting of >30s to ensure that it is not connected after Winamp startup.
Afterwards I play a song and connect to the icecast server. Metadata is not there.
Wiesl
IP: Hidden |
|
 |
 |
|
|