119 lines
5.3 KiB
Groff
119 lines
5.3 KiB
Groff
.\" **************************************************************************
|
|
.\" * _ _ ____ _
|
|
.\" * Project ___| | | | _ \| |
|
|
.\" * / __| | | | |_) | |
|
|
.\" * | (__| |_| | _ <| |___
|
|
.\" * \___|\___/|_| \_\_____|
|
|
.\" *
|
|
.\" * Copyright (C) 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.
|
|
.\" *
|
|
.\" * SPDX-License-Identifier: curl
|
|
.\" *
|
|
.\" **************************************************************************
|
|
.\"
|
|
.TH CURLOPT_RTSP_REQUEST 3 "19 Jun 2014" libcurl libcurl
|
|
.SH NAME
|
|
CURLOPT_RTSP_REQUEST \- RTSP request
|
|
.SH SYNOPSIS
|
|
.nf
|
|
#include <curl/curl.h>
|
|
|
|
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RTSP_REQUEST, long request);
|
|
.fi
|
|
.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 automatically adds in \fI'Accept: application/sdp'\fP.
|
|
Time-condition headers are added to Describe requests if the
|
|
\fICURLOPT_TIMECONDITION(3)\fP option is used. \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 extracts
|
|
and uses 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. \fInpt=10-15\fP).
|
|
.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. \fInpt=25\fP)
|
|
.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 adds 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 uses 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 returns 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),
|
|
.BR CURLOPT_RTSP_STREAM_URI (3)
|