aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TODO4
-rw-r--r--src/inputPlugins/ogg_plugin.c3
-rw-r--r--src/playlist.c10
3 files changed, 8 insertions, 9 deletions
diff --git a/TODO b/TODO
index 1d55edf5a..5f8dc8c93 100644
--- a/TODO
+++ b/TODO
@@ -2,10 +2,6 @@
*) Fix charset errors so they don't goto stderr/out
-*) compute time of vorbis from actual number of samples played
-
-*) remove previous hack for streams
-
Post-1.0
--------
1) crosslink "list" stuff, for example, artists are crosslinked to alubms and
diff --git a/src/inputPlugins/ogg_plugin.c b/src/inputPlugins/ogg_plugin.c
index c5197f132..b50ea5ea1 100644
--- a/src/inputPlugins/ogg_plugin.c
+++ b/src/inputPlugins/ogg_plugin.c
@@ -318,7 +318,8 @@ int ogg_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
sendDataToOutputBuffer(cb, inStream, dc,
inStream->seekable,
chunk, chunkpos,
- ov_time_tell(&vf),
+ ov_pcm_tell(&vf)/
+ dc->audioFormat.sampleRate,
bitRate);
if(dc->stop) break;
diff --git a/src/playlist.c b/src/playlist.c
index 31dc31fc5..a18f85dee 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -1165,14 +1165,16 @@ int setPlaylistRandomStatus(FILE * fp, int status) {
}
int previousSongInPlaylist(FILE * fp) {
+ static time_t lastTime = 0;
+ time_t diff = time(NULL) - lastTime;
+
+ lastTime += diff;
+
if(playlist_state!=PLAYLIST_STATE_PLAY) return 0;
syncPlaylistWithQueue(0);
- if (getPlayerElapsedTime()>PLAYLIST_PREV_UNLESS_ELAPSED &&
- playlist.songs[playlist.order[playlist.current]]->type
- != SONG_TYPE_URL)
- {
+ if (diff && getPlayerElapsedTime() > PLAYLIST_PREV_UNLESS_ELAPSED) {
return playPlaylistOrderNumber(fp,playlist.current);
}
else {