diff --git a/ChangeLog b/ChangeLog index 467c52f037..74bdd33a1f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-03-21 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open): + the OPTIONS request result is optional so don't + fail on it. + 2006-03-21 Edward Hervey * gst/apetag/gsttagdemux.c: (gst_tag_demux_reset): diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 1bf57efcf6..f048196812 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -873,6 +873,10 @@ gst_rtspsrc_open (GstRTSPSrc * src) /* Then maybe Public Header... */ rtsp_message_get_header (&response, RTSP_HDR_PUBLIC, &respoptions); if (!respoptions) { + /* this field is not required, assume the server supports + * DESCRIBE and SETUP*/ + GST_DEBUG_OBJECT (src, "could not get OPTIONS"); + src->options = RTSP_DESCRIBE | RTSP_SETUP; goto no_options; } } @@ -897,6 +901,7 @@ gst_rtspsrc_open (GstRTSPSrc * src) } g_strfreev (options); + no_options: /* we need describe and setup */ if (!(src->options & RTSP_DESCRIBE)) goto no_describe; @@ -1085,12 +1090,6 @@ send_error: ("Could not send message."), (NULL)); return FALSE; } -no_options: - { - GST_ELEMENT_ERROR (src, RESOURCE, WRITE, - ("Invalid OPTIONS response."), (NULL)); - return FALSE; - } no_describe: { GST_ELEMENT_ERROR (src, RESOURCE, WRITE,