⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 foo.c

📁 speech signal process tools
💻 C
📖 第 1 页 / 共 5 页
字号:
    if (p -> common.check != HD_CHECK_VAL) {        free(p);	BADHEAD (lev, "bad check value");    }#if defined(M5500) || defined(M5600) /* if its an old header, then we have to shift ndouble through fixpartsiz   from shorts to longs*/    if (old_version(p->common.hdvers,PRE_NEWSIZ)){	short ndouble, nfloat, nlong, nshort, nchar, fixpartsiz;	long hsize;	char *uname;/*	(void)fprintf(stderr,"old header found, lev: %d, version: %s\n",		lev,p->common.hdvers);*/	ndouble = p->common.nd1;	nfloat = p->common.ndouble >> 16;	nlong = (p->common.ndouble << 16) >> 16;	nshort = p->common.nfloat >> 16;	nchar = (p->common.nfloat << 16) >> 16;	fixpartsiz = p->common.nlong >> 16;	hsize = p->common.nshort;	uname = savestring((char *)&p->common.nchar);/*	(void)fprintf(stderr,"ndouble: %d, nfloat: %d, nlong: %d, nshort: %d\n",		ndouble, nfloat, nlong, nshort);	(void)fprintf(stderr,"nchar: %d, fixpartsiz: %d, hsize: %ld, uname: %s\n",		nchar, fixpartsiz, hsize, uname);*/	p->common.ndouble = ndouble;	p->common.nfloat = nfloat;	p->common.nlong = nlong;	p->common.nshort = nshort;	p->common.nchar = nchar;	p->common.fixpartsiz = fixpartsiz;	p->common.hsize = hsize;	(void)strcpy(p->common.user, uname);    }#endif#ifndef DEC_ALPHA    if ((p->common.machine_code != DEC_ALPHA_CODE) && (p -> common.fixpartsiz >= p -> common.hsize ||	    p -> common.fixpartsiz < FIX_HEADER_SIZE-sizeof(p->common.edr)-				 sizeof(p->common.machine_code)))	BADHEAD (lev, "bad header size");#endif    /* get type specific part of header */    switch (p -> common.type) {#ifdef ESI	case FT_ANA: 	    p -> hd.ana = (struct ana_header   *) calloc (1, ANA_SIZE);	    if (fread ((char *) p -> hd.ana, 1, ANA_SIZE, fd) == 0)		BADHEAD (lev, "bad specfic part -ana");	    break;	case FT_PIT: 	    p -> hd.pit = (struct pit_header   *) calloc (1, PIT_SIZE);	    if (fread ((char *) p -> hd.pit, 1, PIT_SIZE, fd) == 0)		BADHEAD (lev, "bad specfic part -pit");	    break;	case FT_ROS: {		struct ros_header  *ros;		p -> hd.ros = (struct ros_header   *) calloc (1, ROS_SIZE);		if (fread ((char *) p -> hd.ros, 1, ROS_SIZE, fd) == 0)		    BADHEAD (lev, "bad specfic part -ros");		ros = p -> hd.ros;		ros -> type_bits = get_shorts (fd, lev, ros -> maxtype);		ros -> rc_ubits = get_shorts (fd, lev, ros -> order_unvcd);		ros -> rc_vbits = get_shorts (fd, lev, ros -> order_vcd);		ros -> pulse_bits = get_shorts (fd, lev, ros -> maxpulses);		ros -> pow_bits = get_shorts (fd, lev, ros -> maxpow);		break;	    }#endif ESI	case FT_SD: 	    p -> hd.sd = (struct sd_header *) calloc (1, SD_SIZE);	    if (!miio_get_short(&p->hd.sd->equip, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");#ifndef NOPAD	      if (!miio_get_short(&p->hd.sd->pad1, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");#endif	    if (!miio_get_float(&p->hd.sd->max_value, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_float(&p->hd.sd->sf, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_float(&p->hd.sd->src_sf, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->synt_method, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");#ifndef NOPAD	      if (!miio_get_short(&p->hd.sd->pad2, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");#endif	    if (!miio_get_float(&p->hd.sd->scale, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_float(&p->hd.sd->dcrem, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->q_method, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->v_excit_method, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->uv_excit_method, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->spare1, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->nchan, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->synt_interp, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->synt_pwr, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->synt_rc, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(&p->hd.sd->synt_order, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");#ifndef NOPAD	      if (!miio_get_short(&p->hd.sd->pad3, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");#endif	    if (!miio_get_long(&p->hd.sd->start, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_long(&p->hd.sd->nan, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_short(p->hd.sd->spares, SD_SPARES, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");/*  the following two are to account for the fact that pointers were written out with the structure in the old way of doing things. This assume that a pointer == a long in size*/	    if (!miio_get_long(&long_dummy, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    if (!miio_get_long(&long_dummy, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -sd");	    p -> hd.sd ->prefilter = NULL;	    p -> hd.sd ->de_emp = NULL;	    	    break;	case FT_SPEC: 	    p -> hd.spec = (struct spec_header *) calloc (1, SPEC_SIZE);	    if (!miio_get_long(&p->hd.spec->start, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_long(&p->hd.spec->nan, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->frmlen, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->order_vcd, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->order_unvcd, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->win_type, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_float(&p->hd.spec->sf, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->spec_an_meth, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");#ifndef NOPAD	      if (!miio_get_short(&p->hd.spec->pad1, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");#endif	    if (!miio_get_float(&p->hd.spec->dcrem, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->post_proc, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->frame_meth, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->voicing, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->freq_format, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->spec_type, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(&p->hd.spec->contin, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_long(&p->hd.spec->num_freqs, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_short(p->hd.spec->spares, SPEC_SPARES, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_long(&long_dummy, 1, edr_flag, 	      machine_code, fd)) /* pre_emp */		BADHEAD (lev, "bad specfic part -spec");	    if (!miio_get_long(&long_dummy, 1, edr_flag, 	      machine_code, fd)) /* pre_emp */		BADHEAD (lev, "bad specfic part -spec");	    p -> hd.spec -> freqs = NULL;	    p -> hd.spec -> pre_emp = NULL;	    break;	case FT_FILT: {		struct filt_header *filt;		long dummy_long[4];		p -> hd.filt = (struct filt_header *) calloc (1, FILT_SIZE);	    	    if (!miio_get_short(&p->hd.filt->max_num, 1, edr_flag, 	      machine_code, fd)) 		BADHEAD (lev, "bad specfic part -filt");	    if (!miio_get_short(&p->hd.filt->max_den, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");	    if (!miio_get_short(&p->hd.filt->func_spec, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");	    if (!miio_get_short(&p->hd.filt->nbands, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");	    if (!miio_get_short(&p->hd.filt->npoints, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");	    if (!miio_get_short(&p->hd.filt->g_size, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");	    if (!miio_get_short(&p->hd.filt->nbits, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");	    if (!miio_get_short(&p->hd.filt->type, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");	    if (!miio_get_short(&p->hd.filt->method, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");	    if (!miio_get_short(p->hd.filt->spares, FILT_SPARES, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");#ifndef NOPAD	      if (!miio_get_short(&p->hd.filt->pad1, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");#endif	    if (!miio_get_long(dummy_long, 4, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -filt");	    p -> hd.filt -> bandedges = NULL;	    p -> hd.filt -> points = NULL;	    p -> hd.filt -> gains = NULL;	    p -> hd.filt -> wts = NULL;	    	    filt = p -> hd.filt;	    if (filt -> nbands != 0)                 filt -> bandedges = get_floats (fd, lev, 2 * filt -> nbands);            if (filt -> npoints != 0)                 filt -> points = get_floats (fd, lev, filt -> npoints);            if (filt -> func_spec == BAND && filt -> nbands != 0)                 filt -> gains = get_floats (fd, lev, filt -> nbands);            if (filt -> func_spec == POINT && filt -> npoints != 0)                 filt -> gains = get_floats (fd, lev, filt -> npoints);            if (filt -> func_spec == BAND && filt -> nbands != 0)                 filt -> wts = get_floats (fd, lev, filt -> nbands);            if (filt -> func_spec == POINT && filt -> npoints != 0)                 filt -> wts = get_floats (fd, lev, filt -> npoints);		break;	    }	case FT_SCBK: 	    p -> hd.scbk = (struct scbk_header *) calloc (1, SCBK_SIZE);	    if (!miio_get_long(&p->hd.scbk->num_items, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -scbk");	    if (!miio_get_short(&p->hd.scbk->distortion, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -scbk");	    if (!miio_get_short(&p->hd.scbk->num_cdwds, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -scbk");	    if (!miio_get_float(&p->hd.scbk->convergence, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -scbk");	    if (!miio_get_short(&p->hd.scbk->codebook_type, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -scbk");	    if (!miio_get_short(&p->hd.scbk->element_num, 1, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -scbk");	    if (!miio_get_short(p->hd.scbk->spares, SCBK_SPARES, edr_flag, 	      machine_code, fd))		BADHEAD (lev, "bad specfic part -scbk");	    break;	case FT_FEA: {		struct fea_header  *fea;		unsigned    size;		short   len, i, j;		long dummy[9];		p -> hd.fea = (struct fea_header   *) calloc (1, FEA_SIZE);		fea = p -> hd.fea;		if (!miio_get_short(&p->hd.fea->fea_type, 1, edr_flag, 	      machine_code, fd))		    BADHEAD (lev, "bad specific part -fea");		if (!miio_get_short(&p->hd.fea->segment_labeled,1,edr_flag, 	      machine_code, fd))		    BADHEAD (lev, "bad specific part -fea");		if (!miio_get_short(&(p->hd.fea->field_count),1,		edr_flag, machine_code, fd))		    BADHEAD (lev, "bad specific part -fea");#ifndef NOPAD		  if (!miio_get_short(&p->hd.fea->field_order,1,edr_flag, 	            machine_code, fd))		    BADHEAD (lev, "bad specific part -fea");#endif		if (!miio_get_long(dummy,9,edr_flag, 	      machine_code, fd))		    BADHEAD (lev, "bad specific part -fea");		if (!miio_get_short(p->hd.fea->spares,FEA_SPARES,edr_flag, 	      machine_code, fd))		    BADHEAD (lev, "bad specific part -fea");				size = fea -> field_count;		spsassert(fea -> field_count != 0,			"recursive_rh: internal error");#ifndef NOPAD/* if an old header, ignore the   field_order flag*/		if (fea -> field_order == YES && 		    old_version(p->common.hdvers, PRE_FIELD_ORDER))			fea->field_order = NO;#endif		fea -> names = (char **) calloc (size + 1, sizeof (char *));		fea -> dimens = (long **) calloc (size, sizeof (long *));		fea -> enums = (char ***) calloc (size, sizeof (char **));		fea -> srcfields = (char ***)calloc(size,sizeof(char **));		fea -> sizes = get_longs (fd, lev, (int)size);                fea -> starts = get_longs (fd, lev, (int)size);                fea -> ranks = get_shorts (fd, lev, (int)size);                fea -> types = get_shorts (fd, lev, (int)size);/* for versions of the header with complex data type in feature files*/		if (!old_version(p->common.hdvers,PRE_COMPLEX)) {		    if(EspsDebug) 			Fprintf(stderr,"read_header: new FEA header.\n");		    if (!miio_get_long(&p->hd.fea->ndouble, 1, edr_flag, 	             machine_code, fd))		       BADHEAD (lev, "bad specific part -fea");		    if (!miio_get_long(&p->hd.fea->nfloat, 1, edr_flag, 	             machine_code, fd))		       BADHEAD (lev, "bad specific part -fea");		    if (!miio_get_long(&p->hd.fea->nlong, 1, edr_flag, 	             machine_code, fd))		       BADHEAD (lev, "bad specific part -fea");		    if (!miio_get_long(&p->hd.fea->nshort, 1, edr_flag, 	             machine_code, fd))		       BADHEAD (lev, "bad specific part -fea");		    if (!miio_get_long(&p->hd.fea->nbyte, 1, edr_flag, 	             machine_code, fd))		       BADHEAD (lev, "bad specific part -fea");		    if (!miio_get_long(&p->hd.fea->ndcplx, 1, edr_flag, 	             machine_code, fd))		       BADHEAD (lev, "bad specific part -fea");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -