ekiga r7206 - in branches/gnome-2-24: . lib/engine/audiooutput/skel



Author: mschneid
Date: Sun Oct 12 09:13:21 2008
New Revision: 7206
URL: http://svn.gnome.org/viewvc/ekiga?rev=7206&view=rev

Log:
Fix playing of audio files with samplerate != 8000Hz on windows (#555832).


Modified:
   branches/gnome-2-24/ChangeLog
   branches/gnome-2-24/NEWS
   branches/gnome-2-24/lib/engine/audiooutput/skel/audiooutput-core.cpp

Modified: branches/gnome-2-24/NEWS
==============================================================================
--- branches/gnome-2-24/NEWS	(original)
+++ branches/gnome-2-24/NEWS	Sun Oct 12 09:13:21 2008
@@ -1,4 +1,5 @@
 Changes since Ekiga 3.00
+- Fix playing of audio files with samplerate != 8000Hz on windows (#555832).
 - Fix overlapping issue of font/smiley buttons (#554529) (Jan Schampera)
 - Fix flickering issues on XV due to the X Server's strange bookkeeping of used ports.
 - Keep the preview thread for the lifetime of Ekiga. Windows does not like rapid deletion and recreation of threads.

Modified: branches/gnome-2-24/lib/engine/audiooutput/skel/audiooutput-core.cpp
==============================================================================
--- branches/gnome-2-24/lib/engine/audiooutput/skel/audiooutput-core.cpp	(original)
+++ branches/gnome-2-24/lib/engine/audiooutput/skel/audiooutput-core.cpp	Sun Oct 12 09:13:21 2008
@@ -474,16 +474,17 @@
 {
   unsigned long pos = 0;
   unsigned bytes_written = 0;
+  unsigned buffer_size = (unsigned)((float)sample_rate/25);
 
   if (!internal_open ( ps, channels, sample_rate, bps))
     return;
 
   if (current_manager[ps]) {
-    current_manager[ps]->set_buffer_size (ps, 320, 4);
+    current_manager[ps]->set_buffer_size (ps, buffer_size, 4);
     do {
-      if (!current_manager[ps]->set_frame_data(ps, buffer+pos, std::min((unsigned)320, (unsigned) (len - pos)), bytes_written))
+      if (!current_manager[ps]->set_frame_data(ps, buffer+pos, std::min(buffer_size, (unsigned) (len - pos)), bytes_written))
         break;
-      pos += 320;
+      pos += buffer_size;
     } while (pos < len);
   }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]