[Live-devel] Some modifications done on the library

David BERTRAND bidibulle at operamail.com
Thu Oct 5 01:19:55 PDT 2006


Hi Ross,

> I have made most of your proposed changes; they have been included in
> the latest release of the software.

Thank you very much for this.

> - In "FramedSource.hh", I don't believe that variables such as
> "fAfterGettingFunc" should be "protected".  These are used only by
> the implementations of "FramedSource::getNextFrame()" and
> "FramedSource::afterGetting()" - which are central to the functioning
> of the library - and I don't see how/why subclasses would want to
> access (let alone modify) these variables.
That's because I implemented a class to duplicate received frames in order to serve several RTP sinks from a single RTP source. The signature of method getNextFrame() had to be modified to add a clientID in argument  list and therefore I needed to get access to those variables. Extract of my code :

void RTPDuplicator::getNextFrame(u_int8_t clientId,
				 unsigned char* to, unsigned maxSize,
				 FramedSource::afterGettingFunc*      afterGettingFunc,
				 void* afterGettingClientData,
				 FramedSource::onCloseFunc* onCloseFunc,
				 void* onCloseClientData) 
{
  
  [...]
  fAfterGettingFunc = afterGettingFunc;
  fAfterGettingClientData = afterGettingClientData;
  fOnCloseFunc = onCloseFunc;
  fOnCloseClientData = onCloseClientData;
  fIsCurrentlyAwaitingData = True;
  [...]
  doGetNextFrame();
}
> - In "RTCP.hh", I'm not (yet) convinced about the need or
> desirability of subclassing "RTCPInstance".  If the intention is to
> support new RTCP report types, then there may end up being a better
> way to do that.

No, the idea was to be able to "transparently" relay receiver reports from a player to a server instead of generating our own reports towards player and server (when we are in a RTSP proxy configuration). Our final goal is to implement 3GPP Rel 6 "Transparent end-to-end Packet-switched
Streaming Service" standard (known as 26234-670) whisle keeping using liveMedia library. To do so, we needed to modify completely the way reports are sent (in particular, the scheduling mechanis)and had to add methods like :
  static void ReceiverReportHandler(void* clientData);

David 



-- 
_______________________________________________
Surf the Web in a faster, safer and easier way:
Download Opera 9 at http://www.opera.com

Powered by Outblaze



More information about the live-devel mailing list