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)
-j -I -X -B -Z -Y -r -z -l -k -K -G -C
| | | | | | | | | | | | |
| | | | | | | | | | | | *-enable anti-aliasing mode
| | | | | | | | | | | *----gamma correction
| | | | | | | | | | *-------enable b/w mode
| | | | | | | | | *----------swap red/blue (Cb/Cr) in video frame
| | | | | | | | *-------------mirror video frame
| | | | | | | *----------------flip video frame upside down
| | | | | | *-------------------reduce video height/width by n[,m]
| | | | | *----------------------select (encoder) frame region by clipping border
| | | | *-------------------------resize to w columns, h rows with filtering
| | | *----------------------------resize to height-n*M rows [,width-m*M] columns
| | *-------------------------------resize to height+n*M rows [,width+m*M] columns
| *----------------------------------enable de-interlacing mode
*-------------------------------------select frame region by clipping border
- (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)