\r
This file is distributed under the GPL, see file COPYING for details */\r
\r
+#ifdef HAVE_SYS_STAT_H\r
+#include <sys/stat.h>\r
+#endif\r
+#include <unistd.h>\r
#include <stdio.h>\r
#include <fcntl.h>\r
#include "../lib/rfxswf.h"\r
-#include "args.h"\r
+#include "../lib/args.h"\r
\r
char * filename = 0;\r
\r
once */\r
char idtab[65536];\r
\r
+struct options_t options[] =\r
+{\r
+ {"v","verbose"},\r
+ {"V","version"},\r
+ {0,0}\r
+};\r
+\r
+\r
int args_callback_option(char*name,char*val)\r
{\r
+ if(!strcmp(name, "V")) {\r
+ printf("swfdump - part of %s %s\n", PACKAGE, VERSION);\r
+ exit(0);\r
+ }\r
}\r
int args_callback_longoption(char*name,char*val)\r
{\r
+ return args_long2shortoption(options, name, val);\r
}\r
void args_callback_usage(char*name)\r
{ \r
printf("Usage: %s file.swf\n", name);\r
- printf("\n");\r
}\r
int args_callback_command(char*name,char*val)\r
{\r
{ \r
SWF swf;\r
TAG*tag;\r
+#ifdef HAVE_SYS_STAT_H\r
+ struct stat statbuf;\r
+#endif\r
int f;\r
char prefix[128];\r
prefix[0] = 0;\r
close(f);\r
exit(1);\r
}\r
+\r
+#ifdef HAVE_SYS_STAT_H\r
+ fstat(f, &statbuf);\r
+ if(statbuf.st_size != swf.FileSize)\r
+ fprintf(stderr, "Error: Real Filesize (%d) doesn't match header Filesize (%d)",\r
+ statbuf.st_size, swf.FileSize);\r
+#endif\r
+\r
close(f);\r
\r
+ printf("[HEADER] File version: %d\n", swf.FileVersion);\r
+ printf("[HEADER] File size: %d\n", swf.FileSize);\r
+ printf("[HEADER] Frame rate: %f\n",swf.FrameRate/256.0);\r
+ printf("[HEADER] Frame count: %d\n",swf.FrameCount);\r
+ printf("[HEADER] Movie width: %.3f\n",(swf.MovieSize.xmax-swf.MovieSize.xmin)/20.0);\r
+ printf("[HEADER] Movie height: %.3f\n",(swf.MovieSize.ymax-swf.MovieSize.ymin)/20.0);\r
+\r
tag = swf.FirstTag;\r
\r
while(tag) {\r
- printf("[%02x] %s%s", tag->id, prefix, getTagName(tag));\r
+ printf("[%03x] %9d %s%s", tag->id, tag->len, prefix, getTagName(tag));\r
if(isDefiningTag(tag)) {\r
U16 id = GetDefineID(tag);\r
printf(" defines id %04x", id);\r