Ross, Sorry to be dense. I saw the text you provided from the FAQs, but wasn't quite sure what it meant. As it is written, I understand this to mean that a sink module that is part of a chain of nodes from the source to the destination sink will receive data from an upstream source (or a sink that is forwarding packets from an upstream node). If the sink module is the final destination, it will consume the packets. If it is an intermediate node, then it will transmit RTP packets to the next downlink sink.
Is that a correct interpretation? Also, suppose I only have one source and one sink. Does the instantiated source receive an event (e.g. PLAY) to transmit the packets over the socket interface, or does the instantiated sink actually handle the PLAY event, pull the source information from the source object, then write the packets to the socket interface, and finally read the packets from the socket interface? Regards, Jeff ________________________________ From: [email protected] [mailto:[email protected]] On Behalf Of Ross Finlayson Sent: Tuesday, June 30, 2009 1:15 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Control Flow Basics So, what is confusing to me is that in the first question, data flows from source to sink (which is what I would expect), yet the second question suggests that data is transmitted by a sink and received by a source (which is counterintuitive). Jeff, Note the last paragraph in http://www.live555.com/liveMedia/faq.html#control-flow : "Note that the flow of data from 'sources' to 'sinks' happens within each application, and doesn't necessarily correspond to the sending or receiving of network packets. For example, a server application (such as "testMP3Streamer") that sends RTP packets will do so using one or more "RTPSink" modules. These "RTPSink" modules receive data from other, "*Source" modules (e.g., to read data from a file), and, as a side effect, transmit RTP packets. " For streaming H.164 video, see http://www.live555.com/liveMedia/faq.html#h264-streaming You will need to write a 'source' class (i.e., a subclass of "FramedSource") that encapsulates your source of H.264 NAL units. You will then feed this into a subclass of "H264VideoStreamFramer" - that you will write. (In particular, this subclass must implement the "doGetNextFrame()" and "currentNALUnitEndsAccessUnit() " virtual functions. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/
_______________________________________________ live-devel mailing list [email protected] http://lists.live555.com/mailman/listinfo/live-devel
