Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_RTSP_REQUEST(3)	   Library Functions Manual    CURLOPT_RTSP_REQUEST(3)

NAME
       CURLOPT_RTSP_REQUEST - RTSP request

SYNOPSIS
       #include	<curl/curl.h>

       CURLcode	curl_easy_setopt(CURL *handle, CURLOPT_RTSP_REQUEST, long request);

DESCRIPTION
       Tell libcurl what kind of RTSP request to make. Pass one	of the follow-
       ing  RTSP  enum	values as a long in the	request	argument. Unless noted
       otherwise, commands require the Session ID to be	initialized.

       CURL_RTSPREQ_OPTIONS
	      Used to retrieve the available methods of	the server. The	appli-
	      cation is	responsible for	parsing	and obeying the	response.  The
	      session ID is not	needed for this	method.

       CURL_RTSPREQ_DESCRIBE
	      Used  to get the low level description of	a stream. The applica-
	      tion should note what formats it understands  in	the  'Accept:'
	      header.  Unless set manually, libcurl automatically adds in 'Ac-
	      cept: application/sdp'. Time-condition headers are added to  De-
	      scribe  requests if the CURLOPT_TIMECONDITION(3) option is used.
	      (The session ID is not needed for	this method)

       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 CURL_RTSPREQ_SET_PARAME-
	      TER

       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 CURLOPT_RTSP_TRANSPORT(3) option prior to
	      calling setup. If	no session  ID	is  currently  set  with  CUR-
	      LOPT_RTSP_SESSION_ID(3),	libcurl	 extracts and uses the session
	      ID in the	response to this request. The session ID is not	needed
	      for this method.

       CURL_RTSPREQ_PLAY
	      Send a Play command to the server. Use the CURLOPT_RANGE(3)  op-
	      tion to modify the playback time (e.g. npt=10-15).

       CURL_RTSPREQ_PAUSE
	      Send a Pause command to the server. Use the CURLOPT_RANGE(3) op-
	      tion  with  a single value to indicate when the stream should be
	      halted. (e.g. npt=25)

       CURL_RTSPREQ_TEARDOWN
	      This command terminates an RTSP session. Simply closing  a  con-
	      nection does not terminate the RTSP session since	it is valid to
	      control an RTSP session over different connections.

       CURL_RTSPREQ_GET_PARAMETER
	      Retrieve a parameter from	the server. By default,	libcurl	adds a
	      Content-Type:  text/parameters  header on	all non-empty requests
	      unless a custom one is set. GET_PARAMETER	acts just like an HTTP
	      PUT or POST (see CURL_RTSPREQ_SET_PARAMETER). Applications wish-
	      ing to send a heartbeat message  (e.g.  in  the  presence	 of  a
	      server-specified timeout)	should send use	an empty GET_PARAMETER
	      request.

       CURL_RTSPREQ_SET_PARAMETER
	      Set  a parameter on the server. By default, libcurl uses a *Con-
	      tent-Type: text/parameters* 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 CURLOPT_UPLOAD(3) with  CUR-
	      LOPT_READDATA(3)	like  an HTTP PUT, or it may use CURLOPT_POST-
	      FIELDS(3)	like an	HTTP POST. No chunked transfers	 are  allowed,
	      so  the  application  must  set the CURLOPT_INFILESIZE(3)	in the
	      former and CURLOPT_POSTFIELDSIZE(3) in the latter.  Also,	 there
	      is no use	of multi-part POSTs within RTSP.

       CURL_RTSPREQ_RECORD
	      Used  to	tell  the  server  to  record  a session. Use the CUR-
	      LOPT_RANGE(3) option to modify the record	time.

       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.

DEFAULT
PROTOCOLS
       This functionality affects rtsp only

EXAMPLE
       int main(void)
       {
	 CURL *curl = curl_easy_init();
	 if(curl) {
	   CURLcode res;
	   curl_easy_setopt(curl, CURLOPT_URL, "rtsp://example.com/");
	   /* ask for options */
	   curl_easy_setopt(curl, CURLOPT_RTSP_REQUEST,	CURL_RTSPREQ_OPTIONS);
	   res = curl_easy_perform(curl);
	   curl_easy_cleanup(curl);
	 }
       }

AVAILABILITY
       Added in	curl 7.20.0

RETURN VALUE
       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK	(0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).

SEE ALSO
       CURLOPT_RTSP_SESSION_ID(3), CURLOPT_RTSP_STREAM_URI(3)

libcurl				  2025-06-03	       CURLOPT_RTSP_REQUEST(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_RTSP_REQUEST&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help