| .\" ************************************************************************** |
| .\" * _ _ ____ _ |
| .\" * Project ___| | | | _ \| | |
| .\" * / __| | | | |_) | | |
| .\" * | (__| |_| | _ <| |___ |
| .\" * \___|\___/|_| \_\_____| |
| .\" * |
| .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. |
| .\" * |
| .\" * This software is licensed as described in the file COPYING, which |
| .\" * you should have received as part of this distribution. The terms |
| .\" * are also available at https://curl.se/docs/copyright.html. |
| .\" * |
| .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell |
| .\" * copies of the Software, and permit persons to whom the Software is |
| .\" * furnished to do so, under the terms of the COPYING file. |
| .\" * |
| .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| .\" * KIND, either express or implied. |
| .\" * |
| .\" ************************************************************************** |
| .\" |
| .TH CURLOPT_RTSP_REQUEST 3 "November 04, 2020" "libcurl 7.78.0" "curl_easy_setopt options" |
| |
| .SH NAME |
| CURLOPT_RTSP_REQUEST \- specify RTSP request |
| .SH SYNOPSIS |
| #include <curl/curl.h> |
| |
| CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RTSP_REQUEST, long request); |
| .SH DESCRIPTION |
| Tell libcurl what kind of RTSP request to make. Pass one of the following RTSP |
| enum values as a long in the \fIrequest\fP argument. Unless noted otherwise, |
| commands require the Session ID to be initialized. |
| .IP CURL_RTSPREQ_OPTIONS |
| Used to retrieve the available methods of the server. The application is |
| responsible for parsing and obeying the response. The session ID is not needed |
| for this method. |
| .IP CURL_RTSPREQ_DESCRIBE |
| Used to get the low level description of a stream. The application should note |
| what formats it understands in the \fI'Accept:'\fP header. Unless set |
| manually, libcurl will automatically fill in \fI'Accept: application/sdp'\fP. |
| Time-condition headers will be added to Describe requests if the |
| \fICURLOPT_TIMECONDITION(3)\fP option is active. \fB(The session ID is not |
| needed for this method)\fP |
| .IP CURL_RTSPREQ_ANNOUNCE |
| When sent by a client, this method changes the description of the session. For |
| example, if a client is using the server to record a meeting, the client can |
| use Announce to inform the server of all the meta-information about the |
| session. ANNOUNCE acts like an HTTP PUT or POST just like |
| \fICURL_RTSPREQ_SET_PARAMETER\fP |
| .IP CURL_RTSPREQ_SETUP |
| Setup is used to initialize the transport layer for the session. The |
| application must set the desired Transport options for a session by using the |
| \fICURLOPT_RTSP_TRANSPORT(3)\fP option prior to calling setup. If no session |
| ID is currently set with \fICURLOPT_RTSP_SESSION_ID(3)\fP, libcurl will |
| extract and use the session ID in the response to this request. The session ID |
| is not needed for this method. |
| .IP CURL_RTSPREQ_PLAY |
| Send a Play command to the server. Use the \fICURLOPT_RANGE(3)\fP option to |
| modify the playback time (e.g. 'npt=10-15'). |
| .IP CURL_RTSPREQ_PAUSE |
| Send a Pause command to the server. Use the \fICURLOPT_RANGE(3)\fP option with |
| a single value to indicate when the stream should be halted. (e.g. npt='25') |
| .IP CURL_RTSPREQ_TEARDOWN |
| This command terminates an RTSP session. Simply closing a connection does not |
| terminate the RTSP session since it is valid to control an RTSP session over |
| different connections. |
| .IP CURL_RTSPREQ_GET_PARAMETER |
| Retrieve a parameter from the server. By default, libcurl will automatically |
| include a \fIContent-Type: text/parameters\fP header on all non-empty requests |
| unless a custom one is set. GET_PARAMETER acts just like an HTTP PUT or POST |
| (see \fICURL_RTSPREQ_SET_PARAMETER\fP). |
| Applications wishing to send a heartbeat message (e.g. in the presence of a |
| server-specified timeout) should send use an empty GET_PARAMETER request. |
| .IP CURL_RTSPREQ_SET_PARAMETER |
| Set a parameter on the server. By default, libcurl will automatically include |
| a \fIContent-Type: text/parameters\fP header unless a custom one is set. The |
| interaction with SET_PARAMETER is much like an HTTP PUT or POST. An application |
| may either use \fICURLOPT_UPLOAD(3)\fP with \fICURLOPT_READDATA(3)\fP like a |
| HTTP PUT, or it may use \fICURLOPT_POSTFIELDS(3)\fP like an HTTP POST. No |
| chunked transfers are allowed, so the application must set the |
| \fICURLOPT_INFILESIZE(3)\fP in the former and \fICURLOPT_POSTFIELDSIZE(3)\fP |
| in the latter. Also, there is no use of multi-part POSTs within RTSP. |
| .IP CURL_RTSPREQ_RECORD |
| Used to tell the server to record a session. Use the \fICURLOPT_RANGE(3)\fP |
| option to modify the record time. |
| .IP CURL_RTSPREQ_RECEIVE |
| This is a special request because it does not send any data to the server. The |
| application may call this function in order to receive interleaved RTP |
| data. It will return after processing one read buffer of data in order to give |
| the application a chance to run. |
| .SH DEFAULT |
| .SH PROTOCOLS |
| RTSP |
| .SH EXAMPLE |
| .nf |
| CURL *curl = curl_easy_init(); |
| if(curl) { |
| curl_easy_setopt(curl, CURLOPT_URL, "rtsp://example.com/"); |
| /* ask for options! */ |
| curl_easy_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_OPTIONS); |
| ret = curl_easy_perform(curl); |
| curl_easy_cleanup(curl); |
| } |
| .fi |
| .SH AVAILABILITY |
| Added in 7.20.0 |
| .SH RETURN VALUE |
| Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
| .SH "SEE ALSO" |
| .BR CURLOPT_RTSP_SESSION_ID "(3), " CURLOPT_RTSP_STREAM_URI "(3), " |