none
HDFace get_IsTrackingIdValid() replies false in cases where ID is valid and matches tracked Body RRS feed

  • General discussion

  • I am seeing a high number of cases where:

    pHDFaceFrame->get_IsTrackingIdValid(&bHDFaceTracked)

    returns S_OK and bHDFaceTracked=false

    yet a few lines later on same thread

    m_pHDFaceFrameSources[iFace]->get_TrackingId(&lastHDFaceId)

    lastHDFaceId is the same BodyID as previous set
    and that Body *is* currently tracked
    and the BodyID on that Body matches lastHDFaceId
    therefore...I believe that ID should be valid...

    Can this be explained? This appears erroneous.


    --Dale

    Sunday, November 16, 2014 7:31 PM

All replies

  • sent to the team for feedback.

    Carmine Sirignano - MSFT

    Monday, November 17, 2014 7:23 PM
  • IHighDefinitionFaceFrame::get_IsTrackingIdValid() returns an HRESULT based on the validity of the input pointer, so it will always return S_OK if the parameter is good. From the return value all that can be determined whether the method succeeded or not, and if not, what the error was.

    In the other thread, we stated the IHighDefinitionFaceFrameSource::get_TrackingId() will always return the same value that was made to a call to IHighDefinitionFaceFrameSource::put_TrackingId().

    The distinction here is even though a “Body” has been successfully tracked, doesn’t mean an “HDFace” has been tracked. This can be verified with the call IHighDefinitionFaceFrameSource::get_IsTrackingIdValid().


    Carmine Sirignano - MSFT

    Monday, November 17, 2014 11:28 PM
  • Answered some yet still missing the answer to behavior of API in my original question:

    pHDFaceFrame->get_IsTrackingIdValid(&bHDFaceTracked)

    Will that API "return" (as in the value of bHDFaceTracks not the hresult) the same value as IHighDefinitionFaceFrameSource::get_IsTrackingIdValid() that you write above?


    --Dale

    Tuesday, November 18, 2014 12:38 AM
  • There is a chance they can be off given the async nature of it operation. Is it consistently different or at the beginning it is off but throughout it stabilizes? Do you have a repro app I can pass along to the team? 

    Carmine Sirignano - MSFT

    Wednesday, November 19, 2014 12:04 AM
  • It seems to be related to our discussion on another thread about get_IsTrackingIdValid and get_isFaceTracked(). And the delay/async internals of HDFace.

    When there is temporary lost of tracking -or- total loss (like moving out of camera's view), I tend to see this state occur. And HDface looses tracking often for a few frames.

    After I switched to get_isFaceTracked() based on the other thread's discussion and put my own state handling around the HD poll/data get's, I'm no longer seeing this state occur.


    --Dale

    Wednesday, November 19, 2014 12:27 PM