The following reply was made to PR pkg/39378; it has been noted by GNATS.
From: Martin Husemann <martin%duskware.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: pkg/39378 (mpg123 loops busy)
Date: Wed, 20 Aug 2008 16:01:01 +0200
Turns out it is nothing sparc64 related: there is bogus data in the mp3 stream,
that makes mpg123 choke multiple times. At one time, it says:
Frame# 2829 [ 4971], Time: 00:50.21 [02:33.53], [ 4177408] Blocktype == 0
and window-switching == 1 not allowed.
and the decoding process does a exit(1). The playback process empties it's
input pipe and then runs into the endless select(); read() returns 0; loop
because errno is EINTR. Now this is clearly an application bug, since
read() did succeed (but returned zero bytes) errno is undefined and should
not be checked at all.
I'll patch that.
Furthermore it turns out that eliminating the exit(1) allows mpg123 to
skip the bad block and continue decoding to the end, so I'll patch that
as well.
Martin