locked
Buffer Management In DS And The Camera Driver RRS feed

  • Question

  • I have a DS application and camera driver that are working in WM 6.

    Now I am porting them to WinCE 6, with the former just a recompilation to respective platform and a new camera driver (new because the camera is different). Other than hardware specific codes are different, we keep the rest basically the same.

    That means we also use CSPROPERTY_BUFFER_CLIENT_UNLIMITED as the memory model and the DS allocates the required buffers.

    Under the WM6, we observed after the MedialControl->run() is started (video capture), the DS will send us the buffers via the CS_ENQUENEs. If the enquence comes in fast enough, we will be able to fill the buffer and send the data back. If not, we have dropped frame and we will just ignore it, no a big problem here.

    However, under WinCE 6, we don't get the CS_ENQUEUE, or when it comes (after the stop), the buffer specified would be null.

    Anyone here could shed some light here why it is so, could that be under WinCE 6, the programming model has to be handled differently?

    TIA.
    • Moved by The March Hare Wednesday, November 25, 2009 1:43 PM not about dshow in Windows SDK (From:DirectShow Development)
    Tuesday, November 24, 2009 8:02 PM

All replies

  • i think the camera mdd driver is old,there are some errors. now

    something changed, for example PinHandleBufferRequest. here ,PCS_STREAM_DESCRIPTOR pCsDescriptor = (PCS_STREAM_DESCRIPTOR) csBufferInfo.pStreamDescriptor, in

    the old driver that is pOutbuffer.

    Thursday, June 3, 2010 2:09 AM
  • You cannot directly use the driver which is used in WM 6.0.In WinCE 6.0 you need to Marshall the buffers before using it on the driver.So try to use the MDD code which is found on the WinCE installation.

    WINCE600\PUBLIC\COMMON\OAK\DRIVERS\CAPTURE\CAMERA\LAYERED\MDD


    Prabu Kumar || http://prabukumar.wordpress.com || www.e-consystems.com
    Thursday, June 3, 2010 7:35 AM