[Freeswitch-svn] [commit] r4108 - in freeswitch/trunk/src: include mod/applications/mod_conference

Freeswitch SVN anthm at freeswitch.org
Fri Feb 2 15:28:35 EST 2007


Author: anthm
Date: Fri Feb  2 15:28:34 2007
New Revision: 4108

Modified:
   freeswitch/trunk/src/include/switch_utils.h
   freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c

Log:
fix sample calc

Modified: freeswitch/trunk/src/include/switch_utils.h
==============================================================================
--- freeswitch/trunk/src/include/switch_utils.h	(original)
+++ freeswitch/trunk/src/include/switch_utils.h	Fri Feb  2 15:28:34 2007
@@ -50,6 +50,7 @@
 #define vsnprintf apr_vsnprintf
 #endif
 
+#define switch_bytes_per_frame(rate, interval) (uint32_t)((float)rate / (1000.0f / (float)interval));
 
 #define SWITCH_SMAX 32767
 #define SWITCH_SMIN -32768

Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c	(original)
+++ freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c	Fri Feb  2 15:28:34 2007
@@ -634,8 +634,7 @@
 {
 	conference_obj_t *conference = (conference_obj_t *) obj;
 	conference_member_t *imember, *omember;
-	uint32_t divider = 1000 / conference->interval;
-	uint32_t samples = (conference->rate / divider);
+	uint32_t samples = switch_bytes_per_frame(conference->rate, conference->interval);
 	uint32_t bytes = samples * 2;
 	uint8_t ready = 0;
 	switch_timer_t timer = {0};
@@ -1419,8 +1418,7 @@
 	switch_frame_t write_frame = {0};
 	uint8_t data[SWITCH_RECCOMMENDED_BUFFER_SIZE];
 	switch_timer_t timer = {0};
-	uint32_t divider = 1000 / member->conference->interval;
-	uint32_t samples = (member->conference->rate / divider);
+	uint32_t samples = switch_bytes_per_frame(member->conference->rate, member->conference->interval);
 	uint32_t bytes = samples * 2;
 
 	channel = switch_core_session_get_channel(member->session);
@@ -1666,8 +1664,7 @@
 	switch_file_handle_t fh = {0};
 	conference_member_t smember = {0}, *member;
 	conference_record_t *rec = (conference_record_t *) obj;
-	uint32_t divider = 1000 / rec->conference->interval;
-	uint32_t samples = (rec->conference->rate / divider);
+	uint32_t samples = switch_bytes_per_frame(rec->conference->rate, rec->conference->interval);
 	uint32_t bytes = samples * 2;
 	uint32_t mux_used;
 	char *vval;



More information about the Freeswitch-svn mailing list