<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Hi Jan, in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100040#M68299</link>
    <description>&lt;P&gt;Hi Jan,&lt;/P&gt;

&lt;P&gt;Many machine learning algorithms are not deterministic. This is because the search space is generally very large, so they usually sub sample the space. This is similar to how for example particle filters works.&lt;/P&gt;

&lt;P&gt;Only the more basic approaches to object detection are deterministic, but they usually don't work very well in real life scenarios.&lt;/P&gt;

&lt;P&gt;So, you should deal with this in your application. Also, relying on a single detection as 100% true may not be the best route as well. Consider at least a few frames to make sure there is a positive detection.&lt;/P&gt;</description>
    <pubDate>Sat, 23 Jan 2016 02:00:39 GMT</pubDate>
    <dc:creator>samontab</dc:creator>
    <dc:date>2016-01-23T02:00:39Z</dc:date>
    <item>
      <title>Recording from file runs non deterministicly? Why?</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100039#M68298</link>
      <description>&lt;P&gt;I'm trying to test my application with recorded data. However, when I run it twice, I get different results from the realsense SDK's face module.&lt;/P&gt;

&lt;P&gt;Is this a bug? How can I make it deterministic?&lt;/P&gt;

&lt;P&gt;This is the code:&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;#include &amp;lt;pxcsensemanager.h&amp;gt;
#include &amp;lt;iostream&amp;gt;

int main(int argc, char *argv[]) {
  // Create the SenseManager instance
  PXCSenseManager *sm=PXCSenseManager::CreateInstance();

  std::cout &amp;lt;&amp;lt; sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetFileName(L"C:/Users/rggjan/Videos/groundtruth/hard.rssdk", false) &amp;lt;&amp;lt; std::endl;

  // Enable stream and Initialize
  sm-&amp;gt;EnableStream(PXCCapture::STREAM_TYPE_COLOR, 0, 0);

  // Set realtime=true and pause=false
  sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetRealtime(false);
  sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetPause(false);

  // Enable face tracking
  std::cout &amp;lt;&amp;lt; "Face: " &amp;lt;&amp;lt; sm-&amp;gt;EnableFace() &amp;lt;&amp;lt; std::endl;

  // Initialize the pipeline
  std::cout &amp;lt;&amp;lt;"Init: " &amp;lt;&amp;lt; sm-&amp;gt;Init() &amp;lt;&amp;lt; std::endl;

  // Stream data
  while (sm-&amp;gt;AcquireFrame(true)&amp;gt;=PXC_STATUS_NO_ERROR) {
    // retrieve the face tracking results

    PXCFaceModule *face=sm-&amp;gt;QueryFace();

    if (face) {
      PXCFaceData *face_data = face-&amp;gt;CreateOutput();
      face_data-&amp;gt;Update();

      int num_faces = face_data-&amp;gt;QueryNumberOfDetectedFaces();
      if (num_faces &amp;gt; 0) {
        for (int i=0; i&amp;lt;num_faces; i++) {
          PXCFaceData::Face *face = face_data-&amp;gt;QueryFaceByIndex(i);
          PXCFaceData::DetectionData *detection_data = face-&amp;gt;QueryDetection();

          float average_depth;
          bool success = detection_data-&amp;gt;QueryFaceAverageDepth(&amp;amp;average_depth);
          std::cout &amp;lt;&amp;lt; "depth: " &amp;lt;&amp;lt; success &amp;lt;&amp;lt; "-&amp;gt;" &amp;lt;&amp;lt; (success ? average_depth : 0) &amp;lt;&amp;lt; std::endl;
        }
      }

      face_data-&amp;gt;Release();
    }

    // Resume next frame processing
    sm-&amp;gt;ReleaseFrame();
  }


  // Clean up
  sm-&amp;gt;Release();
}&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;PRE style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"&gt;And two possible outputs:
&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Output 1:&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;0&lt;BR /&gt;
	Face: 0&lt;BR /&gt;
	Init: 0&lt;BR /&gt;
	depth: 1-&amp;gt;478&lt;BR /&gt;
	depth: 1-&amp;gt;460&lt;BR /&gt;
	depth: 1-&amp;gt;458&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 1-&amp;gt;450&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 1-&amp;gt;451&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 1-&amp;gt;453&lt;BR /&gt;
	depth: 1-&amp;gt;454&lt;BR /&gt;
	depth: 1-&amp;gt;435&lt;BR /&gt;
	depth: 1-&amp;gt;442&lt;BR /&gt;
	depth: 1-&amp;gt;470&lt;BR /&gt;
	depth: 1-&amp;gt;446&lt;/P&gt;

&lt;P&gt;...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Output 2:&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;0&lt;BR /&gt;
	Face: 0&lt;BR /&gt;
	Init: 0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 1-&amp;gt;454&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 1-&amp;gt;451&lt;BR /&gt;
	depth: 1-&amp;gt;453&lt;BR /&gt;
	depth: 1-&amp;gt;453&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 0-&amp;gt;0&lt;BR /&gt;
	depth: 1-&amp;gt;453&lt;BR /&gt;
	depth: 1-&amp;gt;454&lt;BR /&gt;
	depth: 1-&amp;gt;435&lt;BR /&gt;
	depth: 1-&amp;gt;442&lt;BR /&gt;
	depth: 1-&amp;gt;470&lt;BR /&gt;
	depth: 1-&amp;gt;446&lt;BR /&gt;
	depth: 1-&amp;gt;469&lt;/P&gt;

&lt;P&gt;...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;You can see that on exactly the same frame (color + depth, loaded from disk), sometimes it detects a face and sometimes it doesn't... Could there be some algorithms that run a random number generator that depends on the time or something?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jan 2016 15:48:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100039#M68298</guid>
      <dc:creator>Jan_Rüegg</dc:creator>
      <dc:date>2016-01-22T15:48:30Z</dc:date>
    </item>
    <item>
      <title>Hi Jan,</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100040#M68299</link>
      <description>&lt;P&gt;Hi Jan,&lt;/P&gt;

&lt;P&gt;Many machine learning algorithms are not deterministic. This is because the search space is generally very large, so they usually sub sample the space. This is similar to how for example particle filters works.&lt;/P&gt;

&lt;P&gt;Only the more basic approaches to object detection are deterministic, but they usually don't work very well in real life scenarios.&lt;/P&gt;

&lt;P&gt;So, you should deal with this in your application. Also, relying on a single detection as 100% true may not be the best route as well. Consider at least a few frames to make sure there is a positive detection.&lt;/P&gt;</description>
      <pubDate>Sat, 23 Jan 2016 02:00:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100040#M68299</guid>
      <dc:creator>samontab</dc:creator>
      <dc:date>2016-01-23T02:00:39Z</dc:date>
    </item>
    <item>
      <title>@samontab: Thanks for the</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100041#M68300</link>
      <description>&lt;P&gt;@samontab: Thanks for the hints.&lt;/P&gt;

&lt;P&gt;Yes, it makes sense to do that, but non-deterministic approaches usually use some randomness, and that randomness cann be faked (fixed random seed with deterministic random number generator) to get reproducable results.&lt;/P&gt;

&lt;P&gt;And I can actually deal with this in the application fine. However, when I want to test the application (and compare the output to some groundtruth), I would still like to have reproducable test runs, so I know if my algorithm got better or if the intel SDK just did a better detection by chance...&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jan 2016 07:38:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100041#M68300</guid>
      <dc:creator>Jan_Rüegg</dc:creator>
      <dc:date>2016-01-25T07:38:41Z</dc:date>
    </item>
    <item>
      <title>You can always run your</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100042#M68301</link>
      <description>&lt;P&gt;You can always run your experiment multiple times to reduce those factors.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jan 2016 09:32:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100042#M68301</guid>
      <dc:creator>samontab</dc:creator>
      <dc:date>2016-01-25T09:32:30Z</dc:date>
    </item>
    <item>
      <title>Yes, thats true. But it just</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100043#M68302</link>
      <description>&lt;P&gt;Yes, thats true. But it just makes everything more complicated. I'm actually thinking about just running it once, saving all the output of the SDK in my own file format and then reading from there...&lt;/P&gt;

&lt;P&gt;Its just a bit disappointing that this functionality does not seem to be provided by the SDK...&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jan 2016 09:34:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100043#M68302</guid>
      <dc:creator>Jan_Rüegg</dc:creator>
      <dc:date>2016-01-25T09:34:26Z</dc:date>
    </item>
    <item>
      <title>Hi Jan,</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100044#M68303</link>
      <description>&lt;P&gt;Hi Jan,&lt;/P&gt;

&lt;P&gt;You can try to modify your code to also output frame timestamps to make sure the frames are really the same in both sequences (both color and depth). Actually, from your code, you should have same sequences. Can you also put your clip file to some shared location so we can check on our side?&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jan 2016 09:41:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100044#M68303</guid>
      <dc:creator>Dmitry_Z_Intel</dc:creator>
      <dc:date>2016-01-25T09:41:14Z</dc:date>
    </item>
    <item>
      <title>@DMITRY: Thanks for the reply</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100045#M68304</link>
      <description>&lt;P&gt;@DMITRY: Thanks for the reply! The timestamps were actually different!&lt;/P&gt;

&lt;P&gt;When I change the code to this:&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;#include &amp;lt;pxcsensemanager.h&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;fstream&amp;gt;

int main(int argc, char *argv[]) {
  // Create the SenseManager instance
  PXCSenseManager *sm=PXCSenseManager::CreateInstance();

  std::cout &amp;lt;&amp;lt; sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetFileName(L"C:/Users/rggjan/Pictures/bright2.rssdk", false) &amp;lt;&amp;lt; std::endl;

  // Enable stream and Initialize
  sm-&amp;gt;EnableStream(PXCCapture::STREAM_TYPE_COLOR, 0, 0);
  sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetRealtime(false);
  sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetPause(true);

  // Enable face tracking
  std::cout &amp;lt;&amp;lt; "Face: " &amp;lt;&amp;lt; sm-&amp;gt;EnableFace() &amp;lt;&amp;lt; std::endl;

  // Initialize the pipeline
  std::cout &amp;lt;&amp;lt;"Init: " &amp;lt;&amp;lt; sm-&amp;gt;Init() &amp;lt;&amp;lt; std::endl;

  // Stream data
  int index = 0;
  while (true) {
    // retrieve the face tracking results
    sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetFrameByIndex(index);
    sm-&amp;gt;FlushFrame();
    if (sm-&amp;gt;AcquireFrame(true)!=PXC_STATUS_NO_ERROR)
      break;

    PXCCapture::Sample *sample=sm-&amp;gt;QuerySample();
    PXCImage *image = sample-&amp;gt;color;
    PXCImage::ImageInfo info = image-&amp;gt;QueryInfo();

    if (index == 0) {
      PXCImage::ImageData data;
      image-&amp;gt;AcquireAccess(PXCImage::ACCESS_READ, PXCImage::PIXEL_FORMAT_RGB24, &amp;amp;data);

      // image planes are in data.planes[0-3] with pitch data.pitches[0-3]
      std::ofstream ofs;
      ofs.open("C:/Users/rggjan/tmp/output.ppm", std::ios::binary);
      ofs &amp;lt;&amp;lt; "P6\n" &amp;lt;&amp;lt; info.width &amp;lt;&amp;lt; " " &amp;lt;&amp;lt; info.height &amp;lt;&amp;lt; "\n255\n";
      for (int y=0; y&amp;lt;info.height; y++) {
        for (int x=0; x&amp;lt;info.width; x++) {
          for (int c=0; c&amp;lt;3; c++) {
            ofs &amp;lt;&amp;lt; *(data.planes[0] + y*data.pitches[0] + x*3 + (2 - c));
          }
        }
      }
      image-&amp;gt;ReleaseAccess(&amp;amp;data);
    }
    std::cout &amp;lt;&amp;lt; "Timestamp sample: " &amp;lt;&amp;lt; image-&amp;gt;QueryTimeStamp() &amp;lt;&amp;lt; std::endl;


    PXCFaceModule *face=sm-&amp;gt;QueryFace();

    if (face) {
      PXCFaceData *face_data = face-&amp;gt;CreateOutput();
      face_data-&amp;gt;Update();

      int num_faces = face_data-&amp;gt;QueryNumberOfDetectedFaces();
      if (num_faces &amp;gt; 0) {
        for (int i=0; i&amp;lt;num_faces; i++) {
          PXCFaceData::Face *face = face_data-&amp;gt;QueryFaceByIndex(i);
          PXCFaceData::DetectionData *detection_data = face-&amp;gt;QueryDetection();

          float average_depth;
          bool success = detection_data-&amp;gt;QueryFaceAverageDepth(&amp;amp;average_depth) != 0;
          std::cout &amp;lt;&amp;lt; "depth frame " &amp;lt;&amp;lt; face_data-&amp;gt;QueryFrameTimestamp() &amp;lt;&amp;lt; ": "  &amp;lt;&amp;lt; (success ? std::string("success ") + std::to_string(average_depth) : std::string("fail")) &amp;lt;&amp;lt; std::endl;
        }
      }

      face_data-&amp;gt;Release();
    }

    sm-&amp;gt;ReleaseFrame();
    index++;
  }

  sm-&amp;gt;Release();
}
&lt;/PRE&gt;

&lt;P&gt;It seems to work fine, and produce same timestamps and results.&lt;/P&gt;

&lt;P&gt;The change is setting pause to "true" and using "&lt;SPAN style=" color:#000000;"&gt;sm&lt;/SPAN&gt;&lt;SPAN style=" color:#000000;"&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style=" font-style:italic; color:#000000;"&gt;QueryCaptureManager&lt;/SPAN&gt;&lt;SPAN style=" color:#000000;"&gt;()-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style=" font-style:italic; color:#000000;"&gt;SetFrameByIndex&lt;/SPAN&gt;&lt;SPAN style=" color:#000000;"&gt;(&lt;/SPAN&gt;&lt;SPAN style=" color:#000000;"&gt;index&lt;/SPAN&gt;&lt;SPAN style=" color:#000000;"&gt;);" with increasing indices manually.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Shouldn't the same happen (playing all frames one by one without skipping) if I set &lt;SPAN style=" font-style:italic; color:#000000;"&gt;SetRealtime to false ... ?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jan 2016 10:25:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100045#M68304</guid>
      <dc:creator>Jan_Rüegg</dc:creator>
      <dc:date>2016-01-25T10:25:15Z</dc:date>
    </item>
    <item>
      <title>Yes, with SetRealtime(false)</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100046#M68305</link>
      <description>&lt;P&gt;Yes, with SetRealtime(false) playback should be consistent. Please fill the following details:&lt;/P&gt;

&lt;P&gt;SDK Version&lt;/P&gt;

&lt;P&gt;DCM Version&lt;/P&gt;

&lt;P&gt;CPU &amp;amp; Intel Graphics driver version&lt;/P&gt;

&lt;P&gt;Also, if possible please upload your clip file.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jan 2016 12:29:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100046#M68305</guid>
      <dc:creator>Dmitry_Z_Intel</dc:creator>
      <dc:date>2016-01-25T12:29:08Z</dc:date>
    </item>
    <item>
      <title>I attached the output of your</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100047#M68306</link>
      <description>&lt;P&gt;I attached the output of your sdk_info tool, which should contain all version information you need.&lt;/P&gt;

&lt;P&gt;The sequence is here:&lt;/P&gt;

&lt;P&gt;&lt;A href="https://drive.google.com/file/d/0B0mZY8Aj3NgwNVliYjVGbWhNalE/view?usp=sharing" target="_blank"&gt;https://drive.google.com/file/d/0B0mZY8Aj3NgwNVliYjVGbWhNalE/view?usp=sharing&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;This is the current Code I used:&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;#include &amp;lt;pxcsensemanager.h&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;fstream&amp;gt;

int main(int argc, char *argv[]) {
  // Create the SenseManager instance
  PXCSenseManager *sm=PXCSenseManager::CreateInstance();

  std::cout &amp;lt;&amp;lt; sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetFileName(L"C:/Users/rggjan/Pictures/bright2.rssdk", false) &amp;lt;&amp;lt; std::endl;

  // Enable stream and Initialize
  sm-&amp;gt;EnableStream(PXCCapture::STREAM_TYPE_COLOR, 0, 0);
  sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetRealtime(false);
  sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetPause(false);

  // Enable face tracking
  std::cout &amp;lt;&amp;lt; "Face: " &amp;lt;&amp;lt; sm-&amp;gt;EnableFace() &amp;lt;&amp;lt; std::endl;

  // Initialize the pipeline
  std::cout &amp;lt;&amp;lt;"Init: " &amp;lt;&amp;lt; sm-&amp;gt;Init() &amp;lt;&amp;lt; std::endl;

  // Stream data
  int index = 0;
  for (int i=0; i&amp;lt;20; i++) {
    // retrieve the face tracking results
    if (sm-&amp;gt;AcquireFrame(true)!=PXC_STATUS_NO_ERROR)
      break;

    PXCCapture::Sample *sample=sm-&amp;gt;QuerySample();
    PXCImage *image = sample-&amp;gt;color;
    PXCImage::ImageInfo info = image-&amp;gt;QueryInfo();

    std::cout &amp;lt;&amp;lt; "Timestamp sample: " &amp;lt;&amp;lt; image-&amp;gt;QueryTimeStamp() &amp;lt;&amp;lt; std::endl;

    PXCFaceModule *face=sm-&amp;gt;QueryFace();

    if (face) {
      PXCFaceData *face_data = face-&amp;gt;CreateOutput();
      face_data-&amp;gt;Update();

      int num_faces = face_data-&amp;gt;QueryNumberOfDetectedFaces();
      if (num_faces &amp;gt; 0) {
        for (int i=0; i&amp;lt;num_faces; i++) {
          PXCFaceData::Face *face = face_data-&amp;gt;QueryFaceByIndex(i);
          PXCFaceData::DetectionData *detection_data = face-&amp;gt;QueryDetection();

          float average_depth;
          bool success = detection_data-&amp;gt;QueryFaceAverageDepth(&amp;amp;average_depth) != 0;
          std::cout &amp;lt;&amp;lt; "depth frame " &amp;lt;&amp;lt; face_data-&amp;gt;QueryFrameTimestamp() &amp;lt;&amp;lt; ": "  &amp;lt;&amp;lt; (success ? std::string("success ") + std::to_string(average_depth) : std::string("fail")) &amp;lt;&amp;lt; std::endl;
        }
      }

      face_data-&amp;gt;Release();
    }

    sm-&amp;gt;ReleaseFrame();
    index++;
  }

  sm-&amp;gt;Release();
}
&lt;/PRE&gt;

&lt;P&gt;And two different outputs:&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Run 1:&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;0&lt;BR /&gt;
	Face: 0&lt;BR /&gt;
	Init: 0&lt;BR /&gt;
	Timestamp sample: 130945613513023083&lt;BR /&gt;
	depth frame 130945613513023083: success 672.000000&lt;BR /&gt;
	Timestamp sample: 130945613523018033&lt;BR /&gt;
	depth frame 130945613523018033: success 604.000000&lt;BR /&gt;
	Timestamp sample: 130945613523351198&lt;BR /&gt;
	depth frame 130945613523351198: success 589.000000&lt;BR /&gt;
	Timestamp sample: 130945613523684363&lt;BR /&gt;
	depth frame 130945613523684363: success 578.000000&lt;BR /&gt;
	Timestamp sample: 130945613524017528&lt;BR /&gt;
	depth frame 130945613524017528: success 630.000000&lt;BR /&gt;
	Timestamp sample: 130945613525017023&lt;BR /&gt;
	depth frame 130945613525017023: success 605.000000&lt;BR /&gt;
	Timestamp sample: 130945613525350188&lt;BR /&gt;
	depth frame 130945613525350188: success 633.000000&lt;BR /&gt;
	Timestamp sample: 130945613525683353&lt;BR /&gt;
	depth frame 130945613525683353: success 636.000000&lt;BR /&gt;
	Timestamp sample: 130945613526016518&lt;BR /&gt;
	depth frame 130945613526016518: success 614.000000&lt;BR /&gt;
	Timestamp sample: 130945613526349683&lt;BR /&gt;
	depth frame 130945613526349683: success 601.000000&lt;BR /&gt;
	Timestamp sample: 130945613526682848&lt;BR /&gt;
	depth frame 130945613526682848: success 592.000000&lt;BR /&gt;
	Timestamp sample: 130945613527016013&lt;BR /&gt;
	depth frame 130945613527016013: success 587.000000&lt;BR /&gt;
	Timestamp sample: 130945613527349178&lt;BR /&gt;
	depth frame 130945613527349178: success 587.000000&lt;BR /&gt;
	Timestamp sample: 130945613527682343&lt;BR /&gt;
	depth frame 130945613527682343: success 567.000000&lt;BR /&gt;
	Timestamp sample: 130945613528015508&lt;BR /&gt;
	depth frame 130945613528015508: success 554.000000&lt;BR /&gt;
	Timestamp sample: 130945613528348673&lt;BR /&gt;
	depth frame 130945613528348673: success 548.000000&lt;BR /&gt;
	Timestamp sample: 130945613528681838&lt;BR /&gt;
	depth frame 130945613528681838: success 539.000000&lt;BR /&gt;
	Timestamp sample: 130945613529015003&lt;BR /&gt;
	depth frame 130945613529015003: success 533.000000&lt;BR /&gt;
	Timestamp sample: 130945613529348168&lt;BR /&gt;
	depth frame 130945613529348168: success 525.000000&lt;BR /&gt;
	Timestamp sample: 130945613529681333&lt;BR /&gt;
	depth frame 130945613529681333: success 524.000000&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Run 2:&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;0&lt;BR /&gt;
	Face: 0&lt;BR /&gt;
	Init: 0&lt;BR /&gt;
	Timestamp sample: 130945613513023083&lt;BR /&gt;
	depth frame 130945613513023083: success 672.000000&lt;BR /&gt;
	Timestamp sample: 130945613523018033&lt;BR /&gt;
	depth frame 130945613523018033: success 589.000000&lt;BR /&gt;
	Timestamp sample: 130945613523351198&lt;BR /&gt;
	depth frame 130945613523351198: success 578.000000&lt;BR /&gt;
	Timestamp sample: 130945613523684363&lt;BR /&gt;
	depth frame 130945613523684363: success 630.000000&lt;BR /&gt;
	Timestamp sample: 130945613524017528&lt;BR /&gt;
	depth frame 130945613524017528: success 618.000000&lt;BR /&gt;
	Timestamp sample: 130945613525017023&lt;BR /&gt;
	depth frame 130945613525017023: success 605.000000&lt;BR /&gt;
	Timestamp sample: 130945613525350188&lt;BR /&gt;
	depth frame 130945613525350188: success 633.000000&lt;BR /&gt;
	Timestamp sample: 130945613525683353&lt;BR /&gt;
	depth frame 130945613525683353: success 636.000000&lt;BR /&gt;
	Timestamp sample: 130945613526016518&lt;BR /&gt;
	depth frame 130945613526016518: success 614.000000&lt;BR /&gt;
	Timestamp sample: 130945613526349683&lt;BR /&gt;
	depth frame 130945613526349683: success 601.000000&lt;BR /&gt;
	Timestamp sample: 130945613526682848&lt;BR /&gt;
	depth frame 130945613526682848: success 592.000000&lt;BR /&gt;
	Timestamp sample: 130945613527016013&lt;BR /&gt;
	depth frame 130945613527016013: success 587.000000&lt;BR /&gt;
	Timestamp sample: 130945613527349178&lt;BR /&gt;
	depth frame 130945613527349178: success 587.000000&lt;BR /&gt;
	Timestamp sample: 130945613527682343&lt;BR /&gt;
	depth frame 130945613527682343: success 567.000000&lt;BR /&gt;
	Timestamp sample: 130945613528015508&lt;BR /&gt;
	depth frame 130945613528015508: success 554.000000&lt;BR /&gt;
	Timestamp sample: 130945613528348673&lt;BR /&gt;
	depth frame 130945613528348673: success 548.000000&lt;BR /&gt;
	Timestamp sample: 130945613528681838&lt;BR /&gt;
	depth frame 130945613528681838: success 539.000000&lt;BR /&gt;
	Timestamp sample: 130945613529015003&lt;BR /&gt;
	depth frame 130945613529015003: success 533.000000&lt;BR /&gt;
	Timestamp sample: 130945613529348168&lt;BR /&gt;
	depth frame 130945613529348168: success 525.000000&lt;BR /&gt;
	Timestamp sample: 130945613529681333&lt;BR /&gt;
	depth frame 130945613529681333: success 524.000000&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jan 2016 10:58:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100047#M68306</guid>
      <dc:creator>Jan_Rüegg</dc:creator>
      <dc:date>2016-01-26T10:58:44Z</dc:date>
    </item>
    <item>
      <title>Hi Jan,</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100048#M68307</link>
      <description>&lt;P&gt;Hi Jan,&lt;/P&gt;

&lt;P&gt;We found the origin of the issue. You need to remove line&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetPause(false);&lt;/PRE&gt;

&lt;P&gt;from your original code. In current SDK release it interferes with&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;sm-&amp;gt;QueryCaptureManager()-&amp;gt;SetRealtime(false);
&lt;/PRE&gt;

&lt;P&gt;and enables Realtime mode for playback. We will fix this either in documentation or in SDK for future releases.&lt;/P&gt;</description>
      <pubDate>Tue, 16 Feb 2016 14:17:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100048#M68307</guid>
      <dc:creator>Dmitry_Z_Intel</dc:creator>
      <dc:date>2016-02-16T14:17:50Z</dc:date>
    </item>
    <item>
      <title>Good to know, thanks for</title>
      <link>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100049#M68308</link>
      <description>&lt;P&gt;Good to know, thanks for looking into this!&lt;/P&gt;</description>
      <pubDate>Wed, 17 Feb 2016 12:25:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Recording-from-file-runs-non-deterministicly-Why/m-p/1100049#M68308</guid>
      <dc:creator>Jan_Rüegg</dc:creator>
      <dc:date>2016-02-17T12:25:21Z</dc:date>
    </item>
  </channel>
</rss>

