rtsp 学习之路一

http://baijiahao.baidu.com/s?id=1587715130853990653&wfr=spider&for=pc

https://www.cnblogs.com/cslunatic/p/3756417.html

https://www.cnblogs.com/jqctop1/p/4385557.html

https://www.wolfcstech.com/2017/09/07/live555_src_analysis_servermediasession/

->RTSPServer::incomingConnectionHandlerHTTP
RTSPServer* server = (RTSPServer*)instance;
server->incomingConnectionHandlerHTTP();
->RTSPServer::incomingConnectionHandlerHTTP()
incomingConnectionHandlerOnSocket(fHTTPServerSocket);
->GenericMediaServer::incomingConnectionHandlerOnSocket(int serverSocket)
->(void)createNewClientConnection(clientSocket, clientAddr);
->1GenericMediaServer::ClientConnection*
RTSPServer::createNewClientConnection(int clientSocket, struct sockaddr_in clientAddr) {
return new RTSPClientConnection(*this, clientSocket, clientAddr);
}
->2GenericMediaServer::ClientConnection*
RTSPServerSupportingHTTPStreaming::createNewClientConnection(int clientSocket, struct sockaddr_in clientAddr) {
return new RTSPClientConnectionSupportingHTTPStreaming(*this, clientSocket, clientAddr);
}
->RTSPServer::RTSPClientConnection
::RTSPClientConnection(RTSPServer& ourServer, int clientSocket, struct sockaddr_in clientAddr)
: GenericMediaServer::ClientConnection(ourServer, clientSocket, clientAddr),
fOurRTSPServer(ourServer), fClientInputSocket(fOurSocket), fClientOutputSocket(fOurSocket),
fIsActive(True), fRecursionCount(0), fOurSessionCookie(NULL) {
resetRequestBuffer();
}


//GenericMediaServer.cpp
->GenericMediaServer::ClientConnection
::ClientConnection(GenericMediaServer& ourServer, int clientSocket, struct sockaddr_in clientAddr)
: fOurServer(ourServer), fOurSocket(clientSocket), fClientAddr(clientAddr)

//GenericMediaServer.cpp
->void GenericMediaServer::ClientConnection::incomingRequestHandler(void* instance, int /*mask*/)
//GenericMediaServer.cpp
->void GenericMediaServer::ClientConnection::incomingRequestHandler()
//RTSPServer.cpp 分析读取的数据,提取出命令名
->void RTSPServer::RTSPClientConnection::handleRequestBytes(int newBytesRead)

//RTSPServer.cpp
->void RTSPServer::RTSPClientConnection::handleRequestBytes(int newBytesRead)
->handleCmd_DESCRIBE(urlPreSuffix, urlSuffix, (char const*)fRequestBuffer);
->void RTSPServer::RTSPClientConnection
::handleCmd_DESCRIBE(char const* urlPreSuffix, char const* urlSuffix, char const* fullRequestStr)
//ServerMediaSession.cpp
->char* ServerMediaSession::generateSDPDescription()
//OnDemandServerMediaSubsession.cpp
->char const* OnDemandServerMediaSubsession::sdpLines()
->void OnDemandServerMediaSubsession
::setSDPLinesFromRTPSink(RTPSink* rtpSink, FramedSource* inputSource, unsigned estBitrate)
//H264VideoFileServerMediaSubsession.cpp
->char const* H265VideoFileServerMediaSubsession::getAuxSDPLine(RTPSink* rtpSink, FramedSource* inputSource)
//H264VideoFileServerMediaSubsession.cpp
->static void checkForAuxSDPLine(void* clientData)
//H264VideoFileServerMediaSubsession.cpp
->void H264VideoFileServerMediaSubsession::checkForAuxSDPLine1()
//H264VideoRTPSink.cpp
->char const* H264VideoRTPSink::auxSDPLine()

原文地址:https://www.cnblogs.com/Malphite/p/10044361.html