4 Replies Latest reply on Jan 5, 2017 9:15 AM by Intel Corporation

    Accessing 200 fps from SR300

    VPP

      I got a code from open source for accessing raw streams from IR camera. This is the code (with some edits from my side):

       

      #include <windows.h>

      #include <wchar.h>

      #include "pxcsensemanager.h"

      #include "util_render.h"  //SDK provided utility class used for rendering (packaged in libpxcutils.lib)

       

      // maximum number of frames to process if user did not close the rendering window

      #define MAX_FRAMES 500

       

      int wmain(int argc, WCHAR* argv[]) {

      UtilRender *renderDepth  = new UtilRender(L"DEPTH STREAM");

       

      // create the PXCSenseManager

        float fps = 120;

        PXCSenseManager *psm=0;

        psm = PXCSenseManager::CreateInstance();

        if (!psm) {

        wprintf_s(L"Unable to create the PXCSenseManager\n");

        return 1;

        }

       

      psm->EnableStream(PXCCapture::STREAM_TYPE_IR,640,480,fps);

       

        psm->EnableFace();

        wprintf_s(L"test Init1\n");

        // initialize the PXCSenseManager

        if(psm->Init() != PXC_STATUS_NO_ERROR) return 2;

       

        PXCImage *depthIm;

        for (int i=0; i<MAX_FRAMES; i++) {

       

        // This function blocks until all streams are ready (depth and color)

        // if false streams will be unaligned

        if (psm->AcquireFrame(true)<PXC_STATUS_NO_ERROR) break;

       

        // retrieve all available image samples

        PXCCapture::Sample *sample = psm->QuerySample();

        PXCFaceModule *face2=psm->QueryFace();

        if (face2) {

        wprintf_s(L"We have a face here......!!!!\n");

        }

       

        // retrieve the image or frame by type from the sample

        depthIm = sample->ir;

       

        // render the frame

        if (!renderDepth->RenderFrame(depthIm)) break;

       

        // release or unlock the current frame to fetch the next frame

        psm->ReleaseFrame();

        }

       

        // close the last opened streams and release any session and processing module instances

        psm->Release();

        system("pause");

        return 0;

      }

       

      Now, in the above code, the moment I enter

      float fps = 60;

      My code is running fine. But, the moment I enter

      float fps = 120;

       

      I am getting an error

      "Native' has exited with code 2 (0x2)."

       

      However, as per the pdf document "realsense-sr300-product-datasheet-rev-1-0.pdf", we find that the SR300 must be able to give us data corresponding to 200 fps and less. However, we find that any value beyond 60 fps in the above code gives us an error.

       

      Can anyone please suggest whether you have a solution to this problem.

        • 1. Re: Accessing 200 fps from SR300
          Intel Corporation
          This message was posted on behalf of Intel Corporation

          Hi VPP,
           
          Thanks for your interest in the Intel® RealSense Platform.
           
          We appreciate all the information provided. We would like to investigate a little bit more and as soon as we find useful information we’ll let you know.
           
          We appreciate your patience during the meantime.
           
          Regards,
          -Yermi
           

          • 2. Re: Accessing 200 fps from SR300
            VPP

            Hi Yermi,

             

            Thank you for your response to my request for information regarding SR300. I am eagerly waiting for the information from you, so that I can proceed further in my work.

             

            This is my gentle remainder regarding the same.

             

            Regards,

            • 3. Re: Accessing 200 fps from SR300
              Intel Corporation
              This message was posted on behalf of Intel Corporation

              Hi VPP,
               
              We’re still working on it, we hope to update you as soon as possible. Thanks for your patience.
               
              Regards,
              -Yermi
               

              • 4. Re: Accessing 200 fps from SR300
                Intel Corporation
                This message was posted on behalf of Intel Corporation

                Hi VPP,
                 
                We apology for the delay. As the document states, the highest effective frame rate for depth at VGA resolution is 60fps. The IR camera's 200 fps is the maximum frame rate as defined by the number of patterns the IR camera can emit onto a scene. The effective frame rate is always less than the maximum IR frame rate (in this case 60 fps). The camera uses the reflections from multiple IR patterns to create depth frames.
                 
                Hope this information helps.
                 
                Regards,
                -Yermi