Hi
i tried to write a RTSP client program . Code looks like this,

  curl_easy_setopt(csession, CURLOPT_URL, URL);
  curl_easy_setopt(csession, CURLOPT_RTSP_STREAM_URI, URL);
  curl_easy_setopt(csession, CURLOPT_FOLLOWLOCATION, 1);
  curl_easy_setopt(csession, CURLOPT_HEADER, 1);
  curl_easy_setopt(csession, CURLOPT_WRITEFUNCTION, write_data1);
  curl_easy_setopt(csession, CURLOPT_WRITEDATA, outfile);

    //curl_easy_setopt(csession, CURLOPT_WRITEFUNCTION, write_data1);
    //curl_easy_setopt(csession, CURLOPT_WRITEDATA, outfile);
  /** retrieve OPTIONS */
  curl_easy_setopt(csession, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_OPTIONS);
  res = curl_easy_perform(csession);

  res = curl_easy_getinfo(csession, CURLINFO_RESPONSE_CODE, &rc);
  if((res == CURLE_OK) && rc)
  {
      fprintf(stderr, "OPTIONS Response Code: %ld\n\n", rc);
  }
  else
      return -1;

  /** send DESCRIBE */
  custom_msg = curl_slist_append(custom_msg, "Accept: application/x-rtsp-mh,
application/rtsl, application/sdp");
  curl_easy_setopt(csession, CURLOPT_RTSPHEADER, custom_msg);
  curl_easy_setopt(csession, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_DESCRIBE);
  res = curl_easy_perform(csession);

  res = curl_easy_getinfo(csession, CURLINFO_RESPONSE_CODE, &rc);
  if((res == CURLE_OK) && rc)
  {
      fprintf(stderr, "DESCRIBE Response Code: %ld\n\n", rc);
  }
  else
      return -1;

  /** send SETUP */
   sprintf (request, "RTP/AVP/TCP;unicast;client_port=%d", port);
  curl_easy_setopt(csession, CURLOPT_RTSP_TRANSPORT, request);
  curl_easy_setopt(csession, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_SETUP);
  res = curl_easy_perform(csession);

  res = curl_easy_getinfo(csession, CURLINFO_RESPONSE_CODE, &rc);
  if((res == CURLE_OK) && rc)
  {
      fprintf(stderr, "SETUP Response Code: %ld\n\n", rc);
  }
  else
      return -1;

  //for (;;)
  /** send PLAY */
  curl_easy_setopt(csession, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_PLAY);
  res = curl_easy_perform(csession);

  res = curl_easy_getinfo(csession, CURLINFO_RESPONSE_CODE, &rc);
  if((res == CURLE_OK) && rc)
  {
      fprintf(stderr, "PLAY Response Code: %ld\n\n", rc);
  }
  else
      return -1;
  /** send GET_PARAMETER */
  curl_easy_setopt(csession, CURLOPT_RTSP_REQUEST,
CURL_RTSPREQ_GET_PARAMETER);
  res = curl_easy_perform(csession);
  res = curl_easy_getinfo(csession, CURLINFO_RESPONSE_CODE, &rc);
  if((res == CURLE_OK) && rc)
  {
      fprintf(stderr, "GET_PARAMETER Response Code: %ld\n\n", rc);
  }
  else
      return -1;
  res = curl_easy_perform(csession);

  res = curl_easy_getinfo(csession, CURLINFO_RESPONSE_CODE, &rc);
  if((res == CURLE_OK) && rc)
  {
      fprintf(stderr, "SETUP Response Code: %ld\n\n", rc);
  }
  else
      return -1;

  //for (;;)
  /** send PLAY */
  curl_easy_setopt(csession, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_PLAY);
  res = curl_easy_perform(csession);

  res = curl_easy_getinfo(csession, CURLINFO_RESPONSE_CODE, &rc);
  if((res == CURLE_OK) && rc)
  {
      fprintf(stderr, "PLAY Response Code: %ld\n\n", rc);
  }
  else
      return -1;
  /** send GET_PARAMETER */
  curl_easy_setopt(csession, CURLOPT_RTSP_REQUEST,
CURL_RTSPREQ_GET_PARAMETER);
  res = curl_easy_perform(csession);
  res = curl_easy_getinfo(csession, CURLINFO_RESPONSE_CODE, &rc);
  if((res == CURLE_OK) && rc)
  {
      fprintf(stderr, "GET_PARAMETER Response Code: %ld\n\n", rc);
  }
  else
      return -1;


I am using Live555 server.  But How do i store the MIME data after i invoke
method "PLAY"?
Can anyone help me in this?
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to