git.asbjorn.biz
/
swftools.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
8e46b01
)
implemented --framerate.
author
kramm
<kramm>
Sat, 4 Jan 2003 17:01:54 +0000
(17:01 +0000)
committer
kramm
<kramm>
Sat, 4 Jan 2003 17:01:54 +0000
(17:01 +0000)
src/wav2swf.1
patch
|
blob
|
history
src/wav2swf.c
patch
|
blob
|
history
diff --git
a/src/wav2swf.1
b/src/wav2swf.1
index
ed7333e
..
58ef992
100644
(file)
--- a/
src/wav2swf.1
+++ b/
src/wav2swf.1
@@
-18,6
+18,17
@@
Print version info and exit
.TP
\fB\-o\fR, \fB\-\-output\fR \fIfilename\fR
Explicitly specify output file. (Otherwise, output will go to output.swf)
.TP
\fB\-o\fR, \fB\-\-output\fR \fIfilename\fR
Explicitly specify output file. (Otherwise, output will go to output.swf)
+.TP
+\fB\-f\fR, \fB\-\-framerate\fR \fIfps\fR
+Set file framerate to \fIfps\fR frames per second.
+.TP
+\fB\-l\fR, \fB\-\-loop\fR \fIn\fR
+(Only used with -d)
+Loop the sound n times.
+.TP
+\fB\-d\fR, \fB\-\-definesound\fR
+Store the sound as DEFINESOUND tag, not as streaming sound. Allows for
+looping.
.SH AUTHORS
.SH AUTHORS
diff --git
a/src/wav2swf.c
b/src/wav2swf.c
index
0b233c7
..
70315b2
100644
(file)
--- a/
src/wav2swf.c
+++ b/
src/wav2swf.c
@@
-24,12
+24,14
@@
struct options_t options[] =
{"v","verbose"},
{"d","definesound"},
{"l","loop"},
{"v","verbose"},
{"d","definesound"},
{"l","loop"},
+ {"f","framerate"},
{"V","version"},
{0,0}
};
static int loop = 0;
static int definesound = 0;
{"V","version"},
{0,0}
};
static int loop = 0;
static int definesound = 0;
+static int framerate = 0;
int args_callback_option(char*name,char*val)
{
int args_callback_option(char*name,char*val)
{
@@
-53,6
+55,12
@@
int args_callback_option(char*name,char*val)
verbose ++;
return 0;
}
verbose ++;
return 0;
}
+ else if(!strcmp(name, "f")) {
+ float f;
+ sscanf(val, "%f", &f);
+ framerate = f*256;
+ return 1;
+ }
else {
printf("Unknown option: -%s\n", name);
exit(1);
else {
printf("Unknown option: -%s\n", name);
exit(1);
@@
-69,6
+77,7
@@
void args_callback_usage(char*name)
printf("\t-v , --verbose\t\t\t Be more verbose\n");
printf("\t-d , --definesound\t\t\t Generate a DefineSound tag instead of streaming sound\n");
printf("\t-l , --loop n\t\t\t Loop sound n times (implies -d)\n");
printf("\t-v , --verbose\t\t\t Be more verbose\n");
printf("\t-d , --definesound\t\t\t Generate a DefineSound tag instead of streaming sound\n");
printf("\t-l , --loop n\t\t\t Loop sound n times (implies -d)\n");
+ printf("\t-f , --framerate fps\t\t\t Set framerate to fps frames per seond\n");
printf("\t-o , --output filename\t\t set output filename (default: output.swf)\n");
printf("\t-V , --version\t\t\t Print program version and exit\n");
}
printf("\t-o , --output filename\t\t set output filename (default: output.swf)\n");
printf("\t-V , --version\t\t\t Print program version and exit\n");
}
@@
-94,11
+103,23
@@
int main (int argc,char ** argv)
int count;
int t;
struct WAV wav,wav2;
int count;
int t;
struct WAV wav,wav2;
- int blocksize = 1152;
+ int blocksize;
+ float blockspersecond;
+ float framespersecond;
+ float framesperblock;
+ float framepos = 0;
U16* samples;
int numsamples;
processargs(argc, argv);
U16* samples;
int numsamples;
processargs(argc, argv);
+
+ blocksize = 1152;
+ blockspersecond = 11025.0/blocksize;
+ framespersecond = blockspersecond;
+ if(framerate)
+ framespersecond = framerate/256.0;
+ framesperblock = framespersecond/blockspersecond;
+
initLog(0,-1,0,0,-1,verbose);
if(!readWAV(filename, &wav))
initLog(0,-1,0,0,-1,verbose);
if(!readWAV(filename, &wav))
@@
-115,7
+136,7
@@
int main (int argc,char ** argv)
memset(&swf,0x00,sizeof(SWF));
swf.fileVersion = 5;
memset(&swf,0x00,sizeof(SWF));
swf.fileVersion = 5;
- swf.frameRate = 11025*256/(blocksize);
+ swf.frameRate = (int)(framespersecond*256);
swf.movieSize.xmax = 20*width;
swf.movieSize.ymax = 20*height;
swf.movieSize.xmax = 20*width;
swf.movieSize.ymax = 20*height;
@@
-135,12
+156,17
@@
int main (int argc,char ** argv)
logf("<notice> %d blocks", numsamples/(blocksize*2));
for(t=0;t<numsamples/(blocksize*2);t++) {
int s;
logf("<notice> %d blocks", numsamples/(blocksize*2));
for(t=0;t<numsamples/(blocksize*2);t++) {
int s;
+ int oldframe, newframe;
U16*block1;
tag = swf_InsertTag(tag, ST_SOUNDSTREAMBLOCK);
logf("<notice> Writing block %d", t);
block1 = &samples[t*2*blocksize];
swf_SetSoundStreamBlock(tag, block1, 1);
U16*block1;
tag = swf_InsertTag(tag, ST_SOUNDSTREAMBLOCK);
logf("<notice> Writing block %d", t);
block1 = &samples[t*2*blocksize];
swf_SetSoundStreamBlock(tag, block1, 1);
- tag = swf_InsertTag(tag, ST_SHOWFRAME);
+ oldframe = (int)framepos;
+ framepos += framesperblock;
+ newframe = (int)framepos;
+ for(s=oldframe;s<newframe;s++)
+ tag = swf_InsertTag(tag, ST_SHOWFRAME);
}
tag = swf_InsertTag(tag, ST_END);
} else {
}
tag = swf_InsertTag(tag, ST_END);
} else {