An update of media-video/libav from 0.8_pre20111116 to 0.8_pre20111222 leads to this problem. When playing certain parts of certain music files, certain noise instead of expected music is heard. Reproducible: Always Steps to Reproduce: Play certain parts of certain music files with avplay(1) directly or any application that rely on libavcodec (like mplayer). Actual Results: Certain noise (the "rhythm" of the noise is fixed for a given part of a given file) is heard. Expected Results: Expected part of the piece of music should be played, as in older versions of libav like 0.8_pre20111116. A downgrade to media-video/libav-0.8_pre20111116 works around this issue, so this problem is definitely related to the upgrade. media-video/ffmpeg might also have the problem, but I have not tested. This is what I get when I play one file with avplay(1): % avplay BWV\ 988,\ 9.\ Variatio\ 8\ a\ 2\ Clav.mp3 avplay version 0.7, Copyright (c) 2003-2011 the Libav developers built on Dec 23 2011 16:37:53 with gcc 4.5.3 [mp3 @ 0xb8cb80] max_analyze_duration reached [mp3 @ 0xb8cb80] Estimating duration from bitrate, this may be inaccurate Input #0, mp3, from 'BWV 988, 9. Variatio 8 a 2 Clav.mp3': Metadata: title : BWV 988, 9. Variatio 8 a 2 Clav artist : Glenn Herbert Gould track : 09 album : Bach: The Goldberg Variations (1955) date : 2002 genre : Classical composer : Johann Sebastian Bach Duration: 00:00:45.38, start: 0.000000, bitrate: 256 kb/s Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 256 kb/s [mp3 @ 0xbc34e0] overread, skip -7 enddists: -6 -6 [mp3 @ 0xbc34e0] overread, skip -5 enddists: -3 -3= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -3 -3= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -9 enddists: -4 -4= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -4 -4= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -8 enddists: -3 -3= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -8 enddists: -7 -7= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -5 enddists: -3 -3= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -3 -3= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -9 enddists: -7 -7= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -3 -3= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -1 -1= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -5 -5= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -1 -1= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -5 enddists: -4 -4= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -5 enddists: -3 -3 [mp3 @ 0xbc34e0] overread, skip -9 enddists: -4 -4 [mp3 @ 0xbc34e0] overread, skip -5 enddists: -4 -4= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -3 -3 [mp3 @ 0xbc34e0] overread, skip -8 enddists: -3 -3= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -9 enddists: -5 -5 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -4 -4= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -6 -6= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -3 -3= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -10 enddists: -8 -8 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -3 -3= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -6 -6= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -2 -2 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -1 -1 [mp3 @ 0xbc34e0] overread, skip -8 enddists: -6 -6= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -1 -1 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -3 -3 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -1 -1 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -2 -2= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -5 enddists: -4 -4= 0B f=0/0 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -6 -6 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -1 -1 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -5 -5 [mp3 @ 0xbc34e0] overread, skip -7 enddists: -1 -1 [mp3 @ 0xbc34e0] overread, skip -6 enddists: -2 -2 ALSA lib pcm.c:7316:(snd_pcm_recover) underrun occurred0B f=0/0 [mp3 @ 0x6a34e0] Header missing 1KB vq= 0KB sq= 0B f=0/0 ^C45.35 A-V: 0.000 s:0.0 aq= 0KB vq= 0KB sq= 0B f=0/0 A short excerpt of one affected music file (in fact the file mentioned above) is attached to show how the noise sounds. This excerpt is truncated and converted (with avconv(1)) from the affected file, and consists of two parts: the first part is the noise, and the second is normal. The affected file is copyrighted and therefore I only attached an excerpt of it (which is sufficiently short that I think it's fair use). The excerpt itself is normal, because I can't find a way to retain the "abnormality" of the affected file; nevertheless, the noise itself is somewhat preserved in the excerpt. Output of `emerge --info libav': Portage 2.1.10.41 (default/linux/amd64/10.0/desktop, gcc-4.5.3, glibc-2.14.1-r1, 3.1.5-gentoo x86_64) ================================================================= System Settings ================================================================= System uname: Linux-3.1.5-gentoo-x86_64-Intel-R-_Pentium-R-_Dual_CPU_T2370_@_1.73GHz-with-gentoo-2.1 Timestamp of tree: Fri, 23 Dec 2011 12:45:01 +0000 app-shells/bash: 4.2_p20 dev-lang/python: 2.7.2-r3, 3.2.2 dev-util/cmake: 2.8.6-r4 dev-util/pkgconfig: 0.26 sys-apps/baselayout: 2.1 sys-apps/openrc: 0.9.7 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.9.6-r3, 1.11.1-r1 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.5.3-r2 sys-devel/gcc-config: 1.5-r2 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r3 sys-kernel/linux-headers: 3.1 (virtual/os-headers) sys-libs/glibc: 2.14.1-r1::caspervector Repositories: gentoo gentoo-haskell gentoo-zh caspervector ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-march=nocona -O2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--quiet-build n" FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fakeroot fixlafiles metadata-transfer news parallel-fetch parallel-install protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch usersync" FFLAGS="" GENTOO_MIRRORS="http://mirror.bjtu.edu.cn/gentoo http://mirrors.ustc.edu.cn/gentoo" LANG="en_GB.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en_GB" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_EXTRA_OPTS="--human-readable" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/haskell /var/lib/layman/gentoo-zh /usr/local/portage" SYNC="rsync://rsync.cn.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa amd64 bash-completion berkdb branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam ffmpeg firefox flac fontconfig fortran gdu gif gnutls gpg gpm gtk gtk3 iconv ipv6 jpeg lcms libedit libnotify mad maildir mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nptlonly nsplugin ogg opengl openmp pam pango pcre pdf png policykit ppds pppd qt3support qt4 readline sdl session smp socks5 spell sse sse2 sse3 ssl ssse3 startup-notification svg sysfs system-sqlite tcpd threads tiff truetype udev unicode usb vorbis x264 xcb xft xinerama xml xorg xulrunner xv xvid zlib zsh-completion" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS ================================================================= Package Settings ================================================================= media-video/libav-0.8_pre20111222 was built with the following: USE="3dnowext X aac alsa amr bzip2 encode gpl hardcoded-tables mmx mp3 (multilib) qt-faststart sdl ssl ssse3 theora threads truetype vorbis x264 xvid zlib -3dnow (-altivec) -avx -bindist -cdio -cpudetection -custom-cflags -debug -dirac -doc -faac -frei0r -gsm -ieee1394 (-iwmmxt) -jack -jpeg2k -mmxext (-neon) -network -openssl -oss -pic -pulseaudio -rtmp -schroedinger -speex -static-libs -test -v4l -vaapi -vdpau (-vis) -vpx" VIDEO_CARDS="-nvidia"
Created attachment 296743 [details] Excerpt from one of the affected music files
Created attachment 297029 [details] Another excerpt from the same music file
(In reply to comment #2) Now I find that mp3splt(1) can retain the "abnormality" of the affected files. This excerpt is made with mp3splt(1), and should be able to trigger the noise when played with a buggy version (like 0.8_pre20111222) of libav. This file also consists of an "abnormal" part and a normal part. When played with avplay(1), the following is printed: % avplay bug_sample_rev.mp3 avplay version 0.7, Copyright (c) 2003-2011 the Libav developers built on Dec 27 2011 02:20:21 with gcc 4.5.3 [mp3 @ 0xc7d4e0] overread, skip -7 enddists: -5 -5 [mp3 @ 0xc7d4e0] overread, skip -8 enddists: -5 -5 [mp3 @ 0xc46b80] Estimating duration from bitrate, this may be inaccurate Input #0, mp3, from 'bug_sample_rev.mp3': Metadata: composer : Johann Sebastian Bach title : BWV 988, 9. Variatio 8 a 2 Clav artist : Glenn Herbert Gould album : Bach: The Goldberg Variations (1955) date : 2002 track : 1 genre : Classical Duration: 00:00:01.05, start: 0.000000, bitrate: 256 kb/s Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 256 kb/s [mp3 @ 0xc7d4e0] overread, skip -7 enddists: -5 -5 [mp3 @ 0xc7d4e0] overread, skip -8 enddists: -5 -5 [mp3 @ 0xc7d4e0] invalid new backstep -1 0KB sq= 0B f=0/0 ^C 1.02 A-V: 0.000 s:0.0 aq= 0KB vq= 0KB sq= 0B f=0/0
Not knowing why, but this seems to be resolved with media-video/libav-0.8
Good to know