にゃんとにゃく

にゃんとにゃく、形ができてきたかにゃ。

AAC ADTS形式ファイルを再生する場合は、下記見たいにゃ感じにゃで。
MP3形式にゃったらscp.SetType( "MP3" );にゃにするとできるって感じですにゃ。

// AAC ADTSの再生
int main()
{
  // インスタンスを取得
  Cat_SoundDecodeCreator& sdc = Cat_SoundDecodeCreator::GetInstance();

  // AAC ADTS -> PCM_RAWのデコーダを作成
  Cat_SoundCreateParam scp;
  scp.SetType( "AAC_ADTS" );
  scp.SetDestinationType( "PCM_RAW" );
  Cat_SoundDecoder* sd = sdc.CreateDecoder( &scp );

  // オーディオデバイスを作成してデコーダに繋げる
  Cat_Stream* pStreamAudioDevice = new Cat_StreamAudioDevice( 0, Cat_StreamAudioDevice::SAMPLE_44100, Cat_StreamAudioDevice::STEREO );
  sd->AddChain( Cat_SoundDecoder::AUDIO, pStreamAudioDevice );

  // 再生する
  // pStreamSource         sd                   pStreamAudioDevice
  // (file:AAC ADTS) -> (AAC ADTS:PCM_RAW) -> (PCM_RAW:AudioDevice)
  Cat_Stream* pStreamSource = new Cat_StreamFile( "ms0:/a.aac" );
  sd->Write( pStreamSource ); // ファイルをデコーダに書き込む
  sd->Flush();

  // 後始末
  delete sd;
  delete pStreamSource;
  delete pStreamAudioDevice;

  return 0;
}

にゃいぶでは、下見たいにゃ感じにゃで、適当にゃにデコーダを探して経路を動的にゃに構築してくれますですにゃ。

 AAC ADTS -> AAC RAW LC -> PCM // AAC
 MP3 -> MP3 RAW -> PCM         // MP3

あとにゃは、ファイル形式にゃを自動にゃで判別して、始まりの設定も省略できたらにゃ〜と。