Why does DirectX filter registration fail for the Video and Image Processing Blockset 1.0 (R14+) and the Signal Processing Blockset 6.1 (R14SP2)?

2 views (last 30 days)
My DirectX filter registration is failing. It looks like the following MATLAB file
$MATLABROOT/toolbox/vipblks/vipblks/prefspanel.m
registers the DirectX filters MatlabDataSink and MatlabDataSource via a DOS call to regsvr32. The regsvr32 calls fail because I do not have administrator rights. Yet, when the regsvr calls are made from a command window by me (the same, non-administrator user), they succeed.
Additionally, it looks like the following MATLAB file:
$MATLABROOT/toolbox/dspblks/dspblks/prefspanel.m
registers the DirectX filters also via a DOS call to regsvr32.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 5 Aug 2010
As of MATLAB 7.5 (R2007b), it is no longer necessary to register the MatlabDataSource and MatlabDataSink DLLs. If you are using a previous version of MATLAB, it is necessary to perform the actions described in the following paragraphs.
If you are a restricted user, that is, if you are not an Administrator or Power User, the DirectX component registration process fails because you do not possess the necessary system administration privileges. Follow the steps below to work around the problem:
1. If you are running a local installation and you have already installed MATLAB and the Video and Image Processing Blockset on your system, then the DirectX I/O functionality, including the From Multimedia File, To Multimedia File, and To Video Display blocks, should function properly. You can ignore subsequent DirectX component registration warnings at startup.
2. If you are running a network installation, an Administrator or Power User must log in to the system and start MATLAB to perform the necessary DirectX component registration. This process corrects the problem for all users. You can then ignore subsequent DirectX component registration warnings at startup.
3. If you want to deploy to a machine that does not have MATLAB installed, you must follow these steps:
a. Install DirectX 9.0 or greater on the deployment machine.
b. Copy MatlabDataSource.dll and MatlabDataSink.dll files from
$MATLABROOT/toolbox/matlab/audiovideo/private
where $MATLABROOT is the MATLAB root directory on your machine, as returned by typing
matlabroot
at the MATLAB Command Prompt.
and move them to the deployment machine. You can save these files anywhere on the machine, e.g. c:\any_directory.
c. Register the two DLLs using the following command at a DOS prompt:
regsvr32 /s "C:\any_directory\MatlabDataSink.dll"
regsvr32 /s "C:\any_directory\MatlabDataSource.dll"
Note: If you need to register the 32-bit component from 64-bit Windows, you must use the C:\Windows\SysWow64\regsvr32 version of regsvr32.
d. Copy over the Real-Time Workshop executable and any input files that may be needed.
4. If you are still unable to register the filters, your system administrator could try the following:
Through REGINI.EXE, available on Windows server boxes, you are able to set permissions on keys. Enabling the user to have full control of the MatlabDataSource and MatlabDataSink .dll keys is the only way that they will be able to register the filters. This is required, regardless of an administrator logging in and setting the keys.
The following entries are used in an .ini file that REGINI.EXE sources after the keys have been set in the registry.
\Registry\machine\software\classes\CLSID\{MATLAB_DATA_SOURCE}\InprocServer32 [1 5 12 17 21]
\Registry\machine\software\classes\CLSID\{MATLAB_DATA_SINK}\InprocServer32 [1 5 12 17 21]
The decimal values in the brackets are what determines the permissions. The last value (21) is what allows the user full control.
The strings MATLAB_DATA_SOURCE and MATLAB_DATA_SINK (but not the curly brackets) in the strings above should be replaced according to the version of MATLAB that you are using:
R2007a or later:
MATLAB_DATA_SOURCE: 976CA182-AA72-41C1-81D4-1ACF7EFB544B
MATLAB_DATA_SINK: CAAAD08A-7338-45FE-9B04-D028036B8CC4
so for example:
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{976CA182-AA72-41C1-81D4-1ACF7EFB544
B}\InprocServer32
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{CAAAD08A-7338-45FE-9B04-D028036B8CC
4}\InprocServer32
All other versions of MATLAB:
MATLAB_DATA_SOURCE: 976CA182-AA72-41C1-81D4-1ACF7EFB544B
MATLAB_DATA_SINK: 1C638810-5C94-461B-94DF-5326BF57525B
it means:
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{1C638810-5C94-461B-94DF-5326BF57525
B}\InprocServer32
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{976CA182-AA72-41C1-81D4-1ACF7EFB544
B}\InprocServer32

More Answers (0)

Categories

Find more on Image Processing and Computer Vision in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!