Processing order
The order in which frames and plug-ins are processed with transcode 0.6.X is as follows. There are 7 (A-G) processing slots available. Slots A, D and G are reserved for internal use only. External user contributed plug-ins hook to slots B and C for pre-processing, or E and F for post-processing. At each of these slots, transcode calls all plug-ins given with option -J from left to right. A single plug-in can therefore run code in all 4 slots, if necessary. Only single-threaded slots B and F allow for frame processing in correct display order. The number of threads created to process the frames is controlled by the second option of "-u".
- (A) pre-processing (internal, fixed order, video only, single-threaded)
- Ex: --pre_clip (-j)
- (B) pre-processing (plug-ins, user defined order, single-threaded)
-
- Flag set: TC_PRE_S_PROCESS
- Example: -J extsub, astat
- (C) pre-processing (plug-ins, user defined order, multi-threaded)
-
- Flag set: TC_PRE_M_PROCESS
- Example: -J mask
- (D) main processing (internal, fixed order, multi-threaded)
-
- Internal order: -j -I -X -B -Z -Y -r -z -l -k -K -G -C (executed from left to right)
- (E) post-processing (plug-ins, user defined order, multi-threaded)
-
- Flag set: TC_POST_M_PROCESS
- (F) post-processing (plug-ins, user defined order, single-threaded)
-
- Flag set: TC_POST_S_PROCESS
- Example: -J extsub=0:0:0:0:1,preview
- (G) post-processing (internal, fixed order, video only, single-threaded)
-
- Example: --post_clip (-Y)