Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Using the secret DirectShow filters from MS

283 views
Skip to first unread message

Johnny Juice

unread,
Jul 20, 2002, 6:38:30 AM7/20/02
to
Hello All,

MS supplies a few filters in qedit.dll which don't have any public
interface. For example, the Frame Rate Converter that is used by DES exists
in qedit.dll, and has the guid

{93714ED0-53F0-11D2-9EE6-006008039E37}

How do I use this filter in my application? I tried the normal
CoCreateInstance, but that call caused an exception which originated from
qedit.

Is there any way of using this filter?

Regards,
J


Gabest

unread,
Jul 20, 2002, 9:53:29 AM7/20/02
to
I've created the needed registry keys for them under
HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance, and
they work fine in graphedit. Not many of them are useful though...

Johnny Juice

unread,
Jul 23, 2002, 4:13:39 AM7/23/02
to

"Gabest" <gab...@freemail.hu> schrieb im Newsbeitrag
news:uTi2wS$LCHA.580@tkmsftngp13...


What keys would those be?


Gabest

unread,
Jul 23, 2002, 8:36:50 AM7/23/02
to
Just search HKEY_CLASSES_ROOT\CLSID for qedit.dll.

For example HKEY_CLASSES_ROOT\CLSID\{93714ED0-53F0-11D2-9EE6-006008039E37}
is the frame rate converter.

Johnny Juice

unread,
Jul 23, 2002, 9:07:26 AM7/23/02
to
Yes, but how do I instanciate it?

In my case, the filter is listed there, and the clsid is in graphedit, but
it isn't visible in graphedit!

What keys am I to add to make it possible for me to instanciate this
component? Did you add any keys? If so, which ones?

Regards,
J.


"Gabest" <gab...@freemail.hu> schrieb im Newsbeitrag

news:euqPyVkMCHA.2228@tkmsftngp08...

Gabest

unread,
Jul 23, 2002, 1:01:55 PM7/23/02
to
Put this into a file (rejoin the wrapped lines) and add it into the
registry:

------- cut here ------
REGEDIT4

[HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance\{7D
F62B50-6843-11D2-9EEB-006008039E37}]
"CLSID"="{7DF62B50-6843-11D2-9EEB-006008039E37}"
"FriendlyName"="Generate Still Video"
------- cut here ------

After adding this, you will be able to render still pictures in graphedit.

But since there is no FilterData entry and we don't know anything about its
interfaces (this may support IFileSourceFilter) it will be a bit hard to use
these filters from a program. The property page trick in the thread just
above this may help.


"Johnny Juice" <joh...@juice.com> wrote in message
news:us#VGnkMCHA.1936@tkmsftngp12...

Alessandro Angeli

unread,
Jul 24, 2002, 9:50:21 AM7/24/02
to
If GraphEdit asks for an input file when the filter is first inserted, then
the filter supports IFileSourceFilter because GraphEdit uses
QueryInterface() in the following order to discover the filter capabilities
and acts accordingly:

1. IReferenceClock => sets the clock
2. IFileSourceFilter => input file dialog
3. IFileSinkFilter2 => output file dialog and stop here
4. IFileSinkFilter => output file dialog

Since the filters you are discussing about are part of DES (qedit.dll), they
might support standard serialization interfaces that could be used to set
their properties (this is needed to save projects with non-stateless
filters, even some filters in quartz.dll supports a few of those
interfaces), like any of the following:

IPersistStream
IPersistStreamInit
IPersistStorage
IPersistMemory
IPersistPropertyBag
IPersistPropertyBag2
IPersistFile
PersistMoniker

IPersistStream is used by GraphEdit (actually by the graph manager) to save
a filter's state to a GRF or XGR file, if the filter supports it.


"Gabest" <gab...@freemail.hu> wrote in message
news:eeru5pmMCHA.2488@tkmsftngp11...

Johnny Juice

unread,
Jul 24, 2002, 11:04:11 AM7/24/02
to

"Gabest" <gab...@freemail.hu> schrieb im Newsbeitrag
news:eeru5pmMCHA.2488@tkmsftngp11...

> Put this into a file (rejoin the wrapped lines) and add it into the
> registry:
>
> ------- cut here ------
> REGEDIT4
>
>
[HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance\{7D
> F62B50-6843-11D2-9EEB-006008039E37}]
> "CLSID"="{7DF62B50-6843-11D2-9EEB-006008039E37}"
> "FriendlyName"="Generate Still Video"
> ------- cut here ------

Thanks man.


Johnny Juice

unread,
Jul 24, 2002, 11:03:57 AM7/24/02
to

"Alessandro Angeli" <a.angel...@sogetel.REMOVE.it> schrieb im
Newsbeitrag news:uYJb6jxMCHA.2524@tkmsftngp10...

> If GraphEdit asks for an input file when the filter is first inserted,
then
> the filter supports IFileSourceFilter because GraphEdit uses
> QueryInterface() in the following order to discover the filter
capabilities
> and acts accordingly:
>
> 1. IReferenceClock => sets the clock
> 2. IFileSourceFilter => input file dialog
> 3. IFileSinkFilter2 => output file dialog and stop here
> 4. IFileSinkFilter => output file dialog

Oleview shows quite a number of interfaces supported by the object.


Alessandro Angeli

unread,
Jul 24, 2002, 1:23:55 PM7/24/02
to
"Fame Rate Converter". IAMovieSetup is there for filter registration
purposes. The others are the minimum interfaces a filter has to support but
for IPersistStream and ISpecifyPropertyPages, which are optional and exposed
to help the host application manage the filter properties and state.
IPersistStream is used to save/load the state of the filter to/from a COM
storage stream and ISpecifyPropertyPages is used to display a dialog for the
human user (but see my answer in thread "how to set "MPEG Audio Decoder"
properties" started on 20/07/2002.

"Generate Still Video". Same has before, but this one has no custom property
dialog. Instead it supports IFileSourceFilter so that the host knows the
filter reads data from a local or network resource and can set the resource
URL.

"Johnny Juice" <joh...@juice.com> wrote in message

news:eR9H4MyMCHA.2432@tkmsftngp12...

0 new messages