mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 15:51:11 +00:00
gst/rtsp/gstrtspsrc.c: When we try to execute a method that is not supported by the server, don't error out but remov...
Original commit message from CVS: * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send): When we try to execute a method that is not supported by the server, don't error out but remove the method from the accepted methods so that we never try to perform this method again.
This commit is contained in:
parent
4333477d0c
commit
789ef04027
2 changed files with 22 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
|||
2007-05-14 Wim Taymans <wim@fluendo.com>
|
||||
|
||||
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send):
|
||||
When we try to execute a method that is not supported by the server,
|
||||
don't error out but remove the method from the accepted methods so that
|
||||
we never try to perform this method again.
|
||||
|
||||
2007-05-14 Wim Taymans <wim@fluendo.com>
|
||||
|
||||
* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_process):
|
||||
|
|
|
@ -2772,9 +2772,14 @@ gst_rtspsrc_send (GstRTSPSrc * src, RTSPMessage * request,
|
|||
RTSPStatusCode int_code = RTSP_STS_OK;
|
||||
RTSPResult res;
|
||||
gboolean retry;
|
||||
RTSPMethod method;
|
||||
|
||||
do {
|
||||
retry = FALSE;
|
||||
|
||||
/* save method so we can disable it when the server complains */
|
||||
method = request->type_data.request.method;
|
||||
|
||||
if ((res = gst_rtspsrc_try_send (src, request, response, &int_code)) < 0)
|
||||
goto error;
|
||||
|
||||
|
@ -2804,11 +2809,20 @@ error:
|
|||
}
|
||||
error_response:
|
||||
{
|
||||
res = RTSP_ERROR;
|
||||
|
||||
switch (response->type_data.response.code) {
|
||||
case RTSP_STS_NOT_FOUND:
|
||||
GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND, (NULL), ("%s",
|
||||
response->type_data.response.reason));
|
||||
break;
|
||||
case RTSP_STS_NOT_ACCEPTABLE:
|
||||
case RTSP_STS_NOT_IMPLEMENTED:
|
||||
GST_WARNING_OBJECT (src, "got NOT IMPLEMENTED, disable method %s",
|
||||
rtsp_method_as_text (method));
|
||||
src->methods &= ~method;
|
||||
res = RTSP_OK;
|
||||
break;
|
||||
default:
|
||||
GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
|
||||
("Got error response: %d (%s).", response->type_data.response.code,
|
||||
|
@ -2817,7 +2831,7 @@ error_response:
|
|||
}
|
||||
/* we return FALSE so we should unset the response ourselves */
|
||||
rtsp_message_unset (response);
|
||||
return RTSP_ERROR;
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue