5693
|
1 VideoOutPlugins - Video Filters
|
|
2 ===============
|
|
3
|
|
4 video filters are plugin-like code modules implementing the interface
|
|
5 defined in vf.h
|
|
6
|
|
7 basically it means video output manipulation, ie. these plugins can
|
|
8 modify the image and the image properties (size, colorspace etc) between
|
5695
|
9 the video decoders (vd.h) and output layer (libvo or video encoders)
|
5693
|
10
|
|
11 the actual API is a mixture of the video decoder (vd.h) and libvo
|
|
12 (video_out.h) APIs.
|
|
13
|
|
14 the main differences:
|
|
15 - vf plugins may be "loaded" multiple times, with different parameters
|
|
16 and context - it's new in mplayer, old APIs weren't reentrant
|
|
17 - vf plugins don't have to implement all functions - all funcs has
|
5695
|
18 'fallback' version, so the plugins only override these if want
|
5693
|
19 - each vf plugin has its own get_image context, and they can interchange
|
|
20 images/buffers using these get_image/put_image calls.
|
|
21
|
|
22 API details:
|
|
23 -- TO DO -- (see vf.h fpr API and vf_*.c for examples)
|
|
24
|
|
25 Current plugins:
|
|
26 ================
|
|
27
|
|
28 -vop crop[=w:h:x:y]
|
|
29 Simple cropping plugin.
|
|
30 w,h (cropped width,height) defaults to original width,height
|
|
31 x,y (position of cropped subimage on the original image) defaults to center
|
|
32 MPI: EXPORT only, using stride manipulation
|
5695
|
33
|
5693
|
34 -vop expand[=w:h:x:y:o]
|
|
35 Expanding _and_ (optional) OSD rendering plugin.
|
6004
|
36 w,h (expanded width,height) defaults (-1) to original width,height
|
|
37 x,y (position of original image on the expanded image) defaults (-1) to center
|
|
38 o (0=disable/1=enable SUB/OSD rendering) defaults (0) to disabled
|
5693
|
39 MPI: DR (if possible) or copy
|
|
40 Special: mpcodecs core uses it to solve stride restrictions between filters
|
|
41 mencoder uses (autoload) it to render SUB/OSD
|
5695
|
42
|
5693
|
43 -vop flip
|
5905
|
44 Flips image upside-down (vertical mirroring)
|
5693
|
45 No parameters.
|
|
46 MPI: DR (if possible) or EXPORT, using stride manipulation
|
|
47 Special: dec_video autoloads it when flipping is required and libvo can't do
|
|
48
|
5905
|
49 -vop mirror
|
|
50 Horizontal mirroring
|
|
51 No parameters.
|
|
52 MPI: TEMP
|
|
53
|
6821
|
54 -vop rectangle[=w:h:x:y]
|
|
55 Draw a rectangle. Useful for testing crop plugin parameters.
|
|
56 w,h (rectangle's width and height) defaults (-1) to maximum
|
|
57 possible width while keeping the boundaries visible.
|
|
58 x,y (rectangle's top left corner position) defauts (-1) to upper
|
|
59 left most position.
|
|
60 MPI: TEMP
|
|
61
|
5905
|
62 -vop rotate[=x]
|
5697
|
63 Rotate image +/- 90 degrees
|
5905
|
64 Optional 'x' parameter (0..3) controls horizontal and vertical mirroring
|
5697
|
65 MPI: TEMP
|
|
66
|
6638
|
67 -vop scale[=w:h[:c[:p]]]
|
5693
|
68 Software scaling (zoom) _and_ yuv<->rgb colorspace conversion
|
|
69 w,h (new width/height after scaling) defaults to original width,height
|
|
70 note: if -zoom is used, and underlaying filters (including libvo)
|
|
71 uncapable of scaling, then it defaults to d_width/d_height !
|
6004
|
72 note 2: w/h values -1 means original width/height, 0 means scaled
|
6127
|
73 d_width/d_height. -2/-3 means calculating w or h using the other
|
|
74 dimension and the original (-3) or prescaled (-2) aspect ratio.
|
6638
|
75 c chroma skipping
|
|
76 0 -> use all available input lines for chroma
|
|
77 1 -> use only every 2. input line for chroma
|
|
78 2 -> use only every 4. input line for chroma
|
|
79 3 -> use only every 8. input line for chroma
|
|
80 p scaling parameter (depends upon the used scaling method)
|
|
81 for -sws 2 (bicubic) its sharpness (0 (soft) - 100 (sharp))
|
|
82 for -sws 7 (gaussian) its sharpness (0 (soft) - 100 (sharp))
|
|
83 for -sws 9 (lanczos) its filter length (1 - 10)
|
5693
|
84 MPI: TEMP, accepts stride
|
|
85 Special: dec_video and mpcodecs core autoloads it for colorspace conv.
|
|
86
|
|
87 -vop yuy2
|
|
88 Forced software YV12/I420 -> YUY2 conversion
|
|
89 (usefull for video cards/drivers with slow YV12 but fast YUY2 support)
|
|
90 MPI: TEMP, accepts stride
|
|
91
|
|
92 -vop rgb2bgr[=swap]
|
|
93 RGB 24/32 <-> BGR 24/32 colorspace conversion (default) or
|
|
94 RGB 24/32 <-> RGB 24/32 conversion with R<->B swapping ('swap' option)
|
|
95 MPI: TEMP, accepts stride
|
5905
|
96
|
|
97 -vop palette
|
|
98 RGB/BGR 8 -> RGB/BGR 15/16/24/32 colorspace conversion using palette
|
|
99 MPI: TEMP, accepts stride
|
5693
|
100
|
|
101 -vop format[=fourcc]
|
|
102 _restrict_ the list of supported colorspaces (query-format()) to a single,
|
|
103 given fourcc. The 'fourcc' option defaults to 'yuy2', but may be any
|
|
104 format name, like rgb15, bgr24, yv12 etc...
|
|
105 note again, it does NOT do any conversion, it just limits the _next_
|
|
106 plugins format list.
|
6004
|
107 MPI: passthru
|
5693
|
108
|
|
109 -vop pp[=flags]
|
|
110 Postprocessing filter. (usefull for codecs without built-in
|
|
111 postprocessing, like libmpeg12 or libavcodec)
|
|
112 Flags is a bitmask set of enabled filters (see manpage for -pp details),
|
|
113 defaults to the value of divx_quality (set by -pp commandline option)
|
|
114 MPI: DR (if possible) or TEMP
|
|
115 Special: dec_video autoloads it if -pp option used but codec can't do pp.
|
|
116
|
6020
|
117 -vop lavc[=quality:fps]
|
5905
|
118 Fast software YV12->MPEG1 conversion, usefull for dxr3/dvb drivers
|
|
119 It uses libavcodec. Currently faster and better quality than -vop fame!
|
6020
|
120 Param quality: fixed qscale (1<=quality<32) or bitrate (32<=quality KBits)
|
|
121 Param fps: force output fps (float value). If not give, or 0, it's
|
|
122 autodetected based on height (240,480->29.97fps, others -> 25fps)
|
5905
|
123 MPI: EXPORT special
|
|
124
|
5693
|
125 -vop fame
|
|
126 Fast software YV12->MPEG1 conversion, usefull for dxr3/dvb drivers
|
5905
|
127 It uses libfame.
|
5693
|
128 MPI: EXPORT special
|
|
129
|
6004
|
130 -vop dvbscale[=aspect]
|
|
131 Setup scaling to the optimal values for the DVB card.
|
|
132 (use HW for X-scaling, calc sw Y scaling to keep aspect)
|
|
133 The 'aspect' parameter controls aspect ratio, it should be calculated
|
|
134 as aspect=DVB_HEIGHT*ASPECTRATIO, default is 576*(4/3)=768
|
|
135 (for 16:9 TV set it to 576*(16/9)=1024)
|
6062
|
136 It's only usefull together with expand+scale:
|
6004
|
137 -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale
|
|
138 MPI: passthru
|
|
139
|
6808
|
140 -vop cropdetect[=limit]
|
6062
|
141 It's a special filter, it doesn't alter the image itself, but detects
|
|
142 (using some kind of heuristics) the black borders/bands of the image,
|
|
143 and prints the optimal -vop crop= parameters to the stdout/console.
|
6808
|
144 It calculates the average value of pixel luminances for a line, and
|
|
145 depending on the result it's either black band (result<=limit) or
|
|
146 picture (result>limit). Optional parameter 'limit' defaults to 24.
|
6062
|
147 MPI: EXPORT
|
6449
|
148
|
6426
|
149 -vop test[=first frame number]
|
|
150 generate various test patterns
|
|
151 MPI: TEMP, accepts stride
|
|
152
|
6449
|
153 -vop noise[=lumaNoise[u][t][h]:chromaNoise[u][t][h]
|
6426
|
154 add noise
|
|
155 0<= lumaNoise, chromaNoise <=100
|
|
156 u uniform noise (gaussian otherwise)
|
|
157 t temporal noise (noise pattern changes between frames)
|
6449
|
158 h high quality (slightly better looking, slightly slower)
|
|
159 MPI: DR (if possible) or TEMP, accepts stride
|
6426
|
160
|