Hi, I am trying to get live RTP data as input to the RTSP Server.
Modified H264VideoFileServerMediaSubsession::createNewStreamSource to create a RTPSource instead of ByteStreamFileSource. char const* inputAddressStr = "0.0.0.0"; struct in_addr inputAddress; inputAddress.s_addr = our_inet_addr(inputAddressStr); Port const inputPort(50003); unsigned char const inputTTL = 0; // we're only reading from this mcast group Groupsock inputGroupsock(envir(), inputAddress, inputPort, inputTTL); H264VideoRTPSource *rtpSource = H264VideoRTPSource::createNew(envir(), &inputGroupsock,96,90000); return H264VideoStreamDiscreteFramer::createNew(envir(), rtpSource); The program is crashing when RTPInterface::startNetworkReading calls BasicTaskScheduler::setBackgroundHandling. From the gdb trace found that the socketNum in RTPInterface is corrupted. When the RTPInterface object was initialized its value was 6. Any idea where things might be going wrong ? GDB Trace when the application crashed. BasicTaskScheduler::setBackgroundHandling (this=0x1002008c0, socketNum=1606412024, conditionSet=2, handlerProc=0xbf7fe24, clientData=0x7fff8d02a600) at BasicTaskScheduler.cpp:197 RTPInterface::startNetworkReading (this=0x100204d90, handlerProc=0x10001b2d8 <MultiFramedRTPSource::networkReadHandler(MultiFramedRTPSource*, int)>) at UsageEnvironment.hh:156 MultiFramedRTPSource::doGetNextFrame (this=0x0) at MultiFramedRTPSource.cpp:119 H264VideoStreamDiscreteFramer::doGetNextFrame (this=0x100204d00) at H264VideoStreamDiscreteFramer.cpp:46 H264FUAFragmenter::doGetNextFrame (this=0x0) at H264VideoRTPSink.cpp:167 MultiFramedRTPSink::packFrame (this=0x0) at MultiFramedRTPSink.cpp:216 MultiFramedRTPSink::continuePlaying (this=0x0) at MultiFramedRTPSink.cpp:152 StreamState::startPlaying (this=0x1002055d0, dests=0x7fff5fbfe6f8, rtcpRRHandler=0x100020ac4 <RTSPServer::RTSPClientSession::noteClientLiveness(RTSPServer::RTSPClientSession*)>, rtcpRRHandlerClientData=0x7fff5fbff1c0, serverRequestAlternativeByteHandler=0x100022dac <RTSPServer::RTSPClientSession::handleAlternativeRequestByte(void*, unsigned char)>, serverRequestAlternativeByteHandlerClientData=0x100801600) at OnDemandServerMediaSubsession.cpp:427 OnDemandServerMediaSubsession::startStream (this=0x0, clientSessionId=1606412024, streamToken=0x1002055d0, rtcpRRHandler=0, rtcpRRHandlerClientData=0x10001b2d8, rtpSeqNum=@0x7fff5fbff266, rtpTimestamp=@0x7fff5fbff260, serverRequestAlternativeByteHandler=0x100022dac <RTSPServer::RTSPClientSession::handleAlternativeRequestByte(void*, unsigned char)>, serverRequestAlternativeByteHandlerClientData=0x100801600) at OnDemandServerMediaSubsession.cpp:210 RTSPServer::RTSPClientSession::handleCmd_PLAY (this=0x100801600, subsession=0x7fff5fbff320, cseq=0x7fff5fbff320 "??_?", fullRequestStr=0x7fff5fbff320 "??_?") at RTSPServer.cpp:1209 Regards, Sambhav
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel