[MPlayer-dev-eng] Patch: virtualdub plugin
Fredrik Kuivinen
freku045 at student.liu.se
Sun Jun 9 10:18:35 CEST 2002
Hi
Here is a new version of my virtualdub plugin patch (better late than
never :P). I have tested it with a few simple filters and they work.
This one uses the video filter layer to do its work.
Problems/issues:
* Most of the virtualdub filters (all?) uses a GUI to configure the
filter parameters. GUI configuration isn't implemented in this patch I
have a few ideas about how to do it but my knowledge of the w32 API is
quite limited. For now the filter parameters can be changed with the
sylia scripting language.
* My implementation uses a new w32 dll called 'glue.dll' which contains
code to be able to use the virtualdub filters from C (Virtualdub and
its filters are C++). To compile 'glue.dll' a w32 C++ compiler is
required which has the same ABI as VC++. To my knowledge GCC do not
have the same ABI as VC++. Currently 'glue.dll' is compiled with VC++
(in wine :). This is clearly sub-optimal. Alex, did you solve this
without a new dll? If so, how?
To try it:
Download http://www-und.ida.liu.se/~freku045/mplayer/virtualdub-filters.tar.gz
and extract that tarball somewhere.
Extract 'virtualdub-filters-src.tar' in loader/
Patch the tree with 'virtualdub-filters-2.patch'
Run 'make touch' in loader/virtualdub to avoid building the things which
require VC++
Compile mplayer as usual
Copy 'sylia.dll' and 'glue.dll' to /usr/lib/win32 or somewhere where the
w32 loading code finds them.
Download some virtualdub filters
(http://sauron.mordor.net/dgraft/rgb10.zip is known to work)
With the RGB filter the command
mplayer -vop "vd=/path/to/virtualdub/filter:Config(100;0;0)" file.foo
will produce a more red picture than the movie had. If mplayer aborts
with an assertion failure try to insert 'scale' before and after the
'vd' filter. "Config(100;0;0)" is the sylia scripting stuff which will
set the parameters of the filters. ',' is usually used to separate
arguments to functions in sylia I have changed this to ';' because
mplayer uses ',' as a separator between different filters.
This is obviously not ready for CVS yet.
/ Fredrik
More information about the MPlayer-dev-eng
mailing list