PrabuKumar's WinCE Blog

July 30, 2012

OMAP35x\DM37x VRFB and Video Capture in WEC7

Filed under: WinCE 7 — Prabu Kumar @ 4:14 pm
Tags: , , , , , , ,

With OMAP35x/DM37x EVM ,we will face issue of image corruption while rendering the camera output to the screen because of presence of Virtual Rotate Frame Buffer(VRFB). But if we want to use  both VRFB and Camera preview to work together in WinCE 6.0 ,we can set the renderer of the DShow  camera application to use the GDI mode instead of the DirectDraw renderer.The code used in WinCE 6.0,

 

IAMVideoRendererMode::SetMode(DWORD dwMode)

 

Where dwMode   -   AM_VIDEO_RENDERER_MODE_DDRAW (or)  AM_VIDEO_RENDERER_MODE_GDI

 

 

 

But in the WEC7,there is a change in the DShow renderer (i.e., Video Mixing Renderer(VMR)),which does not support the IAMVideoRendererMode interface or method which we used in WinCE 6.0 to switch the GDI mode.

 

In this blog ,I will show how to fix this issue. But it will have a disadvantage of very low frame rate in the rendering because of not using the hardware overlay.

 

In VMR we can control the renderer preferences using the IVMRFilterConfig::SetRenderingPrefs() method.

 

For this issue here is the fix, we can force the VMR to use the RenderPrefs_ForceOffscreen instead of Overlays, which is more or less the same functionality as used in the WinCE 6.0.

 

IVMRFilterConfig    *pVMRConfig;

 

hr = m_pVMRRenderer.QueryInterface(&pVMRConfig );

if(FAILED(hr) || pVMRConfig == NULL)

{

            FAIL(TEXT("Retrieving the IID_IVMRFilterConfig failed."));

}

 

 

hr = pVMRConfig->SetRenderingPrefs( RenderPrefs_ForceOffscreen| RenderPrefs_AllowOffscreen );

if ( FAILED(hr) )

{

FAIL( TEXT("%S: ERROR %d@%S – failed to set the rendering prefs. (0x%08x)" ), __FUNCTION__, __LINE__, __FILE__, hr );

}

 

 

 

 

Advertisements

June 16, 2012

MIPI camera(CSI2) working with OMAP35x/37x on WinCE 6.0

Filed under: WinCE 6.0 — Prabu Kumar @ 11:18 pm
Tags: , , , , ,

Since MIPI camera interface(CSI2) is not officially supported by TI on the OMAP35x/37x processors ,we had a little bit a struggle in getting the same working. We developed a DirectShow Camera driver on WinCE 6.0 to get the MIPI camera working in TI OMAP35x/37x EVM kit.

Check out this blog post for images of the same.

http://www.e-consystems.com/blog/camera/?p=782

November 10, 2011

How to Get USB Camera Working in Windows Embedded Compact 7

Filed under: WinCE 7 — Prabu Kumar @ 12:22 pm
Tags: , ,

As many of you might be using the USB camera on their WinCE device, so for testing this USB camera on the wince device Microsoft had released the source code for the driver. Check in the link for the source of Windows Embedded CE 6.0 version.

To get the USB camera working under WinCE 6.0,check out my other post on the same topic.

So now in order to get the same source code working in Windows Embedded compact 7,it need few changes in the driver because of few additions in the WEC7.To see what are the changes and to get camera working under WEC7,check out my blog post in the following link.

http://www.e-consystems.com/blog/camera/?p=740

Have fun in playing around with USB camera on WEC7.

September 24, 2008

WinCE 6.0 DirectShow Camera Driver Higher Resolution support

Filed under: WinCE 6.0 — Prabu Kumar @ 12:34 am
Tags: , , ,

I have been working on the Wince 6.0 DirectShow Camera driver for quite a long time. I have taken NULL PDD driver from PUBLIC code and changed the source to support our custom sensor board. Our camera sensor can support a still resolution of 1600×1200.

With the help of one sample application I am able to see the preview and I am able to capture the still,but supports still resolution up to 640×480.But for a long time with our driver I am not able to get the still of 1600×1200.

Once I increase the resolution of the Still in the driver to 1600×1200,the application fails to run even preview is also not coming.

For debugging this issue I was breaking my head by changing lot of configuration setting in the DirectShow Camera driver. Using debug version build I found the reason for the failure is due to lack of the program memory. The development board which I used for testing contains only 64 MB of SDRAM.

So I tested in different development board which contains 128MB of SDRAM. After giving enough program memory my application starts capturing still of resolution 1600×1200(2MP).But I don’t know the reason why this application is taking too much amount of memory (around 90MB) for running simple Preview and Still pins. As I am not familiar with DirectShow Application development I am investigating on it, I will try to find the reason and will post it in future.

 

Create a free website or blog at WordPress.com.