[Freeswitch-svn] [commit] r11691 - freeswitch/branches/gmaruzz/mod_skypiax
FreeSWITCH SVN
gmaruzz at freeswitch.org
Sun Feb 8 07:09:15 PST 2009
Author: gmaruzz
Date: Sun Feb 8 09:09:14 2009
New Revision: 11691
Log:
skypiax: cleaning skypiax_protocol.c
Modified:
freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c Sun Feb 8 09:09:14 2009
@@ -126,8 +126,6 @@
unsigned int howmany;
if (SAMPLERATE_SKYPIAX == 8000) {
- NOTICA("sizeof(short)=%d, \tSAMPLES_PER_FRAME=%d, \tSAMPLES_PER_FRAME/sizeof(short)=%d\n", SKYPIAX_P_LOG, sizeof(short), SAMPLES_PER_FRAME, SAMPLES_PER_FRAME/sizeof(short));
- NOTICA("sizeof(short)=%d, \tlen=%d, \tlen/sizeof(short)/2=%d\n", SKYPIAX_P_LOG, sizeof(short), len, len/sizeof(short)/2);
a = 0;
/* we're downsampling from 16khz to 8khz, srv_out will contain each other sample from srv_in */
for (i = 0; i < len / sizeof(short); i++) {
@@ -135,51 +133,53 @@
i++;
a++;
}
-
+ /* if not yet done, let's store half incoming frame */
if (!tech_pvt->audiobuf_is_loaded) {
- for (i = 0; i < (len / sizeof(short)) / 2; i++) {
+ for (i = 0; i < SAMPLES_PER_FRAME / 2; i++) {
tech_pvt->audiobuf[i] = srv_out[i];
}
tech_pvt->audiobuf_is_loaded = 1;
} else {
-
- howmany = len / sizeof(short) / 2;
- for (i = 0; i < howmany; i++){
+ /* we got a stored half frame, build a complete frame in totalbuf using the stored half frame and the current half frame */
+ for (i = 0; i < SAMPLES_PER_FRAME / 2; i++){
totalbuf[i] = tech_pvt->audiobuf[i];
}
-
- for (a = 0; a < howmany; a++) {
+ for (a = 0; a < SAMPLES_PER_FRAME / 2; a++) {
totalbuf[i] = srv_out[a];
i++;
}
-
- howmany = len;
-
- howmany = skypiax_file_write(tech_pvt->audiopipe[1], totalbuf, howmany);
+ /* send the complete frame through the pipe to our code waiting for incoming audio */
+ howmany = skypiax_file_write(tech_pvt->audiopipe[1], totalbuf, SAMPLES_PER_FRAME * sizeof(short));
+ if(howmany != SAMPLES_PER_FRAME * sizeof(short)){
+ ERRORA("howmany is %d, but was expected to be %d\n", SKYPIAX_P_LOG, howmany, SAMPLES_PER_FRAME * sizeof(short));
+ }
+ /* done with the stored half frame */
tech_pvt->audiobuf_is_loaded = 0;
}
} else if (SAMPLERATE_SKYPIAX == 16000) {
- NOTICA("sizeof(short)=%d, SAMPLES_PER_FRAME=%d, SAMPLES_PER_FRAME/sizeof(short)=%d\n", SKYPIAX_P_LOG, sizeof(short), SAMPLES_PER_FRAME, SAMPLES_PER_FRAME/sizeof(short));
- NOTICA("sizeof(short)=%d, len=%d, len/sizeof(short)=%d\n", SKYPIAX_P_LOG, sizeof(short), len, len/sizeof(short));
-
+ /* if not yet done, let's store half incoming frame */
if (!tech_pvt->audiobuf_is_loaded) {
- for (i = 0; i < (len / sizeof(short)); i++) {
+ for (i = 0; i < SAMPLES_PER_FRAME / 2; i++) {
tech_pvt->audiobuf[i] = srv_in[i];
}
tech_pvt->audiobuf_is_loaded = 1;
} else {
- howmany = SAMPLES_PER_FRAME * sizeof(short);
-
- for (i = 0; i < (len / sizeof(short)); i++){
+ /* we got a stored half frame, build a complete frame in totalbuf using the stored half frame and the current half frame */
+ for (i = 0; i < (SAMPLES_PER_FRAME / 2); i++){
totalbuf[i] = tech_pvt->audiobuf[i];
}
- for (a = 0; a < (len / sizeof(short)); a++) {
+ for (a = 0; a < (SAMPLES_PER_FRAME / 2); a++) {
totalbuf[i] = srv_in[a];
i++;
}
- howmany = skypiax_file_write(tech_pvt->audiopipe[1], totalbuf, howmany);
+ /* send the complete frame through the pipe to our code waiting for incoming audio */
+ howmany = skypiax_file_write(tech_pvt->audiopipe[1], totalbuf, SAMPLES_PER_FRAME * sizeof(short));
+ if(howmany != SAMPLES_PER_FRAME * sizeof(short)){
+ ERRORA("howmany is %d, but was expected to be %d\n", SKYPIAX_P_LOG, howmany, SAMPLES_PER_FRAME * sizeof(short));
+ }
+ /* done with the stored half frame */
tech_pvt->audiobuf_is_loaded = 0;
}
More information about the Freeswitch-svn
mailing list