<string> depends on the filter, but mostly nowadays it is an optstr argument (see src/optstr.h:optstr_get())
tcmodinfo -s FILEto connect.
After each command, the server will write an OK or FAILED back to the client, depending of the success of the requested action.
The first line is
special, it contains various meta data about the filter.
Syntax:
name, comment, version, author, Capabilities, Frames needed
Capabilities:
"V": Can do Video
"A": Can do Audio
"R": Can do RGB
"Y": Can do YUV
"4": Can do YUV422
"M": Can do Multiple Instances
"E": Is a PRE filter
"O": Is a POST filter
Valid examples:
"VR" : Video and RGB
"VRY" : Video and YUV and RGB
Example:
"filter_foo.so", "comment", "0.1", "no@one", "VRY", "1"
All other lines describe one paramter per line. The output will be in CSV
Syntax:
name, comment, fmt, val, (...)
Example:
"radius", "Search radius", "%d", "8", "8", "24"
name: The name of the parameter (eg "radius")
comment: A short description (eg "Search radius")
fmt: A printf style parse string (eg "%d")
val: Current value (eg "8")
(...): Always pairs: Legal values for the parameter
(eg "8", "24" -- meaning, the radius parameter is valid
from 8 to 24)
More examples:
"pos", "Position (0-width x 0-height)", "%dx%d", "0x0", "0", "width", "0", "height"
"%dx%d" is interesting, because this parameter takes two values in this format
so we must supply two ranges (one for each parameter), when this
param is valid ("0", "width", "0", "height")
"flip", "Mirror image", "", "0"
This is a boolean, defaults to false. A boolean has no
argument, eg "filter_foo=flip"
Example of the filter_yuvdenoiser.so
START
"filter_yuvdenoise.so", "mjpegs YUV denoiser", "v0.1.0 (2002-08-28)", "Stefan Fendt, Tilmann Bitterberg", "VY", "3"
"radius", "Search radius", "%d", "8", "8", "24"
"threshold", "Denoiser threshold", "%d", "5", "0", "255"
"pp_threshold", "Pass II threshold", "%d", "4", "0", "255"
"delay", "Average 'n' frames for a time-lowpassed pixel", "%d", "3", "1", "255"
"postprocess", "Filter internal postprocessing", "%d", "1", "0", "1"
"luma_contrast", "Luminance contrast in percent", "%d", "100", "0", "255"
"chroma_contrast", "Chrominance contrast in percent.", "%d", "100", "0", "255"
"sharpen", "Sharpness in percent", "%d", "125", "0", "255"
"deinterlace", "Force deinterlacing", "%d", "0", "0", "1"
"mode", "[0]: Progressive [1]: Interlaced [2]: Fast", "%d", "0", "0", "2"
"scene_thres", "Blocks where motion estimation should fail before scenechange", "%d%%", "50", "0", "100"
"block_thres", "Every SAD value greater than this will be considered bad", "%d", "1024", "0", "-1"
"do_reset", "Reset the filter for `n' frames after a scene", "%d", "2", "0", "oo"
"increment_cr", "Increment Cr with constant", "%d", "2", "-128", "127"
"increment_cb", "Increment Cb with constant", "%d", "2", "-128", "127"
"border", "Active image area", "%dx%d-%dx%d", "0x0-32x32", "0", "W", "0", "H", "0", "W", "0", "H"
END
/* vim: sw=2 tw=64
*/