typedef struct {
PyObject_HEAD
- SWF swf; //swf.firstTag ist not used
+ SWF swf; //swf.firstTag is not used
PyObject*taglist;
char*filename;
} SWFObject;
&obbox, &filename))
return NULL;
- if (!PY_CHECK_TYPE(obbox, &BBoxClass)) {
- obbox = f_BBox(0, obbox, 0);
- if(!obbox)
- return NULL;
+ if(obbox) {
+ if (!PY_CHECK_TYPE(obbox, &BBoxClass)) {
+ obbox = f_BBox(0, obbox, 0);
+ if(!obbox)
+ return NULL;
+ }
+ bbox = bbox_getSRECT(obbox);
}
- bbox = bbox_getSRECT(obbox);
memset(&swf->swf, 0, sizeof(SWF));
if(filename)
swf->compressed = 1;
swf->firstTag = taglist_getTAGs(swfo->taglist);
- if(!swf->firstTag)
- return NULL;
+
+ /*if(!swf->firstTag)
+ return NULL;*/
// fix the file, in case it is empty or not terminated properly
{
static PyObject* swf_getattr(PyObject * self, char* a)
{
SWFObject*swf = (SWFObject*)self;
- PyObject* ret;
+ PyObject* ret = 0;
if(!strcmp(a, "fps")) {
double fps = swf->swf.frameRate/256.0;
Py_INCREF(ret);
mylog(" %08x(%d) swf_getattr %s = %08x(%d)\n", (int)self, self->ob_refcnt, a, ret, ret->ob_refcnt);
return ret;
+ } else if(!strcmp(a, "filesize")) {
+ int s = swf->swf.fileSize;
+ return Py_BuildValue("i", s);
+ } else if(!strcmp(a, "width")) {
+ int w = (swf->swf.movieSize.xmax - swf->swf.movieSize.xmin) / 20;
+ return Py_BuildValue("i", w);
+ } else if(!strcmp(a, "height")) {
+ int h = (swf->swf.movieSize.ymax - swf->swf.movieSize.ymin) / 20;
+ return Py_BuildValue("i", h);
+ } else if(!strcmp(a, "framecount")) {
+ int f = swf->swf.frameCount;
+ return Py_BuildValue("i", f);
}
ret = Py_FindMethod(swf_functions, self, a);
to keep it around */
// free(all_methods)
}
-