}
else if (!strcmp(name, "x"))
{
- config.movex = atoi(val);
+ float x = atof(val);
+ config.movex = (int)(x*20+0.5);
return 1;
}
else if (!strcmp(name, "y"))
{
- config.movey = atoi(val);
+ float y = atof(val);
+ config.movey = (int)(y*20+0.5);
return 1;
}
else if (!strcmp(name, "m"))
}
else if (!strcmp(name, "r"))
{
- config.framerate = atoi(val)*256/100;
+
+ float rate = atof(val);
+ if ((rate < 1.0/256) ||(rate >= 256.0)) {
+ fprintf(stderr, "Error: You must specify a valid framerate between 1/256 and 255.\n");
+ exit(1);
+ }
+ config.framerate = (int)(rate*256);
return 1;
}
else if (!strcmp(name, "X"))
printf("-a --cat concatenate all slave files (no master movie)\n");
printf("-l --overlay Don't remove any master objects, only overlay new objects\n");
printf("-c --clip Clip the slave objects by the corresponding master objects\n");
- printf("-v --verbose Use more than one -v for greater effect \n");
- printf("-d --dummy Don't require slave objects \n");
+ printf("-v --verbose Be verbose. Use more than one -v for greater effect \n");
+ printf("-d --dummy Don't require slave objects (for changing movie attributes)\n");
printf("-f --frame The following identifier is a frame or framelabel, not an id or objectname\n");
- printf("-x xpos --movex x Adjust position of slave by xpos twips (1/20 pixel)\n");
- printf("-y ypos --movey y Adjust position of slave by ypos twips (1/20 pixel)\n");
- printf("-s scale --scale Adjust size of slave by scale%\n");
- printf("-r framerate --rate Set movie framerate (100 frames/sec)\n");
- printf("-X width --width Force movie width to scale (default: use master width (not with -t))\n");
- printf("-Y height --height Force movie height to scale (default: use master height (not with -t))\n");
+ printf("-x xpos --movex x Adjust position of slave by xpos pixels\n");
+ printf("-y ypos --movey y Adjust position of slave by ypos pixels\n");
+ printf("-s scale --scale Adjust size of slave by scale% (e.g. 100%% = original size)\n");
+ printf("-r framerate --rate Set movie framerate (frames/sec)\n");
+ printf("-X width --width Force movie bbox width to scale (default: use master width (not with -t))\n");
+ printf("-Y height --height Force movie bbox height to scale (default: use master height (not with -t))\n");
printf("-z zlib --zlib Enable Flash 6 (MX) Zlib Compression\n");
}
static int slaveid = -1;
static int slaveframe = -1;
static char masterbitmap[65536];
+static char depthbitmap[65536];
#define FLAGS_WRITEDEFINES 1
#define FLAGS_WRITENONDEFINES 2
int frame = 0;
char*framelabel;
TAG * tag = master->firstTag;
+
+ memset(depthbitmap, 0, sizeof(depthbitmap));
// set the idtab
while(tag)
{
+ int depth = swf_GetDepth(tag);
+ if(depth>=0) {
+ depthbitmap[depth] = 1;
+ }
if(swf_isDefiningTag(tag)) {
int defineid = swf_GetDefineID(tag);
msg("<debug> tagid %02x defines object %d", tag->id, defineid);
masterbitmap[defineid] = 1;
+
if (!slavename && defineid==slaveid) {
if(defineid>=0) {
spriteid = defineid;
}
swf_Relocate (slave, masterbitmap);
+ swf_RelocateDepth (slave, depthbitmap);
jpeg_assert(slave, master);
if (config.overlay)