> In the example program you have the ourRTSPClient with a StreamClientState 
> object attached. You "strobe" the session object to cause the client to pump 
> frames through.

I don’t know what you mean here.  I don’t use the word “strobe” anywhere in the 
code or documentation.  Please stop making up your own terminology to describe 
our code!


> Looking at these two pieces together, I see what I need, but I also see two 
> disparate paradigms. The framer wants a FramedSource and RTSPClient presents 
> a Media source. RTSPClient understands RTSP, the framer understands H264. But 
> they don't fit together in any way I can see. I see a Framed paradigm and a 
> Media paradigm.

You need to completely discard whatever view (or ‘paradigm’) that you have of 
the code, because it’s at best confusing, and at worst completely wrong!

Instead, start thinking of the code this way (which corresponds to what it 
actually does!):
----------
Your RTSP client application (again, I recommend using “testRTSPClient” as a 
model) would consist of a “MediaSink” object (in the “testRTSPClient” code, 
this is called “DummySink”), which receives data from a “FramedSource” object 
(in the “testRTSPClient” code, this is "scs.subsession->readSource()”).  The 
application starts the flow of data by calling “startPlaying()” on the 
“MediaSink” object.  (This is done just once.)

The “MediaSink” object receives one ‘frame’ at a time.  (For H.264 video, this 
‘frame’ is actually a H.264 NAL unit; not a complete ‘picture’.)  Your 
“MediaSink” subclass would do whatever processing that you want on these 
incoming H.264 NAL units.  Once again, I suggest that you review the code for 
“DummyRTPSink::afterGettingFrame()” ("testRTSPClient.cpp”, lines 500-521).  In 
your own application, you would rewrite this code to do whatever you want to 
the incoming NAL units.
----------

(And yes, as Jeff Shanab implied, you could write a “FramedFilter” subclass, 
and insert an object of this subclass in front of the 
""scs.subsession->readSource()”, and then modify your call to 
“FramedSink::startPlaying()” accordingly.  But before you start playing around 
with “FramedFilter”s, you first need to understand the basic “testRTSPClient” 
application code - and, right now, you seem to be way away from this.)

If you don’t want to use the “testRTSPClient” code as a model for your own 
application, then that’s your choice - but then you can’t expect much help (at 
least, not for free) on this mailing list.


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