rtsp-client: RTP Info must exist in PLAY response

If RTP Info is missing. Then return GST_RTSP_STS_INTERNAL_SERVER_ERROR

Fixes #76
This commit is contained in:
Kristofer Björkström 2019-08-30 14:00:52 +02:00 committed by Kristofer
parent 513c0fcb95
commit f834700eff

View file

@ -2006,7 +2006,8 @@ handle_play_request (GstRTSPClient * client, GstRTSPContext * ctx)
goto invalid_mode; goto invalid_mode;
/* grab RTPInfo from the media now */ /* grab RTPInfo from the media now */
rtpinfo = gst_rtsp_session_media_get_rtpinfo (sessmedia); if (!(rtpinfo = gst_rtsp_session_media_get_rtpinfo (sessmedia)))
goto rtp_info_error;
/* construct the response now */ /* construct the response now */
code = GST_RTSP_STS_OK; code = GST_RTSP_STS_OK;
@ -2014,9 +2015,7 @@ handle_play_request (GstRTSPClient * client, GstRTSPContext * ctx)
gst_rtsp_status_as_text (code), ctx->request); gst_rtsp_status_as_text (code), ctx->request);
/* add the RTP-Info header */ /* add the RTP-Info header */
if (rtpinfo) gst_rtsp_message_take_header (ctx->response, GST_RTSP_HDR_RTP_INFO, rtpinfo);
gst_rtsp_message_take_header (ctx->response, GST_RTSP_HDR_RTP_INFO,
rtpinfo);
if (seek_style) if (seek_style)
gst_rtsp_message_add_header (ctx->response, GST_RTSP_HDR_SEEK_STYLE, gst_rtsp_message_add_header (ctx->response, GST_RTSP_HDR_SEEK_STYLE,
seek_style); seek_style);
@ -2138,6 +2137,12 @@ adjust_play_response_failed:
send_generic_response (client, code, ctx); send_generic_response (client, code, ctx);
return FALSE; return FALSE;
} }
rtp_info_error:
{
GST_ERROR ("client %p: failed to add RTP-Info", client);
send_generic_response (client, GST_RTSP_STS_INTERNAL_SERVER_ERROR, ctx);
return FALSE;
}
} }
static void static void