1. LIVE555Cross-Compile
a. Modified config.armlinuxthe 1st line of ./live folder
CROSS_COMPILE?= arm-elf- -> CROSS_COMPILE?= arm-none-linux-gnueabi-
b. Generate makefile
$ ./genMakefiles armlinux
c. Compile and generate libraries
$ make
2. LIVE555 class introduction & usage
a. LIVE555 libraries
LIVE555 includes UsageEnvironment.a, groupsock.a, liveMedia.a,BasicUsageEnvironment .a libs.
UsageEnvironment & BasicUsageEnvironment are used for taskscheduler and output error/waring message.
groupsock encapsulate network interfaces and sockets,forsending/receiving datagrams.
liveMedia defines a class hierarchy - rooted in the "Medium"class - for a variety of streaming media types and codecs.
b. LIVE555 Class hierarchy structure
Ref : http://www.live555.com/liveMedia/doxygen/html/inherits.html
c. Source and sink conception
The Sink consumption data object, for example, the receiveddata is stored to a file, the file is a Sink. Source production data objects, such as readdata via RTP. Data streamsthrough multiple 'source' and 'sink's:
'Source1' -> 'source2' (a filter) -> 'source3' (afilter) -> 'sink'
The end of the data received is the the Sink class,MediaSink is the base class of all Sink.
d. Example:
RTP Client: live555APIForEizoRTP receive MPEG2TS data flow
Source(SimpleRTPSource object) -> Sink(EizoDummySink object)
SimpleRTPSource: RTP receive MPEG2TS streaming
EizoDummySink: Store the MPEG2TS data to PIPE
RTP Server: RTP Streamer MPEG2TSdata flow
Source1(ByteStreamFileSourceobject) ->Source2/Filter (MPEG2TransportStreamFramer object) -> Sink(RTPSinkobject)
Just like above examples, as developers, needcreate a source class and a sink class to implement RTP Client/Server.
there are many example code in testProgs folder,developers can implement their features based on the reference code.