home *** CD-ROM | disk | FTP | other *** search
- // MPEGThread.h -
-
- #include <sys/types.h>
- #include <sys/time.h>
- #import <mach/cthreads.h>
- #import <libc.h>
- #import <streams/streams.h>
- #import <appkit/View.h>
- #import <objc/Object.h>
-
- #define FCODE_ABORT -1
- #define FCODE_END 0
- #define FP_NUM_INT_DATA 1
-
- typedef struct _mpegPacket
- {
- msg_header_t h;
- msg_type_t t;
- int fcode;
- } mpegPacket;
-
- @interface MPEGThread:Object
- {
- id view;
- id controller;
- int frameSize;
- port_t mpegPort;
- cthread_t cthreadMain;
- FILE *ifp; // decode
- char *buffer;
- NXStream *pStream, *mStream;
- char *address; // video cache
- int len, maxlen;
- }
-
- /*** Initialization methods ***/
- - initSize:(int)size forView:anObject;
- - free;
-
- /*** Instance methods and Standard C wrapper functions ***/
- void receive_fcode(mpegPacket *, id);
- - receiveFcode:(mpegPacket *)pkt;
-
- - decodeFile:(const char *)mpegFile;
- any_t mpeg_thread(any_t);
- - mpegThread;
- - endDecode;
- - abortDecode;
-
- @end
-
-
- @interface Object(MPEGThreadDelegate)
- - setFrameNumber:(int)frame;
- @end
-
- @interface View(MPEGThreadView)
- - setAddress:(char *)anAddress len:(int)aLen maxlen:(int)aMaxlen;
- @end
-