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

Reply via email to