Re: Reminder: Issue 11

david audrain <[email protected]>
Newsgroups gmane.comp.multimedia.helix.devel
Message-ID <[email protected]>
Dear Mahmoud,

In Cayenne 1.5, the packet pulling is done in 
RTSPClientProtocol::UDPResponseHelper::EventPending in 
protocol/rtsp/rtspclnt.cpp. This function extracts the packet then 
forwards it to the appropriate tranport layer (see 
RTSPClientProtocol::ReadFromDone).

The A/V socket are setup in RTSPClientProtocol::CreateUDPSockets.

Regards,
David

Mahmoud Hammoud wrote:
> Dear Greg,
> 
> Thanks a lot for your comments. But I was already aware of all these 
> concepts. Is it some kind of convention that detailed references to the 
> code are avoided within the mailing lists? I would really like it if 
> someone could point me to where in the code does this "pulling" of the 
> packets from the network layer takes place for example. Again, your help 
> is very appreciated.
> 
> Thank you in advance,
> 
> Mahmoud
> 
> On Mon, Aug 11, 2008 at 7:38 PM, Greg Wright <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>     Mahmoud Hammoud wrote:
> 
>         Hi All,
> 
>         I posted some questions related to packet reception by the
>         client sockets,
>         Jyotsana preferred that someone else take a shot at those. Your
>         contributions are DEARLY APPRECIATED.
> 
>         1) How many levels of buffering is there in the client? That is,
>         we know
>         that the packets first received by the network interface
>         (whether UDP or
>         TCP) are first accumulated within calls to HandleRead( ) in a
>         structure of
>         type HXSocketData; then, "read" events issued by the client core
>         result in
>         the packets being read from this initial buffer within calls to
>         ReadFrom(...,...) (is this accurate? What is the basis for
>         issuing such
>         events?) What happens next? I mean arent the streams contained
>         in the media
>         clip then buffered in different places, for the "just-in-time"
>         delivery to
>         take place?
> 
> 
>     Just some brief comments...
> 
>     After the core (hxcleng.cpp) reads the packets(events) from the
>     network layer (jitter
>     buffer it is sometimes called) the packets are then sent to each
>     renderer
>     in some amount of time before they are needed. This amount of time
>     is roughly
>     the pre-roll of the clip. The renderers then take the packets and
>     de-packetize
>     them into input frames for the decoders, which output decoded frames.
> 
> 
>     Basically, the core *pulls* packets from the network side of the media
>     framework and *pushes* them on the other side (renderers) in a
>     just-in-time
>     fashion.
> 
>     I assume you have read:
>     https://client.helixcommunity.org/2006/devdocs/buffering
> 
> 
> 
> 
>         2) I'm finding this a little confusing: on one hand, the UDP
>         sockets for the
>         different streams involved in a media session are created with
>         RTSPClientProtocol::InitSockets( ) (which in turn also calls
>         CreateUDPSockets(..)) and on the other hand the actual
>         reading/reception of
>         the packets from the network interface seems to take place in
>         HXThreadedSocket where the code looks relatively "low-level".
>         Could you
>         please give me some hints on how these 2 different modules
>         relate to one
>         another? Just a small summary about how the packets are received and
>         the "event-driven" playout that then takes place would do..
> 
> 
>     Does the above help with how packets are received?
> 
>     Again, the engine read packets from the network layer. In the network
>     layer we are pulling packets off of the sockets. At that layer we are
>     also asking for re-sends of lost, late or out-of-order packets. The
>     Engine pulls packets out of the network layer as needed and pushed them
>     into the renderers ahead of the presentation time.
> 
>     --greg.
> 
> 
> 
>         Best Regards,
> 
>         Mahmoud
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Helix-client-dev mailing list
> [email protected]
> http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev


_______________________________________________
Helix-client-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.