[Live-devel] Frame Buffer

David Cassany Viladomat david.cassany at i2cat.net
Wed Oct 30 01:54:32 PDT 2013


Thanks Ross,

I will have a look at VLC as you suggest. Sorry if I was not clear enough,
in my app (written in plain C) we work at frame level (compressed or not,
we already wrapped libavcodec, so we work at AVFrame level rather than at
NAL Unit level for h264) in order to transform the image and resend again,
so we deliver frame by frame to the decoder as the in following sequence:
coded frame -> decoder -> process raw frame  -> encoder -> coded frame.

So my concern and my question was more about recieving/sending frames than
recieving/sending packets, so that I was asking if inside livemedia there
is any buffer that stores packets, sorts them and compile them in frames.
In our actual code we have a frame buffer (C linked list) where each node
represents a frame which is composed by another buffer (C linked list
again) that holds all the frame packets. We use linked linked lists because
we sort packets dynamically as they arrive. Imagine I would like to start
an RTPH264VideoSource to gather frames and resend them with
RTPH264VideoSink, just dummy test, without decoding and rencoding. I guess
I should use doGetNextFrame() method to retrieve the frames but I can't
manage to understand how to control it (how do I know when the frame is
ready? what happens if there is no new frame? etc.).


Thanks for your time Ross,
David


2013/10/29 Ross Finlayson <finlayson at live555.com>

> I may ask a very simple question, but I couldn't manage to figure it out
> by my self as I don't know livemedia library arch deeply. I was wondering
> if there is any kind of frame buffer implementation or this is out of
> livemedia scope.
>
> I am thinking of moving my code to livemedia555 for an RTP streaming app
> (receiver and sender sides), but one of my major concerns goes about the
> buffer, where packets are stored (after being parsed, imagine h264 payload)
> and where coded frames are stored (a collection of packets). At which
> classes should I have a look to understand how the buffers works?
>
>
> I'm not sure I completely understand your question, but 'reading between
> the lines', I think you are asking this because you want to *display* an
> incoming video stream (rather than just receive packets, as the
> "testRTSPClient" demo application does).
>
> If that's the case, then you should first look at a media player like VLC <
> http://www.videolan.org/vlc/>, which uses the "LIVE555 Streaming Media"
> library's RTSP client implementation to receive a RTSP/RTP video (and/or
> audio) stream, and display it.
>
> If you want to program something like this yourself, however, then note
> that you will need decoding (i.e., codec) software (or hardware) to
> translate the (compressed, encoded) H.264 video NAL units into displayable
> video frames.  Note, however, that the "LIVE555 Streaming Media" software
> *does not* include any codec (video decoding) software; you would need to
> get that from somewhere else.
>
> However, if you have video decoding software (or hardware), then you can
> easily fit this into a LIVE555-based receiver application.  See, for
> example, the comments at line 133 of "testProgs/testRTSPClient.cpp".
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20131030/bbe83655/attachment.html>


More information about the live-devel mailing list