Package: bs1770gain
Version: 0.6.5-1

Steps to reproduce:

$ sox -n file.wav synth 1 sine 1000
$ bs1770gain --xml . | xmllint -
-:6: parser error : PCDATA invalid Char value 8
30%
  ^
-:6: parser error : PCDATA invalid Char value 8
30%
[...]

The problem is that progress information is being output directly to
stdout even in XML mode, which confuses the parser. The solution is to
use --suppress-progress:

$ bs1770gain --suppress-progress --xml . | xmllint -
<?xml version="1.0"?>
<bs1770gain norm="-23.00">
[...]

The end result is that --xml is unusable without --suppress-progress.
(This is a regression from previous versions of bs1770gain, which did
not output progress information.)

What would make most sense IMHO is to only output progress information
to stderr to avoid confusing whatever program is consuming stdout.
Even better would be to only output progress information if stderr is
a TTY. Or, at the very least, --suppress-progress should be the
default when --xml is used.

Reply via email to