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

How to develop DirectShow filter on Windows CE 6.0?

19 views
Skip to first unread message

libra

unread,
May 14, 2007, 8:51:00 AM5/14/07
to
Dear all,

I have some problems about writing DirectShow filter on CE 6.0.
Could anyone give me some suggestions? Now, i describle my
situation.

Development environment : Windows CE 6.0 and Visual Studio 2005.
Background knowledge : I have developed the DirectShow filter
for
desktop PC successfully. So, i know the concept of writing the
DirectShow
filter.

My questions :
1. How to setup the development environment for visual
studio 2005
which can be used to write a DirectShow filter. I have
some ideas
but i don't know is it right. My idea is to build an OS
design first. This
OS design support DirectShow core. In other words, it
includes
strmbase.lib (release), strmbasd.lib (debug). After
building this OS
design successfully, i can create a new SDk which is
specific for my
OS design. The SDK is installed to visual studio 2005.
Then, i can
write my filter on it. Is my idea correct?

2. How to register the DirectShow filter into the OS design?
One
method is to use the sample code, Regsvr, in
DCOM\SDK\Samples\Regsvr. I guess that it will work like
PC.
Besides, is it possible to register the filter staticly.
In other words,
when building the OS, the filter can be builed in it.

3. How to verify my DirectShow filter on CE 6.0? The
GraphEdit can be
used to verify the DirectShow filter on PC. I don't know
how to
integrate the GraphEdit into CE 6.0 even if CE 5.0 or
4.2. It seems
one of the modules in DirectX
(DIRECTX_MODULES_GRAPHEDT). I
have tried to find the solution. However, i still cann't
find it.


Any suggestions are appreciated. Thanks a lot !!

Best
Regards

Damon Barry [MSFT]

unread,
May 14, 2007, 2:16:38 PM5/14/07
to
"libra" <li...@discussions.microsoft.com> wrote in message
news:C265BD1A-6A32-480A...@microsoft.com...

> 1. How to setup the development environment for visual studio 2005
> which can be used to write a DirectShow filter. I have some ideas
> but i don't know is it right. My idea is to build an OS design first.
> This
> OS design support DirectShow core. In other words, it includes
> strmbase.lib (release), strmbasd.lib (debug). After building this OS
> design successfully, i can create a new SDk which is specific for my
> OS design. The SDK is installed to visual studio 2005. Then, i can
> write my filter on it. Is my idea correct?

You don't have to create/install the SDK. Just create a subproject that can
build with the OS Design (Right-click the Subprojects node in the Solution
Explorer, select "Add New Subproject" and follow the wizard). You can
highlight the subproject, then from the Build menu select "Targeted Build
Settings" and deselect "Make Run-Time Image After Building" if you just want
to run the filter from the release directory (handy during development).


>
> 2. How to register the DirectShow filter into the OS design? One
> method is to use the sample code, Regsvr, in
> DCOM\SDK\Samples\Regsvr. I guess that it will work like PC.
> Besides, is it possible to register the filter staticly. In other
> words,
> when building the OS, the filter can be builed in it.

When you build a subproject, you will get a set of "Parameter files"
including a .REG file. You can add the registry settings there, and I
believe the REG file will get rolled into the static registry when you do a
makeimg.


>
> 3. How to verify my DirectShow filter on CE 6.0? The GraphEdit can be
> used to verify the DirectShow filter on PC. I don't know how to
> integrate the GraphEdit into CE 6.0 even if CE 5.0 or 4.2. It seems
> one of the modules in DirectX (DIRECTX_MODULES_GRAPHEDT). I
> have tried to find the solution. However, i still cann't find it.

We had graphedt in 5.0 and previous versions, although it was unsupported.
We do not have it in 6.0 because MFC was upgraded and graphedt wasn't
forward-ported to the new MFC. However, be looking for a new version of
graphedt (managed code, controls the graph on the device remotely, from the
host) in the near future. I really don't know exactly when, but I do know
we're actively looking at how to get this functionality out to the community
ASAP since it's so useful.

In the meantime, it is not difficult to write a simple application to
connect specific filters and run them for testing purposes.

--
Damon Barry
Windows Embedded CE Multimedia

This posting is provided "AS IS" with no warranties, and confers no rights.


libra

unread,
May 15, 2007, 11:20:01 AM5/15/07
to
Dear Barry,
If i want to write a DirectShow application to test my
filter, can i also
create a subproject that can be built with the OS
Design? Or it needs
to create the SDK for my custom OS and install it into
Visual Studio
2005, then i can write my DirectShow application. Or,
both of the
two methods are the correct way.

Besides, in my problem 1, is my idea about writing
Directshow filter
correct? Maybe, this method is more complicated. I want
to know is
that work?

Thanks a
lot!
Best
Regards

Damon Barry [MSFT]

unread,
May 15, 2007, 3:17:40 PM5/15/07
to
"libra" <li...@discussions.microsoft.com> wrote in message
news:B755F549-B7F1-4FAF...@microsoft.com...

> If i want to write a DirectShow application to test my filter, can i also
> create a subproject that can be built with the OS Design? Or it needs
> to create the SDK for my custom OS and install it into Visual Studio
> 2005, then i can write my DirectShow application. Or, both of the
> two methods are the correct way.

Both options work, but I'd just do a subproject. The reason you'd create an
SDK is to give it to someone else who isn't creating their own image.
They'd use your image and develop applications on top of that. Since you
have control over the image, there's no need for you to work from an SDK.

> Besides, in my problem 1, is my idea about writing Directshow filter
> correct? Maybe, this method is more complicated. I want to know is
> that work?

I'm not sure I understand. In your original question #1, you wanted to know
how to set up the build environment. We decided to cut out the SDK step,
but other than that your proposal looks right (link against strmbase.lib and
#include <streams.h>). The DirectShow framework is much the same as it is
on the desktop, so you should be able to create your filter without too much
trouble.

libra

unread,
May 16, 2007, 1:04:05 PM5/16/07
to
Dear Barry,
I write a simple Directshow application by using
subproject. When
loading the image into device emulator, i can not find
the executable
file. If i want to execute the program, the only method
is through
"start->run", and type the executable file name. The
following list my
problems.

1. In CE 5.0, i can put my own file into release
directory. Then, i can
see my file in the emulator.I can find this file
easily. However, in
CE 6.0, i also put my own file in
RelDir\Device_Emulator_ARMV4I_Debug. I can not find it
in the
Device Emulator.

2. In my directshow application, i assign the audio file
name directly
into the program. The executable file and audio file
are in the
same directory, RelDir\Device_Emulator_ARMV4I_Debug.
When i execute the program by using "start->run", the
application
can not find the audio file.


The device emulator of ce 6.0 is different from ce 5.0. I
can not find
the release directory in ce 6.0.
Therefore, i can not find my own file in device emulator.
Maybe it
needs to configure something. Besides, when i configure
the settings
of download in connectivity options, it shows error message
like "release some resources, and try again, error code:
0x80004003".
I don't know what happen.


thanks a lot!!


Best Regards

Damon Barry [MSFT]

unread,
May 16, 2007, 4:21:59 PM5/16/07
to

"libra" <li...@discussions.microsoft.com> wrote in message
news:08D8FED9-A682-4D3C...@microsoft.com...

> I write a simple Directshow application by using subproject. When
> loading the image into device emulator, i can not find the executable
> file. If i want to execute the program, the only method is through
> "start->run", and type the executable file name. The following list my
> problems.

I can run my own DShow app from Start->Run in the emulator, OR by opening
"My Device" on the desktop (I'm using the standard shell:
SYSGEN_STANDARDSHELL) and navigating to \release. Are you not able to see
the release directory in file explorer? Other than that, how do you expect
to be able to run the program??


>
> 1. In CE 5.0, i can put my own file into release directory. Then, i can
> see my file in the emulator.I can find this file easily. However, in
> CE 6.0, i also put my own file in
> RelDir\Device_Emulator_ARMV4I_Debug. I can not find it in the
> Device Emulator.

I'm not having this problem. There must be amiss in your emulator config.
You may want to post a different message to the newsgroup to ask about this;
I don't know much about emulator.


>
> 2. In my directshow application, i assign the audio file name directly
> into the program. The executable file and audio file are in the
> same directory, RelDir\Device_Emulator_ARMV4I_Debug.
> When i execute the program by using "start->run", the application
> can not find the audio file.
>
> The device emulator of ce 6.0 is different from ce 5.0. I can not find
> the release directory in ce 6.0.
> Therefore, i can not find my own file in device emulator. Maybe it
> needs to configure something. Besides, when i configure the settings
> of download in connectivity options, it shows error message
> like "release some resources, and try again, error code: 0x80004003".
> I don't know what happen.

These problems really make me think something's wrong with your setup, but I
can't tell what. Again, I'd recommend you post another message to the
boards to get some help. From a DirectShow perspective, you seem to be in
good shape.

Thanks,
Damon

a b

unread,
Nov 27, 2010, 10:01:24 PM11/27/10
to
How I can add one DirectShow filter in existing application instead of use Renderfile?

> On Monday, May 14, 2007 8:51 AM libr wrote:

> Dear all,
>
> I have some problems about writing DirectShow filter on CE 6.0.
> Could anyone give me some suggestions? Now, i describle my
> situation.
>
> Development environment : Windows CE 6.0 and Visual Studio 2005.
> Background knowledge : I have developed the DirectShow filter
> for
> desktop PC successfully. So, i know the concept of writing the
> DirectShow
> filter.
>
> My questions :

> 1. How to setup the development environment for visual
> studio 2005
> which can be used to write a DirectShow filter. I have
> some ideas
> but i don't know is it right. My idea is to build an OS
> design first. This
> OS design support DirectShow core. In other words, it
> includes
> strmbase.lib (release), strmbasd.lib (debug). After
> building this OS
> design successfully, i can create a new SDk which is
> specific for my
> OS design. The SDK is installed to visual studio 2005.
> Then, i can
> write my filter on it. Is my idea correct?
>

> 2. How to register the DirectShow filter into the OS design?
> One
> method is to use the sample code, Regsvr, in
> DCOM\SDK\Samples\Regsvr. I guess that it will work like
> PC.
> Besides, is it possible to register the filter staticly.
> In other words,
> when building the OS, the filter can be builed in it.
>

> 3. How to verify my DirectShow filter on CE 6.0? The
> GraphEdit can be
> used to verify the DirectShow filter on PC. I don't know
> how to
> integrate the GraphEdit into CE 6.0 even if CE 5.0 or
> 4.2. It seems
> one of the modules in DirectX
> (DIRECTX_MODULES_GRAPHEDT). I
> have tried to find the solution. However, i still cann't
> find it.
>
>

> Any suggestions are appreciated. Thanks a lot !!
>
> Best
> Regards


>> On Monday, May 14, 2007 2:16 PM Damon Barry [MSFT] wrote:

>> "libra" <li...@discussions.microsoft.com> wrote in message

>> news:C265BD1A-6A32-480A...@microsoft.com...


>>
>> You don't have to create/install the SDK. Just create a subproject that can
>> build with the OS Design (Right-click the Subprojects node in the Solution
>> Explorer, select "Add New Subproject" and follow the wizard). You can
>> highlight the subproject, then from the Build menu select "Targeted Build
>> Settings" and deselect "Make Run-Time Image After Building" if you just want
>> to run the filter from the release directory (handy during development).
>>

>> When you build a subproject, you will get a set of "Parameter files"
>> including a .REG file. You can add the registry settings there, and I
>> believe the REG file will get rolled into the static registry when you do a
>> makeimg.
>>

>> We had graphedt in 5.0 and previous versions, although it was unsupported.
>> We do not have it in 6.0 because MFC was upgraded and graphedt wasn't
>> forward-ported to the new MFC. However, be looking for a new version of
>> graphedt (managed code, controls the graph on the device remotely, from the
>> host) in the near future. I really don't know exactly when, but I do know
>> we're actively looking at how to get this functionality out to the community
>> ASAP since it's so useful.
>>
>> In the meantime, it is not difficult to write a simple application to
>> connect specific filters and run them for testing purposes.
>>

>> --
>> Damon Barry
>> Windows Embedded CE Multimedia
>>
>> This posting is provided "AS IS" with no warranties, and confers no rights.


>>> On Tuesday, May 15, 2007 11:20 AM libr wrote:

>>> Dear Barry,

>>> If i want to write a DirectShow application to test my
>>> filter, can i also
>>> create a subproject that can be built with the OS
>>> Design? Or it needs
>>> to create the SDK for my custom OS and install it into
>>> Visual Studio
>>> 2005, then i can write my DirectShow application. Or,
>>> both of the
>>> two methods are the correct way.
>>>

>>> Besides, in my problem 1, is my idea about writing
>>> Directshow filter
>>> correct? Maybe, this method is more complicated. I want
>>> to know is
>>> that work?
>>>

>>> Thanks a
>>> lot!


>>> Best
>>> Regards
>>>
>>> "Damon Barry [MSFT]" wrote:


>>>> On Tuesday, May 15, 2007 3:17 PM Damon Barry [MSFT] wrote:

>>>> "libra" <li...@discussions.microsoft.com> wrote in message

>>>> news:B755F549-B7F1-4FAF...@microsoft.com...


>>>>
>>>> Both options work, but I'd just do a subproject. The reason you'd create an
>>>> SDK is to give it to someone else who isn't creating their own image.
>>>> They'd use your image and develop applications on top of that. Since you
>>>> have control over the image, there's no need for you to work from an SDK.
>>>>
>>>>

>>>> I'm not sure I understand. In your original question #1, you wanted to know
>>>> how to set up the build environment. We decided to cut out the SDK step,
>>>> but other than that your proposal looks right (link against strmbase.lib and

>>>> on the desktop, so you should be able to create your filter without too much
>>>> trouble.
>>>>

>>>> --
>>>> Damon Barry
>>>> Windows Embedded CE Multimedia
>>>>
>>>> This posting is provided "AS IS" with no warranties, and confers no rights.


>>>>> On Wednesday, May 16, 2007 1:04 PM libr wrote:

>>>>> Dear Barry,

>>>>> I write a simple Directshow application by using
>>>>> subproject. When
>>>>> loading the image into device emulator, i can not find
>>>>> the executable
>>>>> file. If i want to execute the program, the only method
>>>>> is through
>>>>> "start->run", and type the executable file name. The
>>>>> following list my
>>>>> problems.
>>>>>

>>>>> 1. In CE 5.0, i can put my own file into release
>>>>> directory. Then, i can
>>>>> see my file in the emulator.I can find this file
>>>>> easily. However, in
>>>>> CE 6.0, i also put my own file in
>>>>> RelDir\Device_Emulator_ARMV4I_Debug. I can not find it
>>>>> in the
>>>>> Device Emulator.
>>>>>

>>>>> 2. In my directshow application, i assign the audio file
>>>>> name directly
>>>>> into the program. The executable file and audio file
>>>>> are in the
>>>>> same directory, RelDir\Device_Emulator_ARMV4I_Debug.
>>>>> When i execute the program by using "start->run", the
>>>>> application
>>>>> can not find the audio file.
>>>>>
>>>>>
>>>>> The device emulator of ce 6.0 is different from ce 5.0. I
>>>>> can not find
>>>>> the release directory in ce 6.0.
>>>>> Therefore, i can not find my own file in device emulator.
>>>>> Maybe it
>>>>> needs to configure something. Besides, when i configure
>>>>> the settings
>>>>> of download in connectivity options, it shows error message
>>>>> like "release some resources, and try again, error code:
>>>>> 0x80004003".
>>>>> I don't know what happen.
>>>>>
>>>>>

>>>>> thanks a lot!!
>>>>>
>>>>>
>>>>> Best Regards
>>>>>
>>>>>
>>>>> "Damon Barry [MSFT]" wrote:


>>>>>> On Wednesday, May 16, 2007 4:21 PM Damon Barry [MSFT] wrote:

>>>>>> "libra" <li...@discussions.microsoft.com> wrote in message
>>>>>> news:08D8FED9-A682-4D3C...@microsoft.com...
>>>>>>

>>>>>> I can run my own DShow app from Start->Run in the emulator, OR by opening
>>>>>> "My Device" on the desktop (I'm using the standard shell:
>>>>>> SYSGEN_STANDARDSHELL) and navigating to \release. Are you not able to see
>>>>>> the release directory in file explorer? Other than that, how do you expect
>>>>>> to be able to run the program??
>>>>>>

>>>>>> I'm not having this problem. There must be amiss in your emulator config.
>>>>>> You may want to post a different message to the newsgroup to ask about this;
>>>>>> I don't know much about emulator.
>>>>>>

>>>>>> These problems really make me think something's wrong with your setup, but I
>>>>>> can't tell what. Again, I'd recommend you post another message to the
>>>>>> boards to get some help. From a DirectShow perspective, you seem to be in
>>>>>> good shape.
>>>>>>
>>>>>> Thanks,
>>>>>> Damon
>>>>>>
>>>>>> --
>>>>>> Damon Barry
>>>>>> Windows Embedded CE Multimedia
>>>>>>
>>>>>> This posting is provided "AS IS" with no warranties, and confers no rights.


>>>>>> Submitted via EggHeadCafe
>>>>>> Sterling Database for Silverlight and Windows Phone 7
>>>>>> http://www.eggheadcafe.com/tutorials/aspnet/f4731b1a-dadb-4b4f-b9a8-a5d9ef7a76dd/sterling-database-for-silverlight-and-windows-phone-7.aspx

0 new messages