AtherosのI2Sドライバーでmpg123を使い、ストリームやローカルファイルのプレーリストを快適にきいていました。
ところがshairportで二曲目がノイズになり再生できない事にきがつきました。
mpg123のプレーリストでも曲飛ばし(f)するとノイズになります。
STOPした後に同じハンドルでSTARTすると問題が起きているようです。ストリームなどでは、このケースが無かったようです。
デバッグしてみました。三日かかりました。
結論を書くとSTOPの時にATH_MBOX_DMA_RESUMEではなくATH_MBOX_DMA_PAUSEすれば問題が起きなくなりました。
RESUMEにしてたのは、たまたま目についたからだと思います。見直したところPAUSEが1でSTARTが2でRESUMEが4でした。常識的には重要なものから並べると思い、PAUSEを試してみました。
RESUMEからSTARTする場合には、なんらか追加の設定が必要なのかも知れません。データーシートには記載が抜けています。
PCM5102でshairportできいていますが、むちゃいいです。
デバッグしてて、だめかと思う事もありましたが、いろいろ考えればどうにかなるものです。