[Live-devel] Media stream duplication on a streaming relay

Bernhard Feiten Bernhard at Feiten.de
Wed Jun 25 22:28:07 PDT 2008


Dear Ross, all,

did somebody wrote the StreamDuplication class you proposed below already?

Do you have a hint how the getNextFrame functions could be synchronized?

Thank  you very much,
Bernhard




----- Original Message ----- 
From: "Ross Finlayson" <finlayson at live555.com>
To: "LIVE555 Streaming Media - development & use" 
<live-devel at ns.live555.com>
Sent: Thursday, December 08, 2005 8:57 PM
Subject: Re: [Live-devel] Media stream duplication on a streaming relay


> As you noticed, you can't duplicate a stream by having each recipient read 
> from a single object, because "getNextFrame()" can't be called more than 
> once on the same object concurrently.
>
> The solution, instead, is to create a separate object (of some 
> "FramedSource" subclass) for each recipient.  This new class would 
> implement the "doGetNextFrame()" virtual function by somehow 'registering' 
> with the data source object - to request a copy of the next incoming 
> frame.
>
> The data source object (which would *not* be a subclass of "FramedSource", 
> and so would not implement "doGetNextFrame()") would handle these requests 
> by delivering copies of each incoming frame to each recipient, and not ask 
> for a new incoming frame (from its upstream data source) until it has 
> finished delivering data to each downstream recipient.
>
> For an example of code that is similar to this, note the relationship 
> between the "MPEG1or2Demux" and "MPEG1or2DemuxedElementaryStream" classes. 
> (In this case, however, we are demultiplexing data to downstream 
> recipients, rather than duplicating it.)  Note in particular that (i) 
> "MPEG1or2Demux" is subclassed from "Medium", not "FramedSource", and (ii) 
> "MPEG1or2Demux" implements a "getNextFrame()" function that is similar to, 
> but different from "FramedSource::getNextFrame()".
>
> (This functionality (data duplication) is something that should probably 
> be added to the library someday.  Until then, however, you will need to 
> implement it yourself.)
>
>
> Ross Finlayson
> Live Networks, Inc. (LIVE555.COM)
> <http://www.live555.com/>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel 



More information about the live-devel mailing list