1 /* 2 * RTSP definitions 3 * copyright (c) 2002 Fabrice Bellard 4 * copyright (c) 2014 Samsung Electronics. All rights reserved. 5 * @Author: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> 6 * 7 * This file is part of FFmpeg. 8 * 9 * FFmpeg is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU Lesser General Public 11 * License as published by the Free Software Foundation; either 12 * version 2.1 of the License, or (at your option) any later version. 13 * 14 * FFmpeg is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 * Lesser General Public License for more details. 18 * 19 * You should have received a copy of the GNU Lesser General Public 20 * License along with FFmpeg; if not, write to the Free Software 21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 */ 23 24 #ifndef AVFORMAT_RTSPCODES_H 25 #define AVFORMAT_RTSPCODES_H 26 27 #include "libavutil/common.h" 28 29 /** RTSP handling */ 30 enum RTSPStatusCode { 31 RTSP_STATUS_CONTINUE =100, 32 RTSP_STATUS_OK =200, 33 RTSP_STATUS_CREATED =201, 34 RTSP_STATUS_LOW_ON_STORAGE_SPACE =250, 35 RTSP_STATUS_MULTIPLE_CHOICES =300, 36 RTSP_STATUS_MOVED_PERMANENTLY =301, 37 RTSP_STATUS_MOVED_TEMPORARILY =302, 38 RTSP_STATUS_SEE_OTHER =303, 39 RTSP_STATUS_NOT_MODIFIED =304, 40 RTSP_STATUS_USE_PROXY =305, 41 RTSP_STATUS_BAD_REQUEST =400, 42 RTSP_STATUS_UNAUTHORIZED =401, 43 RTSP_STATUS_PAYMENT_REQUIRED =402, 44 RTSP_STATUS_FORBIDDEN =403, 45 RTSP_STATUS_NOT_FOUND =404, 46 RTSP_STATUS_METHOD =405, 47 RTSP_STATUS_NOT_ACCEPTABLE =406, 48 RTSP_STATUS_PROXY_AUTH_REQUIRED =407, 49 RTSP_STATUS_REQ_TIME_OUT =408, 50 RTSP_STATUS_GONE =410, 51 RTSP_STATUS_LENGTH_REQUIRED =411, 52 RTSP_STATUS_PRECONDITION_FAILED =412, 53 RTSP_STATUS_REQ_ENTITY_2LARGE =413, 54 RTSP_STATUS_REQ_URI_2LARGE =414, 55 RTSP_STATUS_UNSUPPORTED_MTYPE =415, 56 RTSP_STATUS_PARAM_NOT_UNDERSTOOD =451, 57 RTSP_STATUS_CONFERENCE_NOT_FOUND =452, 58 RTSP_STATUS_BANDWIDTH =453, 59 RTSP_STATUS_SESSION =454, 60 RTSP_STATUS_STATE =455, 61 RTSP_STATUS_INVALID_HEADER_FIELD =456, 62 RTSP_STATUS_INVALID_RANGE =457, 63 RTSP_STATUS_RONLY_PARAMETER =458, 64 RTSP_STATUS_AGGREGATE =459, 65 RTSP_STATUS_ONLY_AGGREGATE =460, 66 RTSP_STATUS_TRANSPORT =461, 67 RTSP_STATUS_UNREACHABLE =462, 68 RTSP_STATUS_INTERNAL =500, 69 RTSP_STATUS_NOT_IMPLEMENTED =501, 70 RTSP_STATUS_BAD_GATEWAY =502, 71 RTSP_STATUS_SERVICE =503, 72 RTSP_STATUS_GATEWAY_TIME_OUT =504, 73 RTSP_STATUS_VERSION =505, 74 RTSP_STATUS_UNSUPPORTED_OPTION =551, 75 }; 76 77 static const av_unused char * const rtsp_status_strings[] = { 78 [RTSP_STATUS_CONTINUE] ="Continue", 79 [RTSP_STATUS_OK] ="OK", 80 [RTSP_STATUS_CREATED] ="Created", 81 [RTSP_STATUS_LOW_ON_STORAGE_SPACE] ="Low on Storage Space", 82 [RTSP_STATUS_MULTIPLE_CHOICES] ="Multiple Choices", 83 [RTSP_STATUS_MOVED_PERMANENTLY] ="Moved Permanently", 84 [RTSP_STATUS_MOVED_TEMPORARILY] ="Moved Temporarily", 85 [RTSP_STATUS_SEE_OTHER] ="See Other", 86 [RTSP_STATUS_NOT_MODIFIED] ="Not Modified", 87 [RTSP_STATUS_USE_PROXY] ="Use Proxy", 88 [RTSP_STATUS_BAD_REQUEST] ="Bad Request", 89 [RTSP_STATUS_UNAUTHORIZED] ="Unauthorized", 90 [RTSP_STATUS_PAYMENT_REQUIRED] ="Payment Required", 91 [RTSP_STATUS_FORBIDDEN] ="Forbidden", 92 [RTSP_STATUS_NOT_FOUND] ="Not Found", 93 [RTSP_STATUS_METHOD] ="Method Not Allowed", 94 [RTSP_STATUS_NOT_ACCEPTABLE] ="Not Acceptable", 95 [RTSP_STATUS_PROXY_AUTH_REQUIRED] ="Proxy Authentication Required", 96 [RTSP_STATUS_REQ_TIME_OUT] ="Request Time-out", 97 [RTSP_STATUS_GONE] ="Gone", 98 [RTSP_STATUS_LENGTH_REQUIRED] ="Length Required", 99 [RTSP_STATUS_PRECONDITION_FAILED] ="Precondition Failed", 100 [RTSP_STATUS_REQ_ENTITY_2LARGE] ="Request Entity Too Large", 101 [RTSP_STATUS_REQ_URI_2LARGE] ="Request URI Too Large", 102 [RTSP_STATUS_UNSUPPORTED_MTYPE] ="Unsupported Media Type", 103 [RTSP_STATUS_PARAM_NOT_UNDERSTOOD] ="Parameter Not Understood", 104 [RTSP_STATUS_CONFERENCE_NOT_FOUND] ="Conference Not Found", 105 [RTSP_STATUS_BANDWIDTH] ="Not Enough Bandwidth", 106 [RTSP_STATUS_SESSION] ="Session Not Found", 107 [RTSP_STATUS_STATE] ="Method Not Valid in This State", 108 [RTSP_STATUS_INVALID_HEADER_FIELD] ="Header Field Not Valid for Resource", 109 [RTSP_STATUS_INVALID_RANGE] ="Invalid Range", 110 [RTSP_STATUS_RONLY_PARAMETER] ="Parameter Is Read-Only", 111 [RTSP_STATUS_AGGREGATE] ="Aggregate Operation no Allowed", 112 [RTSP_STATUS_ONLY_AGGREGATE] ="Only Aggregate Operation Allowed", 113 [RTSP_STATUS_TRANSPORT] ="Unsupported Transport", 114 [RTSP_STATUS_UNREACHABLE] ="Destination Unreachable", 115 [RTSP_STATUS_INTERNAL] ="Internal Server Error", 116 [RTSP_STATUS_NOT_IMPLEMENTED] ="Not Implemented", 117 [RTSP_STATUS_BAD_GATEWAY] ="Bad Gateway", 118 [RTSP_STATUS_SERVICE] ="Service Unavailable", 119 [RTSP_STATUS_GATEWAY_TIME_OUT] ="Gateway Time-out", 120 [RTSP_STATUS_VERSION] ="RTSP Version not Supported", 121 [RTSP_STATUS_UNSUPPORTED_OPTION] ="Option not supported", 122 }; 123 124 #define RTSP_STATUS_CODE2STRING(x) (\ 125 x >= 100 && x < FF_ARRAY_ELEMS(rtsp_status_strings) && rtsp_status_strings[x] \ 126 )? rtsp_status_strings[x] : NULL 127 128 enum RTSPMethod { 129 DESCRIBE, 130 ANNOUNCE, 131 OPTIONS, 132 SETUP, 133 PLAY, 134 PAUSE, 135 TEARDOWN, 136 GET_PARAMETER, 137 SET_PARAMETER, 138 REDIRECT, 139 RECORD, 140 UNKNOWN = -1, 141 }; 142 #endif /* AVFORMAT_RTSPCODES_H */ 143