We're using madplay in an embedded application.
We receive mp3s from our customer.
We have a need to play some audio files in stereo and others where we have one channel muted.
Our customer provides three types for a given audio snippet:
*_r.mp3 that have the left channel muted
*_l.mp3 that have the left channel muted
*_s.mp3 that play on both channels
madplay wil play the _s.mp3 files fine, but doesn't play the _r.mp3 files.
It inidicates 0 frames decoded etc.
Stepping through madplay in gdb I found that the _r.mp3 files have a significant amount of ancilliary data and madplay detects these as LAME tags, parses the tag, but then ignores the frame.
I've changed player.c:1159 from
return (player->options & PLAYER_OPTION_SHOWTAGSONLY) ?
MAD_FLOW_STOP : MAD_FLOW_IGNORE;
if (player->options & PLAYER_OPTION_SHOWTAGSONLY)
and that fixes the problem.
I'm not sure whether the problem lies with the encoder or madplay, but would appreciate any advice as to whether this is a legitimate fix.
Best regards Bernd
that should have been
*_l.mp3 that have the right channel muted
all files are encoded as stereo