Hello,
I'm trying to make an application which receives video input from a composite camera, encoded it via H264, and transmit it via ethernet.
I have found out that the demo application CaptureTest included in WinCE, provides the similar functions, so I tested it. CaptureTest application is in folder $(WINCEROOT)\PLATFORM\EVM_OMAP3530\SRC\APP\
I ran the application and found that the camera preview is well displayed on the LCD. I used command
s capturetest /pv /auto /venc none /vin av
However, when I include the H264 or MPEG4 encoder, the applications fails with the following error message. I'm new to WinCE and I can't figure out what it means
s capturetest /pv /auto /venc h264 /vin av
<ERROR MESSAGE>
239346 PID:2400006 TID:6600006 CaptureTest: ERROR - Could not create Video Encoder Filter instance, hr=0x80040154
239347 PID:2400006 TID:6600006 CaptureTest: ERROR: Failed to create filters
I see that hr=0x80040154 is a quite common error message, which does not give much information. So I digged in a little more to see where it went wrong. The code in boldface returns error code and fails to create in instance. I think its related to the GUID passed as an argument. If I use third GUID (it is GUID of some other component which is successfully instantiated), the instance is successfully generated. Does anyone know why it fails to create the instance?
HRESULT
CreateVideoEncoder()
{
HRESULT hr = S_OK;
GUID guidH264 = { 0xb2e82896, 0x5bd7, 0x4299, 0xb6, 0x5d, 0x8f, 0x95, 0xa0, 0x11, 0xa2, 0xe7};
GUID guidMPEG4 = { 0x92B89CFA, 0x52DA, 0x11DF, 0xBE, 0x33, 0x76, 0x89, 0xDF, 0xD7, 0x20, 0x85};
//GUID guidH264 = { 0xad5db5b4, 0xd1ab, 0x4f37, 0xa6, 0xd, 0x21, 0x51, 0x54, 0xb4, 0xec, 0xc1};
switch(f_videncType) {
case VIDENC_NONE:
case VIDENC_GRABBER:
return E_FAIL;
case VIDENC_H264:
hr = pVideoEncoder.CoCreateInstance( guidH264, NULL, CLSCTX_INPROC);
break;
case VIDENC_MPEG4:
hr = pVideoEncoder.CoCreateInstance( guidMPEG4, NULL, CLSCTX_INPROC);
break;
.. blahblah..
------------------------
Processor: OMAP3530
OS: WinCE 6.0
BSP Version: (I'm not sure how do i check?)
<bsp_version.h > says that
#define BSP_VERSION_MAJOR 1
#define BSP_VERSION_MINOR 0
#define BSP_VERSION_QFES 0
#define BSP_VERSION_INCREMENTAL 16
#define BSP_VERSION_STRING L"BSP_WINCE_ARM_A8 1.00.00.16"
Platform: Mistral EVM3530
