[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