When I run live555MediaServer.exe, program send "throw" in the middle of making 
SDP lines.

As you can see below backtrace it happened in void 
StreamParser::ensureValidBytes1

The problem is StreamParser::afterGettingBytes never called back in synchronous 
mode. 
Because of ByteStreamFileSource::doReadFromFile just schedule it rather than 
call FramedSource::afterGetting directly

I don't know how live555 scheduler worked, exactly but this logic seem to 
wired..
Anyone show me the way how to handle this?

BR,
Davy


Breakpoint 2, StreamParser::ensureValidBytes1 (this=this@entry=0x8b6fa0, 
numBytesNeeded=numBytesNeeded@entry=4) at StreamParser.cpp:161
161       throw NO_MORE_BUFFERED_INPUT;
(gdb) bt
#0  StreamParser::ensureValidBytes1 (this=this@entry=0x8b6fa0, 
numBytesNeeded=numBytesNeeded@entry=4) at StreamParser.cpp:161
#1  0x000000000040adcd in ensureValidBytes (numBytesNeeded=4, this=0x8b6fa0) at 
StreamParser.hh:118

#2  test4Bytes (this=0x8b6fa0) at StreamParser.hh:54

#3  H264or5VideoStreamParser::parse (this=0x8b6fa0) at 
H264or5VideoStreamFramer.cpp:951

#4  0x0000000000405b5d in MPEGVideoStreamFramer::continueReadProcessing 
(this=0x8b6da0) at MPEGVideoStreamFramer.cpp:159

#5  0x0000000000405bf8 in MPEGVideoStreamFramer::doGetNextFrame (this=0x8b6da0) 
at MPEGVideoStreamFramer.cpp:142

#6  0x0000000000402832 in FramedSource::getNextFrame (this=0x8b6da0,
    to=to@entry=0x204d421 
"\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\27
2\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\25
5\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\36
0\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\
r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r"...,
    maxSize=100000,
    afterGettingFunc=afterGettingFunc@entry=0x419a06 
<H264or5Fragmenter::afterGettingFrame(void*, unsigned int, unsigned int, 
timeval, unsigned int)>,
 afterGettingClientData=afterGettingClientData@entry=0x204d2b0, 
onCloseFunc=0x402896 <FramedSource::handleClosure(void*)>,
    onCloseClientData=onCloseClientData@entry=0x204d2b0) at FramedSource.cpp:78

#7  0x000000000041956d in H264or5Fragmenter::doGetNextFrame (this=0x204d2b0) at 
H264or5VideoRTPSink.cpp:181

#8  0x0000000000402832 in FramedSource::getNextFrame (this=0x204d2b0,
    to=0x203493c 
"\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360
\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r
\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\2
72\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\2
55\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272\r\360\255\272"...,
 maxSize=100452,
    afterGettingFunc=0x423b76 <MultiFramedRTPSink::afterGettingFrame(void*, 
unsigned int, unsigned int, timeval, unsigned int)>,
    afterGettingClientData=0x2034560, onCloseFunc=0x423b8e 
<MultiFramedRTPSink::ourHandleClosure(void*)>, onCloseClientData=0x2034560)
    at FramedSource.cpp:78

#9  0x0000000000423a7d in MultiFramedRTPSink::packFrame (this=0x2034560) at 
MultiFramedRTPSink.cpp:224

#10 0x0000000000423b42 in MultiFramedRTPSink::buildAndSendPacket 
(this=this@entry=0x2034560, isFirstPacket=isFirstPacket@entry=1 '\001')
    at MultiFramedRTPSink.cpp:199

#11 0x0000000000423b58 in MultiFramedRTPSink::continuePlaying 
(this=this@entry=0x2034560) at MultiFramedRTPSink.cpp:159

#12 0x0000000000419ad7 in H264or5VideoRTPSink::continuePlaying (this=0x2034560) 
at H264or5VideoRTPSink.cpp:127

#13 0x00000000004167fb in MediaSink::startPlaying (this=0x2034560, source=..., 
afterFunc=afterFunc@entry=0x43b1d9 <afterPlayingDummy(void*)>,
    afterClientData=afterClientData@entry=0x1fea290) at MediaSink.cpp:78

#14 0x000000000043b2c7 in H264VideoFileServerMediaSubsession::getAuxSDPLine 
(this=0x1fea290, rtpSink=<optimized out>, inputSource=<optimized out>)
    at H264VideoFileServerMediaSubsession.cpp:92

#15 0x000000000043aaa6 in OnDemandServerMediaSubsession::setSDPLinesFromRTPSink 
(this=this@entry=0x1fea290, rtpSink=rtpSink@entry=0x2034560,
    inputSource=inputSource@entry=0x8b6da0, estBitrate=500) at 
OnDemandServerMediaSubsession.cpp:433

#16 0x000000000043acbd in OnDemandServerMediaSubsession::sdpLines 
(this=0x1fea290) at OnDemandServerMediaSubsession.cpp:76
#17 0x0000000000439244 in ServerMediaSession::generateSDPDescription 
(this=this@entry=0x1fea010) at ServerMediaSession.cpp:240
#18 0x000000000042a02f in RTSPServer::RTSPClientConnection::handleCmd_DESCRIBE 
(this=0x1fe0080, urlPreSuffix=<optimized out>,
    urlSuffix=0x22f0e0 "slamtv60.264",
    fullRequestStr=0x1fe00a4 "DESCRIBE rtsp://192.168.18.1:8554/slamtv60.264 
RTSP/1.0\r\nCSeq: 3\r\nUser-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media
v2016.02.22)\r\nAccept: application/sdp\r\n\r\n") at RTSPServer.cpp:454
#19 0x0000000000428c0a in RTSPServer::RTSPClientConnection::handleRequestBytes 
(this=0x1fe0080, newBytesRead=<optimized out>) at RTSPServer.cpp:923
---Type <return> to continue, or q <return> to quit---
#20 0x0000000000427074 in 
GenericMediaServer::ClientConnection::incomingRequestHandler (this=0x1fe0080) 
at GenericMediaServer.cpp:246
#21 0x0000000000427085 in 
GenericMediaServer::ClientConnection::incomingRequestHandler 
(instance=0x8b4a80) at GenericMediaServer.cpp:239
#22 0x000000000045b2c8 in BasicTaskScheduler::SingleStep(unsigned int) ()
#23 0x000000000000007d in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to