From c7356c70ee8d7a3503c20c52b36c7a70380f76af Mon Sep 17 00:00:00 2001 From: Marc Leeman Date: Fri, 26 Feb 2021 10:49:10 +0100 Subject: [PATCH] gstrtspsrc: 551 should not result in an unhandled error Some cameras (e.g. HikVision DS-2CD2732F-IS) return "551 Option not supported" when a command is sent that is not implemented (e.g. PAUSE). Instead; it should return "501 Not Implemented". This is wrong, as previously, the camera did announce support for PAUSE in the OPTIONS. In this case, handle the 551 as if it was 501 to avoid throwing errors to application level. */ Part-of: --- gst/rtsp/gstrtspsrc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index bf5b72f02a..5cfbf99ccd 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -6703,6 +6703,16 @@ error_response: case GST_RTSP_STS_NOT_ACCEPTABLE: case GST_RTSP_STS_NOT_IMPLEMENTED: case GST_RTSP_STS_METHOD_NOT_ALLOWED: + /* Some cameras (e.g. HikVision DS-2CD2732F-IS) return "551 + * Option not supported" when a command is sent that is not implemented + * (e.g. PAUSE). Instead; it should return "501 Not Implemented". + * + * This is wrong, as previously, the camera did announce support + * for PAUSE in the OPTIONS. + * + * In this case, handle the 551 as if it was 501 to avoid throwing + * errors to application level. */ + case GST_RTSP_STS_OPTION_NOT_SUPPORTED: GST_WARNING_OBJECT (src, "got NOT IMPLEMENTED, disable method %s", gst_rtsp_method_as_text (method)); src->methods &= ~method;