0

FFMPEGavcodec_decode_audioを使用して、さまざまな種類のオーディオ入力ファイルをデコードしています。結果のサンプルは SHORT 型です。

これらのサンプルは、FLOAT 入力形式のサンプルを必要とする別のライブラリで処理されます。最後に、(Android で) 再生するために、FLOAT サンプルを再び SHORT に変換する必要があります。

short* inputSamples = ...;
float* tmpBuffer = new float[nrInputSamples];
for (int i=0; i<nrInputSamples; i++)
  tmpBuffer[i] = inputSamples[i]/32767.0f;

//process audio here

for (int i=0; i<nrInputSamples; i++)
  inputSamples[i] = tmpBuffer[i]*32767.0f;

これを行うためのより効率的な方法はありますか (たとえば、ffmpeg にオーディオを FLOAT サンプルにデコードさせるなど)?

よろしく、

4

1 に答える 1