#include "../lib/rfxswf.h"
#include "../lib/log.h"
#include "../lib/args.h"
-#include "wav.h"
+#include "../lib/wav.h"
char * filename = 0;
char * outputname = "output.swf";
int verbose = 2;
int stopframe0 = 0;
+int stopframe1 = 0;
#define DEFINESOUND_MP3 1 //define sound uses mp3?- undefine for raw sound.
{"o", "output"},
{"r", "framerate"},
{"s", "samplerate"},
-{"b", "bitrate"},
{"d", "definesound"},
{"l", "loop"},
{"C", "cgi"},
{"S", "stop"},
+{"E", "end"},
{"b", "bitrate"},
{"v", "verbose"},
{0,0}
stopframe0 = 1;
return 0;
}
+ else if(!strcmp(name, "E")) {
+ stopframe1 = 1;
+ return 0;
+ }
else if(!strcmp(name, "C")) {
do_cgi = 1;
return 0;
void args_callback_usage(char *name)
{
printf("\n");
- printf("Usage: %s [-o filename] file.wav\n\n", name);
+ printf("Usage: %s [-o filename] file.wav\n", name);
printf("\n");
printf("-h , --help Print short help message and exit\n");
printf("-V , --version Print version info and exit\n");
printf("-o , --output <filename> Explicitly specify output file. (Otherwise, output will go to output.swf)\n");
printf("-r , --framerate <fps> Set file framerate to <fps> frames per second.\n");
printf("-s , --samplerate <sps> Set samplerate to <sps> frames per second (default: 11025).\n");
- printf("-b , --bitrate bps Set mp3 bitrate to <bps>.\n");
printf("-d , --definesound Generate a DefineSound tag instead of streaming sound.\n");
printf("-l , --loop n (Only used with -d)\n");
printf("-C , --cgi For use as CGI- prepend http header, write to stdout.\n");
printf("-S , --stop Stop the movie at frame 0\n");
+ printf("-E , --end Stop the movie at the end frame\n");
printf("-b , --bitrate <bps> Set mp3 bitrate to <bps> (default: 32)\n");
printf("-v , --verbose Be more verbose\n");
printf("\n");
exit(1);
}
- if(!readWAV(filename, &wav))
+ if(!wav_read(&wav, filename))
{
msg("<fatal> Error reading %s", filename);
exit(1);
}
- convertWAV2mono(&wav,&wav2, samplerate);
- //printWAVInfo(&wav);
- //printWAVInfo(&wav2);
+ wav_convert2mono(&wav,&wav2, samplerate);
+ //wav_print(&wav);
+ //wav_print(&wav2);
samples = (U16*)wav2.data;
numsamples = wav2.size/2;
+#ifdef WORDS_BIGENDIAN
+ /* swap bytes */
+ for(t=0;t<numsamples;t++) {
+ samples[t] = (samples[t]>>8)&0xff | (samples[t]<<8)&0xff00;
+ }
+#endif
+
if(numsamples%blocksize != 0)
{
// apply padding, so that block is a multiple of blocksize
info.loops = loop;
swf_SetSoundInfo(tag, &info);
tag = swf_InsertTag(tag, ST_SHOWFRAME);
+ if(stopframe1) {
+ ActionTAG*action = 0;
+ tag = swf_InsertTag(tag, ST_DOACTION);
+ action = action_Stop(action);
+ action = action_End(action);
+ swf_ActionSet(tag, action);
+ swf_ActionFree(action);
+ tag = swf_InsertTag(tag, ST_SHOWFRAME);
+ }
tag = swf_InsertTag(tag, ST_END);
}