faac_cfg->bitRate = avctx->bit_rate;
faac_cfg->bitRate = avctx->bit_rate / avctx->channels; if(avctx->flags & CODEC_FLAG_QSCALE) { faac_cfg->bitRate = 0; faac_cfg->quantqual = avctx->global_quality / FF_QP2LAMBDA; }
static int Faac_encode_init(AVCodecContext *avctx){    FaacAudioContext *s = avctx->priv_data;    faacEncConfigurationPtr faac_cfg;    unsigned long samples_input, max_bytes_output;    /* number of channels */    if (avctx->channels < 1 || avctx->channels > 6)        return -1;    s->faac_handle = faacEncOpen(avctx->sample_rate,                                 avctx->channels,                                 &samples_input, &max_bytes_output);    /* check faac version */    faac_cfg = faacEncGetCurrentConfiguration(s->faac_handle);    if (faac_cfg->version != FAAC_CFG_VERSION) {	av_log(avctx, AV_LOG_ERROR, "wrong libfaac version (compiled for: %d, using %d)\n", FAAC_CFG_VERSION, faac_cfg->version);        faacEncClose(s->faac_handle);        return -1;    }    /* put the options in the configuration struct */    faac_cfg->aacObjectType = LOW;    faac_cfg->mpegVersion = MPEG4;    faac_cfg->useTns = 0;    faac_cfg->allowMidside = 1;    faac_cfg->bitRate = avctx->bit_rate;    faac_cfg->outputFormat = 0;    faac_cfg->inputFormat = FAAC_INPUT_16BIT;    if (!faacEncSetConfiguration(s->faac_handle, faac_cfg)) {        av_log(avctx, AV_LOG_ERROR, "libfaac doesn't support this output format!\n");        return -1;    }    avctx->frame_size = samples_input / avctx->channels;    avctx->coded_frame= avcodec_alloc_frame();    avctx->coded_frame->key_frame= 1;    /* Set decoder specific info */    avctx->extradata_size = 0;    if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER) {        unsigned char *buffer;        unsigned long decoder_specific_info_size;        if (!faacEncGetDecoderSpecificInfo(s->faac_handle, &buffer,                                           &decoder_specific_info_size)) {            avctx->extradata = buffer;            avctx->extradata_size = decoder_specific_info_size;        }    }    return 0;}