But the wav source class just uses fread instead of the bytestream so my 
getframe blocks on my audio fifo.  Doesn't that also block video since there is 
only one thread?  What do I do if I have no audio data avail?
I will check presentation time as well.


Ross Finlayson wrote:

Then problem is combining audio+video.  I think I did the audio incorrectly.  I 
think it's doing a blocking read on my audio fifo and messing up the video 
since the whole shebang is single threaded.  I think what I need is the 
ByteStream class which does async, that way it tells the scheduler to wait on 
available read data.

By default, reading from a "ByteStreamFileSource" object *is* asynchronous - 
unless you're running Windows (because Windows is brain damaged, and doesn't 
let you call "select()" on open files).  So, if you're running Windows, you'll 
get asynchronous file reading if you switch to a real operating system :-)

But I'm not convinced that that is your problem.  One important thing to get 
right if you're streaming multiple media types is presentation times - i.e., 
the "fPresentationTime" values that you set in your media source classes (when 
delivering each frame).  These values *must* be properly synchronized, and 
*must* also be aligned with 'wall clock' time - i.e., the time that you'd get 
by calling "gettimeofday()".


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to