Exemple #1
0
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);
}
Exemple #2
0
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");
}