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;
/* 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 */
code = GST_RTSP_STS_OK;
@ -2014,9 +2015,7 @@ handle_play_request (GstRTSPClient * client, GstRTSPContext * ctx)
gst_rtsp_status_as_text (code), ctx->request);
/* 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)
gst_rtsp_message_add_header (ctx->response, GST_RTSP_HDR_SEEK_STYLE,
seek_style);
@ -2138,6 +2137,12 @@ adjust_play_response_failed:
send_generic_response (client, code, ctx);
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