mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 07:47:17 +00:00
sdpmessage: Don't set SDP medias from caps without media/payload/clock-rate fields
Previously it would've silently failed reading the payload/clock-rate and instead would've used some random value that happened to be on the stack. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2689>
This commit is contained in:
parent
6f9ae5d758
commit
3f71a467fc
1 changed files with 12 additions and 2 deletions
|
@ -3814,15 +3814,25 @@ gst_sdp_media_set_media_from_caps (const GstCaps * caps, GstSDPMedia * media)
|
|||
|
||||
/* get media type and payload for the m= line */
|
||||
caps_str = gst_structure_get_string (s, "media");
|
||||
if (!caps_str) {
|
||||
GST_ERROR ("ignoring stream without media type");
|
||||
goto error;
|
||||
}
|
||||
gst_sdp_media_set_media (media, caps_str);
|
||||
|
||||
gst_structure_get_int (s, "payload", &caps_pt);
|
||||
if (!gst_structure_get_int (s, "payload", &caps_pt)) {
|
||||
GST_ERROR ("ignoring stream without payload type");
|
||||
goto error;
|
||||
}
|
||||
tmp = g_strdup_printf ("%d", caps_pt);
|
||||
gst_sdp_media_add_format (media, tmp);
|
||||
g_free (tmp);
|
||||
|
||||
/* get clock-rate, media type and params for the rtpmap attribute */
|
||||
gst_structure_get_int (s, "clock-rate", &caps_rate);
|
||||
if (!gst_structure_get_int (s, "clock-rate", &caps_rate)) {
|
||||
GST_ERROR ("ignoring stream without payload type");
|
||||
goto error;
|
||||
}
|
||||
caps_enc = gst_structure_get_string (s, "encoding-name");
|
||||
caps_params = gst_structure_get_string (s, "encoding-params");
|
||||
|
||||
|
|
Loading…
Reference in a new issue