blob: f97d18d14427670857e799a783c058041e6a5e42 [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
#ifndef RTSP_PAR_COM_BASIC_DS_H_
#define RTSP_PAR_COM_BASIC_DS_H_
//#include "oscl_types.h"
#include "oscl_base.h"
#include "oscl_mem.h"
#include "oscl_str_ptr_len.h"
#include "rtprtcp.h"
#define SIMPLE_HTTP_SUPPORT
#define RTSP_PLAYLIST_SUPPORT
// for RTSP method id
//
typedef enum
{
METHOD_UNRECOGNIZED = 0,
METHOD_DESCRIBE,
METHOD_GET_PARAMETER,
METHOD_OPTIONS,
METHOD_PAUSE,
METHOD_PLAY,
METHOD_SETUP,
METHOD_RECORD,
METHOD_TEARDOWN,
METHOD_END_OF_STREAM,
METHOD_BINARY_DATA,
METHOD_REDIRECT,
METHOD_SET_PARAMETER
#ifdef SIMPLE_HTTP_SUPPORT
, METHOD_GET
, METHOD_POST
#endif
#ifdef RTSP_PLAYLIST_SUPPORT
, METHOD_PLAYLIST_PLAY
#endif
, METHOD_NUM_ENTRIES //placeholder
} RTSPMethod;
// for easy transport access
//
typedef struct
{
// fields TBD
} RTSPTransport;
// for easy range access
typedef struct
{
// fields TBD
} RTSPRange;
// type of message
//
typedef enum
{
RTSPRequestMsg,
RTSPResponseMsg,
RTSPUnknownMsg
} RTSPMsgType;
// return type for isMalformed
//
typedef enum
{
RTSPOk,
RTSPErrorVersion,
RTSPErrorTooBig,
RTSPErrorTooManyFields,
RTSPErrorSyntax
} RTSPStructureStatus;
// RTSP response code values
//
typedef uint16 RTSPStatusCode;
// RTSP session id
//
typedef StrPtrLen RTSPSessionId;
// RTSP entity body
//
typedef struct OsclMemoryFragment RTSPEntityBody;
const RTSPStatusCode
Code100 = 100, // continue
CodeContinue = 100,
Code200 = 200, // ok
CodeOK = 200,
Code201 = 201, // created
CodeCreated = 201,
Code250 = 250, // low on storage space
CodeLowOnStorageSpace = 250,
Code300 = 300, // multiple choices
CodeMultipleChoices = 300,
Code301 = 301, // moved permanently
CodeMovedPermanently = 301,
Code302 = 302, // moved temporarily
CodeMovedTemporarily = 302,
Code303 = 303, // see other
CodeSeeOther = 303,
Code304 = 304, // not modified
CodeNotModified = 304,
Code305 = 305, // use proxy
CodeUseProxy = 305,
Code400 = 400, // bad request
CodeBadRequest = 400,
Code401 = 401, // unauthorized
CodeUnauthorized = 401,
Code402 = 402, // payment required
CodePaymentRequired = 402,
Code403 = 403, // forbidden
CodeForbidden = 403,
Code404 = 404, // not found
CodeNotFound = 404,
Code405 = 405, // method not allowed
CodeMethodNotAllowed = 405,
Code406 = 406, // not acceptable
CodeNotAcceptable = 406,
Code407 = 407, // proxy authentication required
CodeProxyAuthenticationRequired = 407,
Code408 = 408, // request time-out
CodeRequestTimeOut = 408,
Code410 = 410, // gone
CodeGone = 410,
Code411 = 411, // length required
CodeLengthRequired = 411,
Code412 = 412, // precondition failed
CodePreconditionFailed = 412,
Code413 = 413, // request entity too large
CodeRequestEntityTooLarge = 413,
Code414 = 414, // request-uri too large
CodeRequestURITooLarge = 414,
Code415 = 415, // unsupported media type
CodeUnsupportedMediaType = 415,
Code451 = 451, // parameter not understood
CodeParameterNotUnderstood = 451,
Code452 = 452, // conference not found
CodeConferenceNotFound = 452,
Code453 = 453, // not enough bandwidth
CodeNotEnoughBandwidth = 453,
Code454 = 454, // session not found
CodeSessionNotFound = 454,
Code455 = 455, // method not valid in this state
CodeMethodNotValidInThisState = 455,
Code456 = 456, // header field not valid for resource
CodeHeaderFieldNotValidForResource = 456,
Code457 = 457, // invalid range
CodeInvalidRange = 457,
Code458 = 458, // parameter is read-only
CodeParameterIsReadOnly = 458,
Code459 = 459, // aggregate operation not allowed
CodeAggregateOperationNotAllowed = 459,
Code460 = 460, // only aggregate operation allowed
CodeOnlyAggregateOperationAllowed = 460,
Code461 = 461, // unsupported transport
CodeUnsupportedTransport = 461,
Code462 = 462, // destination unreachable
CodeDestinationUnreachable = 462,
Code480 = 480, // unsupported client
CodeUnsupportedClient = 480,
Code500 = 500, // internal server error
CodeInternalServerError = 500,
Code501 = 501, // not implemented
CodeNotImplemented = 501,
Code502 = 502, // bad gateway
CodeBadGateway = 502,
Code503 = 503, // service unavailable
CodeServiceUnavailable = 503,
Code504 = 504, // gateway timeout
CodeGatewayTimeout = 504,
Code505 = 505, // rtsp version not supported
CodeRTSPVersionNotSupported = 505,
Code551 = 551, // option not supported
CodeOptionNotSupported = 551
;
typedef struct
{
StrPtrLen url;
bool urlIsSet;
RtpSeqType seq;
bool seqIsSet;
RtpTimeStamp rtptime;
bool rtptimeIsSet;
} RTSPRTPInfo;
#endif // RTSP_PAR_COM_BASIC_DS_H_