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; }
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; }