live555 support?

414 views
Skip to first unread message

Brad Wu

unread,
Jan 22, 2015, 3:53:59 AM1/22/15
to native-cli...@googlegroups.com
I think live555 has cross-platform characteric. Hence I had developed a library by using live555. 
When I want to develop chrome (pexe) extension), however, I was beset by live555 support. 
Does anyone know how to use live555 in NACL? Should I abandon live555 supporting? Which tool is good for me to RTSP? Could anyone give me any suggestion?

Brad Wu

unread,
Jan 22, 2015, 4:59:42 AM1/22/15
to native-cli...@googlegroups.com
I write the Makefile is 

# Copyright (c) 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# GNU Makefile based on shared rules provided by the Native Client SDK.
# See README.Makefiles for more details.

VALID_TOOLCHAINS := linux newlib glibc pnacl   <== in linux
( VALID_TOOLCHAINS := win newlib glibc pnacl )  <== in win
# NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../..)
EXTRA_INC_PATHS  := \
live555/UsageEnvironment/include \
live555/BasicUsageEnvironment/include \
live555/groupsock/include \
live555/liveMedia/include \

include $(NACL_SDK_ROOT)/tools/common.mk

TARGET = RtspClient
LIBS = $(DEPS)
CFLAGS = -Wall -fpermissive -Wno-error

SOURCES = \
EFRtspClient.cpp \
EFRtpSink.cpp \
live555/groupsock/NetInterface.cpp  \
live555/groupsock/NetAddress.cpp  \
live555/groupsock/IOHandlers.cpp  \
live555/groupsock/GroupsockHelper.cpp  \
live555/groupsock/Groupsock.cpp  \
live555/groupsock/GroupEId.cpp  \
live555/groupsock/inet.c \
live555/liveMedia/WAVAudioFileSource.cpp   \
live555/liveMedia/WAVAudioFileServerMediaSubsession.cpp   \
live555/liveMedia/VP8VideoRTPSource.cpp   \
live555/liveMedia/VP8VideoRTPSink.cpp   \
live555/liveMedia/VorbisAudioRTPSource.cpp   \
live555/liveMedia/VorbisAudioRTPSink.cpp   \
live555/liveMedia/VideoRTPSink.cpp   \
live555/liveMedia/uLawAudioFilter.cpp   \
live555/liveMedia/TheoraVideoRTPSource.cpp   \
live555/liveMedia/TheoraVideoRTPSink.cpp   \
live555/liveMedia/TextRTPSink.cpp   \
live555/liveMedia/TCPStreamSink.cpp   \
live555/liveMedia/T140TextRTPSink.cpp   \
live555/liveMedia/StreamReplicator.cpp   \
live555/liveMedia/StreamParser.cpp   \
live555/liveMedia/SIPClient.cpp   \
live555/liveMedia/SimpleRTPSource.cpp   \
live555/liveMedia/SimpleRTPSink.cpp   \
live555/liveMedia/ServerMediaSession.cpp   \
live555/liveMedia/RTSPServerSupportingHTTPStreaming.cpp   \
live555/liveMedia/RTSPServer.cpp   \
live555/liveMedia/RTSPRegisterSender.cpp   \
live555/liveMedia/RTSPCommon.cpp   \
live555/liveMedia/RTSPClient.cpp   \
live555/liveMedia/RTPSource.cpp   \
live555/liveMedia/RTPSink.cpp   \
live555/liveMedia/RTPInterface.cpp   \
live555/liveMedia/RTCP.cpp   \
live555/liveMedia/QuickTimeGenericRTPSource.cpp   \
live555/liveMedia/QuickTimeFileSink.cpp   \
live555/liveMedia/QCELPAudioRTPSource.cpp   \
live555/liveMedia/ProxyServerMediaSession.cpp   \
live555/liveMedia/PassiveServerMediaSubsession.cpp   \
live555/liveMedia/OutputFile.cpp   \
live555/liveMedia/ourMD5.cpp   \
live555/liveMedia/OnDemandServerMediaSubsession.cpp   \
live555/liveMedia/OggFileSink.cpp   \
live555/liveMedia/OggFileServerMediaSubsession.cpp   \
live555/liveMedia/OggFileServerDemux.cpp   \
live555/liveMedia/OggFileParser.cpp   \
live555/liveMedia/OggFile.cpp   \
live555/liveMedia/OggDemuxedTrack.cpp   \
live555/liveMedia/MultiFramedRTPSource.cpp   \
live555/liveMedia/MultiFramedRTPSink.cpp   \
live555/liveMedia/MPEGVideoStreamParser.cpp   \
live555/liveMedia/MPEGVideoStreamFramer.cpp   \
live555/liveMedia/MPEG4VideoStreamFramer.cpp   \
live555/liveMedia/MPEG4VideoStreamDiscreteFramer.cpp   \
live555/liveMedia/MPEG4VideoFileServerMediaSubsession.cpp   \
live555/liveMedia/MPEG4LATMAudioRTPSource.cpp   \
live555/liveMedia/MPEG4LATMAudioRTPSink.cpp   \
live555/liveMedia/MPEG4GenericRTPSource.cpp   \
live555/liveMedia/MPEG4GenericRTPSink.cpp   \
live555/liveMedia/MPEG4ESVideoRTPSource.cpp   \
live555/liveMedia/MPEG4ESVideoRTPSink.cpp   \
live555/liveMedia/MPEG2TransportUDPServerMediaSubsession.cpp   \
live555/liveMedia/MPEG2TransportStreamTrickModeFilter.cpp   \
live555/liveMedia/MPEG2TransportStreamMultiplexor.cpp   \
live555/liveMedia/MPEG2TransportStreamIndexFile.cpp   \
live555/liveMedia/MPEG2TransportStreamFromPESSource.cpp   \
live555/liveMedia/MPEG2TransportStreamFromESSource.cpp   \
live555/liveMedia/MPEG2TransportStreamFramer.cpp   \
live555/liveMedia/MPEG2TransportFileServerMediaSubsession.cpp   \
live555/liveMedia/MPEG2IndexFromTransportStream.cpp   \
live555/liveMedia/MPEG1or2VideoStreamFramer.cpp   \
live555/liveMedia/MPEG1or2VideoStreamDiscreteFramer.cpp   \
live555/liveMedia/MPEG1or2VideoRTPSource.cpp   \
live555/liveMedia/MPEG1or2VideoRTPSink.cpp   \
live555/liveMedia/MPEG1or2VideoFileServerMediaSubsession.cpp   \
live555/liveMedia/MPEG1or2FileServerDemux.cpp   \
live555/liveMedia/MPEG1or2DemuxedServerMediaSubsession.cpp   \
live555/liveMedia/MPEG1or2DemuxedElementaryStream.cpp   \
live555/liveMedia/MPEG1or2Demux.cpp   \
live555/liveMedia/MPEG1or2AudioStreamFramer.cpp   \
live555/liveMedia/MPEG1or2AudioRTPSource.cpp   \
live555/liveMedia/MPEG1or2AudioRTPSink.cpp   \
live555/liveMedia/MP3Transcoder.cpp   \
live555/liveMedia/MP3StreamState.cpp   \
live555/liveMedia/MP3InternalsHuffmanTable.cpp   \
live555/liveMedia/MP3InternalsHuffman.cpp   \
live555/liveMedia/MP3Internals.cpp   \
live555/liveMedia/MP3FileSource.cpp   \
live555/liveMedia/MP3AudioMatroskaFileServerMediaSubsession.cpp   \
live555/liveMedia/MP3AudioFileServerMediaSubsession.cpp   \
live555/liveMedia/MP3ADUTranscoder.cpp   \
live555/liveMedia/MP3ADURTPSource.cpp   \
live555/liveMedia/MP3ADURTPSink.cpp   \
live555/liveMedia/MP3ADUinterleaving.cpp   \
live555/liveMedia/MP3ADUdescriptor.cpp   \
live555/liveMedia/MP3ADU.cpp   \
live555/liveMedia/MediaSource.cpp   \
live555/liveMedia/MediaSink.cpp   \
live555/liveMedia/MediaSession.cpp   \
live555/liveMedia/Media.cpp   \
live555/liveMedia/MatroskaFileServerMediaSubsession.cpp   \
live555/liveMedia/MatroskaFileServerDemux.cpp   \
live555/liveMedia/MatroskaFileParser.cpp   \
live555/liveMedia/MatroskaFile.cpp   \
live555/liveMedia/MatroskaDemuxedTrack.cpp   \
live555/liveMedia/Locale.cpp   \
live555/liveMedia/JPEGVideoSource.cpp   \
live555/liveMedia/JPEGVideoRTPSource.cpp   \
live555/liveMedia/JPEGVideoRTPSink.cpp   \
live555/liveMedia/InputFile.cpp   \
live555/liveMedia/H265VideoStreamFramer.cpp   \
live555/liveMedia/H265VideoStreamDiscreteFramer.cpp   \
live555/liveMedia/H265VideoRTPSource.cpp   \
live555/liveMedia/H265VideoRTPSink.cpp   \
live555/liveMedia/H265VideoFileSink.cpp   \
live555/liveMedia/H265VideoFileServerMediaSubsession.cpp   \
live555/liveMedia/H264VideoStreamFramer.cpp   \
live555/liveMedia/H264VideoStreamDiscreteFramer.cpp   \
live555/liveMedia/H264VideoRTPSource.cpp   \
live555/liveMedia/H264VideoRTPSink.cpp   \
live555/liveMedia/H264VideoFileSink.cpp   \
live555/liveMedia/H264VideoFileServerMediaSubsession.cpp   \
live555/liveMedia/H264or5VideoStreamFramer.cpp   \
live555/liveMedia/H264or5VideoStreamDiscreteFramer.cpp   \
live555/liveMedia/H264or5VideoRTPSink.cpp   \
live555/liveMedia/H264or5VideoFileSink.cpp   \
live555/liveMedia/H263plusVideoStreamParser.cpp   \
live555/liveMedia/H263plusVideoStreamFramer.cpp   \
live555/liveMedia/H263plusVideoRTPSource.cpp   \
live555/liveMedia/H263plusVideoRTPSink.cpp   \
live555/liveMedia/H263plusVideoFileServerMediaSubsession.cpp   \
live555/liveMedia/H261VideoRTPSource.cpp   \
live555/liveMedia/GSMAudioRTPSink.cpp   \
live555/liveMedia/FramedSource.cpp   \
live555/liveMedia/FramedFilter.cpp   \
live555/liveMedia/FramedFileSource.cpp   \
live555/liveMedia/FileSink.cpp   \
live555/liveMedia/FileServerMediaSubsession.cpp   \
live555/liveMedia/EBMLNumber.cpp   \
live555/liveMedia/DVVideoStreamFramer.cpp   \
live555/liveMedia/DVVideoRTPSource.cpp   \
live555/liveMedia/DVVideoRTPSink.cpp   \
live555/liveMedia/DVVideoFileServerMediaSubsession.cpp   \
live555/liveMedia/DigestAuthentication.cpp   \
live555/liveMedia/DeviceSource.cpp   \
live555/liveMedia/DarwinInjector.cpp   \
live555/liveMedia/ByteStreamMultiFileSource.cpp   \
live555/liveMedia/ByteStreamMemoryBufferSource.cpp   \
live555/liveMedia/ByteStreamFileSource.cpp   \
live555/liveMedia/BitVector.cpp   \
live555/liveMedia/BasicUDPSource.cpp   \
live555/liveMedia/BasicUDPSink.cpp   \
live555/liveMedia/Base64.cpp   \
live555/liveMedia/AVIFileSink.cpp   \
live555/liveMedia/AudioRTPSink.cpp   \
live555/liveMedia/AudioInputDevice.cpp   \
live555/liveMedia/AMRAudioSource.cpp   \
live555/liveMedia/AMRAudioRTPSource.cpp   \
live555/liveMedia/AMRAudioRTPSink.cpp   \
live555/liveMedia/AMRAudioFileSource.cpp   \
live555/liveMedia/AMRAudioFileSink.cpp   \
live555/liveMedia/AMRAudioFileServerMediaSubsession.cpp   \
live555/liveMedia/ADTSAudioFileSource.cpp   \
live555/liveMedia/ADTSAudioFileServerMediaSubsession.cpp   \
live555/liveMedia/AC3AudioStreamFramer.cpp   \
live555/liveMedia/AC3AudioRTPSource.cpp   \
live555/liveMedia/AC3AudioRTPSink.cpp   \
live555/liveMedia/AC3AudioFileServerMediaSubsession.cpp   \
live555/liveMedia/rtcp_from_spec.c \
live555/UsageEnvironment/UsageEnvironment.cpp \
live555/UsageEnvironment/strDup.cpp \
live555/UsageEnvironment/HashTable.cpp \
live555/BasicUsageEnvironment/BasicHashTable.cpp \
live555/BasicUsageEnvironment/BasicTaskScheduler.cpp \
live555/BasicUsageEnvironment/BasicTaskScheduler0.cpp \
live555/BasicUsageEnvironment/BasicUsageEnvironment.cpp \
live555/BasicUsageEnvironment/BasicUsageEnvironment0.cpp \
live555/BasicUsageEnvironment/DelayQueue.cpp

all: install

# Build rules generated by macros from common.mk:

$(foreach src,$(SOURCES),$(eval $(call COMPILE_RULE,$(src),$(CFLAGS))))
$(eval $(call LIB_RULE,$(TARGET),$(SOURCES)))

ifneq (,$(findstring $(TOOLCHAIN),glibc bionic))
$(eval $(call SO_RULE,$(TARGET),$(SOURCES),$(LIBS),$(DEPS)))
endif


In linux, I can build the targe library file libRtspClient.a. In windows, the above Makefile setting will be failed. 

That will show "*** Unable to find cl.exe in PATH while building Windows host build. Stop.

I think that is lack of VC compiler (should I compile it by Visual C++ ??)

Finally, I add VC to the PATH, the target file could be built, i.e., RtspClient.lib, however, this file cannot be used in NACL. 

Therefore, I have no idea for porting the present codes to NACL. What could I do?




Brad Wu於 2015年1月22日星期四 UTC+8下午4時53分59秒寫道:

Sam Clegg

unread,
Jan 22, 2015, 1:46:49 PM1/22/15
to native-cli...@googlegroups.com
Hi Brad,

The default toolchain used in the build is the first in the list of
VALID_TOOLCHAINS. Since you put linux/win first in the list you are
building a host version of the library. Try putting newlib first (or
building with TOOLCHAIN=newlib) to build a NaCl version.

Normally with third_party libraries like this it's best to use the
libraries own build system (see naclports for examples of how to use
this), but if your Makefile works then thats fine too.

Feel free to upload your proposed change to naclports if you'd like to
make it available to others (and benefit from the continuous testing
we do there).

cheers,
sam
> --
> You received this message because you are subscribed to the Google Groups
> "Native-Client-Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to native-client-di...@googlegroups.com.
> To post to this group, send email to native-cli...@googlegroups.com.
> Visit this group at http://groups.google.com/group/native-client-discuss.
> For more options, visit https://groups.google.com/d/optout.

data crusader

unread,
Jan 28, 2016, 6:51:10 AM1/28/16
to Native-Client-Discuss
I have ported live555 to pnacl and is available on github. You may check it.

taimoo...@gorillabox.net

unread,
Jan 28, 2016, 8:27:24 AM1/28/16
to Native-Client-Discuss
Thankyou Data Crusader.

Jason Yuan

unread,
Mar 22, 2018, 12:07:21 AM3/22/18
to Native-Client-Discuss
Hi data crusader,

I am working on live555 to pnacl.
Can you give a copy? Thanks.

在 2016年1月28日星期四 UTC+8下午7:51:10,data crusader写道:
Reply all
Reply to author
Forward
0 new messages