> Aha - you should be able to overcome this by calling: > subsession->initiate(); > just before your call to > createRTSPServer(subsession);
Well, this gives us the previous message (please note that -r flag is still passed to the playSIP) : "FramedSource[0x1bf42e0]::getNextFrame(): attempting to read more than once at the same time! Aborted (core dumped)" Core was generated by `./playSIP -r -u 102 102 10.1.1.208 sip:100@10.1.1.208'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000000000044bbf3 in FramedSource::lookupByName (env=..., sourceName=0x4511ba <H264or5VideoStreamDiscreteFramer::~H264or5VideoStreamDiscreteFramer()+30> "H\213E\370H\211\307\350\236\322\377\377\270", resultSource=@0x169f2d0: 0x699bb8 <vtable for H264VideoStreamDiscreteFramer+16>) at FramedSource.cpp:46 46 if (!MediaSource::lookupByName(env, sourceName, source)) return False; So I've inserted the debug messages in class H264LiveServerMediaSession : public OnDemandServerMediaSubsession { ... H264LiveServerMediaSession(MediaSubsession *s) : OnDemandServerMediaSubsession(*env, ... std::cerr << "*** H264LiveServerMediaSession()\n"; } FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned &estBitRate) { std::cerr << "*** createNewStreamSource() sesid:" << clientSessionId << "\n"; } ... RTPSink* createNewRTPSink(Groupsock* rtpGroupsock, .. .. std::cerr << "*** createNewRTPSink()\n"; return H264VideoRTPSink::createNew(envir(), rtpGroupsock, rtpPayloadTypeIfDynamic, ss->fmtp_spropparametersets()); } }; And just upon openRTSP connection I can see the following: ... *** H264LiveServerMediaSession() *** createNewStreamSource() sesid:0 *** createNewRTPSink() *** createNewStreamSource() sesid:2232876383 *** createNewRTPSink() FramedSource[0x1bf42e0]::getNextFrame(): attempting to read more than once at the same time! Aborted (core dumped) ... While the H264LiveServerMediaSession constructor is called once - the createNewRTPSink/createNewStreamSource are called twice (?!) upon RTSP connection. May be this is the real reason of "FramedSource[0x1bf42e0]::getNextFrame(): attempting to read more" message ? > > Though passing the data through stdin is ugly solution > I don?t think it?s ugly at all. In fact, it?s quite clean, because it uses > familiar Unix I/O stdio and pipes, rather than requiring extra programming. I'm happy to find out any way to use this clean solution with stock playSIP/testOnDemandRTSPServer and H264. > > Is there a way to fix this and make at least stdin approach to work with > > SIP ? > > If you know the SPS and PPS NAL units ahead of time, then you can add > them as (otherwise optional) parameters to the call to > ?H264VideoRTPSink::createNew()? in ?playCommon.cpp?. Sorry, I'm new to the live555 - can you show me the _exact_ way how to extract SPS/PPS in playSIP app from SIP H264 RTP packet stream using live555 API ? Thanks, Rus > > > Ross Finlayson > Live Networks, Inc. > http://www.live555.com/ > > > _______________________________________________ > live-devel mailing list > live-devel@lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > _______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel