annotate DOCS/tech/vop.txt @ 6020:4268e95daa14

lavc args
author arpi
date Wed, 08 May 2002 22:13:05 +0000
parents 0aa2d199088d
children 58cdca500147
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
1 VideoOutPlugins - Video Filters
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
2 ===============
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
3
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
4 video filters are plugin-like code modules implementing the interface
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
5 defined in vf.h
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
6
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
7 basically it means video output manipulation, ie. these plugins can
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
8 modify the image and the image properties (size, colorspace etc) between
5695
35061a07a78f typo fix
arpi
parents: 5693
diff changeset
9 the video decoders (vd.h) and output layer (libvo or video encoders)
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
10
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
11 the actual API is a mixture of the video decoder (vd.h) and libvo
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
12 (video_out.h) APIs.
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
13
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
14 the main differences:
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
15 - vf plugins may be "loaded" multiple times, with different parameters
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
16 and context - it's new in mplayer, old APIs weren't reentrant
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
17 - vf plugins don't have to implement all functions - all funcs has
5695
35061a07a78f typo fix
arpi
parents: 5693
diff changeset
18 'fallback' version, so the plugins only override these if want
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
19 - each vf plugin has its own get_image context, and they can interchange
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
20 images/buffers using these get_image/put_image calls.
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
21
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
22 API details:
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
23 -- TO DO -- (see vf.h fpr API and vf_*.c for examples)
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
24
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
25 Current plugins:
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
26 ================
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
27
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
28 -vop crop[=w:h:x:y]
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
29 Simple cropping plugin.
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
30 w,h (cropped width,height) defaults to original width,height
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
31 x,y (position of cropped subimage on the original image) defaults to center
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
32 MPI: EXPORT only, using stride manipulation
5695
35061a07a78f typo fix
arpi
parents: 5693
diff changeset
33
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
34 -vop expand[=w:h:x:y:o]
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
35 Expanding _and_ (optional) OSD rendering plugin.
6004
0aa2d199088d updated
arpi
parents: 5905
diff changeset
36 w,h (expanded width,height) defaults (-1) to original width,height
0aa2d199088d updated
arpi
parents: 5905
diff changeset
37 x,y (position of original image on the expanded image) defaults (-1) to center
0aa2d199088d updated
arpi
parents: 5905
diff changeset
38 o (0=disable/1=enable SUB/OSD rendering) defaults (0) to disabled
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
39 MPI: DR (if possible) or copy
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
40 Special: mpcodecs core uses it to solve stride restrictions between filters
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
41 mencoder uses (autoload) it to render SUB/OSD
5695
35061a07a78f typo fix
arpi
parents: 5693
diff changeset
42
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
43 -vop flip
5905
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
44 Flips image upside-down (vertical mirroring)
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
45 No parameters.
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
46 MPI: DR (if possible) or EXPORT, using stride manipulation
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
47 Special: dec_video autoloads it when flipping is required and libvo can't do
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
48
5905
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
49 -vop mirror
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
50 Horizontal mirroring
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
51 No parameters.
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
52 MPI: TEMP
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
53
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
54 -vop rotate[=x]
5697
d1c22e7fe9fc rotate added
arpi
parents: 5695
diff changeset
55 Rotate image +/- 90 degrees
5905
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
56 Optional 'x' parameter (0..3) controls horizontal and vertical mirroring
5697
d1c22e7fe9fc rotate added
arpi
parents: 5695
diff changeset
57 MPI: TEMP
d1c22e7fe9fc rotate added
arpi
parents: 5695
diff changeset
58
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
59 -vop scale[=w:h]
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
60 Software scaling (zoom) _and_ yuv<->rgb colorspace conversion
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
61 w,h (new width/height after scaling) defaults to original width,height
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
62 note: if -zoom is used, and underlaying filters (including libvo)
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
63 uncapable of scaling, then it defaults to d_width/d_height !
6004
0aa2d199088d updated
arpi
parents: 5905
diff changeset
64 note 2: w/h values -1 means original width/height, 0 means scaled
0aa2d199088d updated
arpi
parents: 5905
diff changeset
65 d_width/d_height
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
66 MPI: TEMP, accepts stride
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
67 Special: dec_video and mpcodecs core autoloads it for colorspace conv.
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
68
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
69 -vop yuy2
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
70 Forced software YV12/I420 -> YUY2 conversion
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
71 (usefull for video cards/drivers with slow YV12 but fast YUY2 support)
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
72 MPI: TEMP, accepts stride
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
73
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
74 -vop rgb2bgr[=swap]
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
75 RGB 24/32 <-> BGR 24/32 colorspace conversion (default) or
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
76 RGB 24/32 <-> RGB 24/32 conversion with R<->B swapping ('swap' option)
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
77 MPI: TEMP, accepts stride
5905
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
78
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
79 -vop palette
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
80 RGB/BGR 8 -> RGB/BGR 15/16/24/32 colorspace conversion using palette
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
81 MPI: TEMP, accepts stride
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
82
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
83 -vop format[=fourcc]
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
84 _restrict_ the list of supported colorspaces (query-format()) to a single,
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
85 given fourcc. The 'fourcc' option defaults to 'yuy2', but may be any
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
86 format name, like rgb15, bgr24, yv12 etc...
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
87 note again, it does NOT do any conversion, it just limits the _next_
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
88 plugins format list.
6004
0aa2d199088d updated
arpi
parents: 5905
diff changeset
89 MPI: passthru
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
90
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
91 -vop pp[=flags]
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
92 Postprocessing filter. (usefull for codecs without built-in
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
93 postprocessing, like libmpeg12 or libavcodec)
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
94 Flags is a bitmask set of enabled filters (see manpage for -pp details),
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
95 defaults to the value of divx_quality (set by -pp commandline option)
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
96 MPI: DR (if possible) or TEMP
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
97 Special: dec_video autoloads it if -pp option used but codec can't do pp.
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
98
6020
4268e95daa14 lavc args
arpi
parents: 6004
diff changeset
99 -vop lavc[=quality:fps]
5905
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
100 Fast software YV12->MPEG1 conversion, usefull for dxr3/dvb drivers
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
101 It uses libavcodec. Currently faster and better quality than -vop fame!
6020
4268e95daa14 lavc args
arpi
parents: 6004
diff changeset
102 Param quality: fixed qscale (1<=quality<32) or bitrate (32<=quality KBits)
4268e95daa14 lavc args
arpi
parents: 6004
diff changeset
103 Param fps: force output fps (float value). If not give, or 0, it's
4268e95daa14 lavc args
arpi
parents: 6004
diff changeset
104 autodetected based on height (240,480->29.97fps, others -> 25fps)
5905
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
105 MPI: EXPORT special
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
106
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
107 -vop fame
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
108 Fast software YV12->MPEG1 conversion, usefull for dxr3/dvb drivers
5905
1edc3e2b74d3 updated
arpi
parents: 5697
diff changeset
109 It uses libfame.
5693
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
110 MPI: EXPORT special
8efe3a4135b4 video filters docs
arpi
parents:
diff changeset
111
6004
0aa2d199088d updated
arpi
parents: 5905
diff changeset
112 -vop dvbscale[=aspect]
0aa2d199088d updated
arpi
parents: 5905
diff changeset
113 Setup scaling to the optimal values for the DVB card.
0aa2d199088d updated
arpi
parents: 5905
diff changeset
114 (use HW for X-scaling, calc sw Y scaling to keep aspect)
0aa2d199088d updated
arpi
parents: 5905
diff changeset
115 The 'aspect' parameter controls aspect ratio, it should be calculated
0aa2d199088d updated
arpi
parents: 5905
diff changeset
116 as aspect=DVB_HEIGHT*ASPECTRATIO, default is 576*(4/3)=768
0aa2d199088d updated
arpi
parents: 5905
diff changeset
117 (for 16:9 TV set it to 576*(16/9)=1024)
0aa2d199088d updated
arpi
parents: 5905
diff changeset
118 It's only usefull togethwer with expand+scale:
0aa2d199088d updated
arpi
parents: 5905
diff changeset
119 -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale
0aa2d199088d updated
arpi
parents: 5905
diff changeset
120 MPI: passthru
0aa2d199088d updated
arpi
parents: 5905
diff changeset
121
0aa2d199088d updated
arpi
parents: 5905
diff changeset
122