[Live-devel] RTSPclient and DarwinInjector in the same application

S Mathur yetanotherid at gmail.com
Mon Jun 5 12:14:16 PDT 2006


Hello again,
I created and started an additional taskSchedular for my Darwin
Injector, and I can now recieve as well as transmit RTSP/RTP streams
within the same application.

Thanks,
Mathur


On 6/5/06, live-devel-request at ns.live555.com
<live-devel-request at ns.live555.com> wrote:
> Send live-devel mailing list submissions to
>         live-devel at lists.live555.com
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://lists.live555.com/mailman/listinfo/live-devel
> or, via email, send a message with subject or body 'help' to
>         live-devel-request at lists.live555.com
>
> You can reach the person managing the list at
>         live-devel-owner at lists.live555.com
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of live-devel digest..."
>
>
> Today's Topics:
>
>    1. Re: Unresolved External Symbols (Richard Monette)
>    2. RTSPclient and DarwinInjector in the same application (S Mathur)
>    3. Global Macro (Kushal Dalal)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Fri, 2 Jun 2006 10:50:40 -0400
> From: "Richard Monette" <richard.monette at gmail.com>
> Subject: Re: [Live-devel] Unresolved External Symbols
> To: "LIVE555 Streaming Media - development & use"
>         <live-devel at ns.live555.com>
> Message-ID:
>         <d1d49260606020750r20df3935kfcd2b248ed9ab2ac at mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Solved my own problem. The problem is solved by linking to ws2_32.lib.
>
> Found the answer here:
> http://www.openldap.org/lists/openldap-software/200105/msg00552.html
>
> Cheers,
>
> Rick
>
> On 6/2/06, Richard Monette <richard.monette at gmail.com> wrote:
> >
> > I have successfully built and tested the examples using Visual Studio 2003
> > on Windows XP.
> >
> > I am attempting to create my own new project using the libraries. I have
> > linked all the libraries ( that I could find at least ) and included all the
> > header files ( that I could find at least ) but I am still getting
> > unresolved externals. In order to get rid of a bunch of "_printf etc, etc"
> > errors I have switched to compile in multithreaded debug.
> >
> > Any ideas?
> >
> > Thanks very much,
> >
> > Richard Monette
> >
> > The errors;
> >
> > ------ Build started: Project: NewLiveProject, Configuration: Debug Win32
> > ------
> >
> > Linking...
> > LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other
> > libs; use /NODEFAULTLIB:library
> > libgroupsock.lib(NetAddress.obj) : error LNK2001: unresolved external
> > symbol __imp__ntohs at 4
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2001: unresolved external
> > symbol __imp__ntohs at 4
> > libLiveMedia.lib(RTSPServer.obj ) : error LNK2019: unresolved external
> > symbol __imp__ntohs at 4 referenced in function "public: char * __thiscall
> > RTSPServer::rtspURL(class ServerMediaSession const *)const "
> > (?rtspURL at RTSPServer@@QBEPADPBVServerMediaSession@@@Z)
> > libLiveMedia.lib(OnDemandServerMediaSubsession.obj) : error LNK2001:
> > unresolved external symbol __imp__ntohs at 4
> > libLiveMedia.lib(RTCP.obj) : error LNK2001: unresolved external symbol
> > __imp__ntohs at 4
> > libLiveMedia.lib (RTPInterface.obj) : error LNK2001: unresolved external
> > symbol __imp__ntohs at 4
> > libLiveMedia.lib(RTSPServer.obj) : error LNK2019: unresolved external
> > symbol __imp__closesocket at 4 referenced in function "protected: static int
> > __cdecl RTSPServer::setUpOurSocket(class UsageEnvironment &,class Port &)"
> > (?setUpOurSocket at RTSPServer@@KAHAAVUsageEnvironment@@AAVPort@@@Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2001: unresolved external
> > symbol __imp__closesocket at 4
> > libgroupsock.lib(NetInterface.obj) : error LNK2001: unresolved external
> > symbol __imp__closesocket at 4
> > libLiveMedia.lib (RTSPServer.obj) : error LNK2019: unresolved external
> > symbol __imp__listen at 8 referenced in function "protected: static int __cdecl
> > RTSPServer::setUpOurSocket(class UsageEnvironment &,class Port &)"
> > (?setUpOurSocket at RTSPServer@@KAHAAVUsageEnvironment@@AAVPort@@@Z)
> > libLiveMedia.lib(RTSPServer.obj) : error LNK2019: unresolved external
> > symbol __imp__send at 16 referenced in function "private: void __thiscall
> > RTSPServer::RTSPClientSession::incomingRequestHandler1(void)"
> > (?incomingRequestHandler1@ RTSPClientSession at RTSPServer@@AAEXXZ)
> > libLiveMedia.lib(RTPInterface.obj) : error LNK2001: unresolved external
> > symbol __imp__send at 16
> > libLiveMedia.lib(RTSPServer.obj) : error LNK2019: unresolved external
> > symbol __imp__accept at 12 referenced in function "private: void __thiscall
> > RTSPServer::incomingConnectionHandler1(void)"
> > (?incomingConnectionHandler1 at RTSPServer@@AAEXXZ)
> > libLiveMedia.lib(MediaSink.obj) : error LNK2019: unresolved external
> > symbol __imp__htonl at 4 referenced in function "public: void __thiscall
> > OutPacketBuffer::enqueueWord(unsigned int)" (?enqueueWord at OutPacketBuffer@@
> > QAEXI at Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__htonl at 4 referenced in function "unsigned int __cdecl
> > getBufferSize(class UsageEnvironment &,int,int)"
> > (?getBufferSize@@YAIAAVUsageEnvironment@@ HH at Z)
> > libLiveMedia.lib(MediaSink.obj) : error LNK2019: unresolved external
> > symbol __imp__ntohl at 4 referenced in function "public: unsigned int
> > __thiscall OutPacketBuffer::extractWord(unsigned int)"
> > (?extractWord at OutPacketBuffer@@ QAEII at Z)
> > libLiveMedia.lib(RTCP.obj) : error LNK2019: unresolved external symbol
> > __imp__ntohl at 4 referenced in function "protected: virtual __thiscall
> > RTCPInstance::~RTCPInstance(void)" (??1RTCPInstance@@MAE at XZ )
> > libgroupsock.lib(NetAddress.obj) : error LNK2001: unresolved external
> > symbol __imp__ntohl at 4
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2001: unresolved external
> > symbol __imp__ntohl at 4
> > libLiveMedia.lib(OnDemandServerMediaSubsession.obj ) : error LNK2019:
> > unresolved external symbol __imp__gethostname at 8 referenced in function
> > "protected: __thiscall
> > OnDemandServerMediaSubsession::OnDemandServerMediaSubsession(class
> > UsageEnvironment &,unsigned int)" (??0OnDemandServerMediaSubsession@@
> > IAE at AAVUsageEnvironment@@I at Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__gethostname at 8 referenced in function "int __cdecl
> > setupDatagramSocket(class UsageEnvironment &,class Port,unsigned int)"
> > (?setupDatagramSocket@@YAHAAVUsageEnvironment@@VPort@@ I at Z)
> > libgroupsock.lib(NetAddress.obj) : error LNK2019: unresolved external
> > symbol __imp__htons at 4 referenced in function "public: __thiscall
> > Port::Port(unsigned short)" (??0Port@@QAE at G@Z)
> > libgroupsock.lib(inet.obj ) : error LNK2019: unresolved external symbol
> > __imp__inet_addr at 4 referenced in function _our_inet_addr
> > libgroupsock.lib(inet.obj) : error LNK2019: unresolved external symbol
> > __imp__inet_ntoa at 4 referenced in function _our_inet_ntoa
> > libgroupsock.lib(inet.obj) : error LNK2019: unresolved external symbol
> > __imp__WSACleanup at 0 referenced in function _initializeWinsockIfNecessary
> > libgroupsock.lib(inet.obj) : error LNK2019: unresolved external symbol
> > __imp__WSAStartup at 8 referenced in function _initializeWinsockIfNecessary
> > libgroupsock.lib(inet.obj) : error LNK2019: unresolved external symbol
> > __imp__gethostbyname at 4 referenced in function _our_gethostbyname
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__gethostbyname at 4 referenced in function "int __cdecl
> > setupStreamSocket(class UsageEnvironment &,class Port,unsigned int)"
> > (?setupStreamSocket@@YAHAAVUsageEnvironment@@VPort@@ I at Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__bind at 12 referenced in function "int __cdecl
> > setupDatagramSocket(class UsageEnvironment &,class Port,unsigned int)"
> > (?setupDatagramSocket@@YAHAAVUsageEnvironment@@VPort@@ I at Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__setsockopt at 20 referenced in function "int __cdecl
> > setupDatagramSocket(class UsageEnvironment &,class Port,unsigned int)"
> > (?setupDatagramSocket@@YAHAAVUsageEnvironment@@VPort@@ I at Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__socket at 12 referenced in function "int __cdecl
> > setupDatagramSocket(class UsageEnvironment &,class Port,unsigned int)"
> > (?setupDatagramSocket@@YAHAAVUsageEnvironment@@VPort@@ I at Z)
> > libBasicUsageEnvironment.lib(BasicTaskScheduler.obj) : error LNK2019:
> > unresolved external symbol __imp__socket at 12 referenced in function _$E8
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__ioctlsocket at 12 referenced in function "int __cdecl
> > setupStreamSocket(class UsageEnvironment &,class Port,unsigned int)"
> > (?setupStreamSocket@@YAHAAVUsageEnvironment@@VPort@@ I at Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__recvfrom at 24 referenced in function "int __cdecl
> > readSocket(class UsageEnvironment &,int,unsigned char *,unsigned int,struct
> > sockaddr_in &,struct timeval *)"
> > (?readSocket@@YAHAAVUsageEnvironment@@HPAEIAAUsockaddr_in@@PAUtimeval@@@Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol ___WSAFDIsSet at 8 referenced in function "int __cdecl
> > blockUntilReadable(class UsageEnvironment &,int,struct timeval *)"
> > (?blockUntilReadable@@YAHAAVUsageEnvironment@@HPAUtimeval@@@Z)
> > libBasicUsageEnvironment.lib(BasicTaskScheduler.obj) : error LNK2019:
> > unresolved external symbol ___WSAFDIsSet at 8 referenced in function "public:
> > virtual void * __thiscall BasicTaskScheduler::`scalar deleting
> > destructor'(unsigned int)" (??_GBasicTaskScheduler@@ UAEPAXI at Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__select at 20 referenced in function "int __cdecl
> > blockUntilReadable(class UsageEnvironment &,int,struct timeval *)"
> > (?blockUntilReadable@@YAHAAVUsageEnvironment@@HPAUtimeval@@@Z)
> > libBasicUsageEnvironment.lib(BasicTaskScheduler.obj) : error LNK2001:
> > unresolved external symbol __imp__select at 20
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__sendto at 24 referenced in function "unsigned int __cdecl
> > writeSocket(class UsageEnvironment &,int,struct in_addr,class Port,unsigned
> > char,unsigned char *,unsigned int)"
> > (?writeSocket@@YAIAAVUsageEnvironment@@HUin_addr@@VPort@@ EPAEI at Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__getsockopt at 20 referenced in function "unsigned int __cdecl
> > getBufferSize(class UsageEnvironment &,int,int)"
> > (?getBufferSize@@YAIAAVUsageEnvironment@@ HH at Z)
> > libgroupsock.lib(GroupsockHelper.obj) : error LNK2019: unresolved external
> > symbol __imp__getsockname at 12 referenced in function "unsigned int __cdecl
> > getSourcePort0(int,unsigned short &)" (?getSourcePort0@@ YAIHAAG at Z)
> > libBasicUsageEnvironment.lib(BasicUsageEnvironment.obj) : error LNK2019:
> > unresolved external symbol __imp__WSAGetLastError at 0 referenced in function
> > "public: virtual int __thiscall BasicUsageEnvironment::getErrno(void)const "
> > (?getErrno at BasicUsageEnvironment@@UBEHXZ)
> > libBasicUsageEnvironment.lib(BasicTaskScheduler.obj) : error LNK2019:
> > unresolved external symbol __imp__WSAGetLastError at 0 referenced in function
> > "protected: virtual void __thiscall BasicTaskScheduler::SingleStep(unsigned
> > int)" (?SingleStep at BasicTaskScheduler@@ MAEXI at Z)
> > Debug/NewLiveProject.exe : fatal error LNK1120: 25 unresolved externals
> >
> > Build log was saved at "file://c:\Documents and
> > Settings\support\Desktop\Richards
> > Live\live\NewLiveProject\NewLiveProject\Debug\BuildLog.htm"
> > NewLiveProject - 44 error(s), 1 warning(s)
> >
> >
> > ---------------------- Done ----------------------
> >
> >     Build: 0 succeeded, 1 failed, 0 skipped
> >
> >
> >
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: http://lists.live555.com/pipermail/live-devel/attachments/20060602/9ecd22ee/attachment-0001.html
>
> ------------------------------
>
> Message: 2
> Date: Fri, 2 Jun 2006 15:54:17 -0400
> From: "S Mathur" <yetanotherid at gmail.com>
> Subject: [Live-devel] RTSPclient and DarwinInjector in the same
>         application
> To: live-devel at ns.live555.com
> Message-ID:
>         <f54723e70606021254q5a1ac0e0g36ab3f4cb81f0f4c at mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Hello,
>
> I have modified the openRTSP/playCommon.cpp code such that it
> intercepts the M4A-LATM subsession in my streaming session and feeds
> it to a decoder filter. The decoder filter feeds data to an encoder
> filter which in turns feeds an MPEG4LATMRTPSink.
>
> The subsession related code is as follows...
> subsession->sink =  latmSink;
> subsession->sink->startPlaying(*aacEncFilter, subsessionAfterPlaying,
> subsession);
> ....
>
> My latmSink is also associated with a DarwinInjector:
> injector->addStream(latmSink, audioRTCP);
> injector->setDestination(..)
>
>
> My problem: A get a select() failed error in
> BasicTaskScheduler::SingleStep() because  RTCPInstance's destructor
> gets invoked prematurely. The ANNOUNCE (of the modified stream named
> liveST.sdp) to the Darwin server does goes through successfully.
>
> Here is the transcript, error is at the bottom:
>
> Received ANNOUNCE response: RTSP/1.0 200 OK
> Server: DSS/5.6.0 (Build/496; Platform/Win32; Release/Development;
> BuildNote/LP64 Support)
> Cseq: 4
>
> RTCPInstance[0x86cd5b8]::RTCPInstance()
> schedule(1.786040->1149276500.435798)
> Sending request: SETUP rtsp://myDSS:554/liveST.sdp/trackID=1 RTSP/1.0
> CSeq: 5
> Transport: RTP/AVP/TCP;unicast;mode=receive;interleaved=0-1
> User-Agent: Injector (LIVE555 Streaming Media v2006.03.16)
>
>
> Received SETUP response: RTSP/1.0 200 OK
> Server: DSS/5.6.0 (Build/496; Platform/Win32; Release/Development;
> BuildNote/LP64 Support)
> Cseq: 5
> Cache-Control: no-cache
> Session: 14018773254377
> Date: Fri, 02 Jun 2006 19:28:29 GMT
> Expires: Fri, 02 Jun 2006 19:28:29 GMT
> Transport: RTP/AVP/TCP;unicast;mode=receive;interleaved=0-1
>
>
> Sending request: PLAY rtsp://myDSS:554/liveST.sdp RTSP/1.0
> CSeq: 6
> Session: 14018773254377
> Range: npt=0.000-
> User-Agent: Injector (LIVE555 Streaming Media v2006.03.16)
>
>
> Received PLAY response: RTSP/1.0 200 OK
> Server: DSS/5.6.0 (Build/496; Platform/Win32; Release/Development;
> BuildNote/LP64 Support)
> Cseq: 6
> Session: 14018773254377
> RTP-Info: url=rtsp://myDSS:554/liveST.sdp/trackID=1
>
>
> RTCPInstance[0x86cd5b8]::~RTCPInstance()
> sending BYE
> sending RTCP packet
>  80c90001 c923bac9 81cb0001 c923bac9
> sendRTPOverTCP: 16 bytes over channel 1 (socket 8)
> sendRTPOverTCP: completed
> Play this stream (from the Darwin Streaming Server) using the URL:
>         rtsp://myDSS/liveST.sdp
>
> [startPlaying(latmSink) gets called here. Greenday64kbpsPlus.3gp is
> the input stream to be transcoded]
> Sending request: PLAY rtsp://myDSS:554/Greenday64kbpsPlus.3gp RTSP/1.0
> CSeq: 7
> Session: 47446503751336
> Range: npt=0.000-
> User-Agent: ./testProgram (LIVE555 Streaming Media v2006.03.16)
>
>
> Received PLAY response: RTSP/1.0 200 OK
> Server: DSS/5.6.0 (Build/496; Platform/Win32; Release/Development;
> BuildNote/LP64 Support)
> Cseq: 7
> Session: 47446503751336
> Range: npt=0.00000-285.83667
> RTP-Info: url=rtsp://myDSS:554/Greenday64kbpsPlus.3gp/trackID=65536;seq=15921;rtptime=30605
>
> Started playing session
> Receiving streamed data (for up to 290.836670 seconds)...
> BasicTaskScheduler::SingleStep(): select() fails: Bad file descriptor
>
>
> Any suggestions on what I am doing wrong?
> Thanks,
> Mathur
>
>
> ------------------------------
>
> Message: 3
> Date: Mon, 5 Jun 2006 10:13:56 +0530
> From: "Kushal Dalal" <kushal.dalal at einfochips.com>
> Subject: [Live-devel] Global Macro
> To: <live-devel at ns.live555.com>
> Message-ID: <200606050444.k554i31S002769 at ns.live555.com>
> Content-Type: text/plain; charset="us-ascii"
>
> Hi All
>
>
>
> I want to define a global macro which can be used in all files of live.
>
> Where (in which header file/files) should I define it?
>
>
>
> Thanks in advance.
>
> Kushal
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: http://lists.live555.com/pipermail/live-devel/attachments/20060604/835d925f/attachment.html
>
> ------------------------------
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
>
> End of live-devel Digest, Vol 32, Issue 3
> *****************************************
>


More information about the live-devel mailing list