int AudioEncode::encode(AVPacket * pkt, const uint8_t ** data, int nb_samples) { if (mBitRate == 0) mBitRate = defaultBitRate(); if (mChannelLayout == 0) { mChannelLayout = defaultChannelLayout(); } else { mChannelLayout = checkChannelLayout(mChannelLayout); } if (mSampleFmt == AV_SAMPLE_FMT_NONE) { mSampleFmt = defaultSampleFmt(); } else { mSampleFmt = checkSampleFmt(mSampleFmt); } if (mSampleRate == 0) mSampleRate = defaultSampleRate(); mCodecCtx->bit_rate = mBitRate; mCodecCtx->channel_layout = mChannelLayout; mCodecCtx->sample_fmt = mSampleFmt; mCodecCtx->sample_rate = mSampleRate; mCodecCtx->flags |= mFlags; if (!avcodec_is_open(mCodecCtx)) { avcodec_open2(mCodecCtx, mCodec, NULL); } mState = ENCODE_STATE_RUN; return doEncode(pkt, data, nb_samples); }
void AudioDevice::print() const { //if(deviceNum == paNoDevice){ printf("No device\n"); return; } //const AudioDevice dev(deviceNum); if(!valid()) { printf("Invalid device\n"); return; } printf("[%2d] %s, ", id(), name()); int chans = channelsInMax(); if(chans > 0) printf("%2i in, ", chans); chans = channelsOutMax(); if(chans > 0) printf("%2i out, ", chans); printf("%.0f Hz\n", defaultSampleRate()); // PaSampleFormat sampleFormats = info->nativeSampleFormats; // // printf("[ "); // if(0 != sampleFormats & paFloat32) printf("f32 "); // if(0 != sampleFormats & paInt32) printf("i32 "); // if(0 != sampleFormats & paInt24) printf("i24 "); // if(0 != sampleFormats & paInt16) printf("i16 "); // if(0 != sampleFormats & paInt8) printf("i8 "); // if(0 != sampleFormats & paUInt8) printf("ui8 "); // printf("], "); // if(info->numSampleRates != -1){ // printf("["); // for(int i=0; i<info->numSampleRates; i++){ // printf("%f ", info->sampleRates[i]); // } // printf("] Hz"); // } // else{ // printf("[%.0f <-> %.0f] Hz", info->sampleRates[0], info->sampleRates[1]); // } // printf("\n"); }