summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_audio.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demux_audio.c')
-rw-r--r--libmpdemux/demux_audio.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/libmpdemux/demux_audio.c b/libmpdemux/demux_audio.c
index 35844a344f..38f1d2afd2 100644
--- a/libmpdemux/demux_audio.c
+++ b/libmpdemux/demux_audio.c
@@ -481,13 +481,12 @@ static int demux_audio_open(demuxer_t* demuxer) {
if (demuxer->movi_end > demuxer->movi_start) {
// try to find out approx. bitrate
int64_t size = demuxer->movi_end - demuxer->movi_start;
- int64_t num_samples = 0;
- int32_t srate = 0;
+ int64_t num_samples;
+ int32_t srate;
stream_skip(s, 14);
- stream_read(s, (char *)&srate, 3);
- srate = be2me_32(srate) >> 12;
- stream_read(s, (char *)&num_samples, 5);
- num_samples = (be2me_64(num_samples) >> 24) & 0xfffffffffULL;
+ srate = stream_read_int24(s) >> 4;
+ num_samples = stream_read_int24(s) << 16;
+ num_samples |= stream_read_word(s);
if (num_samples && srate)
sh_audio->i_bps = size * srate / num_samples;
}