+// swfobject.c
+
+// The following 3 routines only use placeobject2:
+
+int swf_ObjectPlace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name);
+int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U16 clipaction);
+int swf_ObjectMove(TAG * t,U16 depth,MATRIX * m,CXFORM * cx);
+
+typedef struct _SWFPLACEOBJECT {
+ U16 depth;
+ U16 id; // may be 0
+ bool move; //true: move/replace character, false: set character
+ MATRIX matrix;
+ CXFORM cxform;
+ U16 ratio;
+ U8*name;
+ U16 clipdepth;
+ ActionTAG* actions;
+} SWFPLACEOBJECT;
+
+void swf_SetPlaceObject(TAG * t,SWFPLACEOBJECT* obj);
+void swf_GetPlaceObject(TAG * t,SWFPLACEOBJECT* obj);
+void swf_PlaceObjectFree(SWFPLACEOBJECT* obj);
+
+// swfvideo.c
+
+typedef struct _VIDEOSTREAM
+{
+ int width;
+ int height;
+ int linex;
+
+ int owidth;
+ int oheight;
+ int olinex;
+
+ int frame;
+ YUV*oldpic;
+ YUV*current;
+ int bbx;
+ int bby;
+ int*mvdx;
+ int*mvdy;
+ int quant;
+
+ /* modifyable: */
+ int do_motion; //enable motion compensation (slow!)
+
+} VIDEOSTREAM;
+
+void swf_SetVideoStreamDefine(TAG*tag, VIDEOSTREAM*stream, U16 frames, U16 width, U16 height);
+void swf_SetVideoStreamIFrame(TAG*tag, VIDEOSTREAM*s, RGBA*pic, int quant/* 1-31, 1=best quality, 31=best compression*/);
+void swf_SetVideoStreamPFrame(TAG*tag, VIDEOSTREAM*s, RGBA*pic, int quant/* 1-31, 1=best quality, 31=best compression*/);
+void swf_SetVideoStreamMover(TAG*tag, VIDEOSTREAM*s, signed char* movex, signed char* movey, int quant);
+void swf_VideoStreamClear(VIDEOSTREAM*stream);
+
+#ifdef __cplusplus
+}