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

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

?? spwrite.c

?? speech signal process tools
?? C
字號(hào):
#include <stdio.h>#include <sp/sphere.h>#include <string.h>/* * *  sp_write_data() * */int sp_write_data(buffer,sample_size,num_sample,sp)void *buffer;size_t sample_size;size_t num_sample;SP_FILE *sp;{    char *proc_name="sp_write_data", *str;    SP_CHECKSUM checksum=0;    int ret;    long lint, header_size, data_bytes;        if (sp_verbose > 10) printf("Proc %s:\n",proc_name);    if (buffer == (void *)0) 	return_err(proc_name,100,0,"Null memory buffer");     if (sp == SPNULL)	return_err(proc_name,101,0,"Null SPFILE structure");    if (sp->open_mode == SP_mode_read)	return_err(proc_name,104,0,"Unable to write data to a file opened for reading");    if (sample_size != sp->write_spifr->status->user_sample_n_bytes) 	return_err(proc_name,102,0,		   rsprintf("Sample size %d does not match the expected size %d",			    sample_size, sp->write_spifr->status->user_sample_n_bytes));    if (num_sample < 0)	return_err(proc_name,103,0,		   rsprintf("Negative sample count %d",num_sample));    if (sp->write_spifr->status->write_occured_flag == FALSE) { /* set up the FoB Structure for reading */	/******************************************************/	/*             Check for required fields              */	/* the sample_n_bytes is required, if it is not set, there is an error */	if (h_get_field(sp->write_spifr->status->file_header, SAMPLE_N_BYTES_FIELD, T_INTEGER, &lint) != 0)	    return_err(proc_name,150,0,rsprintf("Header field '%s' is missing",SAMPLE_N_BYTES_FIELD));		/* if 'channel_count' is not in the header, there is an error */	if (h_get_field(sp->write_spifr->status->file_header, CHANNEL_COUNT_FIELD, T_INTEGER, &lint) != 0)	    return_err(proc_name,151,0,rsprintf("Header field '%s' is missing",CHANNEL_COUNT_FIELD));	if (! sp->write_spifr->status->is_disk_file) 	    if (h_get_field(sp->write_spifr->status->file_header, SAMPLE_COUNT_FIELD, T_INTEGER, &lint) != 0)		return_err(proc_name,151,0,rsprintf("Header field '%s' is missing for stream file",SAMPLE_COUNT_FIELD));		/* if the sample coding field is not 'raw' the sample_rate field must exist */        /* if the field is missing, it is assumed to be a pcm file                  */	ret=h_get_field(sp->write_spifr->status->file_header, SAMPLE_CODING_FIELD, T_STRING, &str);	if (((ret == 0) && (!strsame(str,"raw"))) || (ret != 0))	    if (h_get_field(sp->write_spifr->status->file_header, SAMPLE_RATE_FIELD, T_INTEGER, &lint) != 0) {		if (ret == 0) mtrf_free(str);		return_err(proc_name,151,0,rsprintf("Header field '%s' is missing from wave type file",SAMPLE_RATE_FIELD));	    }	if (ret == 0) mtrf_free(str);	/* if the following fields are missing from the header, default values need to */	/* be assumed in the SP_FILE status structure                                  */	if (h_get_field(sp->write_spifr->status->file_header, SAMPLE_BF_FIELD, T_STRING, &str) == 0)	    mtrf_free(str);	else {	    sp->write_spifr->status->user_sbf = sp->write_spifr->status->file_sbf =		get_natural_sbf(sp->write_spifr->status->file_sample_n_bytes) ;	}	/* only add data to the header if the file is not a stream */	if (sp->write_spifr->status->is_disk_file) {	    /* if 'sample_count' is not in the header, add it to take up space */	    /* for later correction                                            */	    if (h_get_field(sp->write_spifr->status->file_header, SAMPLE_COUNT_FIELD, T_INTEGER, &lint) != 0){		lint=(-1);		sp->write_spifr->status->file_sample_count=lint;		sp_h_set_field(sp, SAMPLE_COUNT_FIELD, T_INTEGER, &lint);	    }	    /* if 'sample_checksum' is not in the header, add it with a fake checksum */	    if (h_get_field(sp->write_spifr->status->file_header, "sample_checksum", T_INTEGER, &lint) != 0){		lint=999999999;		sp->write_spifr->status->file_checksum=lint;		sp_h_set_field(sp, "sample_checksum", T_INTEGER, &lint);	    }	}	/* Flush the header to the file pointer */	if (sp_write_header(sp->write_spifr->waveform->sp_fp,sp->write_spifr->status->file_header,			    &header_size,&(sp->write_spifr->waveform->header_data_size)) < 0)	    return_err(proc_name,200,0,"Unable to write header to file");	if ((sp->write_spifr->status->user_compress == SP_wc_none) &&	    (sp->write_spifr->status->file_compress != SP_wc_none)){	    char *buff;	    int blen;	    /* The file needs to be written into a temporary place, and then compressed*/	    /* if The expected waveform size is bigger that MAX_INTERNAL_WAVEFORM, use */	    /* a temporary file. otherwise:                                            */	    /* 1. make an MEMORY FOB struct for the uncompressed file.                 */	    /* 2. allocate the memory for the FOB struct,                              */	    /* 3. install the memory into the FOB struct                               */	    	    if (sp->write_spifr->status->file_sample_count < 0)		/* allocate a minimal size for the waveform */		blen = MAX_INTERNAL_WAVFORM;	    else		blen = sp->write_spifr->status->file_channel_count * sp->write_spifr->status->file_sample_count * 		       sp->write_spifr->status->file_sample_n_bytes;	    if (blen < MAX_INTERNAL_WAVFORM){		if ((sp->write_spifr->waveform->sp_fob = fob_create(FPNULL)) == FOBPNULL)		    return_err(proc_name,300,0,"Unable to allocate a FOB (File or Buffer) structure");		if ((buff = mtrf_malloc(blen)) == CNULL){		    fob_destroy(sp->write_spifr->waveform->sp_fob);		    return_err(proc_name,301,0,"Unable to malloc buffer for waveform data");		}		fob_bufinit(sp->write_spifr->waveform->sp_fob, buff, blen);	    } else {		FILE *temp_fp;		sp->write_spifr->status->temp_filename = sptemp_dirfile();		if (sp->write_spifr->status->temp_filename == CNULL)		    return_err(proc_name,301,0,"Unable to create usable temporary file");		if (sp_verbose > 15) printf("Proc %s: Attempting to write a big file %d bytes long, using temp file %s\n",proc_name,					   blen,sp->write_spifr->status->temp_filename);		if ((temp_fp=fopen(sp->write_spifr->status->temp_filename,TRUNCATE_UPDATEMODE)) == FPNULL) 		    return_err(proc_name,302,0,			       rsprintf("Unable to open temporary file %s",sp->write_spifr->status->temp_filename));		if ((sp->write_spifr->waveform->sp_fob = fob_create(temp_fp)) == FOBPNULL)		    return_err(proc_name,303,0,"Unable to allocate a FOB (File or Buffer) structure");		sp->write_spifr->status->is_temp_file = TRUE;	    }	}	else {	    /* This assumes that no pre-buffering is required *//*	    printf("Setting up for un-buffered IO \n");*/	    if ((sp->write_spifr->waveform->sp_fob = fob_create(sp->write_spifr->waveform->sp_fp)) == FOBPNULL)		return_err(proc_name,300,0,"Unable to allocate a FOB (File or Buffer) structure");	    sp->write_spifr->waveform->sp_fp = FPNULL;	}	/* Set up byte format the conversions */	if (sp->write_spifr->status->user_sbf != sp->write_spifr->status->file_sbf) 	    if (((sp->write_spifr->status->user_sbf == SP_sbf_01) &&		 (sp->write_spifr->status->file_sbf == SP_sbf_10)) ||		((sp->write_spifr->status->user_sbf == SP_sbf_10) &&		 (sp->write_spifr->status->file_sbf == SP_sbf_01)))		fob_write_byte_swap(sp->write_spifr->waveform->sp_fob);	if (sp->write_spifr->status->user_encoding != sp->write_spifr->status->user_encoding)	    return_err(proc_name,400,0,"Unable to convert sample types ... for now\n");	sp->write_spifr->status->write_occured_flag = TRUE;    }    /* WRITE THE DATA INTO FOB */    ret = fob_fwrite(buffer, sample_size, num_sample, sp->write_spifr->waveform->sp_fob);    if (ret < 0)	return_err(proc_name,301,0,"Unable to write data");    /* Perform the checksum computation */    switch (sp->write_spifr->status->user_encoding){      case SP_se_pcm2:	if (sp->write_spifr->status->natural_sbf == sp->write_spifr->status->user_sbf)	    checksum = sp_compute_short_checksum(buffer, ret, FALSE);	else	    checksum = sp_compute_short_checksum(buffer, ret, TRUE);	sp->write_spifr->waveform->checksum = sp_add_checksum(sp->write_spifr->waveform->checksum,checksum);	sp->write_spifr->waveform->samples_written += ret;	break;      default:	return_err(proc_name,302,0,"Internal error. user encoding has not been set");    }    if (sp_verbose > 11) printf("Proc %s: Requested %d, %d byte samples, written %d\n",proc_name,num_sample,sample_size,ret);    return_success(proc_name,0,ret,"ok");}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区三区不卡 | 欧美日韩极品在线观看一区| 欧美视频三区在线播放| 91精品国产手机| 久久精品欧美一区二区三区不卡| 国产精品久久久久久久久果冻传媒 | 亚洲免费视频中文字幕| 亚洲一区成人在线| 久久se这里有精品| 99久久精品国产一区| 欧美日韩高清一区| 久久亚洲欧美国产精品乐播 | 欧美三区在线观看| 欧美一级日韩免费不卡| 国产欧美精品一区aⅴ影院| 亚洲毛片av在线| 久久成人免费电影| 91传媒视频在线播放| 久久人人爽爽爽人久久久| 樱桃国产成人精品视频| 久久国内精品自在自线400部| 99re视频精品| 欧美成人一区二区三区片免费 | 在线看日本不卡| 精品久久五月天| 亚洲精品一卡二卡| 国产精品一级片| 欧美群妇大交群的观看方式| 国产精品欧美一区喷水| 香蕉成人伊视频在线观看| 成人性视频网站| 欧美成人精品1314www| 亚洲精品一二三区| 成人免费黄色在线| 日韩片之四级片| 亚洲国产精品久久人人爱| 国产成人啪免费观看软件| 6080国产精品一区二区| 亚洲女人****多毛耸耸8| 国产盗摄女厕一区二区三区| 91精品国产综合久久精品| 亚洲精品免费在线| 成人av资源在线观看| 精品久久久久久亚洲综合网| 亚洲一区二区三区免费视频| 成av人片一区二区| 久久尤物电影视频在线观看| 美日韩一区二区| 欧美日韩一区三区四区| 亚洲精品v日韩精品| 成人av在线资源| 久久网站最新地址| 免费观看成人av| 欧美精品在线观看播放| 一区二区三区小说| 91免费版在线| 最新日韩在线视频| 成人一区二区三区在线观看| 国产午夜精品在线观看| 国产一区二区三区美女| 日韩精品一区二区在线| 天天色图综合网| 欧美日韩精品一区二区在线播放| 亚洲精品亚洲人成人网 | 亚洲日本在线看| 丰满少妇在线播放bd日韩电影| 精品福利二区三区| 热久久一区二区| 91精品国产综合久久久久久久久久| 亚洲一区二区欧美日韩| 在线观看亚洲一区| 一区二区三区成人| 欧美伊人久久大香线蕉综合69 | 91成人网在线| 一区二区在线观看视频| 91成人国产精品| 亚洲成人黄色小说| 在线播放国产精品二区一二区四区| 亚洲大型综合色站| 91国偷自产一区二区三区观看| 一二三四社区欧美黄| 欧美午夜电影网| 日本最新不卡在线| 日韩免费电影一区| 极品美女销魂一区二区三区免费| 精品国产免费人成电影在线观看四季 | caoporen国产精品视频| 欧美国产精品中文字幕| 99久久婷婷国产精品综合| 亚洲激情图片qvod| 欧美日韩免费观看一区二区三区| 婷婷成人综合网| 精品乱人伦一区二区三区| 国产福利一区二区| 日韩伦理电影网| 欧美性xxxxx极品少妇| 日韩成人午夜精品| 久久综合久久99| 99久久免费视频.com| 亚洲国产视频网站| 91精品国产丝袜白色高跟鞋| 国产精品一区二区你懂的| 中文字幕一区二区日韩精品绯色| 欧洲亚洲国产日韩| 久久精品免费看| 国产精品色婷婷久久58| 欧洲色大大久久| 久久99国产精品免费| 国产精品美女久久久久aⅴ| 一本一本久久a久久精品综合麻豆| 亚洲综合成人在线视频| 91精品国产麻豆| 成人性生交大合| 亚洲高清中文字幕| 精品国产亚洲一区二区三区在线观看| 国产a级毛片一区| 一区二区高清免费观看影视大全| 91精品国产高清一区二区三区 | 自拍偷拍亚洲综合| 91精品国模一区二区三区| 成人午夜免费av| 午夜视频一区二区三区| 久久久久久日产精品| 在线亚洲一区二区| 韩日欧美一区二区三区| 亚洲精品v日韩精品| 久久一区二区三区四区| 在线观看视频一区二区欧美日韩 | 国产精品私人自拍| 欧美日韩国产大片| 不卡区在线中文字幕| 日韩精品一区第一页| 亚洲三级免费观看| 久久先锋影音av鲁色资源| 欧美日韩成人一区二区| 国产91精品精华液一区二区三区 | 69p69国产精品| 99久久精品情趣| 精品综合久久久久久8888| 亚洲精品日韩一| 国产欧美视频一区二区三区| 欧美日本一道本在线视频| 不卡一区在线观看| 狠狠色2019综合网| 亚洲午夜日本在线观看| 椎名由奈av一区二区三区| 精品国产精品一区二区夜夜嗨| 欧美三级资源在线| av在线播放不卡| 国产成人高清在线| 精品一二线国产| 视频精品一区二区| 一区二区三区四区亚洲| 国产精品欧美精品| 精品粉嫩aⅴ一区二区三区四区| 欧美美女一区二区三区| 色88888久久久久久影院按摩| 国产成人在线影院| 国产一区二区三区观看| 日本一区中文字幕| 亚洲成人动漫精品| 一区二区三区日韩| 亚洲人成网站在线| 中文无字幕一区二区三区| xf在线a精品一区二区视频网站| 欧美精品第1页| 欧美日韩久久一区二区| 在线观看日韩高清av| 国产v综合v亚洲欧| 国产呦萝稀缺另类资源| 久久国产精品露脸对白| 久久成人综合网| 久久99热99| 久久91精品国产91久久小草| 麻豆成人在线观看| 美女视频网站久久| 麻豆精品视频在线| 麻豆精品一二三| 国产在线日韩欧美| 韩国欧美国产1区| 国产剧情av麻豆香蕉精品| 国产在线乱码一区二区三区| 精品一区二区久久久| 黄色日韩三级电影| 国产一区二区三区免费观看| 国产精品一区专区| 国产福利视频一区二区三区| 从欧美一区二区三区| 成人国产免费视频| 不卡av免费在线观看| www国产亚洲精品久久麻豆| 欧美性欧美巨大黑白大战| 欧美制服丝袜第一页| 欧美片在线播放| 欧美mv日韩mv| 久久精品一区二区三区四区| 中文在线免费一区三区高中清不卡| 国产欧美视频在线观看| 亚洲精品视频在线看| 亚洲电影你懂得|