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

Reply via email to