allow to set samplerate/channels from outside.
[swftools.git] / lib / modules / swfsound.c
index fe3461d..2209d85 100644 (file)
@@ -70,15 +70,19 @@ void swf_SetSoundStreamBlock(TAG*tag, S16*samples, int numsamples, char first)
 #ifdef LAME
 
 #include "../lame/lame.h"
-    
+
+/* TODO: find a way to set these from the outside */
+int swf_mp3_samplerate = 44100;
+int swf_mp3_channels = 1;
+
 static lame_global_flags*lame_flags;
 
 static void initlame(unsigned char*buf, int bufsize)
 {
     lame_flags = lame_init();
 
-    lame_set_in_samplerate(lame_flags, 44100);
-    lame_set_num_channels(lame_flags, 1);
+    lame_set_in_samplerate(lame_flags, swf_mp3_samplerate);
+    lame_set_num_channels(lame_flags, swf_mp3_channels);
     lame_set_scale(lame_flags, 0);
 
     // MPEG1    32, 44.1,   48khz
@@ -127,7 +131,7 @@ void swf_SetSoundStreamHead(TAG*tag, int avgnumsamples)
     swf_SetU16(tag,avgnumsamples);
 }
 
-void swf_SetSoundStreamBlock(TAG*tag, S16*samples, char first)
+void swf_SetSoundStreamBlock(TAG*tag, S16*samples, int seek, char first)
 {
     char*buf;
     int oldlen=0,len = 0;
@@ -142,7 +146,7 @@ void swf_SetSoundStreamBlock(TAG*tag, S16*samples, char first)
        int fs = lame_get_framesize(lame_flags);
        //printf("framesize:%d\n", fs);
        swf_SetU16(tag, fs); // samples per mp3 frame
-       swf_SetU16(tag, 0); // seek
+       swf_SetU16(tag, seek); // seek
     }
 
     len += lame_encode_buffer(lame_flags, samples, samples, numsamples, &buf[len], bufsize-len);