[Live-devel] Proxying SIP live RTP to RTSP problem (segfault)
rus at sfinx.in
rus at sfinx.in
Mon Sep 25 00:58:01 PDT 2017
> > 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 ?
>
> No, I don?t think so, because between the two calls to ?createNewStreamSource()?, there should be a call to ?~H264VideoStreamDiscreteFramer()? (i.e., to close the object that was created by the first "createNewStreamSource()?. This is the case because you set the ?reuseFirstSource? parameter to True in your call to the ?OnDemandServerMediaSubsession? constructor.
Ok then how to fix/debug further this message and SIGSEGV ? Seems like
nobody is using the source twice but the bug is still present.
> >> 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?.
> >
> Are you *sure* that there was no "sprop-parameter-sets=? assignment in a
> "a=fmtp:? line in the SDP description returned by SIP? If there was,
> then it should end up in the ?MediaSubsession? object.
Definitely sure as the playSIP prints all the SIP messages to the stderr:
...
*** continueAfterDESCRIBE
Opened URL "sip:100 at 10.1.1.208", returning a SDP description:
v=0
o=- 2849339286 1 IN IP4 10.1.1.208
s=playSIP session
c=IN IP4 10.1.1.208
t=0 0
m=audio 8010 RTP/AVP 0
m=video 8000 RTP/AVP 99
b=AS:224
a=rtpmap:99 H264/90000
a=fmtp:99 profile-level-id=42801F; packetization-mode=1
....
As I guess the sprop-parameter-sets is used by the livecams only.
> But otherwise, your RTSP server is not going to work properly (or, more
> accurately, it will work, but clients won?t be able to play the stream
> because they won?t know the SPS and PPS NAL units before they start
> playing the stream). Is it the case that the SPS and PPS NAL units
> don?t appear in the SIP SDP, but instead appear inline (e.g.,
> periodically) in the H.264 stream? If that?s the case, then you?ll have
> to implement the ?getAuxSDPLine()? virtual function in your
> ?H264LiveServerMediaSession? class. For guidance on how to do this, see
> how we implement the ?H264VideoFileServerMediaSubsession? class.
Ok, will try to implement the same in H264LiveServerMediaSession
Thanks, Rus
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
More information about the live-devel
mailing list