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

📄 musicout.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 页
字号:
	      for (jj = 0; jj < 12; jj++)	      {		/* lfe_tmp[jj] = (short int) (info.lfe_spl_fraction[jj] * SCALE); */		double foo = floor (info.lfe_spl_fraction[jj] * SCALE + 0.5);		if (foo >= (long) SCALE)      {lfe_tmp[jj] = SCALE-1; clip++;}		else if (foo < (long) -SCALE) {lfe_tmp[jj] =-SCALE;   clip++;}		else                           lfe_tmp[jj] = foo;	      }	      fwrite (&lfe_tmp[0], 2, 12, lfe); 	   }	   if (clip > 0)	      printf("\n%d samples clipped\n", clip);			/***************************************************************//* 10/03/1995 JMZ Multilingual , WtK 7/8/95 */	   if (info.no_of_multi_lingual_ch>0) 	   {	      for(jj=0;jj<( (info.multi_lingual_fs==0) ? 12 : 6 );jj++)		 for(k=0; k<info.no_of_multi_lingual_ch; k++)		     for(j =0; j <3; j++)			for(ii=0; ii< SBLIMIT; ii++)	      (*fraction_help_ml)[jj][k][j][ii] = (*fraction_ml)[k][ii][j][jj];	      clip = 0;	      for (i=0;i<( (info.multi_lingual_fs==0) ? 12 : 6 );i++)	      {			  		for (j=0;j<3;j++) 		  for (k=0; k<info.no_of_multi_lingual_ch; k++)		      clip += SubBandSynthesis_ml(&((*fraction_help_ml)[i][k][j][0]), k,					       &((*pcm_sample_ml)[k][j][0]));		out_fifo_ml(*pcm_sample_ml, 3, &fr_ps, done, musicout_ml, &sample_frames_ml);	      }	      if(clip > 0) printf("\n%d MultiLingual samples clipped\n", clip);	   }/* 10/03/1995 JMZ Multilingual *//**************************************************************/		if( print_out == 1){	if(frameNum == 1) 	{		fp6 = fopen("SUB_ML","w+");		fp5 = fopen("DYN_CROSS","w+");		fp4 = fopen("INFODEC", "w+");		fp2 = fopen("BALDEC", "w+");		fp3 = fopen("SCFSIDEC", "w+");		fp1 = fopen("SCFDEC", "w+");	}/*********************Ausgabe***************************************************/fprintf(fp1, "******************** FRAME %d *****************************\n", frameNum-1);fprintf(fp2, "\n******************** FRAME %d *****************************\n", frameNum-1);fprintf(fp3, "\n******************** FRAME %d *****************************\n", frameNum-1);fprintf(fp4, "******************** FRAME %d *****************************\n", frameNum-1);fprintf(fp6, "******************** FRAME %d *****************************\n", frameNum-1);fprintf(fp4, "version = %d, ", info.version);fprintf(fp4, "lay = %d, ", info.lay);fprintf(fp4, "error_protection = %d\n", info.error_protection);fprintf(fp4, "bitrate_index = %d, ", info.bitrate_index);fprintf(fp4, "sampling_frequency = %d,", info.sampling_frequency);fprintf(fp4, "padding = %d, ", info.padding);fprintf(fp4, "extension = %d\n", info.extension);fprintf(fp4, "mode = %d, ", info.mode);fprintf(fp4, "mode_ext = %d,", info.mode_ext);fprintf(fp4, "copyright = %d, ", info.copyright);fprintf(fp4, "original = %d, ", info.original);fprintf(fp4, "emphasis = %d\n", info.emphasis);fprintf(fp4, "center = %d, ", info.center);fprintf(fp4, "surround = %d, ", info.surround);fprintf(fp4, "dematrix_procedure = %d, ", info.dematrix_procedure);fprintf(fp4, "lfe = %d\n", info.lfe);fprintf(fp4, "no_of_multi_lingual_ch = %d, ", info.no_of_multi_lingual_ch);fprintf(fp4, "multi_lingual_fs = %d, ", info.multi_lingual_fs);fprintf(fp4, "multi_lingual_layer = %d\n", info.multi_lingual_layer);fprintf(fp4, "dyn_cross_on = %d\n", info.dyn_cross_on);fprintf(fp4, "mc_prediction_on = %d\n", info.mc_prediction_on);#ifdef	DEBUG_PREDICTIONif(info.mc_prediction_on == 1)   for(hu = 0; hu < 8; ++ hu)   {	fprintf(fp4, "mc_prediction[%d] = %d ", hu, info.mc_prediction[hu]);	for(ho = 0; ho < 4; ho++)	{		fprintf(fp4, "mc_predsi[%d][%d] = %d  ", hu,ho, info.mc_predsi[hu][ho]);		fprintf(fp4, "mc_delay[%d][%d] = %d  ", hu,ho, info.mc_delay_comp[hu][ho]);		fprintf(fp4, " \n");		for(hi = 0;hi <3; hi++)		fprintf(fp4, "pred_coeff[%d][%d][%d] = %d ",hu,ho,hi,info.mc_pred_coeff[hu][ho][hi]);		fprintf(fp4, " \n");	}   }#endifif(info.dyn_cross_on == 1){	fprintf(fp5, "\n******************** FRAME %d *****************************\n", frameNum-1);	fprintf(fp5,"dyn_cross_LR = %d\n",info.dyn_cross_LR);	for(ho = 0; ho < 12; ho ++)	{		fprintf(fp5,"dyn_cross[%d] = %d   ",ho,info.dyn_cross_mode[ho]);		if((ho+1)%4 == 0) fprintf(fp5,"\n");	}	if (info.surround == 3)		for(ho = 0; ho < 12; ho ++)		{			fprintf(fp5,"dyn_second_stereo[%d] = %d   ",ho,info.dyn_second_stereo[ho]);			if((ho+1)%4 == 0) fprintf(fp5,"\n");		}}fprintf(fp4, "tc_sbgr_select = %d\n", info.tc_sbgr_select);if(info.tc_sbgr_select == 1)  fprintf(fp4, "tc_allocation = %d\n", info.tc_allocation);else	{		for(ho = 0; ho < 12; ho ++)	{		if(info.mc_prediction[ho] == 0)		fprintf(fp4, "tc_alloc[%d] = %d\n", ho, info.tc_alloc[ho]);		else{		for(hu = 0; hu < 4; hu++)				fprintf(fp4, "predsi[%d][%d] = %d\n", ho, hu, info.mc_predsi[ho][hu]);		}	}	fprintf(fp4, "\n");	}for(hu = 0; hu < SBLIMIT; ++hu){	fprintf(fp2, "\n");	fprintf(fp3, "\n");	for(hi = 0; hi < channels; hi ++)	{	fprintf(fp1, "\n");	if (layer_I_frames == 1)	   fprintf(fp2, "BAL[%d][%02d] = %d   ", hi, hu, I_bit_alloc[0][hi][hu]);	else	   fprintf(fp2, "BAL[%d][%02d] = %d   ", hi, hu, bit_alloc[hi][hu]);	fprintf(fp3, "SCFSI[%d][%02d] = %d   ", hi, hu, scfsi[hi][hu]);	for( ho = 0; ho < layer_I_frames; ho ++)	{	   fprintf(fp1, "SCF[%d][%d][%02d] = %d   ", hi, ho, hu, scale_index[hi][ho][hu]);	}	}	for(hi = 0; hi < info.no_of_multi_lingual_ch; hi ++)	{	   fprintf(fp1, "\n");	   /* 960315 added FDB Multi-Lingual bitalloc */	   fprintf(fp2, "BAL_ML[%d][%02d] = %d   ", hi, hu, bit_alloc_ml[hi][hu]);	   /* 960315 added FDB Multi-Lingual scf select info */	   fprintf(fp3, "SCFSI_ML[%d][%02d] = %d   ", hi, hu, scfsi_ml[hi][hu]);	   /* 960315 added FDB Multi-Lingual scfs */	   for( ho = 0; ho < 3; ho ++)	      fprintf(fp1, "SCF_ML[%d][%d][%02d] = %d   ", hi, ho, hu, scale_index_ml[hi][ho][hu]);        }	fprintf(fp1, "\n");}/* 960318 added FDB Multi-Lingual subband samples symbols*/for(k=0; k<info.no_of_multi_lingual_ch; k++)   for(ii=0; ii< SBLIMIT; ii++)   {      fprintf(fp6, "SB_SYM_ML[%d][%02d]: ", k, ii);      for(jj=0;jj<( (info.multi_lingual_fs==0) ? 12 : 6 );jj++)         for(j =0; j <3; j++)            fprintf(fp6, " %6d", sym_sample_ml[jj][k][j][ii]);      fprintf(fp6, "\n");   }/* 960318 added FDB Multi-Lingual subband samples */for(k=0; k<info.no_of_multi_lingual_ch; k++)   for(ii=0; ii< SBLIMIT; ii++)   {      fprintf(fp6, "SB_ML[%d][%02d]: ", k, ii);      for(jj=0;jj<( (info.multi_lingual_fs==0) ? 12 : 6 );jj++)         for(j =0; j <3; j++)            fprintf(fp6, " %12.5e", (*fraction_help_ml)[jj][k][j][ii]);      fprintf(fp6, "\n");   }fflush (fp1);fflush (fp2);fflush (fp3);fflush (fp4);fflush (fp5);fflush (fp6);/*******************************************************************************/} /* endif of print_out == 1 */    /****************************************************************/    /*                                                              */    /*                   END OF FRAME LOOP                          */    /*                                                              */    /****************************************************************/}/*end of while(!endof(bs)) - loop */	if (need_aiff)	{#ifdef Augmentation_7ch	   if (mpeg == 3)	      pcm_aiff_data.numChannels       = 7;	   else#endif	      pcm_aiff_data.numChannels       = stereo + mc_channel;	   pcm_aiff_data.numSampleFrames   = sample_frames;	   pcm_aiff_data.sampleSize        = 16;	   pcm_aiff_data.sampleRate        = s_freq[info.sampling_frequency]*1000;	   strcpy(pcm_aiff_data.sampleType, IFF_ID_SSND);	   pcm_aiff_data.blkAlgn.offset    = 0;	   pcm_aiff_data.blkAlgn.blockSize = 0;	   if (aiff_write_headers(musicout, &pcm_aiff_data) == -1)	   {		  fprintf (stderr, "Could not write AIFF headers to \"%s\"\n",				 decoded_file_name);		  exit (1);           }           if (fr_ps.header->no_of_multi_lingual_ch>0)	   {	     pcm_aiff_data.numChannels       = fr_ps.header->no_of_multi_lingual_ch;	     pcm_aiff_data.numSampleFrames   = sample_frames;	     pcm_aiff_data.sampleSize        = 16;	     pcm_aiff_data.sampleRate        = s_freq[info.sampling_frequency]*1000;	     if (fr_ps.header->multi_lingual_fs==1) pcm_aiff_data.sampleRate *= 0.5;	     strcpy(pcm_aiff_data.sampleType, IFF_ID_SSND);	     pcm_aiff_data.blkAlgn.offset    = 0;	     pcm_aiff_data.blkAlgn.blockSize = 0;  	     if (aiff_write_headers(musicout_ml, &pcm_aiff_data) == -1)	     {		    fprintf (stderr, "Could not write AIFF headers to \"%s\"\n",				   decoded_file_name_ml);		    exit (1);	     }	   }	   if (lfe_init == 0)	   {	     pcm_aiff_data.numChannels       = 1;	     pcm_aiff_data.numSampleFrames   = sample_frames / 96;	     pcm_aiff_data.sampleSize        = 16;	     pcm_aiff_data.sampleRate        = (s_freq[info.sampling_frequency]*1000) / 96;	     strcpy(pcm_aiff_data.sampleType, IFF_ID_SSND);	     pcm_aiff_data.blkAlgn.offset    = 0;	     pcm_aiff_data.blkAlgn.blockSize = 0;	     if (aiff_write_headers(lfe, &pcm_aiff_data) == -1)	     {		    fprintf (stderr, "Could not write AIFF headers to \"%s\"\n",				   lfe_file_name);		    exit (1);	     }	   }	 }	close_bit_stream_r(&bs_mpg);	if (info.ext_bit_stream_present)	{	     close_bit_stream_r(&bs_ext);	}	fclose(musicout);	if(info.lfe) fclose(lfe);#ifdef  MACINTOSH	if (need_aiff) set_mac_file_attr(decoded_file_name, VOL_REF_NUM,									 CREATR_DEC_AIFF, FILTYP_DEC_AIFF);	else           set_mac_file_attr(decoded_file_name, VOL_REF_NUM,									 CREATR_DEC_BNRY, FILTYP_DEC_BNRY);#endif	printf("Decoding of \"%s\" with %lu frames is finished\n", encoded_file_name, frameNum);	printf("The decoded PCM output file name is \"%s\"\n", decoded_file_name);	if (need_aiff)	   printf("\"%s\" has been written with AIFF header information\n",			  decoded_file_name);	if (fr_ps.header->no_of_multi_lingual_ch>0) {          printf("There are %d multilingual channels, coded at ",fr_ps.header->no_of_multi_lingual_ch);          if (fr_ps.header->multi_lingual_fs==0) printf("full"); else printf("half");          printf(" sampling rate.\n They are outputted in \"%s\".\n",decoded_file_name_ml);          if (need_aiff)	   printf("Multilingual file has been written with AIFF header information\n");	}	if (total_error_count_mc != 0)	    printf ("There were %d frames,  which were not in multichannel!!\n", total_error_count_mc);#ifdef Augmentation_7ch	if (total_error_count_aug != 0)	    printf ("There were %d frames,  which were not in augmented multichannel!!\n", total_error_count_aug);#endif    if (print_out == 1)    {	fclose (fp1);	fclose (fp2);	fclose (fp3);	fclose (fp4);	fclose (fp5);	fclose (fp6);    }    return (1);}void usage (void)  /* print syntax & exit */{   fprintf (stderr,      "usage: %s                         queries for all arguments, or\n",	   programName);   fprintf (stderr,      "       %s [-a] [-h] [-i] [-m] inputBS [outPCM]\n", programName);   fprintf (stderr,"where\n");   fprintf (stderr," -a       write a RAW data sound file  (default: write an AIFF sound file)\n");   fprintf (stderr," -b       write alloc bits per subband to stdout (default: off)\n");   fprintf (stderr," -d       write dynx modes to stdout (default: off)\n");   fprintf (stderr," -h       bitstreams contain a 2304 byte header  (default: no header)\n");   fprintf (stderr," -i       write decoded bitstream-information in a file\n"); 			      /* default: write encoded information */   fprintf (stderr," -m       encoded bitstream is a MPEG 1 Layer-2 file\n"); 			      /* default: decode a MPEG 2 Layer-2 bitstream */#ifdef Augmentation_7ch   fprintf (stderr," -n       encoded bitstream is a MPEG 2 Layer-2 file with 7.1 augmentation\n"); 			      /* default: decode a MPEG 2 Layer-2 bitstream */#endif   fprintf (stderr," -s       write scf bits per subband to stdout (default: off)\n");   fprintf (stderr," -t       write tca modes to stdout (default: off)\n");   fprintf (stderr," inputBS  input bit stream of encoded audio\n");   fprintf (stderr," outPCM   output PCM sound file (dflt inName)\n");   exit (1);}

⌨️ 快捷键说明

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