[Freeswitch-svn] [commit] r3487 - in freeswitch/trunk: . src

Freeswitch SVN mikej at freeswitch.org
Wed Nov 29 15:07:13 EST 2006


Author: mikej
Date: Wed Nov 29 15:07:13 2006
New Revision: 3487

Modified:
   freeswitch/trunk/AUTHORS
   freeswitch/trunk/src/switch_ivr.c

Log:
playfile fixes for startpos from Matt Klein.

Modified: freeswitch/trunk/AUTHORS
==============================================================================
--- freeswitch/trunk/AUTHORS	(original)
+++ freeswitch/trunk/AUTHORS	Wed Nov 29 15:07:13 2006
@@ -31,7 +31,7 @@
  Neal Horman <neal at wanlink dot com> - conference improvements, switch_ivr menu additions and other tweaks.
  Johny Kadarisman <jkr888 at gmail.com> - mod_python fixups.
  Michael Murdock <mike at mmurdock dot org> - testing, documentation, bug finding and usability enhancements.
-
+ Matt Klein <mklein at nmedia.net>
 
 A big THANK YOU goes to:
 

Modified: freeswitch/trunk/src/switch_ivr.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr.c	(original)
+++ freeswitch/trunk/src/switch_ivr.c	Wed Nov 29 15:07:13 2006
@@ -26,6 +26,7 @@
  * Anthony Minessale II <anthmct at yahoo.com>
  * Paul D. Tinsley <pdt at jackhammer.org>
  * Neal Horman <neal at wanlink dot com>
+ * Matt Klein <mklein at nmedia.net>
  *
  * switch_ivr_api.c -- IVR Library
  *
@@ -956,7 +957,7 @@
 	switch_channel_t *channel;
 	int16_t abuf[FILE_STARTSAMPLES];
 	char dtmf[128];
-	uint32_t interval = 0, samples = 0, framelen;
+	uint32_t interval = 0, samples = 0, framelen, sample_start = 0;
 	uint32_t ilen = 0;
 	switch_size_t olen = 0;
 	switch_frame_t write_frame = {0};
@@ -974,6 +975,11 @@
 	uint8_t asis = 0;
 	char *ext;
 	
+	if (fh->samples > 0) {
+		sample_start = fh->samples;
+		fh->samples = 0;
+	}
+
 	if (file) {
 		if ((ext = strrchr(file, '.'))) {
 			ext++;
@@ -1009,9 +1015,9 @@
 	write_frame.data = abuf;
 	write_frame.buflen = sizeof(abuf);
 
-    if (fh->samples) {
+    if (sample_start > 0) {
         uint32_t pos = 0;
-        switch_core_file_seek(fh, &pos, fh->samples, SEEK_CUR);
+        switch_core_file_seek(fh, &pos, sample_start, SEEK_CUR);
     }
 	
 	if (switch_core_file_get_string(fh, SWITCH_AUDIO_COL_STR_TITLE, &p) == SWITCH_STATUS_SUCCESS) {



More information about the Freeswitch-svn mailing list