This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Problem running CaptureTest demo application for EVM3530

Other Parts Discussed in Thread: OMAP3530

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

 

  • Hi Sang Young,

    Are you able to use the command with a different codec, say mpeg4 or with a different video input (ypbpr or svideo)?

    Could you also try the command providing the bitrate, capability and output file location such as below:

    capturetest /auto /time 30000 /venc h264 /vin ypbpr /br 4000000  /cap 720x480@30 /file \temp\

    regards,

    Aparna

     

  • Hi Aparna,

    I have tried other codecs and different videos but it give the same result (Could not create video filter instance, hr=80040154).

    Thank you very much for your attention,

    sangyoung

  • Have you tried the pre-built demo image supplied by TI and available here:

    http://software-dl.ti.com/sdoemb/sdoemb_public_sw/wince_sdk/latest/index_FDS.html

    It is not clear from your posting how you are including H.264 and if you are including DVSDK components or not

     

    Atul

  • Um.. I haven't really thought of trying pre-built demos, I will try and post the results.

    I included DVSDK as a subproject of EVM_3530 in Visual Studio 2005, and checked that some encoding components are included in the catalog view.

    Are there any missing procedures?

     

     

  • It lools like DirectShow does not find  "guidH264" which might no be properly registered. This is done by registry, make sure yours contains the following entries:

    [HKEY_CLASSES_ROOT\Filter\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}]

    @="H264 Video Encoder Filter"

    [HKEY_CLASSES_ROOT\CLSID\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}]

    @="H264 Video Encoder Filter"

    "Merit"=dword:00600900

    [HKEY_CLASSES_ROOT\CLSID\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}\InprocServer32]

    @="H264VideoEncoder.dll"

    "ThreadingModel"="Both"

    [HKEY_CLASSES_ROOT\CLSID\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}\Pins\Input]

    "Direction"=dword:00000000

    "IsRendered"=dword:00000000

    "AllowedZero"=dword:00000000

    "AllowedMany"=dword:00000000

    "ConnectsToPin"="Output"

    ;YUY2

    [HKEY_CLASSES_ROOT\CLSID\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}\Pins\Input\Types\{73646976-0000-0010-8000-00AA00389B71}\{32595559-0000-0010-8000-00AA00389B71}]

    ;UYVY

    [HKEY_CLASSES_ROOT\CLSID\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}\Pins\Input\Types\{73646976-0000-0010-8000-00AA00389B71}\{59565955-0000-0010-8000-00AA00389B71}]

     

    [HKEY_CLASSES_ROOT\CLSID\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}\Pins\Output]

    "Direction"=dword:00000001

    "IsRendered"=dword:00000000

    "AllowedZero"=dword:00000000

    "AllowedMany"=dword:00000000

    "ConnectsToPin"="Input"

    ;h264

    [HKEY_CLASSES_ROOT\CLSID\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}\Pins\Output\Types\{73646976-0000-0010-8000-00AA00389B71}\{34363268-0000-0010-8000-00aa00389b71}]

    ;H264

    [HKEY_CLASSES_ROOT\CLSID\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}\Pins\Output\Types\{73646976-0000-0010-8000-00AA00389B71}\{34363248-0000-0010-8000-00aa00389b71}]

    ;VSSH

    [HKEY_CLASSES_ROOT\CLSID\{B2E82896-5BD7-4299-B65D-8F95A011A2E7}\Pins\Output\Types\{73646976-0000-0010-8000-00AA00389B71}\{48535356-0000-0010-8000-00aa00389b71}]