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

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

?? main.c

?? 本程序是在TI公司的DM642上實(shí)現(xiàn)ADPCM編碼和解碼的程序
?? C
字號:
/*
 *  Copyright 2003 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/*
 *  ======== main.c ========
 * 
 *  This example demonstrates the use of IOM drivers with SIOs and tasks by 
 *  using the DIO class driver with a user defined device mini-driver 
 *  called "codec" and a class driver DIO instance called "dio_codec". This is 
 *  the loopback application where audio is read from an input SIO, then sent 
 *  back via an output SIO.

 *  The following objects need to be created in the DSP/BIOS
 *  configuration for this application:
 *
 *  * A UDEV object, which links in a user device driver. In this
 *    case the UDEV is a codec based IOM device driver.
 *  * A DIO object, which links the UDEV object.
 *  * A TSK object, with the function to run set to the function demo
 *    defined in this file.
 *  * A LOG named trace for debug and status output.
 */
#include <std.h>

#include <log.h>
#include <sys.h>
#include <mem.h>
#include <sio.h>
#include <csl.h>
#include <csl_cache.h>

#include <evmdm642.h>
#include <evmdm642_led.h>
#include <evmdm642_edma_aic23.h>

#include "adpcm.h"

#define NUM_CODEC_CHANNELS	 2	/* stereo: left + right		*/
#define SAMPLEING_RATE		48	/* 48 samples/ms			*/
#define FRAME_SIZE			10	/* 10 ms					*/
#define	NFRAMES				100	/* 100 frames = 1 second	*/
#define	BUFLEN		(NUM_CODEC_CHANNELS*SAMPLEING_RATE*FRAME_SIZE)

#ifdef _6x_
extern far LOG_Obj trace;

/* 
 * Buffers placed in external memory are aligned on a 128 bytes boundary.
 * In addition, the buffer should be of a size multiple of 128 bytes for 
 * the cache work optimally on the C6x.
 */
#define BUFALIGN 128    /* alignment of buffer to allow use of L2 cache */
#else
extern LOG_Obj trace;
#define BUFALIGN 1
#endif

#define BUFSIZE (BUFLEN * sizeof(short)) 

/*
 *  ======== EVMDM642_DEVPARAMS ========
 *  This static initialization defines the default parameters used for
 *  EVMDM642_EDMA_AIC23 IOM driver
 */
EVMDM642_EDMA_AIC23_DevParams EVMDM642_CODEC_DEVPARAMS =
        EVMDM642_EDMA_AIC23_DEFAULT_DEVPARAMS;

/* inStream and outStream are SIO handles created in main */
SIO_Handle inStream, outStream;

/* Function prototype */
static Void createStreams();
static Void prime();


/*
 * ======== main ========
 */
Void main()
{
	EVMDM642_LED_init();
    LOG_printf(&trace, "audio started");
}

short *pAudioBuf;
const int audioBufSize = NFRAMES * BUFLEN;


/*
 *  ======== initEchoBuffer ========
 * Allocate echo buffer and fill with silence
 */
int initAudioBuffer()
{
	pAudioBuf = MEM_calloc(0, audioBufSize * sizeof(short), BUFALIGN);
	return (pAudioBuf == MEM_ILLEGAL) ? -1 : 0;
}


/*
 * ======== createStreams ========
 */
static Void createStreams()
{
    SIO_Attrs attrs;
    
    /* align the buffer to allow it to be used with L2 cache */
    attrs = SIO_ATTRS;
    attrs.align = BUFALIGN;
    attrs.model = SIO_ISSUERECLAIM;

    /* open the I/O streams */
    inStream = SIO_create("/dio_codec", SIO_INPUT, BUFSIZE, &attrs);
    if (inStream == NULL) {
        SYS_abort("Create input stream FAILED.");
    }

    outStream = SIO_create("/dio_codec", SIO_OUTPUT, BUFSIZE, &attrs);
    if (outStream == NULL) {
        SYS_abort("Create output stream FAILED.");
    }
}

/*
 * ======== prime ========
 */
static Void prime()
{
    Ptr buf0, buf1, buf2, buf3;

    LOG_printf(&trace, "Allocate buffers started");

    /* Allocate buffers for the SIO buffer exchanges */
    buf0 = (Ptr)MEM_calloc(0, BUFSIZE, BUFALIGN);
    buf1 = (Ptr)MEM_calloc(0, BUFSIZE, BUFALIGN);
    buf2 = (Ptr)MEM_calloc(0, BUFSIZE, BUFALIGN);
    buf3 = (Ptr)MEM_calloc(0, BUFSIZE, BUFALIGN);
    if (buf0 == NULL || buf1 == NULL || buf2 == NULL || buf3 == NULL) {
        SYS_abort("MEM_calloc failed.");
    } 
    
    /* Issue the first & second empty buffers to the input stream */
    if (SIO_issue(inStream, buf0, SIO_bufsize(inStream), NULL) != SYS_OK) {
        SYS_abort("Error issuing buffer to the input stream");
    }
    if (SIO_issue(inStream, buf1, SIO_bufsize(inStream), NULL) != SYS_OK) {
        SYS_abort("Error issuing buffer to the input stream");
    }

    /* Issue the first & second empty buffers to the output stream */
    if (SIO_issue(outStream, buf2, SIO_bufsize(outStream), NULL) != SYS_OK) {
        SYS_abort("Error issuing buffer to the output stream");
    }
    if (SIO_issue(outStream, buf3, SIO_bufsize(outStream), NULL) != SYS_OK) {
        SYS_abort("Error issuing buffer to the output stream");
    }
}	   

/*
 * ======== tskAudioDemo ========
 * This function copies from the input SIO to the output SIO. You could
 * easily replace the copy function with a signal processing algorithm. 
 */
Void tskAudioDemo()
{
    Int nmadus;         /* number of minimal addressable units */
    char  *midbuf;    
    char  ch_temp1, ch_temp2;
    short sh_temp1, sh_temp2;
    short *inbuf, *outbuf;    
    adpcm_state *audio_state1, *audio_state2;
    
	/* Call createStream function to create I/O streams */
    createStreams();
    
    /* Call prime function to do priming */
    prime();
    
    initAudioBuffer();

    /* Loop forever looping back buffers */
    for (;;) {
        /* Reclaim full buffer from the input stream */
        if ((nmadus = SIO_reclaim(inStream, (Ptr *)&inbuf, NULL)) < 0) {
            SYS_abort("Error reclaiming full buffer from the input stream");
        }

        /* Reclaim empty buffer from the output stream to be reused */
        if (SIO_reclaim(outStream, (Ptr *)&outbuf, NULL) < 0) {
            SYS_abort("Error reclaiming empty buffer from the output stream");
        }

		/* process algorithm */
		audio_state1->index   = ch_temp1;
		audio_state1->valprev = sh_temp1;
		
	    adpcm_encoder(inbuf, midbuf, BUFLEN, audio_state1);
	    
	    ch_temp1 = audio_state1->index;
	    sh_temp1 = audio_state1->valprev;				

		EVMDM642_LED_toggle(0);
		
		audio_state2->index   = ch_temp2;
		audio_state2->valprev = sh_temp2;
		
	    adpcm_decoder(midbuf, outbuf, BUFLEN, audio_state2);
	    
	    ch_temp2 = audio_state2->index;
	    sh_temp2 = audio_state2->valprev;	     						 						

        /* Issue full buffer to the output stream */
        if (SIO_issue(outStream, outbuf, nmadus, NULL) != SYS_OK) {
            SYS_abort("Error issuing full buffer to the output stream");
        }

        /* Issue an empty buffer to the input stream */
        if (SIO_issue(inStream, inbuf, SIO_bufsize(inStream), NULL) != SYS_OK) {
            SYS_abort("Error issuing empty buffer to the input stream");
        }
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxx久久| 国产成人免费9x9x人网站视频| 成人污视频在线观看| 久久蜜桃av一区精品变态类天堂| 奇米影视在线99精品| 欧美日韩另类一区| 蜜臀av一级做a爰片久久| 日韩三级高清在线| 国产美女在线观看一区| 国产欧美日韩精品一区| 成人激情综合网站| 一区二区三区精品久久久| 欧美精品精品一区| 国产在线视视频有精品| 国产精品乱人伦中文| 色婷婷av一区二区三区gif | 人人狠狠综合久久亚洲| 5月丁香婷婷综合| 激情成人综合网| 国产精品美女久久久久久久久久久| 99精品热视频| 日本亚洲欧美天堂免费| 国产欧美一区二区精品婷婷| 成人黄页在线观看| 亚洲va国产天堂va久久en| 精品久久久网站| 一本大道综合伊人精品热热| 亚洲动漫第一页| 欧美r级在线观看| 成人短视频下载| 婷婷成人综合网| 国产欧美日韩视频在线观看| 在线免费观看日本一区| 另类调教123区 | 99国产精品一区| 五月激情六月综合| 欧美国产一区在线| 91麻豆精品国产91久久久 | 国产一区二区福利| 亚洲一卡二卡三卡四卡无卡久久| 日韩精品一区二| 色88888久久久久久影院野外| 久久99精品国产.久久久久久| 国产精品久久久久影院老司 | 欧美一区二区高清| 欧洲视频一区二区| 国产一区二三区好的| 亚洲福利视频一区二区| 亚洲国产高清在线观看视频| 3d动漫精品啪啪1区2区免费| 91尤物视频在线观看| 开心九九激情九九欧美日韩精美视频电影 | 国模冰冰炮一区二区| 亚洲观看高清完整版在线观看| 国产清纯白嫩初高生在线观看91 | 在线视频一区二区三区| 国产凹凸在线观看一区二区| 日本大胆欧美人术艺术动态| 亚洲激情自拍视频| 国产精品久久久久久久久免费樱桃 | 色婷婷av一区二区三区之一色屋| 国产呦萝稀缺另类资源| 蜜桃精品视频在线观看| 亚洲va在线va天堂| 亚洲综合色区另类av| 《视频一区视频二区| 中文字幕av在线一区二区三区| 欧美mv和日韩mv的网站| 欧美一区二区三区视频在线| 欧美日韩精品高清| 欧美无砖专区一中文字| 91成人免费网站| 91色|porny| 一本大道av伊人久久综合| 成人激情动漫在线观看| 不卡一卡二卡三乱码免费网站| 国产精品1024| 国产99久久久精品| 国产iv一区二区三区| 国产成人在线视频播放| 国产精品亚洲午夜一区二区三区| 国产最新精品精品你懂的| 麻豆国产精品官网| 国内不卡的二区三区中文字幕| 久久av老司机精品网站导航| 久久99精品国产91久久来源| 狠狠久久亚洲欧美| 国产精品一区二区三区网站| 国产69精品久久777的优势| 丰满亚洲少妇av| 91女厕偷拍女厕偷拍高清| 色综合久久99| 欧美网站一区二区| 日韩欧美中文字幕制服| 久久久蜜桃精品| 国产精品久久久久aaaa樱花 | 亚洲国产视频网站| 日韩和欧美一区二区三区| 久久国产欧美日韩精品| 国产suv精品一区二区6| 日本精品视频一区二区| 在线播放日韩导航| 久久久亚洲午夜电影| 亚洲天堂久久久久久久| 午夜欧美电影在线观看| 久草在线在线精品观看| 不卡一卡二卡三乱码免费网站| 精品视频在线看| 久久综合av免费| 国产精品成人在线观看| 天天综合网天天综合色| 国产一区二区三区四区五区美女| 成人国产一区二区三区精品| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 337p日本欧洲亚洲大胆精品| 亚洲欧美综合色| 日韩电影免费在线看| 成人精品鲁一区一区二区| 欧美性猛交一区二区三区精品| 精品久久一二三区| 亚洲人123区| 国模套图日韩精品一区二区| 色网站国产精品| 亚洲精品一区二区三区四区高清 | 色域天天综合网| 26uuu另类欧美| 亚洲高清视频的网址| 国产精品亚洲人在线观看| 欧美色男人天堂| 日本一区二区三区电影| 香蕉加勒比综合久久| 国产成人午夜精品5599| 欧美男女性生活在线直播观看| 亚洲国产经典视频| 麻豆成人久久精品二区三区红| 91蜜桃免费观看视频| 国产亚洲欧美一区在线观看| 五月激情六月综合| 色先锋aa成人| 国产精品乱人伦中文| 国产一区二区日韩精品| 884aa四虎影成人精品一区| 成人欧美一区二区三区在线播放| 久久se这里有精品| 欧美区在线观看| 亚洲一区二区三区中文字幕在线| 成人免费视频国产在线观看| 欧美一级欧美三级| 亚洲成av人在线观看| 一本到不卡精品视频在线观看 | 欧美美女直播网站| 亚洲色图视频免费播放| 丁香婷婷综合激情五月色| 精品三级在线观看| 免费在线观看一区| 欧美日韩视频在线第一区| 久久精品噜噜噜成人av农村| 欧美午夜片在线观看| 一区二区三区美女| 色婷婷av久久久久久久| 亚洲人成网站在线| 91免费国产视频网站| 日韩伦理免费电影| eeuss鲁一区二区三区| 国产精品无圣光一区二区| 国产精品资源网站| 国产欧美一区二区三区在线看蜜臀| 精品一区二区三区免费观看 | 精品久久久久一区二区国产| 日韩精品乱码av一区二区| 欧美精品在线观看一区二区| 亚洲国产精品久久一线不卡| 欧美性大战久久久久久久蜜臀| 亚洲精品视频在线| 色视频一区二区| 午夜精品久久久久久久99樱桃| 精品视频1区2区| 免费不卡在线观看| 欧美mv和日韩mv国产网站| 国产一区二区调教| 国产精品电影一区二区三区| 91丝袜美腿高跟国产极品老师 | 欧美精品xxxxbbbb| 日本不卡视频一二三区| 精品电影一区二区三区| 国产夫妻精品视频| 国产精品欧美一级免费| 91丨九色丨黑人外教| 亚洲国产成人91porn| 日韩欧美国产综合一区| 国产精品一区在线观看乱码| 国产精品高潮呻吟久久| 在线亚洲一区二区| 免费精品视频在线| 日本一区二区免费在线观看视频 | 久久99精品久久久久久久久久久久| 精品久久99ma| 成人av在线看| 午夜精品福利久久久| 久久女同性恋中文字幕|