Hi, We have been facing this problem of live streaming stopping exactly after half an hour. The same code works on Linux OS but windows this issue is there. The readData function does not get called, And it does not get into the loop isCurrentlyAwaitingData. So incomingDataHandler1 itself is not getting called. Under what conditions will live stop calling incomingDataHandler1 ?
void LiveInputSource:: incomingDataHandler1() { int ret; if (!isCurrentlyAwaitingData()) { printf("isCurrentlyAwaitingData\n"); return ; } ret = readData(); if (ret < 0 ) { handleClosure (this); printf("handleClosure (this)\n"); } else if (ret == 0 ) { int uSecsToDelay = 50000 ; nextTask() = envir().taskScheduler().scheduleDelayedTask (uSecsToDelay, (TaskFunc*)incomingDataHandler, this); } else { nextTask() = envir().taskScheduler().scheduleDelayedTask (0, (TaskFunc*)afterGetting, this); } } int LiveInputVideoSource:: readData() { /* Get frame from queue */ queue_get (frame, &frame_len); if (frame_len == 0) { return -1; } /* Copy frame to fTo */ memcpy (fTo, frame, frame_len); fFrameSize = frame_len; /* Presentation Time */ gettimeofday (&fPresentationTime); return 1; } Thanks, Priya ________________________________ http://www.mindtree.com/email/disclaimer.html
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel