亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? interf_enc.cpp

?? 實(shí)現(xiàn)了錄音,放音功能!在evc4.0下編譯功過,wince5.0下能正常錄音,放音,暫停錄放音!
?? CPP
字號(hào):
/*************************************************************************/
/*                                                                       */
/* Copyright (c) 2000-2004 Linuos Design                                 */
/*                                     領(lǐng)馳設(shè)計(jì)中心  版權(quán)所有 2000-2004  */
/*                                                                       */
/* PROPRIETARY RIGHTS of Linuos Design  are involved in the subject      */
/* matter of this material.  All manufacturing, reproduction, use, and   */
/* sales rights pertaining to this subject matter are governed by the    */
/* license agreement.  The recipient of this software implicitly accepts */ 
/* the terms of the license.                                             */
/* 本軟件文檔資料是領(lǐng)馳設(shè)計(jì)中心的資產(chǎn),任何人士閱讀和使用本資料必須獲得   */
/* 相應(yīng)的書面授權(quán),承擔(dān)保密責(zé)任和接受相應(yīng)的法律約束.                      */
/*                                                                       */
/*************************************************************************/

/*
* ===================================================================
*  TS 26.104
*  REL-5 V5.4.0 2004-03
*  REL-6 V6.1.0 2004-03
*  3GPP AMR Floating-point Speech Codec
* ===================================================================
*
*/

/*
* interf_enc.c
*
*
* Project:
*    AMR Floating-Point Codec
*
* Contains:
*    This module contains all the functions needed encoding 160
*    16-bit speech samples to AMR encoder parameters.
*
*/

/*
* include files
*/
//#include <stdlib.h>
//#include <stdio.h>
//#include <memory.h>
#include "stdafx.h"
//#include "interf_enc.h"
//#include "sp_enc.h"
//#include "interf_rom.h"
//
/*
* EncoderMMS
*
*
* Parameters:
*    mode                 I: AMR mode
*    param                I: Encoder output parameters
*    stream               O: packed speech frame
*    frame_type           I: frame type (DTX)
*    speech_mode          I: speech mode (DTX)
*
* Function:
*    Pack encoder output parameters to octet structure according
*    importance table and AMR file storage format according to
*    RFC 3267.
* Returns:
*    number of octets
*/
static INT32 EncoderMMS( enum Mode mode, INT16 *param, UINT8 *stream, 
					   enum TXFrameType frame_type, enum Mode speech_mode )
{
	INT32 j = 0, k;
	INT16 *mask;
	
	memset(stream, 0, block_size[mode]);
	
	*stream = toc_byte[mode];
	stream++;
	
	if ( mode == 15 ) 
	{
		return 1;
	}
	else if ( mode == MRDTX )
	{
		mask = order_MRDTX;
		
		for ( j = 1; j < 36; j++ )
		{
			if ( param[ * mask] & *( mask + 1 ) )
				*stream += 0x01;
			mask += 2;
			
			if ( j % 8 )
				*stream <<= 1;
			else
				stream++;
		}
		
		/* add SID type information */
		if ( frame_type == TX_SID_UPDATE )
			*stream += 0x01;
		*stream <<= 3;
		
		/* speech mode indication */
		*stream += ( UINT8 )(speech_mode & 0x0007);
		
		*stream <<= 1;
		
		/* don't shift at the end of the function */
		return 6;
	}
	else if ( mode == MR475 ) 
	{
		mask = order_MR475;
		
		for ( j = 1; j < 96; j++ ) 
		{
			if ( param[ * mask] & *( mask + 1 ) )
				*stream += 0x01;
			mask += 2;
			
			if ( j % 8 )
				*stream <<= 1;
			else
				stream++;
		}
	}
	else if ( mode == MR515 ) 
	{
		mask = order_MR515;
		
		for ( j = 1; j < 104; j++ ) 
		{
			if ( param[ * mask] & *( mask + 1 ) )
				*stream += 0x01;
			mask += 2;
			
			if ( j % 8 )
				*stream <<= 1;
			else
				stream++;
		}
	}
	else if ( mode == MR59 ) 
	{
		mask = order_MR59;
		
		for ( j = 1; j < 119; j++ ) 
		{
			if ( param[ * mask] & *( mask + 1 ) )
				*stream += 0x01;
			mask += 2;
			
			if ( j % 8 )
				*stream <<= 1;
			else
				stream++;
		}
	}
	else if ( mode == MR67 ) 
	{
		mask = order_MR67;
		
		for ( j = 1; j < 135; j++ )
		{
			if ( param[ * mask] & *( mask + 1 ) )
				*stream += 0x01;
			mask += 2;
			
			if ( j % 8 )
				*stream <<= 1;
			else
				stream++;
		}
	}
	else if ( mode == MR74 ) 
	{
		mask = order_MR74;
		
		for ( j = 1; j < 149; j++ )
		{
			if ( param[ * mask] & *( mask + 1 ) )
				*stream += 0x01;
			mask += 2;
			
			if ( j % 8 )
				*stream <<= 1;
			else
				stream++;
		}
	}
	else if ( mode == MR795 )
	{
		mask = order_MR795;
		
		for ( j = 1; j < 160; j++ ) 
		{
			if ( param[ * mask] & *( mask + 1 ) )
				*stream += 0x01;
			mask += 2;
			
			if ( j % 8 )
				*stream <<= 1;
			else
				stream++;
		}
	}
	else if ( mode == MR102 ) 
	{
		mask = order_MR102;
		
		for ( j = 1; j < 205; j++ )
		{
			if ( param[ * mask] & *( mask + 1 ) )
				*stream += 0x01;
			mask += 2;
			
			if ( j % 8 )
				*stream <<= 1;
			else
				stream++;
		}
	}
	else if ( mode == MR122 )
	{
		mask = order_MR122;
		
		for ( j = 1; j < 245; j++ ) 
		{
			if ( param[ * mask] & *( mask + 1 ) )
				*stream += 0x01;
			mask += 2;
			
			if ( j % 8 )
				*stream <<= 1;
			else
				stream++;
		}
	}
	
	/* shift remaining bits */
	k = j % 8;
	if ( k )
	{
		*stream <<= ( 8 - k );
	}
	return( (INT32)block_size[mode] );
}


/*
* Sid_Sync_reset
*
*
* Parameters:
*    st                O: state structure
*
* Function:
*    Initializes state memory
*
* Returns:
*    void
*/
static void Sid_Sync_reset( AMR_Encode_State *st )
{
	st->sid_update_counter = 3;
	st->sid_handover_debt = 0;
	st->prev_ft = TX_SPEECH_GOOD;
}


/*
* Encoder_Interface_Encode
*
*
* Parameters:
*    st                I: pointer to state structure
*    mode              I: Speech Mode
*    speech            I: Input speech
*    serial            O: Output octet structure 3GPP or
*                         ETSI serial stream
*    force_speech      I: Force speech in DTX
*
* Function:
*    Encoding and packing one frame of speech
*
* Returns:
*    number of octets
*/
INT32 Encoder_Interface_Encode( void *st, enum Mode mode, INT16 *speech, UINT8 *serial, INT32 force_speech)
/*
#ifndef ETSI
UINT8 *serial,

  #else
  INT16 *serial,
  #endif
  
	INT32 force_speech )
*/
{
	INT16 prm[PRMNO_MR122];   /* speech parameters, max size */
	const INT16 *homing;   /* pointer to homing frame */
	INT16 homing_size;   /* frame size for homing frame */
	
	
	AMR_Encode_State * s;
	enum TXFrameType txFrameType;   /* frame type */
	
	INT32 i, noHoming = 0;
	
	
	/*
    * used encoder mode,
    * if used_mode == -1, force VAD on
    */
	enum Mode used_mode = (Mode)-force_speech;
	
	
	s = ( AMR_Encode_State * )st;
	
    /*
	* Checks if all samples of the input frame matches the encoder
	* homing frame pattern, which is 0x0008 for all samples.
	*/
	for ( i = 0; i < 160; i++ ) 
	{
		noHoming = speech[i] ^ 0x0008;
		
		if ( noHoming )
			break;
	}
	
	if (noHoming)
	{
		Speech_Encode_Frame( s->encoderState, mode, speech, prm, &used_mode );
	}
	else
	{
		switch ( mode )
		{
		case MR122:
            homing = dhf_MR122;
            homing_size = 18;
            break;
			
		case MR102:
            homing = dhf_MR102;
            homing_size = 12;
            break;
			
		case MR795:
            homing = dhf_MR795;
            homing_size = 8;
            break;
			
		case MR74:
            homing = dhf_MR74;
            homing_size = 7;
            break;
			
		case MR67:
            homing = dhf_MR67;
            homing_size = 7;
            break;
			
		case MR59:
            homing = dhf_MR59;
            homing_size = 7;
            break;
			
		case MR515:
            homing = dhf_MR515;
            homing_size = 7;
            break;
			
		case MR475:
            homing = dhf_MR475;
            homing_size = 7;
            break;
			
		default:
            homing = NULL;
            homing_size = 0;
            break;
		}
		for( i = 0; i < homing_size; i++)
		{
			prm[i] = homing[i];
		}
		/* rest of the parameters are zero */
		memset(&prm[homing_size], 0, (PRMNO_MR122 - homing_size) << 1);
		used_mode = mode;
	}
	if ( used_mode == MRDTX ) 
	{
		s->sid_update_counter--;
		
		if ( s->prev_ft == TX_SPEECH_GOOD ) 
		{
			txFrameType = TX_SID_FIRST;
			s->sid_update_counter = 3;
		}
		else 
		{
			/* TX_SID_UPDATE or TX_NO_DATA */
			if ( ( s->sid_handover_debt > 0 ) && ( s->sid_update_counter > 2 ) ) 
			{
			/*
			* ensure extra updates are properly delayed after
			* a possible SID_FIRST
				*/
				txFrameType = TX_SID_UPDATE;
				s->sid_handover_debt--;
			}
			else 
			{
				if ( s->sid_update_counter == 0 ) 
				{
					txFrameType = TX_SID_UPDATE;
					s->sid_update_counter = 8;
				}
				else
				{
					txFrameType = TX_NO_DATA;
					used_mode = (Mode)15;
				}
			}
		}
	}
	else 
	{
		s->sid_update_counter = 8;
		txFrameType = TX_SPEECH_GOOD;
	}
	s->prev_ft = txFrameType;
	
	if ( noHoming == 0 )
	{
		Speech_Encode_Frame_reset( s->encoderState, s->dtx );
		Sid_Sync_reset( s );
	}
	
	/*
	#ifndef ETSI
	#ifdef IF2
	return Encoder3GPP( used_mode, prm, serial, txFrameType, mode );
	
	  #else
	*/
	return EncoderMMS( used_mode, prm, serial, txFrameType, mode );
	
	/*
	#endif
	#else
	
	  Prm2Bits( used_mode, prm, &serial[1] );
	  serial[0] = ( INT16 )txFrameType;
	  serial[245] = ( INT16 )mode;
	  return 500;
	  #endif
	*/
	
}


/*
* Encoder_Interface_init
*
*
* Parameters:
*    dtx               I: DTX flag
*
* Function:
*    Allocates state memory and initializes state memory
*
* Returns:
*    pointer to encoder interface structure
*/
void * Encoder_Interface_init( INT32 dtx )
{
	AMR_Encode_State * s = NULL;
	
	/* allocate memory */
	s = ( AMR_Encode_State * ) new AMR_Encode_State;
	if ( s == NULL )
	{
		return NULL;
	}
	s->encoderState = Speech_Encode_Frame_init( dtx );
	Sid_Sync_reset( s );
	s->dtx = dtx;
	return s;
}


/*
* DecoderInterfaceExit
*
*
* Parameters:
*    state             I: state structure
*
* Function:
*    The memory used for state memory is freed
*
* Returns:
*    Void
*/
void Encoder_Interface_exit( void *state )
{
	AMR_Encode_State * s;
	s = ( AMR_Encode_State * )state;
	
	/* mcFree memory */
//	Speech_Encode_Frame_exit( &s->encoderState );
	delete s->encoderState;
	delete s;
	state = NULL;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国模冰冰炮一区二区| 亚洲女同女同女同女同女同69| 不卡区在线中文字幕| 亚洲成人资源在线| 国产精品欧美精品| 日韩免费一区二区| 欧美亚洲图片小说| 成人永久免费视频| 精油按摩中文字幕久久| 亚洲www啪成人一区二区麻豆| 国产精品网站在线观看| 精品三级在线观看| 欧美日韩精品久久久| 不卡一卡二卡三乱码免费网站| 久久99精品久久久久婷婷| 丝袜美腿一区二区三区| 一区二区三区精品视频在线| 国产欧美精品一区二区色综合朱莉| 欧美一个色资源| 欧美日韩成人在线| 在线看不卡av| 99视频国产精品| 懂色av一区二区三区免费看| 国内精品自线一区二区三区视频| 奇米色一区二区| 偷拍与自拍一区| 亚洲高清不卡在线| 亚洲午夜免费视频| 亚洲一区二区视频| 亚洲一级二级在线| 亚洲最新视频在线播放| 亚洲人亚洲人成电影网站色| 国产无一区二区| 国产亚洲欧美色| 久久久久久一级片| 国产欧美精品区一区二区三区 | 人人爽香蕉精品| 性欧美大战久久久久久久久| 亚洲综合激情网| 日韩国产欧美三级| 亚洲国产成人av好男人在线观看| 一卡二卡欧美日韩| 亚洲国产成人va在线观看天堂| 亚洲一级二级三级| 午夜精品影院在线观看| 三级在线观看一区二区| 日本欧美韩国一区三区| 蜜臀av性久久久久蜜臀av麻豆| 久久99国内精品| 国产精品一二二区| 成人午夜电影网站| 波多野结衣在线一区| 一本色道综合亚洲| 欧美午夜片在线观看| 欧美乱熟臀69xxxxxx| 欧美不卡视频一区| 中文字幕乱码亚洲精品一区| 日韩伦理av电影| 亚洲激情图片一区| 日韩有码一区二区三区| 加勒比av一区二区| 成人av手机在线观看| 在线观看一区二区视频| 7799精品视频| 国产校园另类小说区| 亚洲欧美精品午睡沙发| 亚洲国产精品一区二区www在线| 日韩精品欧美成人高清一区二区| 麻豆精品一二三| 成人av电影免费在线播放| 欧日韩精品视频| 欧美mv日韩mv亚洲| 中文字幕制服丝袜成人av| 亚洲国产精品嫩草影院| 久久9热精品视频| 99久久国产综合精品麻豆| 欧美色图天堂网| 精品国产污污免费网站入口 | 欧美国产视频在线| 亚洲国产人成综合网站| 国模少妇一区二区三区| 91麻豆精东视频| 亚洲精品一区二区三区99| 亚洲天天做日日做天天谢日日欢 | 国产精品福利影院| 天天综合天天做天天综合| 国产成人精品综合在线观看 | 亚洲大片一区二区三区| 国产精品资源站在线| 91久久国产综合久久| 久久久蜜桃精品| 婷婷综合五月天| 99免费精品在线| 欧美一级欧美一级在线播放| 最新国产成人在线观看| 美女被吸乳得到大胸91| 色噜噜狠狠成人中文综合| 国产亚洲欧洲一区高清在线观看| 亚洲高清免费视频| 欧美视频完全免费看| 国产女主播在线一区二区| 视频一区在线播放| 色婷婷av一区二区三区之一色屋| 久久久久亚洲综合| 毛片一区二区三区| 精品视频1区2区3区| 一区免费观看视频| 国产精品一区二区在线看| 欧美一区日韩一区| 亚洲一区二区欧美日韩| 成人免费毛片片v| 久久在线免费观看| 日韩高清不卡一区| 欧美精选一区二区| 亚洲第一主播视频| 一本一道综合狠狠老| 国产精品嫩草久久久久| 国产精品一区二区三区四区| 精品久久国产字幕高潮| 日本中文字幕一区| 欧美日韩国产小视频在线观看| 亚洲视频在线一区二区| 成人午夜av电影| 久久在线免费观看| 国产麻豆精品在线| 26uuu久久天堂性欧美| 美国十次了思思久久精品导航| 欧美视频一区二区三区四区| 亚洲精品videosex极品| 97久久超碰精品国产| 亚洲欧美在线aaa| 99热精品国产| 亚洲免费av在线| 欧美最新大片在线看| 尤物av一区二区| 欧美亚洲一区二区在线观看| 一区二区三区国产| 在线一区二区三区做爰视频网站| 亚洲蜜臀av乱码久久精品蜜桃| 色综合一区二区三区| 亚洲一区二区三区四区在线观看| 欧美日精品一区视频| 亚洲丶国产丶欧美一区二区三区| 欧美乱熟臀69xxxxxx| 人禽交欧美网站| 精品国产网站在线观看| 国产精品亚洲а∨天堂免在线| 久久婷婷色综合| www.欧美日韩国产在线| 亚洲欧洲另类国产综合| 色噜噜狠狠成人网p站| 午夜成人免费视频| 欧美tickling网站挠脚心| 国产伦精品一区二区三区免费| 久久久www成人免费毛片麻豆| 成人精品免费视频| 一区二区三区免费看视频| 欧美精品日韩综合在线| 精品无人区卡一卡二卡三乱码免费卡| 久久久久久免费| 色综合天天性综合| 日韩国产欧美视频| 国产免费成人在线视频| 色综合天天综合网国产成人综合天| 亚洲一区二区视频在线| 国产精品成人在线观看| 欧美性极品少妇| 国产麻豆9l精品三级站| 成人免费在线播放视频| 欧美精品一二三| 国产精品一区二区久久精品爱涩| 亚洲免费观看高清完整版在线 | 天堂一区二区在线| 欧美精品一区视频| 99久久er热在这里只有精品15 | 日韩免费电影网站| 成人h精品动漫一区二区三区| 亚洲国产综合色| 久久久久久毛片| 欧美日韩一区中文字幕| 国产精品一区在线观看乱码| 亚洲国产日韩a在线播放| 久久久久久一二三区| 欧美三级欧美一级| 国产91在线观看| 丝袜亚洲另类欧美综合| 亚洲欧美自拍偷拍色图| 日韩三级在线观看| 色999日韩国产欧美一区二区| 久久成人久久爱| 亚洲国产精品麻豆| 中文字幕综合网| 久久久777精品电影网影网| 91福利视频在线| 成人黄色在线看| 极品少妇xxxx偷拍精品少妇| 亚洲国产中文字幕| 亚洲色图在线视频| 精品国产网站在线观看| 欧美美女网站色|