]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
mp3_afh: Take padding into account when computing frame duration.
authorAndre Noll <maan@systemlinux.org>
Sat, 30 Jul 2011 16:14:25 +0000 (18:14 +0200)
committerAndre Noll <maan@systemlinux.org>
Sat, 13 Aug 2011 10:39:13 +0000 (12:39 +0200)
Without this fix, the computed duration of a frame can be slightly
larger than its actual duration. If this happens for many frames of
an mp3 file, the chunk size will be slightly too large, which leads
to buffer underruns during streaming.

mp3_afh.c

index b83343edcf505b69a9cd6e79fbca43e9fb2ce384..b0d44ec991cb49568eb20b4a4106928ae5363f4e 100644 (file)
--- a/mp3_afh.c
+++ b/mp3_afh.c
@@ -420,7 +420,7 @@ static int mp3_read_info(unsigned char *map, size_t numbytes, int fd,
                if (ret < 0)
                        continue;
                fl = ret;
                if (ret < 0)
                        continue;
                fl = ret;
-               tmp.tv_sec = fl;
+               tmp.tv_sec = fl - header.padding;
                tmp.tv_usec = 0;
                tv_divide(br * 125, &tmp, &cct);
                tv_add(&cct, &total_time, &tmp);
                tmp.tv_usec = 0;
                tv_divide(br * 125, &tmp, &cct);
                tv_add(&cct, &total_time, &tmp);