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

📄 dyn_cross.c

📁 ISO mp3 sources (distribution 10) Layer 1/2/3, C Source, 512 k Sources of the Mpeg 1,2 layer 1,2
💻 C
📖 第 1 页 / 共 4 页
字号:
	    }	    break;      case 9:  	    if (min_ch == T2[sbgr]) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T3[sbgr]][min_sb]];	    }	    break;      case 10:  	    if (min_ch == T2[sbgr]) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T4[sbgr]][min_sb]];	    }	    break;      case 11:  	    if (min_ch == T2[sbgr]) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T3[sbgr]][min_sb]];	    }	    if (min_ch == R0) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T4[sbgr]][min_sb]];	    }	    break;      case 12:  	    if (min_ch == T2[sbgr]) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T4[sbgr]][min_sb]];	    }	    if (min_ch == L0) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T3[sbgr]][min_sb]];	    }	    break;      case 13:  	    if (min_ch == T2outof[sbgr] && (center != 3 || sbgr < 10)) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T2[sbgr]][min_sb]];	    }	    if (min_ch == T3[sbgr]) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T4[sbgr]][min_sb]];	    }	    break;      case 14:  	    if (min_ch == T2[sbgr]) {		*seli += 4;		*scale += 6 * sfsPerScfsi[scfsi[T3[sbgr]][min_sb]];		*scale += 6 * sfsPerScfsi[scfsi[T4[sbgr]][min_sb]];	    }	    break;      case 15: 	    fprintf(stderr, "FORBIDDEN DYN_CROSS!!!!!\n");	    fflush(stderr);	    exit(0);	    break;	}	    /* switch.. */    }    else if (fr_ps->config == 310 || fr_ps->config == 220)    {	/* 3/1 and 2/2 */	switch (fr_ps->header->dyn_cross[sbgr]) {      case 0:		    break;	    /* no additional scf and scfsi */      case 1:  	    if (min_ch == T3outof[sbgr]) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T3[sbgr]][min_sb]];	    }	    break;      case 2:  	    if (min_ch == T2outof[sbgr] && (center != 3 || sbgr < 10)) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T2[sbgr]][min_sb]];	    }	    break;      case 3: 	    if (min_ch == T2outof[sbgr] && (center != 3 || sbgr < 10)) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T2[sbgr]][min_sb]];	    }	    if (min_ch == T3outof[sbgr]) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T3[sbgr]][min_sb]];	    }	    break;      case 4:  	    if (min_ch == T2[sbgr]) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T3[sbgr]][min_sb]];	    }	    break;      default: 	    fprintf(stderr, "FORBIDDEN DYN_CROSS!!!!!\n");	    fflush(stderr);	    exit(0);	    break;	}	    /* switch.. */    }    else if (fr_ps->config == 300 || fr_ps->config == 302 || fr_ps->config == 210)    {	/* 3/0 (+2/0) and 2/1 */	switch(fr_ps->header->dyn_cross[sbgr]) {      case 0:		    break;	    /* no additional scf and scfsi */      case 1:  	    if (min_ch == T2outof[sbgr] && (center != 3 || sbgr < 10)) {		*seli += 2;		*scale += 6 * sfsPerScfsi[scfsi[T2[sbgr]][min_sb]];	    }	    break;      default: 	    fprintf(stderr, "FORBIDDEN DYN_CROSS!!!!!\n");	    fflush(stderr);	    exit(0);	    break;	}	    /* switch.. */    	if (fr_ps->config == 302 && info->dyn_second_stereo[sbgr] && min_ch == T4outof[sbgr])	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T4[sbgr]][min_sb]];	}    }    else if (fr_ps->config == 202 && info->dyn_second_stereo[sbgr] && min_ch == T3outof[sbgr])    {	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T3[sbgr]][min_sb]];    }    else if (fr_ps->config == 102 && info->dyn_second_stereo[sbgr] && min_ch == T2outof[sbgr])    {	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T2[sbgr]][min_sb]];    }}#ifdef Augmentation_7chvoid dyn_bal_aug (	unsigned int	scfsi[CHANMAX3][SBLIMIT],   /* in */ 	int		sbgr,			    /* in */	frame_params	*fr_ps,			    /* in:  fr_ps->header->dyn_cross[sbgr] */	int		min_ch,			    /* in */	int		min_sb,			    /* in */	int		*seli,			    /* in, out */	int		*scale)			    /* in, out */{/*  global parameters *  in:	T2[SBGRS], T3[SBGRS], T4[SBGRS], T5[SBGRS] */    static int	sfsPerScfsi[] = { 3,2,1,2 };    /* lookup # sfs per scfsi */    int dynx_T2 = !dyn_ch (fr_ps, sbgr, 2);    int dynx_T3 = !dyn_ch (fr_ps, sbgr, 3);    int dynx_T4 = !dyn_ch (fr_ps, sbgr, 4);    int T5T0 = L0, T6T0 = L0, T6T1 = R0;        if (fr_ps->header->aug_tc_alloc[sbgr] == 4 || fr_ps->header->aug_tc_alloc[sbgr] == 5)    	if (fr_ps->header->dyn_cross_LR == 0)	    T6T1 = L0;	else	    T6T0 = R0;    else if (fr_ps->header->aug_tc_alloc[sbgr] == 6 || fr_ps->header->aug_tc_alloc[sbgr] == 7)        if (fr_ps->header->dyn_cross_LR)	    T5T0 = R0;    /* 5/2 */    switch (fr_ps->header->aug_dyn_cross[sbgr])    {    case  0:	break;	    /* no additional scf and scfsi */    case  1:	if (min_ch == T6T1)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case  2:	if (min_ch == T2[sbgr] || (dynx_T2 && min_ch == T2from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case  3:	if (min_ch == T4[sbgr] || (dynx_T4 && min_ch == T4from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case  4:	if (min_ch == T5[sbgr])	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case  5:	if (min_ch == T5T0)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	break;    case  6:	if (min_ch == T5T0)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	else if (min_ch == T6T1)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case  7:	if (min_ch == T5T0)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	if (min_ch == T2[sbgr] || (dynx_T2 && min_ch == T2from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case  8:	if (min_ch == T5T0)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	if (min_ch == T4[sbgr] || (dynx_T4 && min_ch == T4from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case  9:	if (min_ch == T5T0)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	if (min_ch == T6T0)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case 10:	if (min_ch == T2[sbgr] || (dynx_T2 && min_ch == T2from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	break;    case 11:	if (min_ch == T2[sbgr] || (dynx_T2 && min_ch == T2from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	if (min_ch == T6T1)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case 12:	if (min_ch == T2[sbgr] || (dynx_T2 && min_ch == T2from[sbgr]))	{	    *seli += 4;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case 13:	if (min_ch == T2[sbgr] || (dynx_T2 && min_ch == T2from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	if (min_ch == T4[sbgr] || (dynx_T4 && min_ch == T4from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case 14:	if (min_ch == T3[sbgr] || (dynx_T3 && min_ch == T3from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	break;    case 15:	if (min_ch == T3[sbgr] || (dynx_T3 && min_ch == T3from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	if (min_ch == T6T1)	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case 16:	if (min_ch == T3[sbgr] || (dynx_T3 && min_ch == T3from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	if (min_ch == T2[sbgr] || (dynx_T2 && min_ch == T2from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case 17:	if (min_ch == T3[sbgr] || (dynx_T3 && min_ch == T3from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	}	if (min_ch == T4[sbgr] || (dynx_T4 && min_ch == T4from[sbgr]))	{	    *seli += 2;	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;    case 18:	if (min_ch == T3[sbgr] || (dynx_T3 && min_ch == T3from[sbgr]))	{	    *seli += 4;	    *scale += 6 * sfsPerScfsi[scfsi[T5[sbgr]][min_sb]];	    *scale += 6 * sfsPerScfsi[scfsi[T6[sbgr]][min_sb]];	}	break;  default: 	fprintf (stderr, "FORBIDDEN AUG_DYN_CROSS!!!!!\n");	fflush (stderr);	exit (1);	break;    }}#endif/**************************************************************************** * *  void choose_dyn * *  bit_alloc of the dynamic crosstalk channels must be have a value;  *  only for sending scf in datastream. * *  07/94	Susanne Ritscher *  94/10/31	Andreas Silzle	    little remake *  94/12/30	Andreas Silzle	     *		    fill only up to that subband of the basic channel *		    which is unequal zero. * *****************************************************************************/void choose_dyn (	frame_params	*fr_ps, 	    /* in:  fr_ps->header->dyn_cross[sbgr] 	     *	    fr_ps->alloc	     */	int		min_ch,				/* in */	int		min_sb,				/* in */	int		sbgr, 				/* in */	unsigned int	bit_alloc[CHANMAX3][SBLIMIT])	/* out */{/*  global parameters *  in:	T2[SBGRS], T3[SBGRS], T4[SBGRS], T2outof[SBGRS] */    layer *info  = fr_ps->header;    int center   = info->center;    int surround = info->surround;/* 960627 FdB DynX dependent on configuration */if (fr_ps->config == 320){    /* 3/2 */    switch(fr_ps->header->dyn_cross[sbgr]) {  case 0:		break;  case 1: 	if(min_ch == R0 && bit_alloc[R0][min_sb] != 0)	    bit_alloc[T4[sbgr]][min_sb] = 1;	break;  case 2: 	if(min_ch == L0 && bit_alloc[L0][min_sb] != 0)	    bit_alloc[T3[sbgr]][min_sb] = 1;	break;  case 3: 	if(min_ch == T2outof[sbgr] && bit_alloc[T2outof[sbgr]][min_sb] != 0)	       bit_alloc[T2[sbgr]][min_sb] = 1;	break;  case 4: 	if(min_ch == R0 && bit_alloc[R0][min_sb] != 0)	    bit_alloc[T4[sbgr]][min_sb] = 1;	if(min_ch == L0 && bit_alloc[L0][min_sb] != 0)	    bit_alloc[T3[sbgr]][min_sb] = 1;	break;  case 5: 	if(min_ch == T2outof[sbgr] && bit_alloc[T2outof[sbgr]][min_sb] != 0) 	    bit_alloc[T2[sbgr]][min_sb] = 1;	if(min_ch == R0 && bit_alloc[R0][min_sb] != 0) 	    bit_alloc[T4[sbgr]][min_sb] = 1;	break;  case 6: 	if(min_ch == T2outof[sbgr] && bit_alloc[T2outof[sbgr]][min_sb] != 0) 	    bit_alloc[T2[sbgr]][min_sb] = 1;	if(min_ch == L0 && bit_alloc[L0][min_sb] != 0) 	    bit_alloc[T3[sbgr]][min_sb] = 1;	break;  case 7: 	if(min_ch == T2outof[sbgr] && bit_alloc[T2outof[sbgr]][min_sb] != 0) 	    bit_alloc[T2[sbgr]][min_sb] = 1;	if(min_ch == L0 && bit_alloc[L0][min_sb] != 0) 	    bit_alloc[T3[sbgr]][min_sb] = 1;	if(min_ch == R0 && bit_alloc[R0][min_sb] != 0) 	    bit_alloc[T4[sbgr]][min_sb] = 1;	break;  case 8: 	if(min_ch == T3[sbgr] && bit_alloc[T3[sbgr]][min_sb] != 0)	    bit_alloc[T4[sbgr]][min_sb] = 1;	break;  case 9: 	if(min_ch == T2[sbgr] && bit_alloc[T2[sbgr]][min_sb] != 0)	    bit_alloc[T3[sbgr]][min_sb] = 1;

⌨️ 快捷键说明

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