Conversion de datos (char, int...)
Publicado por edu (2 intervenciones) el 06/05/2002 20:50:17
Tengo un programa que graba del micro. Como cojo 8 bits por muestra, leo del buffer con un *char.
Creoq ue el formato de la muestra de 8 bits es de 127=0, 0=-127 y 255=+127.
Mi pregunta es como tengo que hacer para pasar de este formato a int. Si lopuedo hacer directamente.Por ejemplo, si quiero sumar el valor de todas las muestras:
char *buffer;
int suma;
for(...){
suma=suma+*buffer;
buffer++;
}
Es correcto? Es que lo hago asi y cuando no hay sonido, me sale que el valor medio de las muestras es 127. (cuando supongo deberia ser cero).
Tambien ocurre una cosa que no entiendo. Cuando hablo fuerte por el micro, calculo el valor medio de las muestras y me sale cero, auqnue luego he imprimido el valor del buffer y veo que no todas las muestras son cero, por lo que no deberia dar ese resultado.
Que ocurre?
Creoq ue el formato de la muestra de 8 bits es de 127=0, 0=-127 y 255=+127.
Mi pregunta es como tengo que hacer para pasar de este formato a int. Si lopuedo hacer directamente.Por ejemplo, si quiero sumar el valor de todas las muestras:
char *buffer;
int suma;
for(...){
suma=suma+*buffer;
buffer++;
}
Es correcto? Es que lo hago asi y cuando no hay sonido, me sale que el valor medio de las muestras es 127. (cuando supongo deberia ser cero).
Tambien ocurre una cosa que no entiendo. Cuando hablo fuerte por el micro, calculo el valor medio de las muestras y me sale cero, auqnue luego he imprimido el valor del buffer y veo que no todas las muestras son cero, por lo que no deberia dar ese resultado.
Que ocurre?
Valora esta pregunta


0