Hi,

Can MultiFramedRTPSink::sendPacketIfNecessary() be enhanced safely with the 
following code ? I would like to transmit all packets within one video frame as 
soon as possible instead of scheduling packet one by one ? uSecondsToGo gets 1 
usec but cause the schedule to run and actually add a lot of latency between 
packets.



if (fNoFramesLeft) {

    // We're done:

    onSourceClosure(this);

  } else {



    if (fOutBuf->haveOverflowData()) {

            sendNext(this);

    }

    else {



    // We have more frames left to send.  Figure out when the next frame

    // is due to start playing, then make sure that we wait this long before

    // sending the next packet.

    struct timeval timeNow;

    gettimeofday(&timeNow, NULL);

    int secsDiff = fNextSendTime.tv_sec - timeNow.tv_sec;

    int64_t uSecondsToGo = secsDiff*1000000 + (fNextSendTime.tv_usec - 
timeNow.tv_usec);

    if (uSecondsToGo < 0 || secsDiff < 0) { // sanity check: Make sure that the 
time-to-delay is non-negative:

      uSecondsToGo = 0;

    }



    // Delay this amount of time:

    nextTask() = envir().taskScheduler().scheduleDelayedTask(uSecondsToGo, 
(TaskFunc*)sendNext, this);

    }



  }


Bo



_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to