| live
    | 
#include <RTSPClient.hh>


| Data Structures | |
| class | RequestQueue | 
| class | RequestRecord | 
| Public Types | |
| typedef void() | responseHandler(RTSPClient *rtspClient, int resultCode, char *resultString) | 
| Public Member Functions | |
| unsigned | sendDescribeCommand (responseHandler *responseHandler, Authenticator *authenticator=NULL) | 
| unsigned | sendOptionsCommand (responseHandler *responseHandler, Authenticator *authenticator=NULL) | 
| unsigned | sendAnnounceCommand (char const *sdpDescription, responseHandler *responseHandler, Authenticator *authenticator=NULL) | 
| unsigned | sendSetupCommand (MediaSubsession &subsession, responseHandler *responseHandler, Boolean streamOutgoing=False, Boolean streamUsingTCP=False, Boolean forceMulticastOnUnspecified=False, Authenticator *authenticator=NULL) | 
| unsigned | sendPlayCommand (MediaSession &session, responseHandler *responseHandler, double start=0.0f, double end=-1.0f, float scale=1.0f, Authenticator *authenticator=NULL) | 
| unsigned | sendPlayCommand (MediaSubsession &subsession, responseHandler *responseHandler, double start=0.0f, double end=-1.0f, float scale=1.0f, Authenticator *authenticator=NULL) | 
| unsigned | sendPlayCommand (MediaSession &session, responseHandler *responseHandler, char const *absStartTime, char const *absEndTime=NULL, float scale=1.0f, Authenticator *authenticator=NULL) | 
| unsigned | sendPlayCommand (MediaSubsession &subsession, responseHandler *responseHandler, char const *absStartTime, char const *absEndTime=NULL, float scale=1.0f, Authenticator *authenticator=NULL) | 
| unsigned | sendPauseCommand (MediaSession &session, responseHandler *responseHandler, Authenticator *authenticator=NULL) | 
| unsigned | sendPauseCommand (MediaSubsession &subsession, responseHandler *responseHandler, Authenticator *authenticator=NULL) | 
| unsigned | sendRecordCommand (MediaSession &session, responseHandler *responseHandler, Authenticator *authenticator=NULL) | 
| unsigned | sendRecordCommand (MediaSubsession &subsession, responseHandler *responseHandler, Authenticator *authenticator=NULL) | 
| unsigned | sendTeardownCommand (MediaSession &session, responseHandler *responseHandler, Authenticator *authenticator=NULL) | 
| unsigned | sendTeardownCommand (MediaSubsession &subsession, responseHandler *responseHandler, Authenticator *authenticator=NULL) | 
| unsigned | sendSetParameterCommand (MediaSession &session, responseHandler *responseHandler, char const *parameterName, char const *parameterValue, Authenticator *authenticator=NULL) | 
| unsigned | sendGetParameterCommand (MediaSession &session, responseHandler *responseHandler, char const *parameterName, Authenticator *authenticator=NULL) | 
| void | setRequireValue (char const *requireValue=NULL) | 
| void | sendDummyUDPPackets (MediaSession &session, unsigned numDummyPackets=2) | 
| void | sendDummyUDPPackets (MediaSubsession &subsession, unsigned numDummyPackets=2) | 
| void | setSpeed (MediaSession &session, float speed=1.0f) | 
| Boolean | changeResponseHandler (unsigned cseq, responseHandler *newResponseHandler) | 
| int | socketNum () const | 
| Boolean | parseRTSPURL (char const *url, char *&username, char *&password, NetAddress &address, portNumBits &portNum, char const **urlSuffix=NULL) | 
| void | setUserAgentString (char const *userAgentName) | 
| void | disallowBasicAuthentication () | 
| unsigned | sessionTimeoutParameter () const | 
| char const * | url () const | 
| UsageEnvironment & | envir () const | 
| char const * | name () const | 
| virtual Boolean | isSource () const | 
| virtual Boolean | isSink () const | 
| virtual Boolean | isRTCPInstance () const | 
| virtual Boolean | isRTSPServer () const | 
| virtual Boolean | isMediaSession () const | 
| virtual Boolean | isServerMediaSession () const | 
| Static Public Member Functions | |
| static RTSPClient * | createNew (UsageEnvironment &env, char const *rtspURL, int verbosityLevel=0, char const *applicationName=NULL, portNumBits tunnelOverHTTPPortNum=0, int socketNumToServer=-1) | 
| static Boolean | lookupByName (UsageEnvironment &env, char const *sourceName, RTSPClient *&resultClient) | 
| static Boolean | lookupByName (UsageEnvironment &env, char const *mediumName, Medium *&resultMedium) | 
| static void | close (UsageEnvironment &env, char const *mediumName) | 
| static void | close (Medium *medium) | 
| Data Fields | |
| u_int16_t | desiredMaxIncomingPacketSize | 
| Static Public Attributes | |
| static unsigned | responseBufferSize | 
| Protected Member Functions | |
| RTSPClient (UsageEnvironment &env, char const *rtspURL, int verbosityLevel, char const *applicationName, portNumBits tunnelOverHTTPPortNum, int socketNumToServer) | |
| virtual | ~RTSPClient () | 
| void | reset () | 
| void | setBaseURL (char const *url) | 
| int | grabSocket () | 
| virtual unsigned | sendRequest (RequestRecord *request) | 
| virtual Boolean | setRequestFields (RequestRecord *request, char *&cmdURL, Boolean &cmdURLWasAllocated, char const *&protocolStr, char *&extraHeaders, Boolean &extraHeadersWereAllocated) | 
| virtual int | connectToServer (int socketNum, portNumBits remotePortNum) | 
| TaskToken & | nextTask () | 
| Protected Attributes | |
| int | fVerbosityLevel | 
| unsigned | fCSeq | 
| Authenticator | fCurrentAuthenticator | 
| Boolean | fAllowBasicAuthentication | 
| struct sockaddr_storage | fServerAddress | 
| Private Member Functions | |
| virtual Boolean | isRTSPClient () const | 
| void | resetTCPSockets () | 
| void | resetResponseBuffer () | 
| int | openConnection () | 
| char * | createAuthenticatorString (char const *cmd, char const *url) | 
| char * | createBlocksizeString (Boolean streamUsingTCP) | 
| char * | createKeyMgmtString (char const *url, MediaSubsession const &subsession) | 
| void | handleRequestError (RequestRecord *request) | 
| Boolean | parseResponseCode (char const *line, unsigned &responseCode, char const *&responseString) | 
| void | handleIncomingRequest () | 
| Boolean | parseTransportParams (char const *paramsStr, char *&serverAddressStr, portNumBits &serverPortNum, unsigned char &rtpChannelId, unsigned char &rtcpChannelId) | 
| Boolean | parseScaleParam (char const *paramStr, float &scale) | 
| Boolean | parseSpeedParam (char const *paramStr, float &speed) | 
| Boolean | parseRTPInfoParams (char const *¶mStr, u_int16_t &seqNum, u_int32_t ×tamp) | 
| Boolean | handleSETUPResponse (MediaSubsession &subsession, char const *sessionParamsStr, char const *transportParamsStr, Boolean streamUsingTCP) | 
| Boolean | handlePLAYResponse (MediaSession *session, MediaSubsession *subsession, char const *scaleParamsStr, const char *speedParamsStr, char const *rangeParamsStr, char const *rtpInfoParamsStr) | 
| Boolean | handleTEARDOWNResponse (MediaSession &session, MediaSubsession &subsession) | 
| Boolean | handleGET_PARAMETERResponse (char const *parameterName, char *&resultValueString, char *resultValueStringEnd) | 
| Boolean | handleAuthenticationFailure (char const *wwwAuthenticateParamsStr) | 
| Boolean | resendCommand (RequestRecord *request) | 
| char const * | sessionURL (MediaSession const &session) const | 
| void | handleAlternativeRequestByte1 (u_int8_t requestByte) | 
| void | constructSubsessionURL (MediaSubsession const &subsession, char const *&prefix, char const *&separator, char const *&suffix) | 
| Boolean | setupHTTPTunneling1 () | 
| void | responseHandlerForHTTP_GET1 (int responseCode, char *responseString) | 
| Boolean | setupHTTPTunneling2 () | 
| void | connectionHandler1 () | 
| void | incomingDataHandler1 () | 
| void | handleResponseBytes (int newBytesRead) | 
| int | write (const char *data, unsigned count) | 
| int | read (u_int8_t *buffer, unsigned bufferSize) | 
| Static Private Member Functions | |
| static Boolean | checkForHeader (char const *line, char const *headerName, unsigned headerNameLength, char const *&headerParams) | 
| static void | handleAlternativeRequestByte (void *, u_int8_t requestByte) | 
| static void | responseHandlerForHTTP_GET (RTSPClient *rtspClient, int responseCode, char *responseString) | 
| static void | connectionHandler (void *, int) | 
| static void | incomingDataHandler (void *, int) | 
| Private Attributes | |
| portNumBits | fTunnelOverHTTPPortNum | 
| char * | fUserAgentHeaderStr | 
| unsigned | fUserAgentHeaderStrLen | 
| int | fInputSocketNum | 
| int | fOutputSocketNum | 
| char * | fBaseURL | 
| unsigned char | fTCPStreamIdCount | 
| char * | fLastSessionId | 
| unsigned | fSessionTimeoutParameter | 
| char * | fResponseBuffer | 
| unsigned | fResponseBytesAlreadySeen | 
| unsigned | fResponseBufferBytesLeft | 
| RequestQueue | fRequestsAwaitingConnection | 
| RequestQueue | fRequestsAwaitingHTTPTunneling | 
| RequestQueue | fRequestsAwaitingResponse | 
| char * | fRequireStr | 
| char | fSessionCookie [33] | 
| unsigned | fSessionCookieCounter | 
| Boolean | fHTTPTunnelingConnectionIsPending | 
| ClientTLSState | fTLS | 
| ClientTLSState | fPOSTSocketTLS | 
| ClientTLSState * | fInputTLS | 
| ClientTLSState * | fOutputTLS | 
| UsageEnvironment & | fEnviron | 
| char | fMediumName [mediumNameMaxLen] | 
| TaskToken | fNextTask | 
| Friends | |
| class | ClientTLSState | 
Definition at line 42 of file RTSPClient.hh.
| typedef void() RTSPClient::responseHandler(RTSPClient *rtspClient, int resultCode, char *resultString) | 
Definition at line 55 of file RTSPClient.hh.
| 
 | protected | 
| 
 | protectedvirtual | 
| Boolean RTSPClient::changeResponseHandler | ( | unsigned | cseq, | 
| responseHandler * | newResponseHandler | ||
| ) | 
| 
 | staticprivate | 
| 
 | staticinherited | 
| 
 | staticinherited | 
| 
 | staticprivate | 
| 
 | private | 
| 
 | protectedvirtual | 
Reimplemented in ProxyRTSPClient.
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | static | 
| 
 | inline | 
| 
 | inlineinherited | 
Definition at line 59 of file Media.hh.
References Medium::fEnviron.
Referenced by MediaSubsession::env(), GenericMediaServer::ClientConnection::envir(), GenericMediaServer::ClientSession::envir(), and RTPInterface::envir().
| 
 | protected | 
| 
 | staticprivate | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | staticprivate | 
| 
 | private | 
| 
 | virtualinherited | 
Reimplemented in MediaSession.
| 
 | virtualinherited | 
Reimplemented in RTCPInstance.
| 
 | virtualinherited | 
Reimplemented in RTSPServer.
| 
 | virtualinherited | 
Reimplemented in ServerMediaSession.
| 
 | virtualinherited | 
Reimplemented in MediaSource.
| 
 | staticinherited | 
| 
 | static | 
| 
 | inlineinherited | 
| 
 | inlineprotectedinherited | 
Definition at line 77 of file Media.hh.
References Medium::fNextTask.
| 
 | private | 
| 
 | private | 
| 
 | private | 
| Boolean RTSPClient::parseRTSPURL | ( | char const * | url, | 
| char *& | username, | ||
| char *& | password, | ||
| NetAddress & | address, | ||
| portNumBits & | portNum, | ||
| char const ** | urlSuffix = NULL | ||
| ) | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | protected | 
| 
 | private | 
| 
 | private | 
| 
 | staticprivate | 
| 
 | private | 
| unsigned RTSPClient::sendAnnounceCommand | ( | char const * | sdpDescription, | 
| responseHandler * | responseHandler, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendDescribeCommand | ( | responseHandler * | responseHandler, | 
| Authenticator * | authenticator = NULL | ||
| ) | 
| void RTSPClient::sendDummyUDPPackets | ( | MediaSession & | session, | 
| unsigned | numDummyPackets = 2 | ||
| ) | 
| void RTSPClient::sendDummyUDPPackets | ( | MediaSubsession & | subsession, | 
| unsigned | numDummyPackets = 2 | ||
| ) | 
| unsigned RTSPClient::sendGetParameterCommand | ( | MediaSession & | session, | 
| responseHandler * | responseHandler, | ||
| char const * | parameterName, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendOptionsCommand | ( | responseHandler * | responseHandler, | 
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendPauseCommand | ( | MediaSession & | session, | 
| responseHandler * | responseHandler, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendPauseCommand | ( | MediaSubsession & | subsession, | 
| responseHandler * | responseHandler, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendPlayCommand | ( | MediaSession & | session, | 
| responseHandler * | responseHandler, | ||
| char const * | absStartTime, | ||
| char const * | absEndTime = NULL, | ||
| float | scale = 1.0f, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendPlayCommand | ( | MediaSession & | session, | 
| responseHandler * | responseHandler, | ||
| double | start = 0.0f, | ||
| double | end = -1.0f, | ||
| float | scale = 1.0f, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendPlayCommand | ( | MediaSubsession & | subsession, | 
| responseHandler * | responseHandler, | ||
| char const * | absStartTime, | ||
| char const * | absEndTime = NULL, | ||
| float | scale = 1.0f, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendPlayCommand | ( | MediaSubsession & | subsession, | 
| responseHandler * | responseHandler, | ||
| double | start = 0.0f, | ||
| double | end = -1.0f, | ||
| float | scale = 1.0f, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendRecordCommand | ( | MediaSession & | session, | 
| responseHandler * | responseHandler, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendRecordCommand | ( | MediaSubsession & | subsession, | 
| responseHandler * | responseHandler, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| 
 | protectedvirtual | 
| unsigned RTSPClient::sendSetParameterCommand | ( | MediaSession & | session, | 
| responseHandler * | responseHandler, | ||
| char const * | parameterName, | ||
| char const * | parameterValue, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendSetupCommand | ( | MediaSubsession & | subsession, | 
| responseHandler * | responseHandler, | ||
| Boolean | streamOutgoing = False, | ||
| Boolean | streamUsingTCP = False, | ||
| Boolean | forceMulticastOnUnspecified = False, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendTeardownCommand | ( | MediaSession & | session, | 
| responseHandler * | responseHandler, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| unsigned RTSPClient::sendTeardownCommand | ( | MediaSubsession & | subsession, | 
| responseHandler * | responseHandler, | ||
| Authenticator * | authenticator = NULL | ||
| ) | 
| 
 | inline | 
| 
 | private | 
| 
 | protected | 
| 
 | protectedvirtual | 
Reimplemented in RTSPRegisterSender, and RTSPDeregisterSender.
| void RTSPClient::setRequireValue | ( | char const * | requireValue = NULL | ) | 
| void RTSPClient::setSpeed | ( | MediaSession & | session, | 
| float | speed = 1.0f | ||
| ) | 
| 
 | private | 
| 
 | private | 
| void RTSPClient::setUserAgentString | ( | char const * | userAgentName | ) | 
| 
 | inline | 
| 
 | inline | 
| 
 | private | 
| 
 | friend | 
Definition at line 368 of file RTSPClient.hh.
| u_int16_t RTSPClient::desiredMaxIncomingPacketSize | 
Definition at line 333 of file RTSPClient.hh.
| 
 | protected | 
Definition at line 341 of file RTSPClient.hh.
Referenced by disallowBasicAuthentication().
| 
 | private | 
Definition at line 349 of file RTSPClient.hh.
Referenced by url().
| 
 | protected | 
Definition at line 339 of file RTSPClient.hh.
| 
 | protected | 
Definition at line 340 of file RTSPClient.hh.
| 
 | privateinherited | 
Definition at line 82 of file Media.hh.
Referenced by Medium::envir().
| 
 | private | 
Definition at line 361 of file RTSPClient.hh.
| 
 | private | 
Definition at line 348 of file RTSPClient.hh.
Referenced by socketNum().
| 
 | private | 
Definition at line 366 of file RTSPClient.hh.
| 
 | private | 
Definition at line 351 of file RTSPClient.hh.
| 
 | privateinherited | 
Definition at line 83 of file Media.hh.
Referenced by Medium::name().
| 
 | privateinherited | 
Definition at line 84 of file Media.hh.
Referenced by Medium::nextTask().
| 
 | private | 
Definition at line 348 of file RTSPClient.hh.
| 
 | private | 
Definition at line 367 of file RTSPClient.hh.
| 
 | private | 
Definition at line 365 of file RTSPClient.hh.
| 
 | private | 
Definition at line 355 of file RTSPClient.hh.
| 
 | private | 
Definition at line 355 of file RTSPClient.hh.
| 
 | private | 
Definition at line 355 of file RTSPClient.hh.
| 
 | private | 
Definition at line 356 of file RTSPClient.hh.
| 
 | private | 
Definition at line 353 of file RTSPClient.hh.
| 
 | private | 
Definition at line 354 of file RTSPClient.hh.
| 
 | private | 
Definition at line 354 of file RTSPClient.hh.
| 
 | protected | 
Definition at line 342 of file RTSPClient.hh.
| 
 | private | 
Definition at line 359 of file RTSPClient.hh.
| 
 | private | 
Definition at line 360 of file RTSPClient.hh.
| 
 | private | 
Definition at line 352 of file RTSPClient.hh.
Referenced by sessionTimeoutParameter().
| 
 | private | 
Definition at line 350 of file RTSPClient.hh.
| 
 | private | 
Definition at line 364 of file RTSPClient.hh.
| 
 | private | 
Definition at line 345 of file RTSPClient.hh.
| 
 | private | 
Definition at line 346 of file RTSPClient.hh.
| 
 | private | 
Definition at line 347 of file RTSPClient.hh.
| 
 | protected | 
Definition at line 338 of file RTSPClient.hh.
| 
 | static | 
Definition at line 198 of file RTSPClient.hh.