Hi Ross - Thanks so much for getting back to me!
I see what you mean, and fDurationInMicroseconds is being calculated correctly. For my fragmentation issue, If I don't call afterGetting() then doGetNextFrame() is not ever re-invoked, so the server essentially stops on the first partial read. Is there a method or variable I should set to indicate to Live555 that I want to continue accumulating data? - James On Thu, Oct 9, 2014 at 9:25 PM, Ross Finlayson <finlay...@live555.com> wrote: > In my AudioBufferSource (based on AudioInputDevice) the doGetNextFrame > happens at an extremely fast interval - which is sometimes causing my PCM > audio running at 44.1 kHz to get fragmented. > > > The frequency at which "doGetNextFrame()" gets called depends entirely on > the value that you set for "fDurationInMicroseconds". If you set this > appropriately > i.e., fDurationInMicroseconds = > (numSamplesDelivered*1000000)/samplesPerSecond > then "doGetNextFrame()" will get called at the appropriate frequency. > > Alternatively, if you leave "fDurationInMicroseconds" at its default value > of zero, then "doGetNextFrame()" will get called again immediately after > you complete delivery of the previous frame, but that's OK, provided that > you don't actually complete the delivery (i.e., call > "FramedSource::afterGetting()") until you have accumulated however many > samples you want to deliver each time. (Of course, you shouldn't 'block' > or 'spin' waiting for this to happen.) > > > Ross Finlayson > Live Networks, Inc. > http://www.live555.com/ > > > _______________________________________________ > live-devel mailing list > live-devel@lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > >
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel