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
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel