Exemple #1
0
static int audioCallback( const void *inputBuffer, void *outputBuffer,
                            unsigned long framesPerBuffer,
                            const PaStreamCallbackTimeInfo* timeInfo,
                            PaStreamCallbackFlags statusFlags,
                            void *userData ){

    sAudioBuffer *data = (sAudioBuffer*)userData;
    float *out = (float*)outputBuffer;

    (void) timeInfo;
    (void) statusFlags;
    (void) inputBuffer;


    unsigned char* frame = nullptr;
    if(data->length[data->readerIndex] != 0){
        frame = data->buffer[data->readerIndex];
    }


    opus_decode_float(data->dec,
    frame,
    data->length[data->readerIndex],
    out,
    framesPerBuffer,
    0
    );
    data->length[data->readerIndex] = 0;

    if(++data->readerIndex >= BUFFER_SIZE){
        data->readerIndex = 0;
    }

    return paContinue;
}
Exemple #2
0
float *AudioCodec::AudioDecode(unsigned char *data) {
  float *frame = new float[this->FrameSize * this->num_channels];

  opus_decode_float(this->dec, data, this->data_size, frame, 240, 0);
  return (frame);
}
Exemple #3
0
void		EncodeManager::decodeAudio(const unsigned char* data, SAMPLE* out, int enc_ret)
{
  if (opus_decode_float(_dec, data, enc_ret, out, FRAMES_PER_BUFFER, 0) < 0)
    std::cerr << "Error decoding" << std::endl;
}