Marcin,

Reading your email once again, I realized that my first response wasn’t a 
proper answer to your question - because you are not transmitting the audio 
data (over RTP), but are instead are recording it into a Transport Stream file. 
 Because of this, you *do*, indeed, need to call "scheduleDelayedTask()” 
yourself - because our Transport Stream multiplexing code 
(“MPEG2TransportStreamFromESSource.cpp”) currently doesn’t do anything with the 
“durationInMicroseconds” parameter that it gets passed from the upstream 
source.  (That multiplexing code was written with the assumption that all input 
sources (for the Transport Stream) will be ‘live’ input sources (rather than 
pre-recorded data).  That’s not the case for your application.)

Fortunately, there’s an easy way for you to do this - by changing the last 
statement (lines 169-170) of “ADTSFileSource.cpp” from
        nextTask() = envir().taskScheduler().scheduleDelayedTask(0, 
(TaskFunc*)FramedSource::afterGetting, this); 
to
        nextTask() = 
envir().taskScheduler().scheduleDelayedTask(fDurationInMicroseconds, 
(TaskFunc*)FramedSource::afterGetting, this); 

(As always, I don’t recommend changing our code ‘in place’.  Instead, you 
should define your own class name - e.g., “ModifiedADTSFileSource” - and just 
copy the code from “ADTSFileSource.cpp” as appropriate.)


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

Reply via email to