/** \brief Process MPF frame */
static apt_bool_t uni_recog_stream_read(mpf_audio_stream_t *stream, mpf_frame_t *frame)
{
	uni_speech_t *uni_speech = stream->obj;

	if(uni_speech->media_buffer) {
		mpf_frame_buffer_read(uni_speech->media_buffer,frame);
#if 0
		ast_log(LOG_DEBUG, "Read audio '%s' type:%d len:%d\n",
			uni_speech_id_get(uni_speech),
			frame->type,
			frame->codec_frame.size);
#endif
	}
	return TRUE;
}
/** MPF callback to read audio frame */
static apt_bool_t asr_stream_read(mpf_audio_stream_t *stream, mpf_frame_t *frame)
{
	asr_session_t *asr_session = stream->obj;
	if(asr_session && asr_session->streaming == TRUE) {
		if(asr_session->input_mode == INPUT_MODE_FILE) {
			if(asr_session->audio_in) {
				if(fread(frame->codec_frame.buffer,1,frame->codec_frame.size,asr_session->audio_in) == frame->codec_frame.size) {
					/* normal read */
					frame->type |= MEDIA_FRAME_TYPE_AUDIO;
				}
				else {
					/* file is over */
					asr_session->streaming = FALSE;
				}
			}
		}
		if(asr_session->input_mode == INPUT_MODE_STREAM) {
			if(asr_session->media_buffer) {
				mpf_frame_buffer_read(asr_session->media_buffer,frame);
			}
		}
	}
	return TRUE;
}