www.pudn.com > AVS_M_ver10.rar > writ_dat.c


/*
***********************************************************************
* COPYRIGHT AND WARRANTY INFORMATION
*
* Copyright 2007 Audio Video Coding Standard, Part ¢ú
*
* This software module was developed by AVS Audio sub-group
*
* DISCLAIMER OF WARRANTY
*
* These software programs are available to the users without any
* license fee or royalty on an "as is" basis. The AVS disclaims
* any and all warranties, whether express, implied, or statutory,
* including any implied warranties of merchantability or of fitness
* for a particular purpose. In no event shall the contributors or
* the AVS be liable for any incidental, punitive, or consequential
* damages of any kind whatsoever arising from the use of this program.
*
* This disclaimer of warranty extends to the user of this program
* and user's customers, employees, agents, transferees, successors,
* and assigns.
*
* The AVS does not represent or warrant that the program furnished
* hereunder are free of infringement of any third-party patents.
* Commercial implementations of AVS, including shareware, may be
* subject to royalty fees to patent holders. Information regarding
* the AVS patent policy is available from the AVS Web site at
* http://www.avs.org.cn
*
* THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE AVS PATENT POLICY.
************************************************************************
*/

/*----------------------------------------------------------------------
*
* FUNCTION: writ_data
*
* PURPOSE: round array of float data to 16-bit words and write to the
* file "fp"
*
*--------------------------------------------------------------------------*/
#include <stdio.h>
#include "../include/amr_plus.h"
void writ_data(
float data[], /* input : data */
int size, /* input : number of samples */
FILE *fp /* output: file pointer */
)
{
short data16[4*L_FRAME_FSMAX];
int i;
float temp;
for (i = 0; i < size; i++)
{
temp = data[i];
if (temp >= 0.0)
temp += 0.5;
else
temp -= 0.5;
if (temp > 32767.0 ) temp = 32767.0;
if (temp < -32767.0 ) temp = -32767.0;
data16[i] = (short) temp;
}
fwrite(data16, sizeof(short), size, fp);
return;
}