Package dcamapi

Examples of dcamapi.DCAMCAP_TRANSFERINFO


  public final DCAMCAP_TRANSFERINFO getTransfertInfo()
  {
    // DCAMERR DCAMAPI dcamcap_transferinfo ( HDCAM h, DCAMCAP_TRANSFERINFO*
    // param );

    final DCAMCAP_TRANSFERINFO lDCAMCAP_TRANSFERINFO = new DCAMCAP_TRANSFERINFO();
    lDCAMCAP_TRANSFERINFO.size(BridJ.sizeOf(DCAMCAP_TRANSFERINFO.class));

    final IntValuedEnum<DCAMERR> lError = DcamapiLibrary.dcamcapTransferinfogetHDCAMPointer(),
                                                                              pointerTo(lDCAMCAP_TRANSFERINFO));

    final boolean lSuccess = addErrorToListAndCheckHasSucceeded(lError);
View Full Code Here


  DCAMCAP_TRANSFERINFO mDcamCapTransfertInfo;

  DCAMCAP_TRANSFERINFO getTransferinfo()
  {
    mDcamCapTransfertInfo = new DCAMCAP_TRANSFERINFO();
    mDcamCapTransfertInfo.size(BridJ.sizeOf(DCAMCAP_TRANSFERINFO.class));
    final IntValuedEnum<DCAMERR> lError = DcamapiLibrary.dcamcapTransferinfomDcamDevice.getHDCAMPointer(),
                                                                              pointerTo(mDcamCapTransfertInfo));

    return mDcamCapTransfertInfo;
View Full Code Here

                        lWaitTimeout);/**/

    final long lNumberOfBuffers = mDcamAcquisition.getBufferControl()
                                                  .getNumberOfSinglePlaneBuffers();

    DCAMCAP_TRANSFERINFO lTransferinfo = mDcamAcquisition.getTransferinfo();
    mDcamAcquisition.mAcquiredFrameIndex = lTransferinfo.nFrameCount();

    while (mStopIfFalse)
    {

      // DCAMCAP_EVENT_FRAMEREADYORSTOPPED(2|16),
      final DCAMWAIT_EVENT lDcamcapEventToWaitFor;

      if (mContinuousAcquisition && !mStackAcquisition)
        lDcamcapEventToWaitFor = DCAMWAIT_EVENT.DCAMCAP_EVENT_FRAMEREADYORSTOPPED;
      else if (mStackAcquisition)
        lDcamcapEventToWaitFor = DCAMWAIT_EVENT.DCAMCAP_EVENT_FRAMEREADYORSTOPPED;
      else
        lDcamcapEventToWaitFor = DCAMWAIT_EVENT.DCAMCAP_EVENT_FRAMEREADY;

      mDcamAcquisition.mAcquisitionStartedSignal.countDown();
      if (mDcamAcquisition.mDebug)
        System.out.print("waitForEvent.before... ");
      final boolean lWaitSuccess = (mDcamAcquisition.mDcamDevice.getDcamWait().waitForEvent(lDcamcapEventToWaitFor,
                                                                                            lWaitTimeout));
      if (mDcamAcquisition.mDebug)
        System.out.println(" ...after.");
      final long lAcquisitionTimeStampInNanoseconds = StopWatch.absoluteTimeInNanoseconds();
      // System.out.println(System.nanoTime());

      lTransferinfo = mDcamAcquisition.getTransferinfo();

      final long lNumberOfFramesWrittenByDrivertoBuffers = lTransferinfo.nFrameCount();
      final long lDriversFrameIndex = lNumberOfFramesWrittenByDrivertoBuffers - 1;
      final long lReceivedFrameIndexInBufferList = lTransferinfo.nNewestFrameIndex();

      if (mDcamAcquisition.mDebug)
      {
        System.out.println("lDriversFrameIndex=" + lDriversFrameIndex);
        System.out.println("lReceivedFrameIndexInBufferList=" + lReceivedFrameIndexInBufferList);
      }

      if (!lWaitSuccess)
      {
        if (!mDcamAcquisition.isExternalTriggering() && !mDcamAcquisition.isSoftwareTriggering())
        {
          System.err.println("DcamJ: waiting for event failed!!!!");
          System.err.format("DcamJ: frame index = %d (local index = %d) out of %d frames to capture (%s acquisition)  \n",
                            mDcamAcquisition.mAcquiredFrameIndex,
                            lReceivedFrameIndexInBufferList,
                            mNumberOfFramesToCapture,
                            mStackAcquisition  ? "stack"
                                              : "single plane");
          System.err.println("DcamJ: timeout waiting for frame!");
          break;
        }
        continue;
      }

      final long lDcamWaitEvent = mDcamAcquisition.mDcamDevice.getDcamWait()
                                                              .getEvent();
      final boolean lReceivedStopEvent = lDcamWaitEvent == DCAMWAIT_EVENT.DCAMCAP_EVENT_STOPPED.value;
      final boolean lReceivedFrameReadyEvent = lDcamWaitEvent == DCAMWAIT_EVENT.DCAMCAP_EVENT_FRAMEREADY.value;

      DcamFrame lDcamFrame = null;

      if (mStackAcquisition && lReceivedStopEvent)
      {
        if (mDcamAcquisition.mDebug)
          System.out.println("DcamJ: Received Stop Event");
        if (mStackAcquisition)
        {
          lDcamFrame = mDcamAcquisition.getBufferControl()
                                        .getStackDcamFrame();
          lDcamFrame.setIndex(lDriversFrameIndex);
          lDcamFrame.setTimeStampInNs(lAcquisitionTimeStampInNanoseconds);
          mDcamAcquisition.notifyListenersmDcamAcquisition.mAcquiredFrameIndex,
                                            lAcquisitionTimeStampInNanoseconds,
                                            0,
                                            lDcamFrame);
          mDcamAcquisition.mAcquiredFrameIndex++;
          mStopIfFalse = false;
        }
      }

      if (!mStackAcquisition && lReceivedFrameReadyEvent)
      {
        long lFirstFrameNotYetAcquired = mDcamAcquisition.mAcquiredFrameIndex;
        long lNumberOfFramesToAcquire = lDriversFrameIndex - lFirstFrameNotYetAcquired;
        long lRingBufferFrameIndex = (lReceivedFrameIndexInBufferList - lNumberOfFramesToAcquire);
        while (lRingBufferFrameIndex < 0)
          lRingBufferFrameIndex += lNumberOfBuffers;
        lRingBufferFrameIndex %= lNumberOfBuffers;
        for (long lFrameIndex = lFirstFrameNotYetAcquired; lFrameIndex <= lDriversFrameIndex; lFrameIndex++)
        {
          lDcamFrame = mDcamAcquisition.getBufferControl()
                                        .getDcamFrameForIndex(lRingBufferFrameIndex);
          lDcamFrame.setIndex(lFrameIndex);
          lDcamFrame.setTimeStampInNs(lAcquisitionTimeStampInNanoseconds);
          mDcamAcquisition.notifyListenerslFrameIndex,
                                            lAcquisitionTimeStampInNanoseconds,
                                            lRingBufferFrameIndex,
                                            lDcamFrame);
          mDcamAcquisition.mAcquiredFrameIndex++;
          lRingBufferFrameIndex = (lRingBufferFrameIndex + 1) % lNumberOfBuffers;
        }
      }

      if (lDcamFrame != null)
      {
        if (mDcamAcquisition.mDebug)
          System.out.format("DcamJ: true frame index = %d, acquired frame index = %d (local index = %d) \n",
                            lDriversFrameIndex,
                            mDcamAcquisition.mAcquiredFrameIndex,
                            lReceivedFrameIndexInBufferList);

        lDcamFrame.setIndex(lDriversFrameIndex);
        lDcamFrame.setTimeStampInNs(lAcquisitionTimeStampInNanoseconds);
      }

      if (lReceivedFrameReadyEvent)
      {
        if (mDcamAcquisition.mDebug)
          System.out.println("DcamJ: Received frame ready Event");

        if (!mContinuousAcquisition && !mStackAcquisition
            && lReceivedFrameIndexInBufferList >= mNumberOfFramesToCapture - 1)
        {
          mStopIfFalse = false;
        }

      }

    }

    // if (!mContinuousAcquisition)
    {
      // System.out.println("getTransferinfo.before");
      lTransferinfo = mDcamAcquisition.getTransferinfo();
      // System.out.println("getTransferinfo.after");

      final int lNumberOfFramesWrittenByDrivertoBuffers = (int) lTransferinfo.nFrameCount();

      final long lReceivedFrameIndexInBufferList = lTransferinfo.nNewestFrameIndex();

      if (mDcamAcquisition.mDebug)
      {
        System.out.println("lNumberOfFramesWrittenByDrivertoBuffers=" + lNumberOfFramesWrittenByDrivertoBuffers);
        System.out.println("lReceivedFrameIndexInBufferList=" + lReceivedFrameIndexInBufferList);
View Full Code Here

TOP

Related Classes of dcamapi.DCAMCAP_TRANSFERINFO

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.