这篇教程C++ speex_decoder_ctl函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中speex_decoder_ctl函数的典型用法代码示例。如果您正苦于以下问题:C++ speex_decoder_ctl函数的具体用法?C++ speex_decoder_ctl怎么用?C++ speex_decoder_ctl使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了speex_decoder_ctl函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: FUNCSPEEXJNIEXPORT void JNICALL FUNCSPEEX(initDecode)(JNIEnv* env, jobject obj) { speex_bits_init(&dbits); dec_state = speex_decoder_init(speex_lib_get_mode(SPEEX_MODEID_NB)); speex_decoder_ctl(dec_state, SPEEX_GET_FRAME_SIZE, &dec_frame_size); int tmp = 1; speex_decoder_ctl(dec_state, SPEEX_SET_ENH, &tmp);}
开发者ID:hihua,项目名称:hihuacode,代码行数:7,
示例2: libspeex_decode_initstatic av_cold int libspeex_decode_init(AVCodecContext *avctx){ LibSpeexContext *s = avctx->priv_data; const SpeexMode *mode; // defaults in the case of a missing header if (avctx->sample_rate <= 8000) mode = &speex_nb_mode; else if (avctx->sample_rate <= 16000) mode = &speex_wb_mode; else mode = &speex_uwb_mode; if (avctx->extradata_size >= 80) s->header = speex_packet_to_header(avctx->extradata, avctx->extradata_size); avctx->sample_fmt = AV_SAMPLE_FMT_S16; if (s->header) { avctx->sample_rate = s->header->rate; avctx->channels = s->header->nb_channels; s->frame_size = s->header->frame_size; mode = speex_lib_get_mode(s->header->mode); if (!mode) { av_log(avctx, AV_LOG_ERROR, "Unknown Speex mode %d", s->header->mode); return AVERROR_INVALIDDATA; } } else av_log(avctx, AV_LOG_INFO, "Missing Speex header, assuming defaults./n"); if (avctx->channels > 2) { av_log(avctx, AV_LOG_ERROR, "Only stereo and mono are supported./n"); return AVERROR(EINVAL); } speex_bits_init(&s->bits); s->dec_state = speex_decoder_init(mode); if (!s->dec_state) { av_log(avctx, AV_LOG_ERROR, "Error initializing libspeex decoder./n"); return -1; } if (!s->header) { speex_decoder_ctl(s->dec_state, SPEEX_GET_FRAME_SIZE, &s->frame_size); } if (avctx->channels == 2) { SpeexCallback callback; callback.callback_id = SPEEX_INBAND_STEREO; callback.func = speex_std_stereo_request_handler; callback.data = &s->stereo; s->stereo = (SpeexStereoState)SPEEX_STEREO_STATE_INIT; speex_decoder_ctl(s->dec_state, SPEEX_SET_HANDLER, &callback); } avcodec_get_frame_defaults(&s->frame); avctx->coded_frame = &s->frame; return 0;}
开发者ID:0x0B501E7E,项目名称:ffmpeg,代码行数:60,
示例3: spx_codec_open/* * Open codec. */static pj_status_t spx_codec_open( pjmedia_codec *codec, pjmedia_codec_param *attr ){ struct spx_private *spx; int id, tmp; spx = (struct spx_private*) codec->codec_data; id = spx->param_id; /* * Create and initialize encoder. */ spx->enc = speex_encoder_init(spx_factory.speex_param[id].mode); if (!spx->enc) return PJMEDIA_CODEC_EFAILED; speex_bits_init(&spx->enc_bits); /* Set the quality*/ if (spx_factory.speex_param[id].quality != -1) { speex_encoder_ctl(spx->enc, SPEEX_SET_QUALITY, &spx_factory.speex_param[id].quality); } /* Sampling rate. */ tmp = attr->info.clock_rate; speex_encoder_ctl(spx->enc, SPEEX_SET_SAMPLING_RATE, &spx_factory.speex_param[id].clock_rate); /* VAD */ tmp = (attr->setting.vad != 0); speex_encoder_ctl(spx->enc, SPEEX_SET_VAD, &tmp); speex_encoder_ctl(spx->enc, SPEEX_SET_DTX, &tmp); /* Complexity */ if (spx_factory.speex_param[id].complexity != -1) { speex_encoder_ctl(spx->enc, SPEEX_SET_COMPLEXITY, &spx_factory.speex_param[id].complexity); } /* * Create and initialize decoder. */ spx->dec = speex_decoder_init(spx_factory.speex_param[id].mode); if (!spx->dec) { spx_codec_close(codec); return PJMEDIA_CODEC_EFAILED; } speex_bits_init(&spx->dec_bits); /* Sampling rate. */ speex_decoder_ctl(spx->dec, SPEEX_SET_SAMPLING_RATE, &spx_factory.speex_param[id].clock_rate); /* PENH */ tmp = attr->setting.penh; speex_decoder_ctl(spx->dec, SPEEX_SET_ENH, &tmp); return PJ_SUCCESS;}
开发者ID:imace,项目名称:mbgapp,代码行数:62,
示例4: init_speex_decodervoid init_speex_decoder() { if (gDecoderState == NULL) { gDecoderState = speex_decoder_init(&speex_nb_mode); int tmp = 1; speex_decoder_ctl(gDecoderState, SPEEX_SET_ENH, &tmp); tmp = kNetworkAudioSampleRate; speex_decoder_ctl(gDecoderState, SPEEX_SET_SAMPLING_RATE, &tmp); speex_bits_init(&gDecoderBits); }}
开发者ID:Aleph-One-Marathon,项目名称:alephone-psp,代码行数:10,
示例5: speex_packet_to_headerstatic void *process_header (struct spx_data *data){ void *st; const SpeexMode *mode; int modeID; SpeexCallback callback; int enhance = ENHANCE_AUDIO; data->header = speex_packet_to_header ((char*)data->op.packet, data->op.bytes); if (!data->header) { decoder_error (&data->error, ERROR_FATAL, 0, "Can't open speex file: can't read header"); return NULL; } if (data->header->mode >= SPEEX_NB_MODES) { decoder_error (&data->error, ERROR_FATAL, 0, "Can't open speex file: Mode number %"PRId32 " does not exist in this version", data->header->mode); return NULL; } modeID = data->header->mode; mode = speex_mode_list[modeID]; if (mode->bitstream_version < data->header->mode_bitstream_version) { decoder_error (&data->error, ERROR_FATAL, 0, "Can't open speex file: The file was encoded " "with a newer version of Speex."); return NULL; } if (mode->bitstream_version > data->header->mode_bitstream_version) { decoder_error (&data->error, ERROR_FATAL, 0, "Can't open speex file: The file was encoded " "with an older version of Speex."); return NULL; } st = speex_decoder_init (mode); speex_decoder_ctl(st, SPEEX_SET_ENH, &enhance); speex_decoder_ctl(st, SPEEX_GET_FRAME_SIZE, &data->frame_size); callback.callback_id = SPEEX_INBAND_STEREO; callback.func = speex_std_stereo_request_handler; callback.data = &data->stereo; speex_decoder_ctl(st, SPEEX_SET_HANDLER, &callback); speex_decoder_ctl(st, SPEEX_SET_SAMPLING_RATE, &data->header->rate); return st;}
开发者ID:jonsafari,项目名称:mocp,代码行数:53,
示例6: AudioOutputUserAudioOutputSpeech::AudioOutputSpeech(boost::shared_ptr<ClientUser> user, MessageHandler::UDPMessageType type) : AudioOutputUser(user->qsName) { int err; p = user; umtType = type; unsigned int srate = 0; cCodec = NULL; cdDecoder = NULL; if (umtType != MessageHandler::UDPVoiceSpeex) { srate = SAMPLE_RATE; iFrameSize = srate / 100; dsSpeex = NULL; } else { speex_bits_init(&sbBits); dsSpeex = speex_decoder_init(speex_lib_get_mode(SPEEX_MODEID_UWB)); int iArg=1; speex_decoder_ctl(dsSpeex, SPEEX_SET_ENH, &iArg); speex_decoder_ctl(dsSpeex, SPEEX_GET_FRAME_SIZE, &iFrameSize); speex_decoder_ctl(dsSpeex, SPEEX_GET_SAMPLING_RATE, &srate); } if (srate != SAMPLE_RATE) srs = speex_resampler_init(1, srate, SAMPLE_RATE, 3, &err); else srs = NULL; iOutputSize = static_cast<unsigned int>(ceilf(static_cast<float>(iFrameSize * SAMPLE_RATE) / static_cast<float>(SAMPLE_RATE))); iBufferOffset = iBufferFilled = iLastConsume = 0; bLastAlive = true; iMissCount = 0; iMissedFrames = 0; ucFlags = 0xFF; jbJitter = jitter_buffer_init(iFrameSize); int margin = g.s.iJitterBufferSize * iFrameSize; jitter_buffer_ctl(jbJitter, JITTER_BUFFER_SET_MARGIN, &margin); fFadeIn = new float[iFrameSize]; fFadeOut = new float[iFrameSize]; float mul = static_cast<float>(M_PI / (2.0 * static_cast<double>(iFrameSize))); for (unsigned int i=0;i<iFrameSize;++i) fFadeIn[i] = fFadeOut[iFrameSize-i-1] = sinf(static_cast<float>(i) * mul);}
开发者ID:pcgod,项目名称:mumble-wip,代码行数:51,
示例7: speextolin_newstatic int speextolin_new(struct ast_trans_pvt *pvt){ struct speex_coder_pvt *tmp = pvt->pvt; if (!(tmp->speex = speex_decoder_init(&speex_nb_mode))) return -1; speex_bits_init(&tmp->bits); speex_decoder_ctl(tmp->speex, SPEEX_GET_FRAME_SIZE, &tmp->framesize); if (enhancement) speex_decoder_ctl(tmp->speex, SPEEX_SET_ENH, &enhancement); return 0;}
开发者ID:abieuzent,项目名称:iaxproxy,代码行数:14,
示例8: speex_decoder_constructstatic int speex_decoder_construct(struct ast_trans_pvt *pvt, const SpeexMode *profile){ struct speex_coder_pvt *tmp = pvt->pvt; if (!(tmp->speex = speex_decoder_init(profile))) return -1; speex_bits_init(&tmp->bits); speex_decoder_ctl(tmp->speex, SPEEX_GET_FRAME_SIZE, &tmp->framesize); if (enhancement) speex_decoder_ctl(tmp->speex, SPEEX_SET_ENH, &enhancement); return 0;}
开发者ID:mtulio,项目名称:mtulio,代码行数:14,
示例9: mainint main(int argc, char **argv){ char *outFile; FILE *fout; /*Holds the audio that will be written to file (16 bits per sample)*/ short out[FRAME_SIZE]; /*Speex handle samples as float, so we need an array of floats*/ float output[FRAME_SIZE]; char cbits[200]; int nbBytes; /*Holds the state of the decoder*/ void *state; /*Holds bits so they can be read and written to by the Speex routines*/ SpeexBits bits; int i, tmp; /*Create a new decoder state in narrowband mode*/ state = speex_decoder_init(&speex_nb_mode); /*Set the perceptual enhancement on*/ tmp=1; speex_decoder_ctl(state, SPEEX_SET_ENH, &tmp); outFile = argv[1]; fout = fopen(outFile, "w"); /*Initialization of the structure that holds the bits*/ speex_bits_init(&bits); while (1) { /*Read the size encoded by sampleenc, this part will likely be different in your application*/ fread(&nbBytes, sizeof(int), 1, stdin); fprintf (stderr, "nbBytes: %d/n", nbBytes); if (feof(stdin)) break; /*Read the "packet" encoded by sampleenc*/ fread(cbits, 1, nbBytes, stdin); /*Copy the data into the bit-stream struct*/ speex_bits_read_from(&bits, cbits, nbBytes); /*Decode the data*/ speex_decode(state, &bits, output); /*Copy from float to short (16 bits) for output*/ for (i=0;i<FRAME_SIZE;i++) out[i]=output[i]; /*Write the decoded audio to file*/ fwrite(out, sizeof(short), FRAME_SIZE, fout); } /*Destroy the decoder state*/ speex_decoder_destroy(state); /*Destroy the bit-stream truct*/ speex_bits_destroy(&bits); fclose(fout); return 0;}
开发者ID:Distrotech,项目名称:speex,代码行数:60,
示例10: speex_bits_inithsBool plSpeex::Init(Mode mode) { int enh = 1; // setup speex speex_bits_init(fBits); fBitsInit = true; if(mode == kNarrowband) { fEncoderState = speex_encoder_init(speex_lib_get_mode(SPEEX_MODEID_NB)); // narrowband fDecoderState = speex_decoder_init(speex_lib_get_mode(SPEEX_MODEID_NB)); } else if(mode == kWideband) { fEncoderState = speex_encoder_init(speex_lib_get_mode(SPEEX_MODEID_WB)); fDecoderState = speex_decoder_init(speex_lib_get_mode(SPEEX_MODEID_WB)); } speex_encoder_ctl(fEncoderState, SPEEX_GET_FRAME_SIZE, &fFrameSize); // get frame size speex_encoder_ctl(fEncoderState, SPEEX_SET_COMPLEXITY, &fComplexity); // 3 speex_encoder_ctl(fEncoderState, SPEEX_SET_SAMPLING_RATE, &fSampleRate); // 8 khz speex_encoder_ctl(fEncoderState, SPEEX_SET_VBR_QUALITY, &fQuality); // 7 speex_encoder_ctl(fEncoderState, SPEEX_SET_VBR, &fVBR); // use variable bit rate speex_encoder_ctl(fEncoderState, SPEEX_SET_ABR, &fAverageBitrate); // default to 8kb speex_decoder_ctl(fDecoderState, SPEEX_SET_ENH, &fENH); // perceptual enhancement fInitialized = true; return true;}
开发者ID:cwalther,项目名称:Plasma-nobink-test,代码行数:32,
示例11: _speex_dec_stateAudioDecoderSpeex::AudioDecoderSpeex() : _speex_dec_state(speex_decoder_init(&speex_wb_mode)) { if (!_speex_dec_state) { throw MediaException(_("AudioDecoderSpeex: state initialization failed.")); } speex_bits_init(&_speex_bits); speex_decoder_ctl(_speex_dec_state, SPEEX_GET_FRAME_SIZE, &_speex_framesize);#ifdef RESAMPLING_SPEEX int err = 0; _resampler = speex_resampler_init(1, 16000, 44100, SPEEX_RESAMPLER_QUALITY_DEFAULT, &err); if (err != RESAMPLER_ERR_SUCCESS) { throw MediaException(_("AudioDecoderSpeex: initialization failed.")); } spx_uint32_t num = 0, den = 0; speex_resampler_get_ratio (_resampler, &num, &den); assert(num && den); boost::rational<boost::uint32_t> numsamples(den, num); numsamples *= _speex_framesize * 2 /* convert to stereo */; _target_frame_size = boost::rational_cast<boost::uint32_t>(numsamples);#endif}
开发者ID:adamh,项目名称:gnash-fork,代码行数:32,
示例12: Java_com_haitou_xiaoyoupai_imservice_support_audio_Speex_openextern "C" JNIEXPORT jint JNICALL Java_com_haitou_xiaoyoupai_imservice_support_audio_Speex_open( JNIEnv *env, jobject obj, jint compression) { int tmp = 0; if (codec_open++ != 0) return (jint) 0; speex_bits_init(&ebits); speex_bits_init(&dbits); enc_state = speex_encoder_init(&speex_nb_mode); dec_state = speex_decoder_init(&speex_nb_mode); tmp = compression; speex_encoder_ctl(enc_state, SPEEX_SET_QUALITY, &tmp); speex_encoder_ctl(enc_state, SPEEX_GET_FRAME_SIZE, &enc_frame_size); speex_decoder_ctl(dec_state, SPEEX_GET_FRAME_SIZE, &dec_frame_size); SpeexPreprocessState * m_st; m_st = speex_preprocess_state_init(enc_frame_size, 8000); int denoise = 1; int noiseSuppress = -25; speex_preprocess_ctl(m_st, SPEEX_PREPROCESS_SET_DENOISE, &denoise); speex_preprocess_ctl(m_st, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &noiseSuppress); return (jint) 0;}
开发者ID:treejames,项目名称:FreshMAn-Task,代码行数:27,
示例13: SpeexDecodeInit//*****************************************************************************////! Initialize the decoder's state to prepare for decoding new frames.//!//! This function will initializes the decoder so that it is prepared to start//! receiving frames to decode.//!//! /return This function returns 0.////*****************************************************************************int32_tSpeexDecodeInit(void){ int iTemp; // // Clear out the flags for this instance. // g_sSpeexDecoder.ui32Flags = 0; // // Create a new decoder state in narrow band mode. // g_sSpeexDecoder.pvState = speex_decoder_init(&speex_nb_mode); // // Disable enhanced decoding to reduce processing requirements. // iTemp = 0; speex_decoder_ctl(g_sSpeexDecoder.pvState, SPEEX_SET_ENH, &iTemp); // // Initialization of the structure that holds the bits. // speex_bits_init(&g_sSpeexDecoder.sBits); return(0);}
开发者ID:GuillaumeGalasso,项目名称:Embedded_Systems--Shape_The_World,代码行数:38,
示例14: dec_preprocessstatic void dec_preprocess(MSFilter *f){ DecState *s=(DecState*)f->data; const SpeexMode *mode=NULL; int modeid; switch(s->rate){ case 8000: modeid = SPEEX_MODEID_NB; /* rate = 8000Hz */ break; case 16000: modeid = SPEEX_MODEID_WB; /* rate = 16000Hz */ break; /* should be supported in the future */ case 32000: modeid = SPEEX_MODEID_UWB; /* rate = 32000Hz */ break; default: ms_error("Unsupported rate for speex decoder (back to default rate=8000)."); modeid=SPEEX_MODEID_NB; } /* warning: speex_lib_get_mode() is not available on speex<1.1.12 */ mode = speex_lib_get_mode(modeid); s->state=speex_decoder_init(mode); speex_mode_query(mode,SPEEX_MODE_FRAME_SIZE,&s->frsz); if (s->penh==1) speex_decoder_ctl (s->state, SPEEX_SET_ENH, &s->penh); s->sample_time=0;}
开发者ID:TheBaobabTeam,项目名称:linphone-android,代码行数:27,
示例15: speex_std_enh_request_handlerint speex_std_enh_request_handler(SpeexBits *bits, void *state, void *data){ int enh; enh = speex_bits_unpack_unsigned(bits, 1); speex_decoder_ctl(data, SPEEX_SET_ENH, &enh); return 0;}
开发者ID:Binauric,项目名称:opal,代码行数:7,
示例16: decode_audiostatic int decode_audio(sh_audio_t *sh, unsigned char *buf, int minlen, int maxlen) { double pts; context_t *ctx = sh->context; int len, framelen, framesamples; char *packet; int i, err; speex_decoder_ctl(ctx->dec_context, SPEEX_GET_FRAME_SIZE, &framesamples); framelen = framesamples * ctx->hdr->nb_channels * sizeof(short); if (maxlen < ctx->hdr->frames_per_packet * framelen) { mp_msg(MSGT_DECAUDIO, MSGL_V, "maxlen too small in decode_audio/n"); return -1; } len = ds_get_packet_pts(sh->ds, (unsigned char **)&packet, &pts); if (len <= 0) return -1; if (sh->pts == MP_NOPTS_VALUE) sh->pts = 0; if (pts != MP_NOPTS_VALUE) { sh->pts = pts; sh->pts_bytes = 0; } speex_bits_read_from(&ctx->bits, packet, len); i = ctx->hdr->frames_per_packet; do { err = speex_decode_int(ctx->dec_context, &ctx->bits, (short *)buf); if (err == -2) mp_msg(MSGT_DECAUDIO, MSGL_ERR, "Error decoding file./n"); if (ctx->hdr->nb_channels == 2) speex_decode_stereo_int((short *)buf, framesamples, &ctx->stereo); buf = &buf[framelen]; } while (--i > 0); sh->pts_bytes += ctx->hdr->frames_per_packet * framelen; return ctx->hdr->frames_per_packet * framelen;}
开发者ID:Gamer125,项目名称:wiibrowser,代码行数:34,
示例17: speex_jitter_getint speex_jitter_get(SpeexJitter *jitter, spx_int16_t *out, int *current_timestamp, void** userData){ int i; int jbRet; /* results returned by the JB */ int ourRet; /* result that we will return */ spx_int32_t activity; char data[2048]; JitterBufferPacket packet; packet.data = data; packet.len = 2048; /* AAAAARGH: it took a week to find and add this missing line */ if (jitter->valid_bits) { /* Try decoding last received packet */ jbRet = speex_decode_int(jitter->dec, &jitter->current_packet, out); if (jbRet == 0) { jitter_buffer_tick(jitter->packets); return 1; } else { jitter->valid_bits = 0; } } jbRet = jitter_buffer_get(jitter->packets, &packet, jitter->frame_size, NULL); if (jbRet != JITTER_BUFFER_OK) { /* no packet found, so no corresponding user-data */ *userData = NULL; /* No packet found... extrapolate one */ /*fprintf (stderr, "lost/late frame/n");*/ /*Packet is late or lost*/ speex_decode_int(jitter->dec, NULL, out); ourRet = 2; } else { /* found a packet, so there is corresponding user-data */ *userData = (void*)(packet.user_data); speex_bits_read_from(&jitter->current_packet, packet.data, packet.len); /* Decode packet */ jbRet = speex_decode_int(jitter->dec, &jitter->current_packet, out); if (jbRet == 0) { ourRet = 0; jitter->valid_bits = 1; } else { /* Error while decoding */ ourRet = 3; for (i=0;i<jitter->frame_size;i++) out[i]=0; } } speex_decoder_ctl(jitter->dec, SPEEX_GET_ACTIVITY, &activity); if (activity < jitter->activity_threshold) jitter_buffer_update_delay(jitter->packets, &packet, NULL); jitter_buffer_tick(jitter->packets); return ourRet;}
开发者ID:SergeStinckwich,项目名称:openqwaq,代码行数:60,
示例18: gviSpursSpeexDecoderInitializevoid gviSpursSpeexDecoderInitialize(SpursSpeexTaskOutput *spuTaskOut){ void * decoder = gviSpursSpeexStateBuffer; int perceptualEnhancement = 1; // create a new decoder state if (gviSpursSpeexTaskDesc.mSamplesPerSecond == GVRate_8KHz) speex_decoder_init(&speex_nb_mode, decoder); else if (gviSpursSpeexTaskDesc.mSamplesPerSecond == GVRate_16KHz) speex_decoder_init(&speex_wb_mode, decoder); else { //spuDebugPrintf("[Speex][SPU] Error: invalid sample rate!/n"); spuTaskOut->mSpeexReturnCode = -1; } if(!decoder) { //spuDebugPrintf("[Speex][SPU] Error: initializing decoder failed!/n"); spuTaskOut->mSpeexReturnCode = -2; } // turn on the perceptual enhancement speex_decoder_ctl(decoder, SPEEX_SET_ENH, &perceptualEnhancement); spuTaskOut->mSpeexReturnCode = 0;}
开发者ID:AntonioModer,项目名称:xray-16,代码行数:27,
示例19: throwuint16 SpeexPlugin::getDecodingSampleRate() const throw(OperationNotPerfomedException) { if (!decoder) throw OperationNotPerfomedException("Decoder not initialized"); spx_int32_t sample; speex_decoder_ctl(decoder->state, SPEEX_GET_SAMPLING_RATE, &sample); return sample;}
开发者ID:txithihausen,项目名称:streamadapt,代码行数:8,
示例20: decoder_configstatic void decoder_config(void *st){ int ret; ret = speex_decoder_ctl(st, SPEEX_SET_ENH, &sconf.enhancement); if (ret) { warning("speex: SPEEX_SET_ENH: %d/n", ret); }}
开发者ID:FOSSRIT,项目名称:baresip,代码行数:9,
示例21: speex2pcm_int speex2pcm_int() { state = speex_decoder_init(&speex_nb_mode); int tmp=1; speex_decoder_ctl(state, SPEEX_SET_ENH, &tmp); speex_bits_init(&bits); speex_encoder_ctl(state, SPEEX_GET_FRAME_SIZE, &frame_size); out = new short[ frame_size ]; }
开发者ID:kolonse,项目名称:speex_helper,代码行数:10,
示例22: speex_decodeEXPORT int speex_decode(void *state, SpeexBits *bits, float *out){ int i, ret; spx_int32_t N; spx_int16_t short_out[MAX_IN_SAMPLES]; speex_decoder_ctl(state, SPEEX_GET_FRAME_SIZE, &N); ret = (*((SpeexMode**)state))->dec(state, bits, short_out); for (i=0;i<N;i++) out[i] = short_out[i]; return ret;}
开发者ID:AirDev,项目名称:linphone-android,代码行数:11,
示例23: speex_jitter_initvoid speex_jitter_init(SpeexJitter *jitter, void *decoder, int sampling_rate){ jitter->dec = decoder; speex_decoder_ctl(decoder, SPEEX_GET_FRAME_SIZE, &jitter->frame_size); jitter->packets = jitter_buffer_init(jitter->frame_size); speex_bits_init(&jitter->current_packet); jitter->valid_bits = 0; jitter->activity_threshold = 0;}
开发者ID:SergeStinckwich,项目名称:openqwaq,代码行数:11,
示例24: decode_updatestatic int decode_update(struct audec_state **adsp, const struct aucodec *ac, const char *fmtp){ struct audec_state *st; int err = 0; (void)fmtp; if (!adsp || !ac) return EINVAL; if (*adsp) return 0; st = mem_zalloc(sizeof(*st), decode_destructor); if (!st) return ENOMEM; st->frame_size = ac->srate * SPEEX_PTIME / 1000; st->channels = ac->ch; /* Decoder */ st->dec = speex_decoder_init(resolve_mode(ac->srate)); if (!st->dec) { err = ENOMEM; goto out; } speex_bits_init(&st->bits); if (2 == st->channels) { /* Stereo. */ st->stereo.balance = 1; st->stereo.e_ratio = .5f; st->stereo.smooth_left = 1; st->stereo.smooth_right = 1; st->callback.callback_id = SPEEX_INBAND_STEREO; st->callback.func = speex_std_stereo_request_handler; st->callback.data = &st->stereo; speex_decoder_ctl(st->dec, SPEEX_SET_HANDLER, &st->callback); } decoder_config(st->dec); out: if (err) mem_deref(st); else *adsp = st; return err;}
开发者ID:FOSSRIT,项目名称:baresip,代码行数:53,
示例25: ms_speex_dec_init_corevoid ms_speex_dec_init_core(MSSpeexDec *obj,const SpeexMode *mode){ int pf=1; obj->speex_state=speex_decoder_init(mode); speex_bits_init(&obj->bits); /* enable the perceptual post filter */ speex_decoder_ctl(obj->speex_state,SPEEX_SET_PF, &pf); speex_mode_query(mode, SPEEX_MODE_FRAME_SIZE, &obj->frame_size); obj->initialized=1;}
开发者ID:serghei,项目名称:kde3-kdenetwork,代码行数:13,
示例26: speex_bits_resetvoid CASpeexDecoder::BDCReset(){ speex_bits_reset(&mSpeexBits); if (mSpeexDecoderState != NULL) speex_decoder_ctl(mSpeexDecoderState, SPEEX_RESET_STATE, NULL); //??! mSpeexFPList.clear(); mNumFrames = 0; mOutBufferUsedSize = 0; mOutBufferStart = 0; XCACodec::BDCReset();}
开发者ID:JanX2,项目名称:XiphQT,代码行数:15,
示例27: speex_bits_destroyvoid CASpeexDecoder::BDCUninitialize(){ speex_bits_destroy(&mSpeexBits); if (mSpeexDecoderState != NULL) speex_decoder_ctl(mSpeexDecoderState, SPEEX_RESET_STATE, NULL); //??! mSpeexFPList.clear(); if (mOutBuffer) delete[] mOutBuffer; mOutBuffer = NULL; mOutBufferSize = 0; mOutBufferUsedSize = 0; mOutBufferStart = 0; XCACodec::BDCUninitialize();}
开发者ID:JanX2,项目名称:XiphQT,代码行数:17,
示例28: SpeexDecodeFrameSizeGet//*****************************************************************************////! This function returns the current frame size from the decoder.//!//! This function queries the decoder for the current decode frame size in byte//! and returns it to the caller.//!//! /return The current decoder frame size.////*****************************************************************************int32_tSpeexDecodeFrameSizeGet(void){ int iFrameSize; // // Return 0 if the wrong request is made. // iFrameSize = 0; // // Query the decoder for the current frame size. // speex_decoder_ctl(g_sSpeexDecoder.pvState, SPEEX_GET_FRAME_SIZE, &iFrameSize); return(iFrameSize);}
开发者ID:GuillaumeGalasso,项目名称:Embedded_Systems--Shape_The_World,代码行数:28,
示例29: spx_codec_modify/* * Modify codec settings. */static pj_status_t spx_codec_modify(pjmedia_codec *codec, const pjmedia_codec_param *attr ){ struct spx_private *spx; int tmp; spx = (struct spx_private*) codec->codec_data; /* VAD */ tmp = (attr->setting.vad != 0); speex_encoder_ctl(spx->enc, SPEEX_SET_VAD, &tmp); speex_encoder_ctl(spx->enc, SPEEX_SET_DTX, &tmp); /* PENH */ tmp = attr->setting.penh; speex_decoder_ctl(spx->dec, SPEEX_SET_ENH, &tmp); return PJ_SUCCESS;}
开发者ID:imace,项目名称:mbgapp,代码行数:22,
注:本文中的speex_decoder_ctl函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ speex_decoder_init函数代码示例 C++ speex_bits_write函数代码示例 |