diff options
author | Lars-Dominik Braun <PromyLOPh@lavabit.com> | 2009-07-11 19:18:03 +0200 |
---|---|---|
committer | Lars-Dominik Braun <PromyLOPh@lavabit.com> | 2009-07-11 19:18:03 +0200 |
commit | 235dcb00e742388caf76c130b68f0de999de2bd5 (patch) | |
tree | a9d3e1b0abb76d5a85ba98d7eb53240a057aa1a7 /src | |
parent | a34feb431bb9a8bef76fc1e069c73ded48b1f4cc (diff) | |
download | pianobar-235dcb00e742388caf76c130b68f0de999de2bd5.tar.gz pianobar-235dcb00e742388caf76c130b68f0de999de2bd5.tar.bz2 pianobar-235dcb00e742388caf76c130b68f0de999de2bd5.zip |
Fix hardcoded mp3 bitrate
Get bitrate from header of first decoded frame now.
Diffstat (limited to 'src')
-rw-r--r-- | src/player.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/player.c b/src/player.c index beccc37..fd56b0a 100644 --- a/src/player.c +++ b/src/player.c @@ -310,13 +310,6 @@ char BarPlayerMp3Cb (void *ptr, size_t size, void *stream) { return 0; } - /* initialize song length */ - if (player->mode < PLAYER_SAMPLESIZE_INITIALIZED) { - player->songDuration = (float) player->waith.contentLength / - ((float) MP3_BITRATE * 1024.0 / - (float) BAR_PLAYER_MS_TO_S_FACTOR / 8.0); - } - /* some "prebuffering" */ if (player->mode < PLAYER_RECV_DATA && player->bufferFilled < sizeof (player->buffer) / 2) { @@ -363,6 +356,12 @@ char BarPlayerMp3Cb (void *ptr, size_t size, void *stream) { format.byte_format = AO_FMT_LITTLE; player->audioOutDevice = ao_open_live (audioOutDriver, &format, NULL); + + /* calc song length using the framerate of the first decoded frame */ + player->songDuration = (float) player->waith.contentLength / + ((float) player->mp3Frame.header.bitrate / + (float) BAR_PLAYER_MS_TO_S_FACTOR / 8.0); + /* must be > PLAYER_SAMPLESIZE_INITIALIZED, otherwise time won't * be visible to user (ugly, but mp3 decoding != aac decoding) */ player->mode = PLAYER_RECV_DATA; |