Max 5 API Reference
00001 /* 00002 Copyright 2001-2005 - Cycling '74 00003 Joshua Kit Clayton jkc@cycling74.com 00004 Jeremy Bernstein jeremy@bootsquad.com 00005 */ 00006 00007 #ifndef __JIT_QT_MOVIE_H__ 00008 #define __JIT_QT_MOVIE_H__ 00009 00010 #if TARGET_RT_MAC_MACHO 00011 00012 #include <QuickTime/Movies.h> 00013 #include <QuickTime/QuickTimeVR.h> 00014 #include <QuickTime/QuickTimeVRFormat.h> 00015 #include <QuickTime/MediaHandlers.h> 00016 #include <QuickTime/ImageCodec.h> 00017 00018 #else 00019 #include <Movies.h> 00020 #include <QuickTimeVR.h> 00021 #include <QuickTimeVRFormat.h> 00022 #include <GXMath.h> 00023 #include <MediaHandlers.h> 00024 #include <Script.h> 00025 #include <Resources.h> 00026 #include <MacWindows.h> 00027 #include <QuickDraw.h> 00028 #include <QD3DViewer.h> 00029 #include <ImageCodec.h> 00030 #endif 00031 00032 #include "jit.common.h" 00033 #include "jit.qt.h" 00034 #include "jit.fixmath.h" 00035 #include "ext_wind.h" 00036 #include "jit.graphicexport.h" 00037 #include "ext_systhread.h" 00038 #include "ext_obex.h" 00039 // for spigot~ 00040 #include "z_dsp.h" // now an MSP object 00041 #include "send.h" 00042 00043 #ifdef WIN_VERSION 00044 #include <Timer.h> 00045 #include "max.carbonaccessors.h" 00046 #endif 00047 00048 00049 #ifdef MAC_VERSION 00050 #if TARGET_RT_MAC_MACHO 00051 // nothing 00052 #else 00053 #include "jit.qt.movie.export.h" 00054 #endif 00055 #endif 00056 00057 #define MAX_AUDIO 100 00058 #define MAX_ATOMS 254 00059 #define JIT_QT_MOVIE_ERR_QUEUED FOUR_CHAR('QUEU') 00060 00061 enum { 00062 eAudioRate48khz = (long)0xBB800000, /* 48000.00000 in fixed-point */ 00063 eAudioRate44khz = (long)0xAC440000, /* 44100.00000 in fixed-point */ 00064 eAudioRate32khz = (long)0x7D000000, /* 32000.00000 in fixed-point */ 00065 eAudioRateDefault = 0L 00066 }; 00067 00068 extern t_symbol *ps_track, *ps_dialog, *ps_scrap, *ps_noshift, *ps_scale; 00069 extern t_symbol *ps_inplace, *ps_compress, *ps_faststart, *ps_activeonly; 00070 extern t_symbol *ps_fxsrc1, *ps_fxsrc2, *ps_fxtrk, *ps_bgtrack; 00071 extern t_symbol *ps_get_window_ptr,*ps_class_jit_window; 00072 extern t_symbol *ps_framereport, *ps_loopreport; 00073 extern t_symbol *ps_loadram, *ps_voclist, *ps_vocmodes, *ps_exporterlist; 00074 extern t_symbol *ps_argb,*ps_uyvy; 00075 extern t_symbol *ps_readfile, *ps_readscrap, *ps_readurl, *ps_import; 00076 extern t_symbol *ps_export,*ps_exportimage,*ps_savemovie,*ps_savemovieas,*ps_savemoviecopy,*ps_importfile; 00077 extern t_symbol *ps__none_, *ps_asyncread, *ps_asyncimport, *ps_async, *ps_asyncstop, *ps_vol; 00078 extern t_symbol *ps_flatten, *ps_read, *ps_stop, *ps_fps, *ps_start, *ps_asyncreadfile, *ps_asyncreadurl, *ps_free; 00079 extern t_symbol *ps_dropped; 00080 extern t_symbol *ps_nobox, *ps_atomarray; 00081 extern t_symbol *ps_fclose, *ps_loopone, *ps_looppalin; 00082 extern Boolean qt6, qt64, qt65, qt7; 00083 00084 #define kVideoTimeScale 600 00085 #define kCharacteristicHasVideoFrameRate FOUR_CHAR_CODE('vfrr') 00086 #define kCharacteristicIsAnMpegTrack FOUR_CHAR_CODE('mpeg') 00087 #define fixed1neg IntToFixed(-1) 00088 00089 typedef struct _workerthread_info { 00090 method m; 00091 void *data; 00092 } t_workerthread_info; 00093 00094 typedef struct _audioextractinfo { 00095 MovieAudioExtractionRef extractionSessionRef; 00096 AudioStreamBasicDescription asbd; 00097 AudioBufferList *bufList; 00098 UInt32 movieDuration; 00099 UInt32 audioDuration; 00100 UInt32 samplesRemaining; 00101 Handle dataRef; 00102 OSType dataRefType; 00103 FSSpec fs; 00104 short frefnum; 00105 short path; 00106 char name[MAX_PATH_CHARS]; 00107 } t_audioextractinfo; 00108 00109 /* 00110 typedef struct _movie_info { 00111 Movie m; 00112 Rect movie_rect; 00113 ComponentInstance moviecontroller; 00114 00115 char movie_is_temp; 00116 } 00117 */ 00118 00119 #define PREP_M Movie m = x->movie; 00120 00121 //#define QTMOVIEDEBUG 00122 #ifdef QTMOVIEDEBUG 00123 #define DEBUGPOST(a) post a 00124 #else 00125 #define DEBUGPOST(a) 00126 #endif 00127 00128 typedef struct _jit_qt_movie 00129 { 00130 t_jit_object ob; 00131 GWorldPtr offscreen; 00132 Movie movie; 00133 Boolean loadingmovie; 00134 t_symbol *moviename; 00135 MovieEditState mes; 00136 Movie tempmovie; 00137 char tempmovietype; 00138 ComponentInstance moviecontroller; 00139 Rect movie_rect; 00140 float rate; 00141 float vol; 00142 //flags 00143 // char use_movie_select; // get/set selection points 00144 // char use_movie_active; // get/set active area 00145 char autosave; 00146 00147 char loop; 00148 char use_movie_loop; //get/set loop atom 00149 QTCallBackUPP looper; 00150 00151 char autostart; 00152 char interp; 00153 char usesrcrect; 00154 char usedstrect; 00155 long srcrect[4]; 00156 long dstrect[4]; 00157 long dim[2]; 00158 long looppoints[2]; 00159 Boolean restoreloop; 00160 //voc 00161 char mode; // 0 = normal, 1 = direct out to voc 00162 ComponentInstance ci; 00163 void *qtc; 00164 long displayid; 00165 GWorldPtr dw; 00166 long voc; 00167 long vocmode; 00168 Boolean open; 00169 char prepped; 00170 char voc_sound_mode; 00171 //sound output 00172 MediaHandler amh[MAX_AUDIO]; 00173 UInt8 numaudiotracks; 00174 // 00175 char movie_is_temp; 00176 long exp_type; 00177 // 00178 long exporter; 00179 long exportercount; 00180 Component exportcomponent; 00181 QTAtomContainer exportsettings; 00182 t_symbol *vcodec; 00183 CodecType vcodectype; 00184 t_symbol *vcodecquality; 00185 CodecQ vcodecq; 00186 t_symbol *acodec; 00187 CodecType acodectype; 00188 00189 t_symbol *soc; 00190 t_symbol *soc_disable; 00191 00192 long exportimage_type; 00193 QTAtomContainer exportimage_settings; 00194 long fx; // does movie have fx track? 00195 00196 short resid; 00197 00198 void *start_qelem; 00199 void *progdl_qelem; 00200 Boolean progdl; 00201 MoviePrePrerollCompleteUPP prepre; 00202 char inprepre; // what stage of prepreloading are we in? 00203 00204 t_symbol *window; 00205 t_symbol *temp_window; 00206 t_symbol *mxname; 00207 long mwrapped; 00208 Boolean clearflag; 00209 00210 QTCallBack cb; 00211 char loopreport; 00212 char framereport; 00213 double fps; // used for frame, jump calculations 00214 00215 t_symbol *colormode; 00216 long pixelformat; 00217 char cmode_changed; 00218 // long dimcache[2]; // may need to implement something like this 00219 // threading support 00220 MovieProgressUPP progress; 00221 ulong threadstate; 00222 00223 // event support, MC/Flash 00224 char button; 00225 t_jit_linklist *flash_but; 00226 t_jit_linklist *flash_var; 00227 t_jit_linklist *flash_chars; 00228 QTCallBack flash_cb; 00229 QTCallBackUPP flash_upp; 00230 00231 char editmode; // 0 = qt, 1 = ms, 2 = frame, 3 = frame_true 00232 #ifdef DROPREPORT 00233 char dropreport; 00234 #endif 00235 char unique; 00236 TimeValue unique_nexttime; 00237 TimeValue unique_prevtime; 00238 TimeValue unique_lasttime; 00239 // bah - required for ayuv conversion stuff 00240 void *wrapmatrix; 00241 void *ayuvmatrix; // ayuv, unscaled 00242 void *ayuvSmatrix; // ayuv, scaled 00243 void *uyvy2ayuv; // converter object 00244 void *ayuv2uyvy; // converter object 00245 char mxmodify; 00246 char optimize; 00247 char timecodevis; 00248 char adapt; 00249 char bframe; 00250 00251 char preroll; 00252 void *asyncrequestqueue; 00253 t_systhread_mutex threadingmutex; 00254 t_jit_linklist *requestlinklist; 00255 char cached; 00256 char abort; 00257 00258 t_systhread workerthread; 00259 t_systhread_mutex workermutex; 00260 t_systhread_mutex workerlock; 00261 t_systhread_mutex disposemutex; 00262 t_systhread_cond workercond; 00263 t_systhread_cond disposecond; 00264 t_workerthread_info workerinfo; 00265 char workerstate; 00266 void *unloadram_clock; 00267 // spigot~ 00268 t_object *sfplay; 00269 t_symbol *sfplayname; // object name for registration 00270 t_symbol *sfplay_file; 00271 float sfplay_rate; 00272 char sfplay_clock_enabled; 00273 char soc_extracted; 00274 char sfplay_cueready; 00275 t_audioextractinfo *aei; 00276 void *aei_qelem; 00277 00278 char dsp_state; 00279 void *dsp_qelem; 00280 // collective support 00281 Handle collective_moviedata; 00282 Handle collective_dataref; 00283 // scrap improvements 00284 Handle tempmoviescrap_moviedata; 00285 Handle tempmoviescrap_dataref; 00286 // quality 00287 char highquality; 00288 char singlefield; 00289 char deinterlace; 00290 void *taskclock; 00291 } t_jit_qt_movie; 00292 00293 typedef struct _thread_loadram_info { 00294 t_jit_qt_movie *x; 00295 Movie m; 00296 long from; 00297 long to; 00298 long ac; 00299 long trackid; 00300 char report; 00301 char threaded; 00302 } t_thread_loadram_info; 00303 00304 typedef struct _thread_exportfile_info { 00305 t_jit_qt_movie *x; 00306 Movie m; 00307 Component c; 00308 QTAtomContainer settings; 00309 Handle dataRef; 00310 OSType dataRefType; 00311 long flag; 00312 t_symbol *sname; 00313 } t_thread_exportfile_info; 00314 00315 typedef struct _thread_flatten_info { 00316 t_jit_qt_movie *x; 00317 Movie m; 00318 Handle dataRef; // destination or temp file 00319 OSType dataRefType; 00320 long inplace; 00321 long flags; 00322 } t_thread_flatten_info; 00323 00324 typedef struct _thread_newmoviefromfile_info { 00325 t_jit_qt_movie *x; 00326 Movie m; 00327 short refnum; 00328 short resid; 00329 short vol; 00330 OSErr err; 00331 } t_thread_newmoviefromfile_info; 00332 00333 typedef struct _jit_qt_movie_readinfo 00334 { 00335 t_jit_qt_movie *x; 00336 char operation; 00337 char inputstr[1024]; 00338 char filename[1024]; 00339 short vol; 00340 long type; 00341 OSErr err; 00342 char async; // we need this for import 00343 Movie m; 00344 // readmoviefromfile 00345 Handle dataRef; 00346 OSType dataRefType; 00347 DataHandler dataHandler; 00348 Handle h; 00349 short refnum; 00350 short resid; 00351 // import 00352 long ac; 00353 t_atom *av; 00354 } t_jit_qt_movie_readinfo; 00355 00356 enum { 00357 LOOP_OFF = 0, 00358 LOOP_ON, 00359 LOOP_PALINDROME, 00360 LOOP_SINGLEPLAYSELECTION 00361 }; 00362 00363 enum { 00364 OP_ASYNCREADFILE = -3, 00365 OP_ASYNCREADURL = -2, 00366 OP_ASYNCIMPORT = -1, 00367 OP_READFILE = 0, 00368 OP_IMPORT, 00369 OP_READURL, 00370 OP_READSCRAP 00371 }; 00372 00373 enum { 00374 CMODE_UNCHANGED = 0, 00375 CMODE_ARGB2UYVY, 00376 CMODE_UYVY2ARGB, 00377 CMODE_CHANGED 00378 }; 00379 00380 enum { 00381 MWRAP_UNWRAPPED = 0, 00382 MWRAP_WRAPPED, 00383 MWRAP_TRYAGAIN 00384 }; 00385 00386 enum { 00387 EDITMODE_QT = 0, 00388 EDITMODE_MS, 00389 EDITMODE_FRAME, 00390 EDITMODE_FRAME_TRUE 00391 }; 00392 00393 enum { 00394 TEMPMOVIE_NONE = 0, 00395 TEMPMOVIE_FILE, 00396 TEMPMOVIE_SCRAP, 00397 TEMPMOVIE_URL 00398 }; 00399 00400 #define THREADSTATE_NONE 0x00000000 00401 #define THREADSTATE_READ 0x00000001 00402 #define THREADSTATE_STOP 0x00000002 // unused 00403 #define THREADSTATE_START 0x00000004 00404 #define THREADSTATE_LOADRAM 0x00000008 00405 #define THREADSTATE_UNLOADRAM 0x00000010 00406 #define THREADSTATE_LOCATEFILE 0x00000020 // unused 00407 #define THREADSTATE_OPEN 0x00000040 // unused 00408 #define THREADSTATE_READFILE 0x00000080 // unused 00409 #define THREADSTATE_READURL 0x00000100 // todo: look at again 00410 #define THREADSTATE_IMPORT 0x00000200 // todo: look at again 00411 #define THREADSTATE_DISPOSE 0x00000400 // unused 00412 #define THREADSTATE_UNSAFE 0x0000FFFF 00413 00414 #define THREADSTATE_FLATTEN 0x00010000 00415 #define THREADSTATE_EXPORT 0x00020000 00416 #define THREADSTATE_WAITING 0x00080000 // loadram thread sleeping 00417 #define THREADSTATE_ABORT 0x80000000 00418 #define THREADSTATE_SAFE 0xFFFF0000 00419 #define THREADSTATE_STATE 0xFFFFFFFF 00420 00421 #define MS_INIT UnsignedWide ms1, ms2; double d=0; 00422 00423 #define MS_START Microseconds(&ms1) 00424 #define MS_END(s) Microseconds(&ms2); \ 00425 if (ms2.lo < ms1.lo) { \ 00426 d = (double)0xFFFFFFFF; \ 00427 d = ((double)ms2.lo + d - (double)ms1.lo); \ 00428 } else \ 00429 d = ((double)ms2.lo - (double)ms1.lo); \ 00430 jit_object_post((t_object *)x,(s), d) 00431 00432 #ifdef MAC_VERSION 00433 #include "loadFrameworkBundle.h" 00434 00435 extern CFBundleRef frameBundle; 00436 extern CFBundleRef sysBundle; 00437 00438 typedef OSErr (*EnterMoviesOnThreadPtr)(UInt32); 00439 typedef OSErr (*ExitMoviesOnThreadPtr)(void); 00440 typedef OSErr (*AttachMovieToCurrentThreadPtr)(Movie); 00441 typedef OSErr (*DetachMovieFromCurrentThreadPtr)(Movie); 00442 typedef OSErr (*GetMovieThreadAttachStatePtr)(Movie, Boolean *, Boolean *); 00443 00444 extern EnterMoviesOnThreadPtr mEnterMoviesOnThread; 00445 extern ExitMoviesOnThreadPtr mExitMoviesOnThread; 00446 extern AttachMovieToCurrentThreadPtr mAttachMovieToCurrentThread; 00447 extern DetachMovieFromCurrentThreadPtr mDetachMovieFromCurrentThread; 00448 extern GetMovieThreadAttachStatePtr mGetMovieThreadAttachState; 00449 00450 void jit_qt_movie_framework_init(void); 00451 #else 00452 void jit_qt_movie_qtlib_init(void); 00453 #endif 00454 00455 extern t_hashtab *mthash, *athash; 00456 00457 // jit.qt.movie.c 00458 t_jit_err jit_qt_movie_init(void); 00459 t_jit_qt_movie *jit_qt_movie_new(long width, long height); 00460 void jit_qt_movie_free(t_jit_qt_movie *x); 00461 void jit_qt_movie_notify(t_jit_qt_movie *x, t_symbol *s, t_symbol *msg, void *sender, void *data); 00462 void jit_qt_movie_notify_atomarray_prep(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00463 void jit_qt_movie_dim(t_jit_qt_movie *x, long width, long height); 00464 t_jit_err jit_qt_movie_locatefile(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00465 // readfile 00466 t_jit_err jit_qt_movie_readfile(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00467 t_jit_err jit_qt_movie_readfile_makespec(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00468 void jit_qt_movie_readfile_newmovie(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00469 t_jit_err jit_qt_movie_readfile_complete(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00470 void jit_qt_movie_readfile_unthread(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00471 #ifndef WIN_VERSION //win_todo 00472 Handle get1namedresource_extended(char *name, unsigned long *foundtype, unsigned long *types, long ntypes); 00473 #endif // WIN_VERSION 00474 // readscrap 00475 t_jit_err jit_qt_movie_readscrap(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00476 // readurl 00477 t_jit_err jit_qt_movie_readurl(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00478 t_jit_err jit_qt_movie_readurl_newmovie(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00479 t_jit_err jit_qt_movie_readurl_complete(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00480 void jit_qt_movie_readurl_unthread(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00481 // open 00482 long jit_qt_movie_open(t_jit_qt_movie *x, Movie m, t_jit_qt_movie_readinfo *rinfo); 00483 void jit_qt_movie_open_reattach(t_jit_qt_movie *x); 00484 void jit_qt_movie_read_final(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00485 void jit_qt_movie_readimport_notify(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00486 ////////// 00487 void jit_qt_movie_abort(t_jit_qt_movie *x); 00488 // import 00489 t_jit_err jit_qt_movie_importfile(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00490 t_jit_err jit_qt_movie_importfile_makespec(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00491 void jit_qt_movie_importfile_unthread(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00492 void jit_qt_movie_importfile_newmovie(t_jit_qt_movie *x, t_jit_qt_movie_readinfo *rinfo); 00493 // 00494 void jit_qt_movie_dispose(t_jit_qt_movie *x); 00495 void jit_qt_movie_close(t_jit_qt_movie *x); 00496 void jit_qt_movie_kill(t_jit_qt_movie *x); 00497 void jit_qt_movie_movie_prep(t_jit_qt_movie *x); 00498 long jit_qt_movie_ismovie(t_jit_qt_movie *x); 00499 Boolean jit_qt_movie_ismpeg(Movie m); 00500 void jit_qt_movie_newmovie(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00501 OSErr jit_qt_movie_progress(Movie movie, short message, short operation, Fixed percent, long refcon); 00502 Movie jit_qt_movie_duplicate_movie(Movie m); 00503 void jit_qt_movie_duplicate(t_jit_qt_movie *x); 00504 Boolean jit_qt_movie_hasdisplayoffsets(Movie m); 00505 00506 void jit_qt_movie_setmovietimevalue(t_jit_qt_movie *x, Movie m, TimeValue time); 00507 void jit_qt_movie_timevalues_convert(t_jit_qt_movie *x, Movie movie_from, long *in_from, long *out_from, Movie movie_to, long *in_to, long *out_to); 00508 t_jit_err jit_qt_movie_frame2time(t_jit_qt_movie *x, Movie m, double fps, long srcin, long dstin, long *srcout, long *dstout); 00509 t_jit_err jit_qt_movie_frame2time_true(t_jit_qt_movie *x, Movie m, long srcin, long dstin, long *srcout, long *dstout); 00510 t_jit_err jit_qt_movie_ms2time(t_jit_qt_movie *x, Movie m, long srcin, long dstin, long *srcout, long *dstout); 00511 void jit_qt_movie_timevalues_convertback(t_jit_qt_movie *x, Movie movie_from, long *in_from, long *out_from, Movie movie_to, long *in_to, long *out_to); 00512 t_jit_err jit_qt_movie_time2frame(t_jit_qt_movie *x, Movie m, double fps, long srcin, long dstin, long *srcout, long *dstout); 00513 long jit_qt_movie_frame_fromtime(t_jit_qt_movie *x, Movie m, long time); 00514 t_jit_err jit_qt_movie_time2frame_true(t_jit_qt_movie *x, Movie m, long srcin, long dstin, long *srcout, long *dstout); 00515 t_jit_err jit_qt_movie_time2ms(t_jit_qt_movie *x, Movie m, long srcin, long dstin, long *srcout, long *dstout); 00516 00517 void jit_qt_movie_doloadram(t_jit_qt_movie *x, t_thread_loadram_info *ti); 00518 long jit_qt_movie_loadram(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00519 long jit_qt_movie_loadram_internal(t_jit_qt_movie *x, long from, long to, long trackid); 00520 void jit_qt_movie_unloadram(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00521 void jit_qt_movie_unloadram_cached(t_jit_qt_movie *x); 00522 00523 void jit_qt_movie_progdl(t_jit_qt_movie *x); 00524 void jit_qt_movie_dopreprecomplete(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00525 void jit_qt_movie_preprecomplete(Movie movie, OSErr err, void *s); 00526 00527 long jit_qt_movie_start(t_jit_qt_movie *x); 00528 void jit_qt_movie_stop(t_jit_qt_movie *x); 00529 long jit_qt_movie_stop2(t_jit_qt_movie *x, t_symbol *s); 00530 long jit_qt_movie_jump(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00531 long jit_qt_movie_jump_true(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00532 long jit_qt_movie_frame(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00533 long jit_qt_movie_frame_true(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00534 t_jit_err jit_qt_movie_proxy_attr(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00535 t_jit_err jit_qt_movie_method_typed(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00536 t_jit_err jit_qt_movie_proxy_method(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00537 void jit_qt_movie_asynchrequestqueue(t_jit_qt_movie *x); 00538 00539 void jit_qt_movie_restoreloop(t_jit_qt_movie *x); 00540 void jit_qt_movie_loop(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00541 void jit_qt_movie_loopstart(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00542 void jit_qt_movie_loopend(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00543 void jit_qt_movie_looppoints(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00544 t_jit_err jit_qt_movie_looppoints_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00545 t_jit_err jit_qt_movie_loopstart_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00546 t_jit_err jit_qt_movie_loopend_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00547 void jit_qt_movie_disposecallback(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00548 void jit_qt_movie_looper_notify(t_jit_qt_movie *x); 00549 pascal void jit_qt_movie_looper(QTCallBack cb, long ref); 00550 void jit_qt_movie_loopreport(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00551 void jit_qt_movie_set_timebase_loop(t_jit_qt_movie *x); 00552 void jit_qt_movie_loopstatus(t_jit_qt_movie *x); 00553 00554 void jit_qt_movie_rename(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00555 void jit_qt_movie_playhints(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00556 void jit_qt_movie_playhints_assign(Movie m, long mask, long flag); 00557 void jit_qt_movie_playhints_do(t_jit_qt_movie *x); 00558 00559 t_jit_err jit_qt_movie_getplayhints(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00560 void jit_qt_movie_autosave(t_jit_qt_movie *x); 00561 00562 long jit_qt_movie_rate_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00563 long jit_qt_movie_getmovierate(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00564 long jit_qt_movie_vol_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00565 long jit_qt_movie_time_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00566 long jit_qt_movie_time_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00567 long jit_qt_movie_timescale_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00568 long jit_qt_movie_poster_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00569 long jit_qt_movie_poster_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00570 long jit_qt_movie_framecount_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00571 double jit_qt_movie_moviefps_get(Movie m); 00572 long jit_qt_movie_fps_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00573 void jit_qt_movie_window(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00574 t_jit_err jit_qt_movie_colormode(t_jit_qt_movie *x, void *attr, long argc, t_atom *argv); 00575 t_jit_err jit_qt_movie_moviedim_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00576 t_jit_err jit_qt_movie_moviename_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00577 t_jit_err jit_qt_movie_moviepath_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00578 00579 long QTStep_DrawVideoSampleNextOrPrev(t_jit_qt_movie *x, Movie theMovie, long jump); 00580 long QT_GetFramecount (Movie theMovie); 00581 00582 void jit_qt_movie_clear(t_jit_qt_movie *x); 00583 t_jit_err jit_qt_movie_clear_offscreen(t_jit_qt_movie *x); 00584 void jit_qt_movie_do_clear_offscreen(GWorldPtr gw, t_symbol *colormode); 00585 OSErr jit_qt_movie_mreset(t_jit_qt_movie *x); 00586 long jit_qt_movie_task(t_jit_qt_movie *x); 00587 void jit_qt_movie_matrixattach(t_jit_qt_movie *x, void *matrix); 00588 void jit_qt_movie_fromgworld(t_jit_qt_movie *x, void *out_matrix, t_matrix_conv_info *gcinfo); 00589 long jit_qt_movie_matrix_calc(t_jit_qt_movie *x, void *inputs, void *outputs); 00590 00591 void jit_qt_movie_mc(t_jit_qt_movie *x); 00592 00593 t_jit_err jit_qt_movie_timecode_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00594 t_jit_err jit_qt_movie_timecodeinfo_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00595 t_jit_err jit_qt_movie_timecodevis_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00596 t_jit_err jit_qt_movie_timecodevis_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00597 void jit_qt_movie_timecodevis(t_jit_qt_movie *x); 00598 00599 t_jit_err jit_qt_movie_unique(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00600 Boolean jit_qt_movie_unique_nexttime_get(t_jit_qt_movie *x, TimeValue time); 00601 Boolean jit_qt_movie_unique_getready(t_jit_qt_movie *x); 00602 00603 OSErr jit_qt_movie_rebuild_gworld(t_jit_qt_movie *x); 00604 void jit_qt_movie_dispose_gworld(t_jit_qt_movie *x); 00605 void jit_qt_movie_spin(ulong *state, long time); 00606 void jit_qt_movie_loadram_completion(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00607 Boolean jit_qt_movie_clear_mcalc(t_jit_qt_movie *x, void *matrix, long clear); 00608 pascal OSErr jit_qt_movie_actions(void *refcon, Track track, long trefcon, QTEventRecordPtr event); 00609 00610 void jit_qt_movie_unloadram_clockfn(t_jit_qt_movie *x); 00611 Boolean jit_qt_movie_window_set(t_jit_qt_movie *x); 00612 pascal Boolean MyMCActionFilterProc(MovieController mc, short action, void *params, long refcon); 00613 long jit_qt_movie_edittime_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00614 void jit_qt_movie_edittime_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00615 void jit_qt_movie_soc_sfplay_setcues(t_jit_qt_movie *x); 00616 void jit_qt_movie_movierate_set(t_jit_qt_movie *x, Movie m, double rate); 00617 void jit_qt_movie_soc_sfplay_setrate(t_jit_qt_movie *x); 00618 void jit_qt_movie_soc_rate_set(t_jit_qt_movie *x, double rate); 00619 void jit_qt_movie_callback_setup(t_jit_qt_movie *x, QTCallBack cb, Boolean force); 00620 00621 // jit.qt.movie.threading.c 00622 void jit_qt_movie_addmethod(char *c, void *m); 00623 void jit_qt_movie_addattr(void *attr, void *m); 00624 void jit_qt_movie_quittask(void); 00625 long jit_qt_movie_worker(t_jit_qt_movie *x); 00626 void jit_qt_movie_freefn(t_jit_qt_movie *x); 00627 void jit_qt_movie_threadstate(t_jit_qt_movie *x, ulong flag, Boolean add); 00628 ulong jit_qt_movie_threadstate_get(t_jit_qt_movie *x, ulong mask); 00629 t_jit_err jit_qt_movie_attr_typed(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00630 t_jit_err jit_qt_movie_proxy_attr(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00631 t_jit_err jit_qt_movie_proxy_attr_front(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00632 t_jit_err jit_qt_movie_method_typed(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00633 t_jit_err jit_qt_movie_proxy_method(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00634 t_jit_err jit_qt_movie_proxy_method_front(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00635 void jit_qt_movie_proxy_free(t_jit_qt_movie *x); 00636 void jit_qt_movie_asynchrequestqueue(t_jit_qt_movie *x); 00637 void jit_systhread_exit(long status); 00638 00639 // jit.qt.movie.js.c 00640 void jit_qt_movie_init_js(void *c); 00641 t_jit_err jit_qt_movie_read_typed(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00642 t_jit_err jit_qt_movie_write_typed(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00643 t_jit_err jit_qt_movie_import_typed(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00644 00645 // jit.qt.movie.export.c 00646 void jit_qt_movie_init_export(void *c); 00647 t_jit_err jit_qt_movie_savemovie(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00648 void jit_qt_movie_flatten_post(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00649 void jit_qt_movie_flatten_do(t_thread_flatten_info *ti); 00650 void jit_qt_movie_flatten(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00651 long jit_qt_movie_flatten_tempfile(Handle *flat, Handle old); 00652 void jit_qt_movie_codec_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00653 void jit_qt_movie_codecquality_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00654 void jit_qt_movie_acodec_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00655 t_jit_err jit_qt_movie_exporterlist_get(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00656 void jit_qt_movie_exporter_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00657 void jit_qt_movie_exportsettings_configure(t_jit_qt_movie *x, QTAtomContainer qtac, CodecType vcodec, CodecType acodec); 00658 t_jit_err jit_qt_movie_exportsettings(t_jit_qt_movie *x); 00659 void jit_qt_movie_doexportfile(t_thread_exportfile_info *ti); 00660 void jit_qt_movie_exportfile(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00661 t_jit_err jit_qt_movie_matrix_to_image(t_jit_qt_movie *x, void *o, short ac, t_atom *av, t_graphic_exportsettings *gs); 00662 t_jit_err jit_qt_movie_exportimagesettings(t_jit_qt_movie *x); 00663 t_jit_err jit_qt_movie_exportimage(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00664 00665 // jit.qt.movie.tracksupport.c 00666 void jit_qt_movie_init_tracksupport(void *c); 00667 t_jit_err jit_qt_movie_tracksupport_typed(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00668 void jit_qt_movie_track_anything(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00669 t_jit_err jit_qt_movie_trackcount_get(t_jit_qt_movie *x, t_atom *rv); 00670 t_jit_err jit_qt_movie_trackinfo_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00671 t_jit_err jit_qt_movie_trackid_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00672 t_jit_err jit_qt_movie_trackname_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00673 t_jit_err jit_qt_movie_tracktype_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00674 t_jit_err jit_qt_movie_tracktypecode_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00675 t_jit_err jit_qt_movie_trackenabled_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00676 t_jit_err jit_qt_movie_tracklayer_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00677 t_jit_err jit_qt_movie_trackdim_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00678 t_jit_err jit_qt_movie_trackclip_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00679 t_jit_err jit_qt_movie_trackcodec_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00680 void jit_qt_movie_track_add(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00681 void jit_qt_movie_track_delete(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00682 t_jit_err jit_qt_movie_trackgmode_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00683 t_jit_err jit_qt_movie_trackoffset_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00684 t_jit_err jit_qt_movie_trackduration_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00685 t_jit_err jit_qt_movie_tracktimescale_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00686 00687 t_jit_err jit_qt_movie_trackname_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00688 t_jit_err jit_qt_movie_tracklayer_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00689 t_jit_err jit_qt_movie_trackdim_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00690 t_jit_err jit_qt_movie_trackclip_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00691 t_jit_err jit_qt_movie_trackenabled_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00692 t_jit_err jit_qt_movie_trackgmode_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00693 t_jit_err jit_qt_movie_trackopcolor_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00694 t_jit_err jit_qt_movie_trackoffset_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00695 t_jit_err jit_qt_movie_tracktimescale_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00696 00697 // jit.qt.movie.editing.c 00698 void jit_qt_movie_init_editing(void *c); 00699 void jit_qt_movie_undo(t_jit_qt_movie *x); 00700 void jit_qt_movie_inoutpoints_validate(long *in, long *out, long min, long max); 00701 void jit_qt_movie_loop_reset(t_jit_qt_movie *x); 00702 void jit_qt_movie_copy(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00703 void jit_qt_movie_trim(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00704 void jit_qt_movie_cut(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00705 void jit_qt_movie_scale(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00706 void jit_qt_movie_tighten(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00707 void jit_qt_movie_insert(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00708 void jit_qt_movie_xpend(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00709 void jit_qt_movie_mxform(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00710 00711 long jit_qt_movie_tempmovie_read(t_jit_qt_movie *x, t_symbol *name); 00712 OSErr jit_qt_movie_tempmovie_open(t_jit_qt_movie *x, short vol, char *name); 00713 long jit_qt_movie_tempmovie_close(t_jit_qt_movie *x); 00714 00715 void jit_qt_movie_copytrack(t_jit_qt_movie *x, long t_from, long t_to); 00716 void jit_qt_movie_inserttrack(t_jit_qt_movie *x, long t_from, long in_from, long out_from, long t_to, long in_to, long out_to); 00717 void jit_qt_movie_pastetrack(t_jit_qt_movie *x, long t_from, long in_from, long out_from, long t_to, long in_to, long out_to); 00718 void jit_qt_movie_trimtrack(t_jit_qt_movie *x, long t_from, long in_from, long out_from, long flag); 00719 void jit_qt_movie_cuttrack(t_jit_qt_movie *x, long t_from, long in_from, long out_from, long flag); 00720 void jit_qt_movie_scaletrack(t_jit_qt_movie *x, long t_from, long in_from, long out_from, long out_to); 00721 void jit_qt_movie_prependtrack(t_jit_qt_movie *x, long t_from, long in_from, long out_from, long t_to); 00722 void jit_qt_movie_appendtrack(t_jit_qt_movie *x, long t_from, long in_from, long out_from, long t_to); 00723 void jit_qt_movie_trackmatrix(t_jit_qt_movie *x, long idx, float *mx); 00724 t_jit_err jit_qt_movie_trackduration_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00725 void jit_qt_movie_tightentrack(t_jit_qt_movie *x, long idx); 00726 00727 void jit_qt_movie_copymovie(t_jit_qt_movie *x); 00728 void jit_qt_movie_insertmovie(t_jit_qt_movie *x, long in_from, long out_from, long in_to, long out_to); 00729 void jit_qt_movie_pastemovie(t_jit_qt_movie *x, long in_from, long out_from, long in_to, long out_to); 00730 void jit_qt_movie_trimmovie(t_jit_qt_movie *x, long in_from, long out_from, long flag); 00731 void jit_qt_movie_cutmovie(t_jit_qt_movie *x, long in_from, long out_from, long flag); 00732 void jit_qt_movie_scalemovie(t_jit_qt_movie *x, long in_from, long out_from, long out_to); 00733 void jit_qt_movie_prependmovie(t_jit_qt_movie *x, long in_from, long out_from); 00734 void jit_qt_movie_appendmovie(t_jit_qt_movie *x, long in_from, long out_from); 00735 void jit_qt_movie_moviematrix(t_jit_qt_movie *x, float *mx); 00736 void jit_qt_movie_tightenmovie(t_jit_qt_movie *x); 00737 00738 long jit_qt_movie_duration_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00739 void jit_qt_movie_duration_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00740 t_jit_err jit_qt_movie_editduration_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00741 void jit_qt_movie_editduration_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00742 00743 // jit.qt.movie.scrap.c 00744 void jit_qt_movie_init_scrap(void *c); 00745 void jit_qt_movie_toscrap(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00746 void jit_qt_movie_toscrapmovie(t_jit_qt_movie *x, long in_from, long out_from); 00747 void jit_qt_movie_toscraptrack(t_jit_qt_movie *x, long t_from, long in_from, long out_from); 00748 long jit_qt_movie_tempscrap_open(t_jit_qt_movie *x); 00749 void jit_qt_movie_tempscrap_cleanup(t_jit_qt_movie *x); 00750 00751 // jit.qt.movie.url.c 00752 void jit_qt_movie_init_url(void *c); 00753 long jit_qt_movie_checkurl(t_symbol *s); 00754 long jit_qt_movie_tempurl_open(t_jit_qt_movie *x, t_symbol *sname); 00755 00756 // jit.qt.movie.voc.c 00757 void jit_qt_movie_init_voc(void *c); 00758 long getvoccount(void); 00759 void jit_qt_movie_mode(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00760 void jit_qt_movie_movie_reset(t_jit_qt_movie *x); 00761 void jit_qt_movie_voc_close(t_jit_qt_movie *x); 00762 void jit_qt_movie_prep_output(t_jit_qt_movie *x); 00763 ComponentInstance jit_qt_movie_lookup_soc(t_jit_qt_movie *x); 00764 void jit_qt_movie_soc(t_jit_qt_movie *x, t_jit_object *attr, long ac, t_atom *av); 00765 t_jit_err jit_qt_movie_soc_get(t_jit_qt_movie *x, t_jit_object *attr, long *ac, t_atom **av); 00766 void jit_qt_movie_voc_open(t_jit_qt_movie *x); 00767 void jit_qt_movie_voc(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00768 void jit_qt_movie_vocmode(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00769 long getvocmodecount(t_jit_qt_movie *x); 00770 t_jit_err jit_qt_movie_vocmodes_get(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00771 t_jit_err jit_qt_movie_voclist_get(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00772 t_jit_err SetSoundDevice( t_jit_qt_movie *x ); 00773 // spigot~ 00774 typedef OSStatus (*MovieAudioExtractionBeginPtr)(Movie, UInt32, MovieAudioExtractionRef *); 00775 typedef OSStatus (*MovieAudioExtractionEndPtr)(MovieAudioExtractionRef); 00776 typedef OSStatus (*MovieAudioExtractionFillBufferPtr)(MovieAudioExtractionRef, UInt32 *, AudioBufferList *, UInt32 *); 00777 typedef OSStatus (*MovieAudioExtractionGetPropertyPtr)(MovieAudioExtractionRef, QTPropertyClass, QTPropertyID, ByteCount, QTPropertyValuePtr, ByteCount *); 00778 typedef OSStatus (*MovieAudioExtractionGetPropertyInfoPtr)(MovieAudioExtractionRef, QTPropertyClass, QTPropertyID, QTPropertyValueType *, ByteCount *, UInt32 *); 00779 typedef OSStatus (*MovieAudioExtractionSetPropertyPtr)(MovieAudioExtractionRef, QTPropertyClass, QTPropertyID, ByteCount, ConstQTPropertyValuePtr); 00780 00781 extern MovieAudioExtractionBeginPtr mMovieAudioExtractionBegin; 00782 extern MovieAudioExtractionEndPtr mMovieAudioExtractionEnd; 00783 extern MovieAudioExtractionFillBufferPtr mMovieAudioExtractionFillBuffer; 00784 extern MovieAudioExtractionGetPropertyPtr mMovieAudioExtractionGetProperty; 00785 extern MovieAudioExtractionGetPropertyInfoPtr mMovieAudioExtractionGetPropertyInfo; 00786 extern MovieAudioExtractionSetPropertyPtr mMovieAudioExtractionSetProperty; 00787 00788 void jit_qt_movie_soc_audio_extract(t_jit_qt_movie *x); 00789 void jit_qt_movie_soc_audio_extract_stop(t_jit_qt_movie *x, Boolean abort); 00790 void jit_qt_movie_export_audio(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00791 void jit_qt_movie_dsp_setup(t_jit_qt_movie *x, t_signal **sp, short *count); 00792 void jit_qt_movie_soc_sfplay_init(t_jit_qt_movie *x); 00793 void jit_qt_movie_soc_send_init(t_jit_qt_movie *x); 00794 void jit_qt_movie_soc_sfplay_clock_enable(t_jit_qt_movie *x); 00795 void jit_qt_movie_soc_sfplay_clock_disable(t_jit_qt_movie *x, Boolean cueend); 00796 void jit_qt_movie_soc_give2sfplay(t_jit_qt_movie *x, t_symbol *s); 00797 int ilog2(int n); 00798 void signal_freevector(t_signal *s); 00799 void signal_allocvector(t_signal *s, long n); 00800 t_signal *jit_qt_movie_signal_new(long sr, long sn); 00801 void jit_qt_movie_signal_free(t_signal *sig); 00802 void jit_qt_movie_dspstate_notify(t_jit_qt_movie *x, long n); 00803 void jit_qt_movie_soc_sfplay_attach(t_jit_qt_movie *x); 00804 void jit_qt_movie_soc_sfplay_detach(t_jit_qt_movie *x); 00805 t_jit_err jit_qt_movie_soc_register(t_jit_qt_movie *x); 00806 void jit_qt_movie_soc_unregister(t_jit_qt_movie *x); 00807 void jit_qt_movie_do_dspstate_notify(t_jit_qt_movie *x); 00808 00809 // jit.qt.movie.fxbg.c 00810 void jit_qt_movie_init_fxbg(void *c); 00811 void jit_qt_movie_fxtrack_add(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00812 void jit_qt_movie_fxtrack_delete(t_jit_qt_movie *x); 00813 void jit_qt_movie_setup_effectdesc(QTAtomContainer effectdesc, ulong subtype); 00814 OSErr jit_qt_movie_addtrackref(QTAtomContainer theInputMap, Track theTrack, Track theSrcTrack, OSType theSrcName); 00815 long jit_qt_movie_hasfxtrack(Movie movie); 00816 00817 void jit_qt_movie_addbgtrack(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00818 void jit_qt_movie_deletebgtrack(t_jit_qt_movie *x); 00819 00820 // jit.qt.movie.tracksnd.c 00821 void jit_qt_movie_init_tracksnd(void *c); 00822 t_jit_err jit_qt_movie_tracksnd_typed(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00823 t_jit_err jit_qt_movie_trackvol_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00824 t_jit_err jit_qt_movie_trackpan_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00825 t_jit_err jit_qt_movie_trackbass_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00826 t_jit_err jit_qt_movie_tracktreble_get(t_jit_qt_movie *x, long trackid, t_atom *rv); 00827 void jit_qt_movie_tracksnd_anything(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av); 00828 t_jit_err jit_qt_movie_trackvol_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00829 t_jit_err jit_qt_movie_trackpan_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00830 t_jit_err jit_qt_movie_trackbass_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00831 t_jit_err jit_qt_movie_tracktreble_set(t_jit_qt_movie *x, long trackid, long ac, t_atom *av); 00832 00833 // jit.qt.movie.userdata.c 00834 void jit_qt_movie_init_userdata(void *c); 00835 void jit_qt_movie_userdata_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00836 t_jit_err jit_qt_movie_userdata_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00837 00838 // jit.qt.movie.vr.c 00839 void jit_qt_movie_init_vr(void *c); 00840 long jit_qt_movie_vrnode_toinstance(QTVRInstance vri, long node); 00841 t_jit_err jit_qt_movie_vrframes_get(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00842 long jit_qt_movie_vrcorrection_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00843 long jit_qt_movie_vrcorrection_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00844 long jit_qt_movie_vrquality_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00845 long jit_qt_movie_vrquality_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00846 long jit_qt_movie_vrtilt_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00847 long jit_qt_movie_vrtilt_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00848 long jit_qt_movie_vrpan_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00849 long jit_qt_movie_vrpan_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00850 long jit_qt_movie_vrfov_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00851 long jit_qt_movie_vrfov_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00852 t_jit_err jit_qt_movie_vrnodelist_get(t_jit_qt_movie *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); 00853 long jit_qt_movie_vrnode_set(t_jit_qt_movie *x, void *attr, long ac, t_atom *av); 00854 long jit_qt_movie_vrnode_get(t_jit_qt_movie *x, void *attr, long *ac, t_atom **av); 00855 UInt32 QTVRUtils_GetNodeCount (QTVRInstance theInstance); 00856 00857 // jit.qt.movie.flash 00858 void jit_qt_movie_init_flash(); 00859 pascal Boolean jit_qt_movie_mcactionfilter(MovieController mc, short action, void *params, long refCon); 00860 Track jit_qt_movie_isflash(Movie m); 00861 OSErr jit_qt_movie_flash_parsemedia(t_jit_qt_movie *x, Media media); 00862 OSErr jit_qt_movie_flash_getchars(Media media, Boolean *autoplay, Boolean *fullscreen, Boolean *looping); 00863 void jit_qt_movie_flash_ll_clear(t_jit_qt_movie *x); 00864 pascal void jit_qt_movie_flash_cb(QTCallBack cb, long refcon); 00865 void jit_qt_movie_flash_disposecallback(t_jit_qt_movie *x); 00866 void jit_qt_movie_flash_charlist_delete(t_jit_qt_movie *x); 00867 void jit_qt_movie_flash_forceparse(t_jit_qt_movie *x); 00868 00869 #define SPIGOTTED ( qt7 && \ 00870 x->sfplay && \ 00871 x->sfplay_file != _jit_sym_nothing) 00872 00873 #endif //__JIT_QT_MOVIE_H__
Copyright © 2008, Cycling '74