2019年2月アーカイブ

ESP32 esp-idf bluetooth a2dp_sink への aptx decode 実装の考察 の続き、 #8 です。

i2s_write が間に合っていないと言う事が判ったので、
i2s_write() が最速になるように、i2s_config の設定を色々試して、下記の様に変更しました。
app_main()::main.c

APTX の1フレームのデコード済データ長は、 2,688 バイト みたいなので、
同じ値にしたかったのですが、I2S DMA の最大は、1024バイトのようなので、
.dma_buf_len = 672 にしました。
.dma_buf_count は、目一杯にしたかったのですが、取り敢えず、.dma_buf_count = 20 です。

ESP32 esp-idf bluetooth a2dp_sink への aptx decode 実装の考察 の続き、 #7 です。

なんとか、APTXのデコード部分を、2つのタスクを起動して、負荷の分散を行わせる事ができました。
これで、先般の、 "Pkt dropped" の表示がでなくなりました。

概要は、btc_a2dp_sink_data_ready()::btc_a2dp_sink.c が元々ありますが、
ここから、従来は、btc_a2dp_sink_handle_inc_media_Aptx(int8_t id,tBT_SBC_HDR *p_msg)::btc_a2dp_sink.c
(注: これは、 APTX 用に、btc_a2dp_sink_handle_inc_media(int8_t id,tBT_SBC_HDR *p_msg)::btc_a2dp_sink.c を改造したもの)
を直接コールしていた流れを、
別タスクを2つを起動させて置いて、そこから、上記関数をコールさせるようにしました。
これで、受信した音楽フレームを交互に振り分けて、APTXのデコード処理以降を分散させます。

なほ、上記2つのタスクは、それぞれ、別コアでの起動にします。

さて、音の方は言うと、音楽として判るようにはなりましたが、
まだまだ、まともには聴ける音ではありません。

常に、ビーンビーンと、かそれに近い雑音が出ていて、たまに、ピチピチ(チッピング音)が出ています。
まだまだ、プログラムとして問題があるようです。

このアーカイブについて

このページには、2019年2月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2019年1月です。

次のアーカイブは2019年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ