[Live-devel] Design question: transferring control of sending RTP packets to source

Ross Finlayson finlayson at live555.com
Tue Dec 11 10:18:42 PST 2007


>How would I transfer control of the sending of messages to the 
>DirectShow pipeline i.e. every time a frame arrives in my DirectShow 
>filter I want to send an RTP packet instead of the letting the 
>aforementioned event loop of the live library schedule events?

You can't - you must use the event loop.  ("LIVE555 Streaming Media" 
code is event-based; the event loop is its core.)

You need to (somehow) make the arrival of a frame an event, which you 
will handle in a "FramedSource" subclass (which you would write) - to 
implement the "doGetNextFrame()" virtual function.  Unfortunately I 
don't know enough about "DirectShow" to say how you would do this, 
but I suspect that you might need to write your own subclass of 
"TaskScheduler" and use that instead of "BasicTaskScheduler".

>Do I need to write my own version of the MultiFramedRTPSink to 
>transfer RTP control to the DirectShow pipeline

No, you won't need to write a new "RTPSink" subclass (other than the 
one that you already have).

>and then call a method on my "FramedSource" subclass

That method already exists: "doGetNextFrame()".
-- 

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


More information about the live-devel mailing list