示例#1
0
文件: qhy_ccd.cpp 项目: rrogge/indi
void *QHYCCD::streamVideo()
{
    uint32_t ret = 0, w, h, bpp, channels;

    while (true)
    {
        pthread_mutex_lock(&condMutex);

        while (streamPredicate == 0)
            pthread_cond_wait(&cv, &condMutex);

        if (terminateThread)
            break;

        // release condMutex
        pthread_mutex_unlock(&condMutex);

        if ((ret = GetQHYCCDLiveFrame(camhandle, &w, &h, &bpp, &channels, PrimaryCCD.getFrameBuffer())) ==
            QHYCCD_SUCCESS)
            Streamer->newFrame(PrimaryCCD.getFrameBuffer(), PrimaryCCD.getFrameBufferSize());
    }

    pthread_mutex_unlock(&condMutex);
    return 0;
}
示例#2
0
文件: qhy_ccd.cpp 项目: A-j-K/indi
void* QHYCCD::streamVideo()
{
  uint32_t ret=0, w,h,bpp,channels;
  pthread_mutex_lock(&condMutex);
  //unsigned char *compressedFrame = (unsigned char *) malloc(1);

  while (true)
  {
      while (streamPredicate == 0)
          pthread_cond_wait(&cv, &condMutex);

      if (terminateThread)
          break;

      // release condMutex
      pthread_mutex_unlock(&condMutex);

      if ( (ret = GetQHYCCDLiveFrame(camhandle, &w, &h, &bpp, &channels, PrimaryCCD.getFrameBuffer())) == QHYCCD_SUCCESS)
          streamer->newFrame(PrimaryCCD.getFrameBuffer());
      /*else
      {
          DEBUGF(INDI::Logger::DBG_ERROR, "Error reading video data (%d)", ret);
          streamPredicate=0;
          streamer->setStream(false);
          continue;
      }*/



      //usleep(PrimaryCCD.getExposureDuration()*1000000);
  }

  pthread_mutex_unlock(&condMutex);
  return 0;
}